From e42c18ededbc4b8c8e4ef89a7e7a324e6c7c8a8a Mon Sep 17 00:00:00 2001 From: Brenda Wallace Date: Thu, 3 Dec 2009 00:10:21 +0000 Subject: added url to twitter's docs --- config.php.sample | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.php.sample b/config.php.sample index 9fccb84f3..97645e870 100644 --- a/config.php.sample +++ b/config.php.sample @@ -186,7 +186,7 @@ $config['sphinx']['port'] = 3312; // // $config['twitterbridge']['enabled'] = true; -// Twitter OAuth settings +// Twitter OAuth settings. Documentation is at http://apiwiki.twitter.com/OAuth-FAQ // $config['twitter']['consumer_key'] = 'YOURKEY'; // $config['twitter']['consumer_secret'] = 'YOURSECRET'; -- cgit v1.2.3-54-g00ecf From c467bc0f3f7d47288d246b5b065d2f809dd1534a Mon Sep 17 00:00:00 2001 From: Brenda Wallace Date: Sun, 10 Jan 2010 05:21:23 +0000 Subject: getTableDef() mostly working in postgres --- lib/schema.php | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/lib/schema.php b/lib/schema.php index a7f64ebed..6292a3d56 100644 --- a/lib/schema.php +++ b/lib/schema.php @@ -94,7 +94,12 @@ class Schema public function getTableDef($name) { - $res = $this->conn->query('DESCRIBE ' . $name); + if(common_config('db','type') == 'pgsql') { + $res = $this->conn->query("select column_default as default, is_nullable as Null, udt_name as Type, column_name AS Field from INFORMATION_SCHEMA.COLUMNS where table_name = '$name'"); + } + else { + $res = $this->conn->query('DESCRIBE ' . $name); + } if (PEAR::isError($res)) { throw new Exception($res->getMessage()); @@ -108,12 +113,16 @@ class Schema $row = array(); while ($res->fetchInto($row, DB_FETCHMODE_ASSOC)) { + //lower case the keys, because the php postgres driver is case insentive for column names + foreach($row as $k=>$v) { + $row[strtolower($k)] = $row[$k]; + } $cd = new ColumnDef(); - $cd->name = $row['Field']; + $cd->name = $row['field']; - $packed = $row['Type']; + $packed = $row['type']; if (preg_match('/^(\w+)\((\d+)\)$/', $packed, $match)) { $cd->type = $match[1]; @@ -122,9 +131,9 @@ class Schema $cd->type = $packed; } - $cd->nullable = ($row['Null'] == 'YES') ? true : false; + $cd->nullable = ($row['null'] == 'YES') ? true : false; $cd->key = $row['Key']; - $cd->default = $row['Default']; + $cd->default = $row['default']; $cd->extra = $row['Extra']; $td->columns[] = $cd; -- cgit v1.2.3-54-g00ecf From f55ef878f603d81857509f42f50c1a28b1a8e1f2 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Thu, 18 Feb 2010 01:47:44 +0000 Subject: Fix for cross site OMB posting problem --- lib/omb.php | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/lib/omb.php b/lib/omb.php index 0f38a4936..17132a594 100644 --- a/lib/omb.php +++ b/lib/omb.php @@ -29,11 +29,9 @@ require_once 'Auth/Yadis/Yadis.php'; function omb_oauth_consumer() { - static $con = null; - if (is_null($con)) { - $con = new OAuthConsumer(common_root_url(), ''); - } - return $con; + // Don't try to make this static. Leads to issues in + // multi-site setups - Z + return new OAuthConsumer(common_root_url(), ''); } function omb_oauth_server() -- cgit v1.2.3-54-g00ecf From 7175e7c7a10222cef0bbf69c06c70464b757e00b Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 2 Mar 2010 15:38:52 -0800 Subject: OStatus fix: look for s in the current element's children, not in all its descendants. Was breaking notice URL transfer, pulling a profile link by mistake. --- lib/activity.php | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/lib/activity.php b/lib/activity.php index b20153213..7926d0569 100644 --- a/lib/activity.php +++ b/lib/activity.php @@ -344,16 +344,18 @@ class ActivityUtils static function getLink(DOMNode $element, $rel, $type=null) { - $links = $element->getElementsByTagnameNS(self::ATOM, self::LINK); + $els = $element->childNodes; - foreach ($links as $link) { + foreach ($els as $link) { + if ($link->localName == self::LINK && $link->namespaceURI == self::ATOM) { - $linkRel = $link->getAttribute(self::REL); - $linkType = $link->getAttribute(self::TYPE); + $linkRel = $link->getAttribute(self::REL); + $linkType = $link->getAttribute(self::TYPE); - if ($linkRel == $rel && - (is_null($type) || $linkType == $type)) { - return $link->getAttribute(self::HREF); + if ($linkRel == $rel && + (is_null($type) || $linkType == $type)) { + return $link->getAttribute(self::HREF); + } } } @@ -362,17 +364,19 @@ class ActivityUtils static function getLinks(DOMNode $element, $rel, $type=null) { - $links = $element->getElementsByTagnameNS(self::ATOM, self::LINK); + $els = $element->childNodes; $out = array(); - foreach ($links as $link) { + foreach ($els as $link) { + if ($link->localName == self::LINK && $link->namespaceURI == self::ATOM) { - $linkRel = $link->getAttribute(self::REL); - $linkType = $link->getAttribute(self::TYPE); + $linkRel = $link->getAttribute(self::REL); + $linkType = $link->getAttribute(self::TYPE); - if ($linkRel == $rel && - (is_null($type) || $linkType == $type)) { - $out[] = $link; + if ($linkRel == $rel && + (is_null($type) || $linkType == $type)) { + $out[] = $link; + } } } -- cgit v1.2.3-54-g00ecf From 8da1b71d6957b4fc2c9032a10e5be0613bafbde7 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 1 Mar 2010 16:35:36 -0800 Subject: Fix a bunch of notice & warning-level messages that were breaking my inter-instance communications --- plugins/OStatus/classes/Magicsig.php | 4 +++- plugins/OStatus/classes/Ostatus_profile.php | 2 +- plugins/OStatus/lib/discovery.php | 2 +- plugins/OStatus/lib/xrd.php | 11 ++++++++--- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/plugins/OStatus/classes/Magicsig.php b/plugins/OStatus/classes/Magicsig.php index 96900d876..5a46aeeb6 100644 --- a/plugins/OStatus/classes/Magicsig.php +++ b/plugins/OStatus/classes/Magicsig.php @@ -146,8 +146,10 @@ class Magicsig extends Memcached_DataObject $mod = base64_url_decode($matches[1]); $exp = base64_url_decode($matches[2]); - if ($matches[4]) { + if (!empty($matches[4])) { $private_exp = base64_url_decode($matches[4]); + } else { + $private_exp = false; } $params['public_key'] = new Crypt_RSA_KEY($mod, $exp, 'public'); diff --git a/plugins/OStatus/classes/Ostatus_profile.php b/plugins/OStatus/classes/Ostatus_profile.php index 7b1aec76b..93e8934c9 100644 --- a/plugins/OStatus/classes/Ostatus_profile.php +++ b/plugins/OStatus/classes/Ostatus_profile.php @@ -1145,7 +1145,7 @@ class Ostatus_profile extends Memcached_DataObject if (!empty($poco)) { $url = $poco->getPrimaryURL(); - if ($url->type == 'homepage') { + if ($url && $url->type == 'homepage') { $homepage = $url->value; } } diff --git a/plugins/OStatus/lib/discovery.php b/plugins/OStatus/lib/discovery.php index 388df0a28..f8449b309 100644 --- a/plugins/OStatus/lib/discovery.php +++ b/plugins/OStatus/lib/discovery.php @@ -94,7 +94,7 @@ class Discovery $links = call_user_func(array($class, 'discover'), $uri); if ($link = Discovery::getService($links, Discovery::LRDD_REL)) { // Load the LRDD XRD - if ($link['template']) { + if (!empty($link['template'])) { $xrd_uri = Discovery::applyTemplate($link['template'], $uri); } else { $xrd_uri = $link['href']; diff --git a/plugins/OStatus/lib/xrd.php b/plugins/OStatus/lib/xrd.php index 16d27f8eb..1de065db9 100644 --- a/plugins/OStatus/lib/xrd.php +++ b/plugins/OStatus/lib/xrd.php @@ -53,17 +53,22 @@ class XRD $xrd = new XRD(); $dom = new DOMDocument(); - $dom->loadXML($xml); + if (!$dom->loadXML($xml)) { + throw new Exception("Invalid XML"); + } $xrd_element = $dom->getElementsByTagName('XRD')->item(0); // Check for host-meta host - $host = $xrd_element->getElementsByTagName('Host')->item(0)->nodeValue; + $host = $xrd_element->getElementsByTagName('Host')->item(0); if ($host) { - $xrd->host = $host; + $xrd->host = $host->nodeValue; } // Loop through other elements foreach ($xrd_element->childNodes as $node) { + if (!($node instanceof DOMElement)) { + continue; + } switch ($node->tagName) { case 'Expires': $xrd->expires = $node->nodeValue; -- cgit v1.2.3-54-g00ecf From 49a872b56f82a3f1ba59f0751c11dfe7754393dd Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 1 Mar 2010 16:36:33 -0800 Subject: OStatus: support @example.com/path/to/profile mentions as well as @profile@example.com (latter requires webfinger, former doesn't) Plus misc warnings/notices cleanup in the submission path. --- actions/newnotice.php | 3 ++ plugins/OStatus/OStatusPlugin.php | 57 ++++++++++++++++++++++------- plugins/OStatus/classes/Ostatus_profile.php | 2 +- plugins/OStatus/lib/xrd.php | 10 ++--- 4 files changed, 53 insertions(+), 19 deletions(-) diff --git a/actions/newnotice.php b/actions/newnotice.php index 78480abab..ed0fa1b2b 100644 --- a/actions/newnotice.php +++ b/actions/newnotice.php @@ -294,6 +294,9 @@ class NewnoticeAction extends Action if ($profile) { $content = '@' . $profile->nickname . ' '; } + } else { + // @fixme most of these bits above aren't being passed on above + $inreplyto = null; } $notice_form = new NoticeForm($this, '', $content, null, $inreplyto); diff --git a/plugins/OStatus/OStatusPlugin.php b/plugins/OStatus/OStatusPlugin.php index 720dedd0a..4ffbba45b 100644 --- a/plugins/OStatus/OStatusPlugin.php +++ b/plugins/OStatus/OStatusPlugin.php @@ -222,31 +222,62 @@ class OStatusPlugin extends Plugin } /** - * + * Find any explicit remote mentions. Accepted forms: + * Webfinger: @user@example.com + * Profile link: @example.com/mublog/user + * @param Profile $sender (os user?) + * @param string $text input markup text + * @param array &$mention in/out param: set of found mentions + * @return boolean hook return value */ function onEndFindMentions($sender, $text, &$mentions) { - preg_match_all('/(?:^|\s+)@((?:\w+\.)*\w+@(?:\w+\.)*\w+(?:\w+\-\w+)*\.\w+)/', + preg_match_all('!(?:^|\s+) + @( # Webfinger: + (?:\w+\.)*\w+ # user + @ # @ + (?:\w+\.)*\w+(?:\w+\-\w+)*\.\w+ # domain + | # Profile: + (?:\w+\.)*\w+(?:\w+\-\w+)*\.\w+ # domain + (?:/\w+)+ # /path1(/path2...) + )!x', $text, $wmatches, PREG_OFFSET_CAPTURE); foreach ($wmatches[1] as $wmatch) { - - $webfinger = $wmatch[0]; - - $this->log(LOG_INFO, "Checking Webfinger for address '$webfinger'"); - - $oprofile = Ostatus_profile::ensureWebfinger($webfinger); + $target = $wmatch[0]; + $oprofile = null; + + if (strpos($target, '/') === false) { + $this->log(LOG_INFO, "Checking Webfinger for address '$target'"); + try { + $oprofile = Ostatus_profile::ensureWebfinger($target); + } catch (Exception $e) { + $this->log(LOG_ERR, "Webfinger check failed: " . $e->getMessage()); + } + } else { + $schemes = array('https', 'http'); + foreach ($schemes as $scheme) { + $url = "$scheme://$target"; + $this->log(LOG_INFO, "Checking profile address '$url'"); + try { + $oprofile = Ostatus_profile::ensureProfile($url); + if ($oprofile) { + continue; + } + } catch (Exception $e) { + $this->log(LOG_ERR, "Profile check failed: " . $e->getMessage()); + } + } + } if (empty($oprofile)) { - - $this->log(LOG_INFO, "No Ostatus_profile found for address '$webfinger'"); - + $this->log(LOG_INFO, "No Ostatus_profile found for address '$target'"); } else { - $this->log(LOG_INFO, "Ostatus_profile found for address '$webfinger'"); + $this->log(LOG_INFO, "Ostatus_profile found for address '$target'"); if ($oprofile->isGroup()) { continue; @@ -261,7 +292,7 @@ class OStatusPlugin extends Plugin } } $mentions[] = array('mentioned' => array($profile), - 'text' => $wmatch[0], + 'text' => $target, 'position' => $pos, 'url' => $profile->profileurl); } diff --git a/plugins/OStatus/classes/Ostatus_profile.php b/plugins/OStatus/classes/Ostatus_profile.php index 93e8934c9..a33e95d93 100644 --- a/plugins/OStatus/classes/Ostatus_profile.php +++ b/plugins/OStatus/classes/Ostatus_profile.php @@ -698,7 +698,7 @@ class Ostatus_profile extends Memcached_DataObject { // Get the canonical feed URI and check it $discover = new FeedDiscovery(); - if ($hints['feedurl']) { + if (isset($hints['feedurl'])) { $feeduri = $hints['feedurl']; $feeduri = $discover->discoverFromFeedURL($feeduri); } else { diff --git a/plugins/OStatus/lib/xrd.php b/plugins/OStatus/lib/xrd.php index 1de065db9..85df26c54 100644 --- a/plugins/OStatus/lib/xrd.php +++ b/plugins/OStatus/lib/xrd.php @@ -161,20 +161,20 @@ class XRD function saveLink($doc, $link) { $link_element = $doc->createElement('Link'); - if ($link['rel']) { + if (!empty($link['rel'])) { $link_element->setAttribute('rel', $link['rel']); } - if ($link['type']) { + if (!empty($link['type'])) { $link_element->setAttribute('type', $link['type']); } - if ($link['href']) { + if (!empty($link['href'])) { $link_element->setAttribute('href', $link['href']); } - if ($link['template']) { + if (!empty($link['template'])) { $link_element->setAttribute('template', $link['template']); } - if (is_array($link['title'])) { + if (!empty($link['title']) && is_array($link['title'])) { foreach($link['title'] as $title) { $title = $doc->createElement('Title', $title); $link_element->appendChild($title); -- cgit v1.2.3-54-g00ecf From 9f94d6defa0d2536cb1f20a4c1c44ff78fd3f039 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Tue, 2 Mar 2010 19:15:24 -0500 Subject: Changed the geo location cookie Expire to Session. --- js/util.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/js/util.js b/js/util.js index 949aec957..d08c46fe6 100644 --- a/js/util.js +++ b/js/util.js @@ -53,7 +53,7 @@ var SN = { // StatusNet NoticeLocationNs: 'notice_data-location_ns', NoticeGeoName: 'notice_data-geo_name', NoticeDataGeo: 'notice_data-geo', - NoticeDataGeoCookie: 'notice_data-geo_cookie', + NoticeDataGeoCookie: 'NoticeDataGeo', NoticeDataGeoSelected: 'notice_data-geo_selected', StatusNetInstance:'StatusNetInstance' } @@ -494,7 +494,7 @@ var SN = { // StatusNet $('#'+SN.C.S.NoticeLocationId).val(''); $('#'+SN.C.S.NoticeDataGeo).attr('checked', false); - $.cookie(SN.C.S.NoticeDataGeoCookie, 'disabled', { path: '/', expires: SN.U.GetFullYear(2029, 0, 1) }); + $.cookie(SN.C.S.NoticeDataGeoCookie, 'disabled', { path: '/' }); } function getJSONgeocodeURL(geocodeURL, data) { @@ -537,7 +537,7 @@ var SN = { // StatusNet NDG: true }; - $.cookie(SN.C.S.NoticeDataGeoCookie, JSON.stringify(cookieValue), { path: '/', expires: SN.U.GetFullYear(2029, 0, 1) }); + $.cookie(SN.C.S.NoticeDataGeoCookie, JSON.stringify(cookieValue), { path: '/' }); }); } -- cgit v1.2.3-54-g00ecf From 79ffebb51b1141791d5ee7478e3a7beaa9fe8faa Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 2 Mar 2010 16:30:09 -0800 Subject: OStatus: save file records for enclosures Also stripping id from foreign HTML messages (could interfere with UI) and disabled failing attachment popup for a.attachment links that don't have a proper id, so you can click through instead of getting an error. Issues: * any other links aren't marked and saved * inconsistent behavior between local and remote attachments (local displays in lightbox, remote doesn't) * if the enclosure'd object isn't referenced in the content, you won't be offered a link to it in our UI --- classes/File.php | 7 +++++++ classes/Notice.php | 28 ++++++++++++++++++++++++++-- js/util.js | 7 +++++-- lib/activity.php | 5 +++++ plugins/OStatus/classes/Ostatus_profile.php | 12 ++++++++++-- 5 files changed, 53 insertions(+), 6 deletions(-) diff --git a/classes/File.php b/classes/File.php index 189e04ce0..1b8ef1b3e 100644 --- a/classes/File.php +++ b/classes/File.php @@ -286,5 +286,12 @@ class File extends Memcached_DataObject } return $enclosure; } + + // quick back-compat hack, since there's still code using this + function isEnclosure() + { + $enclosure = $this->getEnclosure(); + return !empty($enclosure); + } } diff --git a/classes/Notice.php b/classes/Notice.php index 63dc96897..c1263c782 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -211,6 +211,8 @@ class Notice extends Memcached_DataObject * extracting ! tags from content * array 'tags' list of hashtag strings to save with the notice * in place of extracting # tags from content + * array 'urls' list of attached/referred URLs to save with the + * notice in place of extracting links from content * @fixme tag override * * @return Notice @@ -380,8 +382,11 @@ class Notice extends Memcached_DataObject $notice->saveTags(); } - // @fixme pass in data for URLs too? - $notice->saveUrls(); + if (isset($urls)) { + $notice->saveKnownUrls($urls); + } else { + $notice->saveUrls(); + } // Prepare inbox delivery, may be queued to background. $notice->distribute(); @@ -427,6 +432,25 @@ class Notice extends Memcached_DataObject common_replace_urls_callback($this->content, array($this, 'saveUrl'), $this->id); } + /** + * Save the given URLs as related links/attachments to the db + * + * follow redirects and save all available file information + * (mimetype, date, size, oembed, etc.) + * + * @return void + */ + function saveKnownUrls($urls) + { + // @fixme validation? + foreach ($urls as $url) { + File::processNew($url, $this->id); + } + } + + /** + * @private callback + */ function saveUrl($data) { list($url, $notice_id) = $data; File::processNew($url, $notice_id); diff --git a/js/util.js b/js/util.js index d08c46fe6..3efda0d7b 100644 --- a/js/util.js +++ b/js/util.js @@ -423,8 +423,11 @@ var SN = { // StatusNet }; notice.find('a.attachment').click(function() { - $().jOverlay({url: $('address .url')[0].href+'attachment/' + ($(this).attr('id').substring('attachment'.length + 1)) + '/ajax'}); - return false; + var attachId = ($(this).attr('id').substring('attachment'.length + 1)); + if (attachId) { + $().jOverlay({url: $('address .url')[0].href+'attachment/' + attachId + '/ajax'}); + return false; + } }); if ($('#shownotice').length == 0) { diff --git a/lib/activity.php b/lib/activity.php index b20153213..ce14fa254 100644 --- a/lib/activity.php +++ b/lib/activity.php @@ -1044,6 +1044,7 @@ class Activity public $id; // ID of the activity public $title; // title of the activity public $categories = array(); // list of AtomCategory objects + public $enclosures = array(); // list of enclosure URL references /** * Turns a regular old Atom into a magical activity @@ -1140,6 +1141,10 @@ class Activity $this->categories[] = new AtomCategory($catEl); } } + + foreach (ActivityUtils::getLinks($entry, 'enclosure') as $link) { + $this->enclosures[] = $link->getAttribute('href'); + } } /** diff --git a/plugins/OStatus/classes/Ostatus_profile.php b/plugins/OStatus/classes/Ostatus_profile.php index a33e95d93..059c19e7c 100644 --- a/plugins/OStatus/classes/Ostatus_profile.php +++ b/plugins/OStatus/classes/Ostatus_profile.php @@ -550,7 +550,8 @@ class Ostatus_profile extends Memcached_DataObject 'rendered' => $rendered, 'replies' => array(), 'groups' => array(), - 'tags' => array()); + 'tags' => array(), + 'urls' => array()); // Check for optional attributes... @@ -595,6 +596,12 @@ class Ostatus_profile extends Memcached_DataObject } } + // Atom enclosures -> attachment URLs + foreach ($activity->enclosures as $href) { + // @fixme save these locally or....? + $options['urls'][] = $href; + } + try { $saved = Notice::saveNew($oprofile->profile_id, $content, @@ -620,7 +627,8 @@ class Ostatus_profile extends Memcached_DataObject protected function purify($html) { require_once INSTALLDIR.'/extlib/htmLawed/htmLawed.php'; - $config = array('safe' => 1); + $config = array('safe' => 1, + 'deny_attribute' => 'id,style,on*'); return htmLawed($html, $config); } -- cgit v1.2.3-54-g00ecf From ca21f1da8603be348c1a34a8bcc3e7610b9a395d Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Tue, 2 Mar 2010 16:49:29 -0800 Subject: - Have Twitter bridge check for a global key and secret if it can't find one in the local config - Refuse to work at all if the consumer key and secret aren't set --- plugins/TwitterBridge/README | 17 ++++- plugins/TwitterBridge/TwitterBridgePlugin.php | 98 ++++++++++++++++++--------- plugins/TwitterBridge/twitteroauthclient.php | 21 +++++- 3 files changed, 101 insertions(+), 35 deletions(-) diff --git a/plugins/TwitterBridge/README b/plugins/TwitterBridge/README index 72278b32e..5117cf69a 100644 --- a/plugins/TwitterBridge/README +++ b/plugins/TwitterBridge/README @@ -20,7 +20,7 @@ on Twitter (http://twitter.com/apps). During the application registration process your application will be assigned a "consumer" key and secret, which the plugin will use to make OAuth requests to Twitter. You can either pass the consumer key and secret in when you enable the -plugin, or set it using the Twitter administration panel. +plugin, or set it using the Twitter administration panel**. When registering your application with Twitter set the type to "Browser" and your Callback URL to: @@ -42,11 +42,26 @@ To enable the plugin, add the following to your config.php: ) ); +or just: + + addPlugin('TwitterBridge'); + +if you want to set the consumer key and secret from the Twitter bridge +administration panel. (The Twitter bridge wont work at all +unless you configure it with a consumer key and secret.) + * Note: The plugin will still push notices to Twitter for users who have previously set up the Twitter bridge using their Twitter name and password under an older version of StatusNet, but all new Twitter bridge connections will use OAuth. +** For multi-site setups you can also set a global consumer key and and + secret. The Twitter bridge will fall back on the global key pair if + it can't find a local pair, e.g.: + + $config['twitter']['global_consumer_key'] = 'YOUR_CONSUMER_KEY' + $config['twitter']['global_consumer_secret'] = 'YOUR_CONSUMER_SECRET' + Administration panel -------------------- diff --git a/plugins/TwitterBridge/TwitterBridgePlugin.php b/plugins/TwitterBridge/TwitterBridgePlugin.php index 6ce69d5e2..bc702e745 100644 --- a/plugins/TwitterBridge/TwitterBridgePlugin.php +++ b/plugins/TwitterBridge/TwitterBridgePlugin.php @@ -79,6 +79,30 @@ class TwitterBridgePlugin extends Plugin } } + /** + * Check to see if there is a consumer key and secret defined + * for Twitter integration. + * + * @return boolean result + */ + + static function hasKeys() + { + $key = common_config('twitter', 'consumer_key'); + $secret = common_config('twitter', 'consumer_secret'); + + if (empty($key) && empty($secret)) { + $key = common_config('twitter', 'global_consumer_key'); + $secret = common_config('twitter', 'global_consumer_secret'); + } + + if (!empty($key) && !empty($secret)) { + return true; + } + + return false; + } + /** * Add Twitter-related paths to the router table * @@ -91,14 +115,22 @@ class TwitterBridgePlugin extends Plugin function onRouterInitialized($m) { - $m->connect( - 'twitter/authorization', - array('action' => 'twitterauthorization') - ); - $m->connect('settings/twitter', array('action' => 'twittersettings')); - - if (common_config('twitter', 'signin')) { - $m->connect('main/twitterlogin', array('action' => 'twitterlogin')); + if (self::hasKeys()) { + $m->connect( + 'twitter/authorization', + array('action' => 'twitterauthorization') + ); + $m->connect( + 'settings/twitter', array( + 'action' => 'twittersettings' + ) + ); + if (common_config('twitter', 'signin')) { + $m->connect( + 'main/twitterlogin', + array('action' => 'twitterlogin') + ); + } } $m->connect('admin/twitter', array('action' => 'twitteradminpanel')); @@ -117,7 +149,7 @@ class TwitterBridgePlugin extends Plugin { $action_name = $action->trimmed('action'); - if (common_config('twitter', 'signin')) { + if (self::hasKeys() && common_config('twitter', 'signin')) { $action->menuItem( common_local_url('twitterlogin'), _m('Twitter'), @@ -138,15 +170,16 @@ class TwitterBridgePlugin extends Plugin */ function onEndConnectSettingsNav(&$action) { - $action_name = $action->trimmed('action'); - - $action->menuItem( - common_local_url('twittersettings'), - _m('Twitter'), - _m('Twitter integration options'), - $action_name === 'twittersettings' - ); + if (self::hasKeys()) { + $action_name = $action->trimmed('action'); + $action->menuItem( + common_local_url('twittersettings'), + _m('Twitter'), + _m('Twitter integration options'), + $action_name === 'twittersettings' + ); + } return true; } @@ -188,12 +221,12 @@ class TwitterBridgePlugin extends Plugin */ function onStartEnqueueNotice($notice, &$transports) { - // Avoid a possible loop - - if ($notice->source != 'twitter') { - array_push($transports, 'twitter'); + if (self::hasKeys()) { + // Avoid a possible loop + if ($notice->source != 'twitter') { + array_push($transports, 'twitter'); + } } - return true; } @@ -206,18 +239,19 @@ class TwitterBridgePlugin extends Plugin */ function onGetValidDaemons($daemons) { - array_push( - $daemons, - INSTALLDIR - . '/plugins/TwitterBridge/daemons/synctwitterfriends.php' - ); - - if (common_config('twitterimport', 'enabled')) { + if (self::hasKeys()) { array_push( $daemons, INSTALLDIR - . '/plugins/TwitterBridge/daemons/twitterstatusfetcher.php' + . '/plugins/TwitterBridge/daemons/synctwitterfriends.php' ); + if (common_config('twitterimport', 'enabled')) { + array_push( + $daemons, + INSTALLDIR + . '/plugins/TwitterBridge/daemons/twitterstatusfetcher.php' + ); + } } return true; @@ -232,7 +266,9 @@ class TwitterBridgePlugin extends Plugin */ function onEndInitializeQueueManager($manager) { - $manager->connect('twitter', 'TwitterQueueHandler'); + if (self::hasKeys()) { + $manager->connect('twitter', 'TwitterQueueHandler'); + } return true; } diff --git a/plugins/TwitterBridge/twitteroauthclient.php b/plugins/TwitterBridge/twitteroauthclient.php index ba45b533d..93f6aadd1 100644 --- a/plugins/TwitterBridge/twitteroauthclient.php +++ b/plugins/TwitterBridge/twitteroauthclient.php @@ -22,7 +22,7 @@ * @category Integration * @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/ */ @@ -61,8 +61,23 @@ class TwitterOAuthClient extends OAuthClient $consumer_key = common_config('twitter', 'consumer_key'); $consumer_secret = common_config('twitter', 'consumer_secret'); - parent::__construct($consumer_key, $consumer_secret, - $oauth_token, $oauth_token_secret); + if (empty($consumer_key) && empty($consumer_secret)) { + $consumer_key = common_config( + 'twitter', + 'global_consumer_key' + ); + $consumer_secret = common_config( + 'twitter', + 'global_consumer_secret' + ); + } + + parent::__construct( + $consumer_key, + $consumer_secret, + $oauth_token, + $oauth_token_secret + ); } // XXX: the following two functions are to support the horrible hack -- cgit v1.2.3-54-g00ecf From 08422dfa17a5c52d51f21087be0f1d8d602ed0af Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Tue, 2 Mar 2010 16:53:37 -0800 Subject: Remove double word from Twitter bridge README --- plugins/TwitterBridge/README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/TwitterBridge/README b/plugins/TwitterBridge/README index 5117cf69a..d0d34b7ef 100644 --- a/plugins/TwitterBridge/README +++ b/plugins/TwitterBridge/README @@ -55,7 +55,7 @@ unless you configure it with a consumer key and secret.) password under an older version of StatusNet, but all new Twitter bridge connections will use OAuth. -** For multi-site setups you can also set a global consumer key and and +** For multi-site setups you can also set a global consumer key and secret. The Twitter bridge will fall back on the global key pair if it can't find a local pair, e.g.: -- cgit v1.2.3-54-g00ecf From 32c08f53de83cbc512b0e69fc0994601f67d9582 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Wed, 3 Mar 2010 01:49:14 +0000 Subject: Show global key and secret, if defined, in Twitter bridge admin panel --- plugins/TwitterBridge/TwitterBridgePlugin.php | 16 +++++----- plugins/TwitterBridge/twitteradminpanel.php | 43 +++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 8 deletions(-) diff --git a/plugins/TwitterBridge/TwitterBridgePlugin.php b/plugins/TwitterBridge/TwitterBridgePlugin.php index bc702e745..1a0a69682 100644 --- a/plugins/TwitterBridge/TwitterBridgePlugin.php +++ b/plugins/TwitterBridge/TwitterBridgePlugin.php @@ -88,15 +88,15 @@ class TwitterBridgePlugin extends Plugin static function hasKeys() { - $key = common_config('twitter', 'consumer_key'); - $secret = common_config('twitter', 'consumer_secret'); + $ckey = common_config('twitter', 'consumer_key'); + $csecret = common_config('twitter', 'consumer_secret'); - if (empty($key) && empty($secret)) { - $key = common_config('twitter', 'global_consumer_key'); - $secret = common_config('twitter', 'global_consumer_secret'); + if (empty($ckey) && empty($csecret)) { + $ckey = common_config('twitter', 'global_consumer_key'); + $csecret = common_config('twitter', 'global_consumer_secret'); } - if (!empty($key) && !empty($secret)) { + if (!empty($ckey) && !empty($csecret)) { return true; } @@ -115,6 +115,8 @@ class TwitterBridgePlugin extends Plugin function onRouterInitialized($m) { + $m->connect('admin/twitter', array('action' => 'twitteradminpanel')); + if (self::hasKeys()) { $m->connect( 'twitter/authorization', @@ -133,8 +135,6 @@ class TwitterBridgePlugin extends Plugin } } - $m->connect('admin/twitter', array('action' => 'twitteradminpanel')); - return true; } diff --git a/plugins/TwitterBridge/twitteradminpanel.php b/plugins/TwitterBridge/twitteradminpanel.php index b22e6d99f..0ed53bc05 100644 --- a/plugins/TwitterBridge/twitteradminpanel.php +++ b/plugins/TwitterBridge/twitteradminpanel.php @@ -225,6 +225,49 @@ class TwitterAdminPanelForm extends AdminForm ); $this->unli(); + $globalConsumerKey = common_config('twitter', 'global_consumer_key'); + $globalConsumerSec = common_config('twitter', 'global_consumer_secret'); + + if (!empty($globalConsumerKey)) { + $this->li(); + $this->out->element( + 'label', + array('for' => 'global_consumer_key'), + '' + ); + $this->out->element( + 'input', + array( + 'name' => 'global_consumer_key', + 'type' => 'text', + 'id' => 'global_consumer_key', + 'value' => $globalConsumerKey, + 'disabled' => 'true' + ) + ); + $this->out->element('p', 'form_guide', _('Global consumer key')); + $this->unli(); + + $this->li(); + $this->out->element( + 'label', + array('for' => 'global_consumer_secret'), + '' + ); + $this->out->element( + 'input', + array( + 'name' => 'global_consumer_secret', + 'type' => 'text', + 'id' => 'global_consumer_secret', + 'value' => $globalConsumerSec, + 'disabled' => 'true' + ) + ); + $this->out->element('p', 'form_guide', _('Global consumer secret')); + $this->unli(); + } + $this->li(); $this->input( 'source', -- cgit v1.2.3-54-g00ecf From f7ba5566bc1e2bad262b948c92d8167e27e147bc Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Tue, 2 Mar 2010 18:27:37 -0800 Subject: Make Facebook plugin look for API key and secret before doing anything --- plugins/Facebook/FacebookPlugin.php | 159 ++++++++++++++++++++++-------------- 1 file changed, 98 insertions(+), 61 deletions(-) diff --git a/plugins/Facebook/FacebookPlugin.php b/plugins/Facebook/FacebookPlugin.php index 014d0d197..90ed7351f 100644 --- a/plugins/Facebook/FacebookPlugin.php +++ b/plugins/Facebook/FacebookPlugin.php @@ -79,6 +79,25 @@ class FacebookPlugin extends Plugin } } + /** + * Check to see if there is an API key and secret defined + * for Facebook integration. + * + * @return boolean result + */ + + static function hasKeys() + { + $apiKey = common_config('facebook', 'apikey'); + $apiSecret = common_config('facebook', 'secret'); + + if (!empty($apiKey) && !empty($apiSecret)) { + return true; + } + + return false; + } + /** * Add Facebook app actions to the router table * @@ -91,23 +110,26 @@ class FacebookPlugin extends Plugin function onStartInitializeRouter($m) { + $m->connect('admin/facebook', array('action' => 'facebookadminpanel')); - // Facebook App stuff + if (self::hasKeys()) { - $m->connect('facebook/app', array('action' => 'facebookhome')); - $m->connect('facebook/app/index.php', array('action' => 'facebookhome')); - $m->connect('facebook/app/settings.php', - array('action' => 'facebooksettings')); - $m->connect('facebook/app/invite.php', array('action' => 'facebookinvite')); - $m->connect('facebook/app/remove', array('action' => 'facebookremove')); - $m->connect('admin/facebook', array('action' => 'facebookadminpanel')); + // Facebook App stuff - // Facebook Connect stuff + $m->connect('facebook/app', array('action' => 'facebookhome')); + $m->connect('facebook/app/index.php', array('action' => 'facebookhome')); + $m->connect('facebook/app/settings.php', + array('action' => 'facebooksettings')); + $m->connect('facebook/app/invite.php', array('action' => 'facebookinvite')); + $m->connect('facebook/app/remove', array('action' => 'facebookremove')); - $m->connect('main/facebookconnect', array('action' => 'FBConnectAuth')); - $m->connect('main/facebooklogin', array('action' => 'FBConnectLogin')); - $m->connect('settings/facebook', array('action' => 'FBConnectSettings')); - $m->connect('xd_receiver.html', array('action' => 'FBC_XDReceiver')); + // Facebook Connect stuff + + $m->connect('main/facebookconnect', array('action' => 'FBConnectAuth')); + $m->connect('main/facebooklogin', array('action' => 'FBConnectLogin')); + $m->connect('settings/facebook', array('action' => 'FBConnectSettings')); + $m->connect('xd_receiver.html', array('action' => 'FBC_XDReceiver')); + } return true; } @@ -338,6 +360,9 @@ class FacebookPlugin extends Plugin function reqFbScripts($action) { + if (!self::hasKeys()) { + return false; + } // If you're logged in w/FB Connect, you always need the FB stuff @@ -410,42 +435,45 @@ class FacebookPlugin extends Plugin function onStartPrimaryNav($action) { - $user = common_current_user(); + if (self::hasKeys()) { - $connect = 'FBConnectSettings'; - if (common_config('xmpp', 'enabled')) { - $connect = 'imsettings'; - } else if (common_config('sms', 'enabled')) { - $connect = 'smssettings'; - } + $user = common_current_user(); - if (!empty($user)) { + $connect = 'FBConnectSettings'; + if (common_config('xmpp', 'enabled')) { + $connect = 'imsettings'; + } else if (common_config('sms', 'enabled')) { + $connect = 'smssettings'; + } - $fbuid = $this->loggedIn(); + if (!empty($user)) { - if (!empty($fbuid)) { + $fbuid = $this->loggedIn(); - /* Default FB silhouette pic for FB users who haven't - uploaded a profile pic yet. */ + if (!empty($fbuid)) { - $silhouetteUrl = - 'http://static.ak.fbcdn.net/pics/q_silhouette.gif'; + /* Default FB silhouette pic for FB users who haven't + uploaded a profile pic yet. */ - $url = $this->getProfilePicURL($fbuid); + $silhouetteUrl = + 'http://static.ak.fbcdn.net/pics/q_silhouette.gif'; - $action->elementStart('li', array('id' => 'nav_fb')); + $url = $this->getProfilePicURL($fbuid); - $action->element('img', array('id' => 'fbc_profile-pic', - 'src' => (!empty($url)) ? $url : $silhouetteUrl, - 'alt' => 'Facebook Connect User', - 'width' => '16'), ''); + $action->elementStart('li', array('id' => 'nav_fb')); - $iconurl = common_path('plugins/Facebook/fbfavicon.ico'); - $action->element('img', array('id' => 'fb_favicon', - 'src' => $iconurl)); + $action->element('img', array('id' => 'fbc_profile-pic', + 'src' => (!empty($url)) ? $url : $silhouetteUrl, + 'alt' => 'Facebook Connect User', + 'width' => '16'), ''); - $action->elementEnd('li'); + $iconurl = common_path('plugins/Facebook/fbfavicon.ico'); + $action->element('img', array('id' => 'fb_favicon', + 'src' => $iconurl)); + $action->elementEnd('li'); + + } } } @@ -462,14 +490,15 @@ class FacebookPlugin extends Plugin function onEndLoginGroupNav(&$action) { + if (self::hasKeys()) { - $action_name = $action->trimmed('action'); - - $action->menuItem(common_local_url('FBConnectLogin'), - _m('Facebook'), - _m('Login or register using Facebook'), - 'FBConnectLogin' === $action_name); + $action_name = $action->trimmed('action'); + $action->menuItem(common_local_url('FBConnectLogin'), + _m('Facebook'), + _m('Login or register using Facebook'), + 'FBConnectLogin' === $action_name); + } return true; } @@ -483,13 +512,15 @@ class FacebookPlugin extends Plugin function onEndConnectSettingsNav(&$action) { - $action_name = $action->trimmed('action'); + if (self::hasKeys()) { - $action->menuItem(common_local_url('FBConnectSettings'), - _m('Facebook'), - _m('Facebook Connect Settings'), - $action_name === 'FBConnectSettings'); + $action_name = $action->trimmed('action'); + $action->menuItem(common_local_url('FBConnectSettings'), + _m('Facebook'), + _m('Facebook Connect Settings'), + $action_name === 'FBConnectSettings'); + } return true; } @@ -503,20 +534,22 @@ class FacebookPlugin extends Plugin function onStartLogout($action) { - $action->logout(); - $fbuid = $this->loggedIn(); + if (self::hasKeys()) { - if (!empty($fbuid)) { - try { - $facebook = getFacebook(); - $facebook->expire_session(); - } catch (Exception $e) { - common_log(LOG_WARNING, 'Facebook Connect Plugin - ' . - 'Could\'t logout of Facebook: ' . - $e->getMessage()); + $action->logout(); + $fbuid = $this->loggedIn(); + + if (!empty($fbuid)) { + try { + $facebook = getFacebook(); + $facebook->expire_session(); + } catch (Exception $e) { + common_log(LOG_WARNING, 'Facebook Connect Plugin - ' . + 'Could\'t logout of Facebook: ' . + $e->getMessage()); + } } } - return true; } @@ -562,7 +595,9 @@ class FacebookPlugin extends Plugin function onStartEnqueueNotice($notice, &$transports) { - array_push($transports, 'facebook'); + if (self::hasKeys()) { + array_push($transports, 'facebook'); + } return true; } @@ -575,7 +610,9 @@ class FacebookPlugin extends Plugin */ function onEndInitializeQueueManager($manager) { - $manager->connect('facebook', 'FacebookQueueHandler'); + if (self::hasKeys()) { + $manager->connect('facebook', 'FacebookQueueHandler'); + } return true; } -- cgit v1.2.3-54-g00ecf From 358556057a87c0cb9291223a2026782e6548ff2e Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Tue, 2 Mar 2010 23:24:50 -0500 Subject: Bump to phpCAS 1.1.0RC6 --- plugins/CasAuthentication/extlib/CAS.php | 3086 ++++++++++---------- .../extlib/CAS/PGTStorage/pgt-db.php | 378 +-- .../extlib/CAS/PGTStorage/pgt-file.php | 496 ++-- .../extlib/CAS/PGTStorage/pgt-main.php | 374 +-- plugins/CasAuthentication/extlib/CAS/client.php | 552 +++- .../extlib/CAS/domxml-php4-php5.php | 277 -- .../extlib/CAS/domxml-php4-to-php5.php | 499 ++++ .../extlib/CAS/languages/catalan.php | 54 +- .../extlib/CAS/languages/english.php | 52 +- .../extlib/CAS/languages/french.php | 54 +- .../extlib/CAS/languages/german.php | 52 +- .../extlib/CAS/languages/greek.php | 52 +- .../extlib/CAS/languages/japanese.php | 12 +- .../extlib/CAS/languages/languages.php | 46 +- .../extlib/CAS/languages/spanish.php | 54 +- 15 files changed, 3391 insertions(+), 2647 deletions(-) delete mode 100644 plugins/CasAuthentication/extlib/CAS/domxml-php4-php5.php create mode 100644 plugins/CasAuthentication/extlib/CAS/domxml-php4-to-php5.php diff --git a/plugins/CasAuthentication/extlib/CAS.php b/plugins/CasAuthentication/extlib/CAS.php index f5ea0b12a..e75437419 100644 --- a/plugins/CasAuthentication/extlib/CAS.php +++ b/plugins/CasAuthentication/extlib/CAS.php @@ -1,1471 +1,1615 @@ -=')) { - require_once(dirname(__FILE__).'/CAS/domxml-php4-php5.php'); -} - -/** - * @file CAS/CAS.php - * Interface class of the phpCAS library - * - * @ingroup public - */ - -// ######################################################################## -// CONSTANTS -// ######################################################################## - -// ------------------------------------------------------------------------ -// CAS VERSIONS -// ------------------------------------------------------------------------ - -/** - * phpCAS version. accessible for the user by phpCAS::getVersion(). - */ -define('PHPCAS_VERSION','1.0.1'); - -// ------------------------------------------------------------------------ -// CAS VERSIONS -// ------------------------------------------------------------------------ - /** - * @addtogroup public - * @{ - */ - -/** - * CAS version 1.0 - */ -define("CAS_VERSION_1_0",'1.0'); -/*! - * CAS version 2.0 - */ -define("CAS_VERSION_2_0",'2.0'); - -/** @} */ - /** - * @addtogroup publicPGTStorage - * @{ - */ -// ------------------------------------------------------------------------ -// FILE PGT STORAGE -// ------------------------------------------------------------------------ - /** - * Default path used when storing PGT's to file - */ -define("CAS_PGT_STORAGE_FILE_DEFAULT_PATH",'/tmp'); -/** - * phpCAS::setPGTStorageFile()'s 2nd parameter to write plain text files - */ -define("CAS_PGT_STORAGE_FILE_FORMAT_PLAIN",'plain'); -/** - * phpCAS::setPGTStorageFile()'s 2nd parameter to write xml files - */ -define("CAS_PGT_STORAGE_FILE_FORMAT_XML",'xml'); -/** - * Default format used when storing PGT's to file - */ -define("CAS_PGT_STORAGE_FILE_DEFAULT_FORMAT",CAS_PGT_STORAGE_FILE_FORMAT_PLAIN); -// ------------------------------------------------------------------------ -// DATABASE PGT STORAGE -// ------------------------------------------------------------------------ - /** - * default database type when storing PGT's to database - */ -define("CAS_PGT_STORAGE_DB_DEFAULT_DATABASE_TYPE",'mysql'); -/** - * default host when storing PGT's to database - */ -define("CAS_PGT_STORAGE_DB_DEFAULT_HOSTNAME",'localhost'); -/** - * default port when storing PGT's to database - */ -define("CAS_PGT_STORAGE_DB_DEFAULT_PORT",''); -/** - * default database when storing PGT's to database - */ -define("CAS_PGT_STORAGE_DB_DEFAULT_DATABASE",'phpCAS'); -/** - * default table when storing PGT's to database - */ -define("CAS_PGT_STORAGE_DB_DEFAULT_TABLE",'pgt'); - -/** @} */ -// ------------------------------------------------------------------------ -// SERVICE ACCESS ERRORS -// ------------------------------------------------------------------------ - /** - * @addtogroup publicServices - * @{ - */ - -/** - * phpCAS::service() error code on success - */ -define("PHPCAS_SERVICE_OK",0); -/** - * phpCAS::service() error code when the PT could not retrieve because - * the CAS server did not respond. - */ -define("PHPCAS_SERVICE_PT_NO_SERVER_RESPONSE",1); -/** - * phpCAS::service() error code when the PT could not retrieve because - * the response of the CAS server was ill-formed. - */ -define("PHPCAS_SERVICE_PT_BAD_SERVER_RESPONSE",2); -/** - * phpCAS::service() error code when the PT could not retrieve because - * the CAS server did not want to. - */ -define("PHPCAS_SERVICE_PT_FAILURE",3); -/** - * phpCAS::service() error code when the service was not available. - */ -define("PHPCAS_SERVICE_NOT AVAILABLE",4); - -/** @} */ -// ------------------------------------------------------------------------ -// LANGUAGES -// ------------------------------------------------------------------------ - /** - * @addtogroup publicLang - * @{ - */ - -define("PHPCAS_LANG_ENGLISH", 'english'); -define("PHPCAS_LANG_FRENCH", 'french'); -define("PHPCAS_LANG_GREEK", 'greek'); -define("PHPCAS_LANG_GERMAN", 'german'); -define("PHPCAS_LANG_JAPANESE", 'japanese'); -define("PHPCAS_LANG_SPANISH", 'spanish'); -define("PHPCAS_LANG_CATALAN", 'catalan'); - -/** @} */ - -/** - * @addtogroup internalLang - * @{ - */ - -/** - * phpCAS default language (when phpCAS::setLang() is not used) - */ -define("PHPCAS_LANG_DEFAULT", PHPCAS_LANG_ENGLISH); - -/** @} */ -// ------------------------------------------------------------------------ -// DEBUG -// ------------------------------------------------------------------------ - /** - * @addtogroup publicDebug - * @{ - */ - -/** - * The default directory for the debug file under Unix. - */ -define('DEFAULT_DEBUG_DIR','/tmp/'); - -/** @} */ -// ------------------------------------------------------------------------ -// MISC -// ------------------------------------------------------------------------ - /** - * @addtogroup internalMisc - * @{ - */ - -/** - * This global variable is used by the interface class phpCAS. - * - * @hideinitializer - */ -$GLOBALS['PHPCAS_CLIENT'] = null; - -/** - * This global variable is used to store where the initializer is called from - * (to print a comprehensive error in case of multiple calls). - * - * @hideinitializer - */ -$GLOBALS['PHPCAS_INIT_CALL'] = array('done' => FALSE, - 'file' => '?', - 'line' => -1, - 'method' => '?'); - -/** - * This global variable is used to store where the method checking - * the authentication is called from (to print comprehensive errors) - * - * @hideinitializer - */ -$GLOBALS['PHPCAS_AUTH_CHECK_CALL'] = array('done' => FALSE, - 'file' => '?', - 'line' => -1, - 'method' => '?', - 'result' => FALSE); - -/** - * This global variable is used to store phpCAS debug mode. - * - * @hideinitializer - */ -$GLOBALS['PHPCAS_DEBUG'] = array('filename' => FALSE, - 'indent' => 0, - 'unique_id' => ''); - -/** @} */ - -// ######################################################################## -// CLIENT CLASS -// ######################################################################## - -// include client class -include_once(dirname(__FILE__).'/CAS/client.php'); - -// ######################################################################## -// INTERFACE CLASS -// ######################################################################## - -/** - * @class phpCAS - * The phpCAS class is a simple container for the phpCAS library. It provides CAS - * authentication for web applications written in PHP. - * - * @ingroup public - * @author Pascal Aubry - * - * \internal All its methods access the same object ($PHPCAS_CLIENT, declared - * at the end of CAS/client.php). - */ - - - -class phpCAS -{ - - // ######################################################################## - // INITIALIZATION - // ######################################################################## - - /** - * @addtogroup publicInit - * @{ - */ - - /** - * phpCAS client initializer. - * @note Only one of the phpCAS::client() and phpCAS::proxy functions should be - * called, only once, and before all other methods (except phpCAS::getVersion() - * and phpCAS::setDebug()). - * - * @param $server_version the version of the CAS server - * @param $server_hostname the hostname of the CAS server - * @param $server_port the port the CAS server is running on - * @param $server_uri the URI the CAS server is responding on - * @param $start_session Have phpCAS start PHP sessions (default true) - * - * @return a newly created CASClient object - */ - function client($server_version, - $server_hostname, - $server_port, - $server_uri, - $start_session = true) - { - global $PHPCAS_CLIENT, $PHPCAS_INIT_CALL; - - phpCAS::traceBegin(); - if ( is_object($PHPCAS_CLIENT) ) { - phpCAS::error($PHPCAS_INIT_CALL['method'].'() has already been called (at '.$PHPCAS_INIT_CALL['file'].':'.$PHPCAS_INIT_CALL['line'].')'); - } - if ( gettype($server_version) != 'string' ) { - phpCAS::error('type mismatched for parameter $server_version (should be `string\')'); - } - if ( gettype($server_hostname) != 'string' ) { - phpCAS::error('type mismatched for parameter $server_hostname (should be `string\')'); - } - if ( gettype($server_port) != 'integer' ) { - phpCAS::error('type mismatched for parameter $server_port (should be `integer\')'); - } - if ( gettype($server_uri) != 'string' ) { - phpCAS::error('type mismatched for parameter $server_uri (should be `string\')'); - } - - // store where the initialzer is called from - $dbg = phpCAS::backtrace(); - $PHPCAS_INIT_CALL = array('done' => TRUE, - 'file' => $dbg[0]['file'], - 'line' => $dbg[0]['line'], - 'method' => __CLASS__.'::'.__FUNCTION__); - - // initialize the global object $PHPCAS_CLIENT - $PHPCAS_CLIENT = new CASClient($server_version,FALSE/*proxy*/,$server_hostname,$server_port,$server_uri,$start_session); - phpCAS::traceEnd(); - } - - /** - * phpCAS proxy initializer. - * @note Only one of the phpCAS::client() and phpCAS::proxy functions should be - * called, only once, and before all other methods (except phpCAS::getVersion() - * and phpCAS::setDebug()). - * - * @param $server_version the version of the CAS server - * @param $server_hostname the hostname of the CAS server - * @param $server_port the port the CAS server is running on - * @param $server_uri the URI the CAS server is responding on - * @param $start_session Have phpCAS start PHP sessions (default true) - * - * @return a newly created CASClient object - */ - function proxy($server_version, - $server_hostname, - $server_port, - $server_uri, - $start_session = true) - { - global $PHPCAS_CLIENT, $PHPCAS_INIT_CALL; - - phpCAS::traceBegin(); - if ( is_object($PHPCAS_CLIENT) ) { - phpCAS::error($PHPCAS_INIT_CALL['method'].'() has already been called (at '.$PHPCAS_INIT_CALL['file'].':'.$PHPCAS_INIT_CALL['line'].')'); - } - if ( gettype($server_version) != 'string' ) { - phpCAS::error('type mismatched for parameter $server_version (should be `string\')'); - } - if ( gettype($server_hostname) != 'string' ) { - phpCAS::error('type mismatched for parameter $server_hostname (should be `string\')'); - } - if ( gettype($server_port) != 'integer' ) { - phpCAS::error('type mismatched for parameter $server_port (should be `integer\')'); - } - if ( gettype($server_uri) != 'string' ) { - phpCAS::error('type mismatched for parameter $server_uri (should be `string\')'); - } - - // store where the initialzer is called from - $dbg = phpCAS::backtrace(); - $PHPCAS_INIT_CALL = array('done' => TRUE, - 'file' => $dbg[0]['file'], - 'line' => $dbg[0]['line'], - 'method' => __CLASS__.'::'.__FUNCTION__); - - // initialize the global object $PHPCAS_CLIENT - $PHPCAS_CLIENT = new CASClient($server_version,TRUE/*proxy*/,$server_hostname,$server_port,$server_uri,$start_session); - phpCAS::traceEnd(); - } - - /** @} */ - // ######################################################################## - // DEBUGGING - // ######################################################################## - - /** - * @addtogroup publicDebug - * @{ - */ - - /** - * Set/unset debug mode - * - * @param $filename the name of the file used for logging, or FALSE to stop debugging. - */ - function setDebug($filename='') - { - global $PHPCAS_DEBUG; - - if ( $filename != FALSE && gettype($filename) != 'string' ) { - phpCAS::error('type mismatched for parameter $dbg (should be FALSE or the name of the log file)'); - } - - if ( empty($filename) ) { - if ( preg_match('/^Win.*/',getenv('OS')) ) { - if ( isset($_ENV['TMP']) ) { - $debugDir = $_ENV['TMP'].'/'; - } else if ( isset($_ENV['TEMP']) ) { - $debugDir = $_ENV['TEMP'].'/'; - } else { - $debugDir = ''; - } - } else { - $debugDir = DEFAULT_DEBUG_DIR; - } - $filename = $debugDir . 'phpCAS.log'; - } - - if ( empty($PHPCAS_DEBUG['unique_id']) ) { - $PHPCAS_DEBUG['unique_id'] = substr(strtoupper(md5(uniqid(''))),0,4); - } - - $PHPCAS_DEBUG['filename'] = $filename; - - phpCAS::trace('START ******************'); - } - - /** @} */ - /** - * @addtogroup internalDebug - * @{ - */ - - /** - * This method is a wrapper for debug_backtrace() that is not available - * in all PHP versions (>= 4.3.0 only) - */ - function backtrace() - { - if ( function_exists('debug_backtrace') ) { - return debug_backtrace(); - } else { - // poor man's hack ... but it does work ... - return array(); - } - } - - /** - * Logs a string in debug mode. - * - * @param $str the string to write - * - * @private - */ - function log($str) - { - $indent_str = "."; - global $PHPCAS_DEBUG; - - if ( $PHPCAS_DEBUG['filename'] ) { - for ($i=0;$i<$PHPCAS_DEBUG['indent'];$i++) { - $indent_str .= '| '; - } - error_log($PHPCAS_DEBUG['unique_id'].' '.$indent_str.$str."\n",3,$PHPCAS_DEBUG['filename']); - } - - } - - /** - * This method is used by interface methods to print an error and where the function - * was originally called from. - * - * @param $msg the message to print - * - * @private - */ - function error($msg) - { - $dbg = phpCAS::backtrace(); - $function = '?'; - $file = '?'; - $line = '?'; - if ( is_array($dbg) ) { - for ( $i=1; $i\nphpCAS error: ".__CLASS__."::".$function.'(): '.htmlentities($msg)." in ".$file." on line ".$line."
\n"; - phpCAS::trace($msg); - phpCAS::traceExit(); - exit(); - } - - /** - * This method is used to log something in debug mode. - */ - function trace($str) - { - $dbg = phpCAS::backtrace(); - phpCAS::log($str.' ['.basename($dbg[1]['file']).':'.$dbg[1]['line'].']'); - } - - /** - * This method is used to indicate the start of the execution of a function in debug mode. - */ - function traceBegin() - { - global $PHPCAS_DEBUG; - - $dbg = phpCAS::backtrace(); - $str = '=> '; - if ( !empty($dbg[2]['class']) ) { - $str .= $dbg[2]['class'].'::'; - } - $str .= $dbg[2]['function'].'('; - if ( is_array($dbg[2]['args']) ) { - foreach ($dbg[2]['args'] as $index => $arg) { - if ( $index != 0 ) { - $str .= ', '; - } - $str .= str_replace("\n","",var_export($arg,TRUE)); - } - } - $str .= ') ['.basename($dbg[2]['file']).':'.$dbg[2]['line'].']'; - phpCAS::log($str); - $PHPCAS_DEBUG['indent'] ++; - } - - /** - * This method is used to indicate the end of the execution of a function in debug mode. - * - * @param $res the result of the function - */ - function traceEnd($res='') - { - global $PHPCAS_DEBUG; - - $PHPCAS_DEBUG['indent'] --; - $dbg = phpCAS::backtrace(); - $str = ''; - $str .= '<= '.str_replace("\n","",var_export($res,TRUE)); - phpCAS::log($str); - } - - /** - * This method is used to indicate the end of the execution of the program - */ - function traceExit() - { - global $PHPCAS_DEBUG; - - phpCAS::log('exit()'); - while ( $PHPCAS_DEBUG['indent'] > 0 ) { - phpCAS::log('-'); - $PHPCAS_DEBUG['indent'] --; - } - } - - /** @} */ - // ######################################################################## - // INTERNATIONALIZATION - // ######################################################################## - /** - * @addtogroup publicLang - * @{ - */ - - /** - * This method is used to set the language used by phpCAS. - * @note Can be called only once. - * - * @param $lang a string representing the language. - * - * @sa PHPCAS_LANG_FRENCH, PHPCAS_LANG_ENGLISH - */ - function setLang($lang) - { - global $PHPCAS_CLIENT; - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); - } - if ( gettype($lang) != 'string' ) { - phpCAS::error('type mismatched for parameter $lang (should be `string\')'); - } - $PHPCAS_CLIENT->setLang($lang); - } - - /** @} */ - // ######################################################################## - // VERSION - // ######################################################################## - /** - * @addtogroup public - * @{ - */ - - /** - * This method returns the phpCAS version. - * - * @return the phpCAS version. - */ - function getVersion() - { - return PHPCAS_VERSION; - } - - /** @} */ - // ######################################################################## - // HTML OUTPUT - // ######################################################################## - /** - * @addtogroup publicOutput - * @{ - */ - - /** - * This method sets the HTML header used for all outputs. - * - * @param $header the HTML header. - */ - function setHTMLHeader($header) - { - global $PHPCAS_CLIENT; - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); - } - if ( gettype($header) != 'string' ) { - phpCAS::error('type mismatched for parameter $header (should be `string\')'); - } - $PHPCAS_CLIENT->setHTMLHeader($header); - } - - /** - * This method sets the HTML footer used for all outputs. - * - * @param $footer the HTML footer. - */ - function setHTMLFooter($footer) - { - global $PHPCAS_CLIENT; - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); - } - if ( gettype($footer) != 'string' ) { - phpCAS::error('type mismatched for parameter $footer (should be `string\')'); - } - $PHPCAS_CLIENT->setHTMLFooter($footer); - } - - /** @} */ - // ######################################################################## - // PGT STORAGE - // ######################################################################## - /** - * @addtogroup publicPGTStorage - * @{ - */ - - /** - * This method is used to tell phpCAS to store the response of the - * CAS server to PGT requests onto the filesystem. - * - * @param $format the format used to store the PGT's (`plain' and `xml' allowed) - * @param $path the path where the PGT's should be stored - */ - function setPGTStorageFile($format='', - $path='') - { - global $PHPCAS_CLIENT,$PHPCAS_AUTH_CHECK_CALL; - - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); - } - if ( !$PHPCAS_CLIENT->isProxy() ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); - } - if ( $PHPCAS_AUTH_CHECK_CALL['done'] ) { - phpCAS::error('this method should only be called before '.$PHPCAS_AUTH_CHECK_CALL['method'].'() (called at '.$PHPCAS_AUTH_CHECK_CALL['file'].':'.$PHPCAS_AUTH_CHECK_CALL['line'].')'); - } - if ( gettype($format) != 'string' ) { - phpCAS::error('type mismatched for parameter $format (should be `string\')'); - } - if ( gettype($path) != 'string' ) { - phpCAS::error('type mismatched for parameter $format (should be `string\')'); - } - $PHPCAS_CLIENT->setPGTStorageFile($format,$path); - phpCAS::traceEnd(); - } - - /** - * This method is used to tell phpCAS to store the response of the - * CAS server to PGT requests into a database. - * @note The connection to the database is done only when needed. - * As a consequence, bad parameters are detected only when - * initializing PGT storage, except in debug mode. - * - * @param $user the user to access the data with - * @param $password the user's password - * @param $database_type the type of the database hosting the data - * @param $hostname the server hosting the database - * @param $port the port the server is listening on - * @param $database the name of the database - * @param $table the name of the table storing the data - */ - function setPGTStorageDB($user, - $password, - $database_type='', - $hostname='', - $port=0, - $database='', - $table='') - { - global $PHPCAS_CLIENT,$PHPCAS_AUTH_CHECK_CALL; - - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); - } - if ( !$PHPCAS_CLIENT->isProxy() ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); - } - if ( $PHPCAS_AUTH_CHECK_CALL['done'] ) { - phpCAS::error('this method should only be called before '.$PHPCAS_AUTH_CHECK_CALL['method'].'() (called at '.$PHPCAS_AUTH_CHECK_CALL['file'].':'.$PHPCAS_AUTH_CHECK_CALL['line'].')'); - } - if ( gettype($user) != 'string' ) { - phpCAS::error('type mismatched for parameter $user (should be `string\')'); - } - if ( gettype($password) != 'string' ) { - phpCAS::error('type mismatched for parameter $password (should be `string\')'); - } - if ( gettype($database_type) != 'string' ) { - phpCAS::error('type mismatched for parameter $database_type (should be `string\')'); - } - if ( gettype($hostname) != 'string' ) { - phpCAS::error('type mismatched for parameter $hostname (should be `string\')'); - } - if ( gettype($port) != 'integer' ) { - phpCAS::error('type mismatched for parameter $port (should be `integer\')'); - } - if ( gettype($database) != 'string' ) { - phpCAS::error('type mismatched for parameter $database (should be `string\')'); - } - if ( gettype($table) != 'string' ) { - phpCAS::error('type mismatched for parameter $table (should be `string\')'); - } - $PHPCAS_CLIENT->setPGTStorageDB($this,$user,$password,$hostname,$port,$database,$table); - phpCAS::traceEnd(); - } - - /** @} */ - // ######################################################################## - // ACCESS TO EXTERNAL SERVICES - // ######################################################################## - /** - * @addtogroup publicServices - * @{ - */ - - /** - * This method is used to access an HTTP[S] service. - * - * @param $url the service to access. - * @param $err_code an error code Possible values are PHPCAS_SERVICE_OK (on - * success), PHPCAS_SERVICE_PT_NO_SERVER_RESPONSE, PHPCAS_SERVICE_PT_BAD_SERVER_RESPONSE, - * PHPCAS_SERVICE_PT_FAILURE, PHPCAS_SERVICE_NOT AVAILABLE. - * @param $output the output of the service (also used to give an error - * message on failure). - * - * @return TRUE on success, FALSE otherwise (in this later case, $err_code - * gives the reason why it failed and $output contains an error message). - */ - function serviceWeb($url,&$err_code,&$output) - { - global $PHPCAS_CLIENT, $PHPCAS_AUTH_CHECK_CALL; - - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); - } - if ( !$PHPCAS_CLIENT->isProxy() ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); - } - if ( !$PHPCAS_AUTH_CHECK_CALL['done'] ) { - phpCAS::error('this method should only be called after the programmer is sure the user has been authenticated (by calling '.__CLASS__.'::checkAuthentication() or '.__CLASS__.'::forceAuthentication()'); - } - if ( !$PHPCAS_AUTH_CHECK_CALL['result'] ) { - phpCAS::error('authentication was checked (by '.$PHPCAS_AUTH_CHECK_CALL['method'].'() at '.$PHPCAS_AUTH_CHECK_CALL['file'].':'.$PHPCAS_AUTH_CHECK_CALL['line'].') but the method returned FALSE'); - } - if ( gettype($url) != 'string' ) { - phpCAS::error('type mismatched for parameter $url (should be `string\')'); - } - - $res = $PHPCAS_CLIENT->serviceWeb($url,$err_code,$output); - - phpCAS::traceEnd($res); - return $res; - } - - /** - * This method is used to access an IMAP/POP3/NNTP service. - * - * @param $url a string giving the URL of the service, including the mailing box - * for IMAP URLs, as accepted by imap_open(). - * @param $flags options given to imap_open(). - * @param $err_code an error code Possible values are PHPCAS_SERVICE_OK (on - * success), PHPCAS_SERVICE_PT_NO_SERVER_RESPONSE, PHPCAS_SERVICE_PT_BAD_SERVER_RESPONSE, - * PHPCAS_SERVICE_PT_FAILURE, PHPCAS_SERVICE_NOT AVAILABLE. - * @param $err_msg an error message on failure - * @param $pt the Proxy Ticket (PT) retrieved from the CAS server to access the URL - * on success, FALSE on error). - * - * @return an IMAP stream on success, FALSE otherwise (in this later case, $err_code - * gives the reason why it failed and $err_msg contains an error message). - */ - function serviceMail($url,$flags,&$err_code,&$err_msg,&$pt) - { - global $PHPCAS_CLIENT, $PHPCAS_AUTH_CHECK_CALL; - - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); - } - if ( !$PHPCAS_CLIENT->isProxy() ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); - } - if ( !$PHPCAS_AUTH_CHECK_CALL['done'] ) { - phpCAS::error('this method should only be called after the programmer is sure the user has been authenticated (by calling '.__CLASS__.'::checkAuthentication() or '.__CLASS__.'::forceAuthentication()'); - } - if ( !$PHPCAS_AUTH_CHECK_CALL['result'] ) { - phpCAS::error('authentication was checked (by '.$PHPCAS_AUTH_CHECK_CALL['method'].'() at '.$PHPCAS_AUTH_CHECK_CALL['file'].':'.$PHPCAS_AUTH_CHECK_CALL['line'].') but the method returned FALSE'); - } - if ( gettype($url) != 'string' ) { - phpCAS::error('type mismatched for parameter $url (should be `string\')'); - } - - if ( gettype($flags) != 'integer' ) { - phpCAS::error('type mismatched for parameter $flags (should be `integer\')'); - } - - $res = $PHPCAS_CLIENT->serviceMail($url,$flags,$err_code,$err_msg,$pt); - - phpCAS::traceEnd($res); - return $res; - } - - /** @} */ - // ######################################################################## - // AUTHENTICATION - // ######################################################################## - /** - * @addtogroup publicAuth - * @{ - */ - - /** - * Set the times authentication will be cached before really accessing the CAS server in gateway mode: - * - -1: check only once, and then never again (until you pree login) - * - 0: always check - * - n: check every "n" time - * - * @param $n an integer. - */ - function setCacheTimesForAuthRecheck($n) - { - global $PHPCAS_CLIENT; - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); - } - if ( gettype($n) != 'integer' ) { - phpCAS::error('type mismatched for parameter $header (should be `string\')'); - } - $PHPCAS_CLIENT->setCacheTimesForAuthRecheck($n); - } - - /** - * This method is called to check if the user is authenticated (use the gateway feature). - * @return TRUE when the user is authenticated; otherwise FALSE. - */ - function checkAuthentication() - { - global $PHPCAS_CLIENT, $PHPCAS_AUTH_CHECK_CALL; - - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); - } - - $auth = $PHPCAS_CLIENT->checkAuthentication(); - - // store where the authentication has been checked and the result - $dbg = phpCAS::backtrace(); - $PHPCAS_AUTH_CHECK_CALL = array('done' => TRUE, - 'file' => $dbg[0]['file'], - 'line' => $dbg[0]['line'], - 'method' => __CLASS__.'::'.__FUNCTION__, - 'result' => $auth ); - phpCAS::traceEnd($auth); - return $auth; - } - - /** - * This method is called to force authentication if the user was not already - * authenticated. If the user is not authenticated, halt by redirecting to - * the CAS server. - */ - function forceAuthentication() - { - global $PHPCAS_CLIENT, $PHPCAS_AUTH_CHECK_CALL; - - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); - } - - $auth = $PHPCAS_CLIENT->forceAuthentication(); - - // store where the authentication has been checked and the result - $dbg = phpCAS::backtrace(); - $PHPCAS_AUTH_CHECK_CALL = array('done' => TRUE, - 'file' => $dbg[0]['file'], - 'line' => $dbg[0]['line'], - 'method' => __CLASS__.'::'.__FUNCTION__, - 'result' => $auth ); - - if ( !$auth ) { - phpCAS::trace('user is not authenticated, redirecting to the CAS server'); - $PHPCAS_CLIENT->forceAuthentication(); - } else { - phpCAS::trace('no need to authenticate (user `'.phpCAS::getUser().'\' is already authenticated)'); - } - - phpCAS::traceEnd(); - return $auth; - } - - /** - * This method is called to renew the authentication. - **/ - function renewAuthentication() { - global $PHPCAS_CLIENT, $PHPCAS_AUTH_CHECK_CALL; - - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should not be called before'.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); - } - - // store where the authentication has been checked and the result - $dbg = phpCAS::backtrace(); - $PHPCAS_AUTH_CHECK_CALL = array('done' => TRUE, 'file' => $dbg[0]['file'], 'line' => $dbg[0]['line'], 'method' => __CLASS__.'::'.__FUNCTION__, 'result' => $auth ); - - $PHPCAS_CLIENT->renewAuthentication(); - phpCAS::traceEnd(); - } - - /** - * This method has been left from version 0.4.1 for compatibility reasons. - */ - function authenticate() - { - phpCAS::error('this method is deprecated. You should use '.__CLASS__.'::forceAuthentication() instead'); - } - - /** - * This method is called to check if the user is authenticated (previously or by - * tickets given in the URL). - * - * @return TRUE when the user is authenticated. - */ - function isAuthenticated() - { - global $PHPCAS_CLIENT, $PHPCAS_AUTH_CHECK_CALL; - - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); - } - - // call the isAuthenticated method of the global $PHPCAS_CLIENT object - $auth = $PHPCAS_CLIENT->isAuthenticated(); - - // store where the authentication has been checked and the result - $dbg = phpCAS::backtrace(); - $PHPCAS_AUTH_CHECK_CALL = array('done' => TRUE, - 'file' => $dbg[0]['file'], - 'line' => $dbg[0]['line'], - 'method' => __CLASS__.'::'.__FUNCTION__, - 'result' => $auth ); - phpCAS::traceEnd($auth); - return $auth; - } - - /** - * Checks whether authenticated based on $_SESSION. Useful to avoid - * server calls. - * @return true if authenticated, false otherwise. - * @since 0.4.22 by Brendan Arnold - */ - function isSessionAuthenticated () - { - global $PHPCAS_CLIENT; - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); - } - return($PHPCAS_CLIENT->isSessionAuthenticated()); - } - - /** - * This method returns the CAS user's login name. - * @warning should not be called only after phpCAS::forceAuthentication() - * or phpCAS::checkAuthentication(). - * - * @return the login name of the authenticated user - */ - function getUser() - { - global $PHPCAS_CLIENT, $PHPCAS_AUTH_CHECK_CALL; - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); - } - if ( !$PHPCAS_AUTH_CHECK_CALL['done'] ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::forceAuthentication() or '.__CLASS__.'::isAuthenticated()'); - } - if ( !$PHPCAS_AUTH_CHECK_CALL['result'] ) { - phpCAS::error('authentication was checked (by '.$PHPCAS_AUTH_CHECK_CALL['method'].'() at '.$PHPCAS_AUTH_CHECK_CALL['file'].':'.$PHPCAS_AUTH_CHECK_CALL['line'].') but the method returned FALSE'); - } - return $PHPCAS_CLIENT->getUser(); - } - - /** - * Handle logout requests. - */ - function handleLogoutRequests($check_client=true, $allowed_clients=false) - { - global $PHPCAS_CLIENT; - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); - } - return($PHPCAS_CLIENT->handleLogoutRequests($check_client, $allowed_clients)); - } - - /** - * This method returns the URL to be used to login. - * or phpCAS::isAuthenticated(). - * - * @return the login name of the authenticated user - */ - function getServerLoginURL() - { - global $PHPCAS_CLIENT; - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); - } - return $PHPCAS_CLIENT->getServerLoginURL(); - } - - /** - * Set the login URL of the CAS server. - * @param $url the login URL - * @since 0.4.21 by Wyman Chan - */ - function setServerLoginURL($url='') - { - global $PHPCAS_CLIENT; - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after - '.__CLASS__.'::client()'); - } - if ( gettype($url) != 'string' ) { - phpCAS::error('type mismatched for parameter $url (should be - `string\')'); - } - $PHPCAS_CLIENT->setServerLoginURL($url); - phpCAS::traceEnd(); - } - - /** - * This method returns the URL to be used to login. - * or phpCAS::isAuthenticated(). - * - * @return the login name of the authenticated user - */ - function getServerLogoutURL() - { - global $PHPCAS_CLIENT; - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); - } - return $PHPCAS_CLIENT->getServerLogoutURL(); - } - - /** - * Set the logout URL of the CAS server. - * @param $url the logout URL - * @since 0.4.21 by Wyman Chan - */ - function setServerLogoutURL($url='') - { - global $PHPCAS_CLIENT; - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after - '.__CLASS__.'::client()'); - } - if ( gettype($url) != 'string' ) { - phpCAS::error('type mismatched for parameter $url (should be - `string\')'); - } - $PHPCAS_CLIENT->setServerLogoutURL($url); - phpCAS::traceEnd(); - } - - /** - * This method is used to logout from CAS. - * @params $params an array that contains the optional url and service parameters that will be passed to the CAS server - * @public - */ - function logout($params = "") { - global $PHPCAS_CLIENT; - phpCAS::traceBegin(); - if (!is_object($PHPCAS_CLIENT)) { - phpCAS::error('this method should only be called after '.__CLASS__.'::client() or'.__CLASS__.'::proxy()'); - } - $parsedParams = array(); - if ($params != "") { - if (is_string($params)) { - phpCAS::error('method `phpCAS::logout($url)\' is now deprecated, use `phpCAS::logoutWithUrl($url)\' instead'); - } - if (!is_array($params)) { - phpCAS::error('type mismatched for parameter $params (should be `array\')'); - } - foreach ($params as $key => $value) { - if ($key != "service" && $key != "url") { - phpCAS::error('only `url\' and `service\' parameters are allowed for method `phpCAS::logout($params)\''); - } - $parsedParams[$key] = $value; - } - } - $PHPCAS_CLIENT->logout($parsedParams); - // never reached - phpCAS::traceEnd(); - } - - /** - * This method is used to logout from CAS. Halts by redirecting to the CAS server. - * @param $service a URL that will be transmitted to the CAS server - */ - function logoutWithRedirectService($service) { - global $PHPCAS_CLIENT; - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::client() or'.__CLASS__.'::proxy()'); - } - if (!is_string($service)) { - phpCAS::error('type mismatched for parameter $service (should be `string\')'); - } - $PHPCAS_CLIENT->logout(array("service" => $service)); - // never reached - phpCAS::traceEnd(); - } - - /** - * This method is used to logout from CAS. Halts by redirecting to the CAS server. - * @param $url a URL that will be transmitted to the CAS server - */ - function logoutWithUrl($url) { - global $PHPCAS_CLIENT; - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::client() or'.__CLASS__.'::proxy()'); - } - if (!is_string($url)) { - phpCAS::error('type mismatched for parameter $url (should be `string\')'); - } - $PHPCAS_CLIENT->logout(array("url" => $url)); - // never reached - phpCAS::traceEnd(); - } - - /** - * This method is used to logout from CAS. Halts by redirecting to the CAS server. - * @param $service a URL that will be transmitted to the CAS server - * @param $url a URL that will be transmitted to the CAS server - */ - function logoutWithRedirectServiceAndUrl($service, $url) { - global $PHPCAS_CLIENT; - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::client() or'.__CLASS__.'::proxy()'); - } - if (!is_string($service)) { - phpCAS::error('type mismatched for parameter $service (should be `string\')'); - } - if (!is_string($url)) { - phpCAS::error('type mismatched for parameter $url (should be `string\')'); - } - $PHPCAS_CLIENT->logout(array("service" => $service, "url" => $url)); - // never reached - phpCAS::traceEnd(); - } - - /** - * Set the fixed URL that will be used by the CAS server to transmit the PGT. - * When this method is not called, a phpCAS script uses its own URL for the callback. - * - * @param $url the URL - */ - function setFixedCallbackURL($url='') - { - global $PHPCAS_CLIENT; - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); - } - if ( !$PHPCAS_CLIENT->isProxy() ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); - } - if ( gettype($url) != 'string' ) { - phpCAS::error('type mismatched for parameter $url (should be `string\')'); - } - $PHPCAS_CLIENT->setCallbackURL($url); - phpCAS::traceEnd(); - } - - /** - * Set the fixed URL that will be set as the CAS service parameter. When this - * method is not called, a phpCAS script uses its own URL. - * - * @param $url the URL - */ - function setFixedServiceURL($url) - { - global $PHPCAS_CLIENT; - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); - } - if ( gettype($url) != 'string' ) { - phpCAS::error('type mismatched for parameter $url (should be `string\')'); - } - $PHPCAS_CLIENT->setURL($url); - phpCAS::traceEnd(); - } - - /** - * Get the URL that is set as the CAS service parameter. - */ - function getServiceURL() - { - global $PHPCAS_CLIENT; - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); - } - return($PHPCAS_CLIENT->getURL()); - } - - /** - * Retrieve a Proxy Ticket from the CAS server. - */ - function retrievePT($target_service,&$err_code,&$err_msg) - { - global $PHPCAS_CLIENT; - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); - } - if ( gettype($target_service) != 'string' ) { - phpCAS::error('type mismatched for parameter $target_service(should be `string\')'); - } - return($PHPCAS_CLIENT->retrievePT($target_service,$err_code,$err_msg)); - } - - /** - * Set the certificate of the CAS server. - * - * @param $cert the PEM certificate - */ - function setCasServerCert($cert) - { - global $PHPCAS_CLIENT; - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::client() or'.__CLASS__.'::proxy()'); - } - if ( gettype($cert) != 'string' ) { - phpCAS::error('type mismatched for parameter $cert (should be `string\')'); - } - $PHPCAS_CLIENT->setCasServerCert($cert); - phpCAS::traceEnd(); - } - - /** - * Set the certificate of the CAS server CA. - * - * @param $cert the CA certificate - */ - function setCasServerCACert($cert) - { - global $PHPCAS_CLIENT; - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::client() or'.__CLASS__.'::proxy()'); - } - if ( gettype($cert) != 'string' ) { - phpCAS::error('type mismatched for parameter $cert (should be `string\')'); - } - $PHPCAS_CLIENT->setCasServerCACert($cert); - phpCAS::traceEnd(); - } - - /** - * Set no SSL validation for the CAS server. - */ - function setNoCasServerValidation() - { - global $PHPCAS_CLIENT; - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::client() or'.__CLASS__.'::proxy()'); - } - $PHPCAS_CLIENT->setNoCasServerValidation(); - phpCAS::traceEnd(); - } - - /** @} */ - - /** - * Change CURL options. - * CURL is used to connect through HTTPS to CAS server - * @param $key the option key - * @param $value the value to set - */ - function setExtraCurlOption($key, $value) - { - global $PHPCAS_CLIENT; - phpCAS::traceBegin(); - if ( !is_object($PHPCAS_CLIENT) ) { - phpCAS::error('this method should only be called after '.__CLASS__.'::client() or'.__CLASS__.'::proxy()'); - } - $PHPCAS_CLIENT->setExtraCurlOption($key, $value); - phpCAS::traceEnd(); - } - -} - -// ######################################################################## -// DOCUMENTATION -// ######################################################################## - -// ######################################################################## -// MAIN PAGE - -/** - * @mainpage - * - * The following pages only show the source documentation. - * - */ - -// ######################################################################## -// MODULES DEFINITION - -/** @defgroup public User interface */ - -/** @defgroup publicInit Initialization - * @ingroup public */ - -/** @defgroup publicAuth Authentication - * @ingroup public */ - -/** @defgroup publicServices Access to external services - * @ingroup public */ - -/** @defgroup publicConfig Configuration - * @ingroup public */ - -/** @defgroup publicLang Internationalization - * @ingroup publicConfig */ - -/** @defgroup publicOutput HTML output - * @ingroup publicConfig */ - -/** @defgroup publicPGTStorage PGT storage - * @ingroup publicConfig */ - -/** @defgroup publicDebug Debugging - * @ingroup public */ - - -/** @defgroup internal Implementation */ - -/** @defgroup internalAuthentication Authentication - * @ingroup internal */ - -/** @defgroup internalBasic CAS Basic client features (CAS 1.0, Service Tickets) - * @ingroup internal */ - -/** @defgroup internalProxy CAS Proxy features (CAS 2.0, Proxy Granting Tickets) - * @ingroup internal */ - -/** @defgroup internalPGTStorage PGT storage - * @ingroup internalProxy */ - -/** @defgroup internalPGTStorageDB PGT storage in a database - * @ingroup internalPGTStorage */ - -/** @defgroup internalPGTStorageFile PGT storage on the filesystem - * @ingroup internalPGTStorage */ - -/** @defgroup internalCallback Callback from the CAS server - * @ingroup internalProxy */ - -/** @defgroup internalProxied CAS proxied client features (CAS 2.0, Proxy Tickets) - * @ingroup internal */ - -/** @defgroup internalConfig Configuration - * @ingroup internal */ - -/** @defgroup internalOutput HTML output - * @ingroup internalConfig */ - -/** @defgroup internalLang Internationalization - * @ingroup internalConfig - * - * To add a new language: - * - 1. define a new constant PHPCAS_LANG_XXXXXX in CAS/CAS.php - * - 2. copy any file from CAS/languages to CAS/languages/XXXXXX.php - * - 3. Make the translations - */ - -/** @defgroup internalDebug Debugging - * @ingroup internal */ - -/** @defgroup internalMisc Miscellaneous - * @ingroup internal */ - -// ######################################################################## -// EXAMPLES - -/** - * @example example_simple.php - */ - /** - * @example example_proxy.php - */ - /** - * @example example_proxy2.php - */ - /** - * @example example_lang.php - */ - /** - * @example example_html.php - */ - /** - * @example example_file.php - */ - /** - * @example example_db.php - */ - /** - * @example example_service.php - */ - /** - * @example example_session_proxy.php - */ - /** - * @example example_session_service.php - */ - /** - * @example example_gateway.php - */ - - - -?> +=')) { + require_once(dirname(__FILE__).'/CAS/domxml-php4-to-php5.php'); +} + +/** + * @file CAS/CAS.php + * Interface class of the phpCAS library + * + * @ingroup public + */ + +// ######################################################################## +// CONSTANTS +// ######################################################################## + +// ------------------------------------------------------------------------ +// CAS VERSIONS +// ------------------------------------------------------------------------ + +/** + * phpCAS version. accessible for the user by phpCAS::getVersion(). + */ +define('PHPCAS_VERSION','1.1.0RC6'); + +// ------------------------------------------------------------------------ +// CAS VERSIONS +// ------------------------------------------------------------------------ + /** + * @addtogroup public + * @{ + */ + +/** + * CAS version 1.0 + */ +define("CAS_VERSION_1_0",'1.0'); +/*! + * CAS version 2.0 + */ +define("CAS_VERSION_2_0",'2.0'); + +// ------------------------------------------------------------------------ +// SAML defines +// ------------------------------------------------------------------------ + +/** + * SAML protocol + */ +define("SAML_VERSION_1_1", 'S1'); + +/** + * XML header for SAML POST + */ +define("SAML_XML_HEADER", ''); + +/** + * SOAP envelope for SAML POST + */ +define ("SAML_SOAP_ENV", ''); + +/** + * SOAP body for SAML POST + */ +define ("SAML_SOAP_BODY", ''); + +/** + * SAMLP request + */ +define ("SAMLP_REQUEST", ''); +define ("SAMLP_REQUEST_CLOSE", ''); + +/** + * SAMLP artifact tag (for the ticket) + */ +define ("SAML_ASSERTION_ARTIFACT", ''); + +/** + * SAMLP close + */ +define ("SAML_ASSERTION_ARTIFACT_CLOSE", ''); + +/** + * SOAP body close + */ +define ("SAML_SOAP_BODY_CLOSE", ''); + +/** + * SOAP envelope close + */ +define ("SAML_SOAP_ENV_CLOSE", ''); + +/** + * SAML Attributes + */ +define("SAML_ATTRIBUTES", 'SAMLATTRIBS'); + + + +/** @} */ + /** + * @addtogroup publicPGTStorage + * @{ + */ +// ------------------------------------------------------------------------ +// FILE PGT STORAGE +// ------------------------------------------------------------------------ + /** + * Default path used when storing PGT's to file + */ +define("CAS_PGT_STORAGE_FILE_DEFAULT_PATH",'/tmp'); +/** + * phpCAS::setPGTStorageFile()'s 2nd parameter to write plain text files + */ +define("CAS_PGT_STORAGE_FILE_FORMAT_PLAIN",'plain'); +/** + * phpCAS::setPGTStorageFile()'s 2nd parameter to write xml files + */ +define("CAS_PGT_STORAGE_FILE_FORMAT_XML",'xml'); +/** + * Default format used when storing PGT's to file + */ +define("CAS_PGT_STORAGE_FILE_DEFAULT_FORMAT",CAS_PGT_STORAGE_FILE_FORMAT_PLAIN); +// ------------------------------------------------------------------------ +// DATABASE PGT STORAGE +// ------------------------------------------------------------------------ + /** + * default database type when storing PGT's to database + */ +define("CAS_PGT_STORAGE_DB_DEFAULT_DATABASE_TYPE",'mysql'); +/** + * default host when storing PGT's to database + */ +define("CAS_PGT_STORAGE_DB_DEFAULT_HOSTNAME",'localhost'); +/** + * default port when storing PGT's to database + */ +define("CAS_PGT_STORAGE_DB_DEFAULT_PORT",''); +/** + * default database when storing PGT's to database + */ +define("CAS_PGT_STORAGE_DB_DEFAULT_DATABASE",'phpCAS'); +/** + * default table when storing PGT's to database + */ +define("CAS_PGT_STORAGE_DB_DEFAULT_TABLE",'pgt'); + +/** @} */ +// ------------------------------------------------------------------------ +// SERVICE ACCESS ERRORS +// ------------------------------------------------------------------------ + /** + * @addtogroup publicServices + * @{ + */ + +/** + * phpCAS::service() error code on success + */ +define("PHPCAS_SERVICE_OK",0); +/** + * phpCAS::service() error code when the PT could not retrieve because + * the CAS server did not respond. + */ +define("PHPCAS_SERVICE_PT_NO_SERVER_RESPONSE",1); +/** + * phpCAS::service() error code when the PT could not retrieve because + * the response of the CAS server was ill-formed. + */ +define("PHPCAS_SERVICE_PT_BAD_SERVER_RESPONSE",2); +/** + * phpCAS::service() error code when the PT could not retrieve because + * the CAS server did not want to. + */ +define("PHPCAS_SERVICE_PT_FAILURE",3); +/** + * phpCAS::service() error code when the service was not available. + */ +define("PHPCAS_SERVICE_NOT AVAILABLE",4); + +/** @} */ +// ------------------------------------------------------------------------ +// LANGUAGES +// ------------------------------------------------------------------------ + /** + * @addtogroup publicLang + * @{ + */ + +define("PHPCAS_LANG_ENGLISH", 'english'); +define("PHPCAS_LANG_FRENCH", 'french'); +define("PHPCAS_LANG_GREEK", 'greek'); +define("PHPCAS_LANG_GERMAN", 'german'); +define("PHPCAS_LANG_JAPANESE", 'japanese'); +define("PHPCAS_LANG_SPANISH", 'spanish'); +define("PHPCAS_LANG_CATALAN", 'catalan'); + +/** @} */ + +/** + * @addtogroup internalLang + * @{ + */ + +/** + * phpCAS default language (when phpCAS::setLang() is not used) + */ +define("PHPCAS_LANG_DEFAULT", PHPCAS_LANG_ENGLISH); + +/** @} */ +// ------------------------------------------------------------------------ +// DEBUG +// ------------------------------------------------------------------------ + /** + * @addtogroup publicDebug + * @{ + */ + +/** + * The default directory for the debug file under Unix. + */ +define('DEFAULT_DEBUG_DIR','/tmp/'); + +/** @} */ +// ------------------------------------------------------------------------ +// MISC +// ------------------------------------------------------------------------ + /** + * @addtogroup internalMisc + * @{ + */ + +/** + * This global variable is used by the interface class phpCAS. + * + * @hideinitializer + */ +$GLOBALS['PHPCAS_CLIENT'] = null; + +/** + * This global variable is used to store where the initializer is called from + * (to print a comprehensive error in case of multiple calls). + * + * @hideinitializer + */ +$GLOBALS['PHPCAS_INIT_CALL'] = array('done' => FALSE, + 'file' => '?', + 'line' => -1, + 'method' => '?'); + +/** + * This global variable is used to store where the method checking + * the authentication is called from (to print comprehensive errors) + * + * @hideinitializer + */ +$GLOBALS['PHPCAS_AUTH_CHECK_CALL'] = array('done' => FALSE, + 'file' => '?', + 'line' => -1, + 'method' => '?', + 'result' => FALSE); + +/** + * This global variable is used to store phpCAS debug mode. + * + * @hideinitializer + */ +$GLOBALS['PHPCAS_DEBUG'] = array('filename' => FALSE, + 'indent' => 0, + 'unique_id' => ''); + +/** @} */ + +// ######################################################################## +// CLIENT CLASS +// ######################################################################## + +// include client class +include_once(dirname(__FILE__).'/CAS/client.php'); + +// ######################################################################## +// INTERFACE CLASS +// ######################################################################## + +/** + * @class phpCAS + * The phpCAS class is a simple container for the phpCAS library. It provides CAS + * authentication for web applications written in PHP. + * + * @ingroup public + * @author Pascal Aubry + * + * \internal All its methods access the same object ($PHPCAS_CLIENT, declared + * at the end of CAS/client.php). + */ + + + +class phpCAS +{ + + // ######################################################################## + // INITIALIZATION + // ######################################################################## + + /** + * @addtogroup publicInit + * @{ + */ + + /** + * phpCAS client initializer. + * @note Only one of the phpCAS::client() and phpCAS::proxy functions should be + * called, only once, and before all other methods (except phpCAS::getVersion() + * and phpCAS::setDebug()). + * + * @param $server_version the version of the CAS server + * @param $server_hostname the hostname of the CAS server + * @param $server_port the port the CAS server is running on + * @param $server_uri the URI the CAS server is responding on + * @param $start_session Have phpCAS start PHP sessions (default true) + * + * @return a newly created CASClient object + */ + function client($server_version, + $server_hostname, + $server_port, + $server_uri, + $start_session = true) + { + global $PHPCAS_CLIENT, $PHPCAS_INIT_CALL; + + phpCAS::traceBegin(); + if ( is_object($PHPCAS_CLIENT) ) { + phpCAS::error($PHPCAS_INIT_CALL['method'].'() has already been called (at '.$PHPCAS_INIT_CALL['file'].':'.$PHPCAS_INIT_CALL['line'].')'); + } + if ( gettype($server_version) != 'string' ) { + phpCAS::error('type mismatched for parameter $server_version (should be `string\')'); + } + if ( gettype($server_hostname) != 'string' ) { + phpCAS::error('type mismatched for parameter $server_hostname (should be `string\')'); + } + if ( gettype($server_port) != 'integer' ) { + phpCAS::error('type mismatched for parameter $server_port (should be `integer\')'); + } + if ( gettype($server_uri) != 'string' ) { + phpCAS::error('type mismatched for parameter $server_uri (should be `string\')'); + } + + // store where the initializer is called from + $dbg = phpCAS::backtrace(); + $PHPCAS_INIT_CALL = array('done' => TRUE, + 'file' => $dbg[0]['file'], + 'line' => $dbg[0]['line'], + 'method' => __CLASS__.'::'.__FUNCTION__); + + // initialize the global object $PHPCAS_CLIENT + $PHPCAS_CLIENT = new CASClient($server_version,FALSE/*proxy*/,$server_hostname,$server_port,$server_uri,$start_session); + phpCAS::traceEnd(); + } + + /** + * phpCAS proxy initializer. + * @note Only one of the phpCAS::client() and phpCAS::proxy functions should be + * called, only once, and before all other methods (except phpCAS::getVersion() + * and phpCAS::setDebug()). + * + * @param $server_version the version of the CAS server + * @param $server_hostname the hostname of the CAS server + * @param $server_port the port the CAS server is running on + * @param $server_uri the URI the CAS server is responding on + * @param $start_session Have phpCAS start PHP sessions (default true) + * + * @return a newly created CASClient object + */ + function proxy($server_version, + $server_hostname, + $server_port, + $server_uri, + $start_session = true) + { + global $PHPCAS_CLIENT, $PHPCAS_INIT_CALL; + + phpCAS::traceBegin(); + if ( is_object($PHPCAS_CLIENT) ) { + phpCAS::error($PHPCAS_INIT_CALL['method'].'() has already been called (at '.$PHPCAS_INIT_CALL['file'].':'.$PHPCAS_INIT_CALL['line'].')'); + } + if ( gettype($server_version) != 'string' ) { + phpCAS::error('type mismatched for parameter $server_version (should be `string\')'); + } + if ( gettype($server_hostname) != 'string' ) { + phpCAS::error('type mismatched for parameter $server_hostname (should be `string\')'); + } + if ( gettype($server_port) != 'integer' ) { + phpCAS::error('type mismatched for parameter $server_port (should be `integer\')'); + } + if ( gettype($server_uri) != 'string' ) { + phpCAS::error('type mismatched for parameter $server_uri (should be `string\')'); + } + + // store where the initialzer is called from + $dbg = phpCAS::backtrace(); + $PHPCAS_INIT_CALL = array('done' => TRUE, + 'file' => $dbg[0]['file'], + 'line' => $dbg[0]['line'], + 'method' => __CLASS__.'::'.__FUNCTION__); + + // initialize the global object $PHPCAS_CLIENT + $PHPCAS_CLIENT = new CASClient($server_version,TRUE/*proxy*/,$server_hostname,$server_port,$server_uri,$start_session); + phpCAS::traceEnd(); + } + + /** @} */ + // ######################################################################## + // DEBUGGING + // ######################################################################## + + /** + * @addtogroup publicDebug + * @{ + */ + + /** + * Set/unset debug mode + * + * @param $filename the name of the file used for logging, or FALSE to stop debugging. + */ + function setDebug($filename='') + { + global $PHPCAS_DEBUG; + + if ( $filename != FALSE && gettype($filename) != 'string' ) { + phpCAS::error('type mismatched for parameter $dbg (should be FALSE or the name of the log file)'); + } + + if ( empty($filename) ) { + if ( preg_match('/^Win.*/',getenv('OS')) ) { + if ( isset($_ENV['TMP']) ) { + $debugDir = $_ENV['TMP'].'/'; + } else if ( isset($_ENV['TEMP']) ) { + $debugDir = $_ENV['TEMP'].'/'; + } else { + $debugDir = ''; + } + } else { + $debugDir = DEFAULT_DEBUG_DIR; + } + $filename = $debugDir . 'phpCAS.log'; + } + + if ( empty($PHPCAS_DEBUG['unique_id']) ) { + $PHPCAS_DEBUG['unique_id'] = substr(strtoupper(md5(uniqid(''))),0,4); + } + + $PHPCAS_DEBUG['filename'] = $filename; + + phpCAS::trace('START ******************'); + } + + /** @} */ + /** + * @addtogroup internalDebug + * @{ + */ + + /** + * This method is a wrapper for debug_backtrace() that is not available + * in all PHP versions (>= 4.3.0 only) + */ + function backtrace() + { + if ( function_exists('debug_backtrace') ) { + return debug_backtrace(); + } else { + // poor man's hack ... but it does work ... + return array(); + } + } + + /** + * Logs a string in debug mode. + * + * @param $str the string to write + * + * @private + */ + function log($str) + { + $indent_str = "."; + global $PHPCAS_DEBUG; + + if ( $PHPCAS_DEBUG['filename'] ) { + for ($i=0;$i<$PHPCAS_DEBUG['indent'];$i++) { + $indent_str .= '| '; + } + error_log($PHPCAS_DEBUG['unique_id'].' '.$indent_str.$str."\n",3,$PHPCAS_DEBUG['filename']); + } + + } + + /** + * This method is used by interface methods to print an error and where the function + * was originally called from. + * + * @param $msg the message to print + * + * @private + */ + function error($msg) + { + $dbg = phpCAS::backtrace(); + $function = '?'; + $file = '?'; + $line = '?'; + if ( is_array($dbg) ) { + for ( $i=1; $i\nphpCAS error: ".__CLASS__."::".$function.'(): '.htmlentities($msg)." in ".$file." on line ".$line."
\n"; + phpCAS::trace($msg); + phpCAS::traceExit(); + exit(); + } + + /** + * This method is used to log something in debug mode. + */ + function trace($str) + { + $dbg = phpCAS::backtrace(); + phpCAS::log($str.' ['.basename($dbg[1]['file']).':'.$dbg[1]['line'].']'); + } + + /** + * This method is used to indicate the start of the execution of a function in debug mode. + */ + function traceBegin() + { + global $PHPCAS_DEBUG; + + $dbg = phpCAS::backtrace(); + $str = '=> '; + if ( !empty($dbg[2]['class']) ) { + $str .= $dbg[2]['class'].'::'; + } + $str .= $dbg[2]['function'].'('; + if ( is_array($dbg[2]['args']) ) { + foreach ($dbg[2]['args'] as $index => $arg) { + if ( $index != 0 ) { + $str .= ', '; + } + $str .= str_replace("\n","",var_export($arg,TRUE)); + } + } + $str .= ') ['.basename($dbg[2]['file']).':'.$dbg[2]['line'].']'; + phpCAS::log($str); + $PHPCAS_DEBUG['indent'] ++; + } + + /** + * This method is used to indicate the end of the execution of a function in debug mode. + * + * @param $res the result of the function + */ + function traceEnd($res='') + { + global $PHPCAS_DEBUG; + + $PHPCAS_DEBUG['indent'] --; + $dbg = phpCAS::backtrace(); + $str = ''; + $str .= '<= '.str_replace("\n","",var_export($res,TRUE)); + phpCAS::log($str); + } + + /** + * This method is used to indicate the end of the execution of the program + */ + function traceExit() + { + global $PHPCAS_DEBUG; + + phpCAS::log('exit()'); + while ( $PHPCAS_DEBUG['indent'] > 0 ) { + phpCAS::log('-'); + $PHPCAS_DEBUG['indent'] --; + } + } + + /** @} */ + // ######################################################################## + // INTERNATIONALIZATION + // ######################################################################## + /** + * @addtogroup publicLang + * @{ + */ + + /** + * This method is used to set the language used by phpCAS. + * @note Can be called only once. + * + * @param $lang a string representing the language. + * + * @sa PHPCAS_LANG_FRENCH, PHPCAS_LANG_ENGLISH + */ + function setLang($lang) + { + global $PHPCAS_CLIENT; + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); + } + if ( gettype($lang) != 'string' ) { + phpCAS::error('type mismatched for parameter $lang (should be `string\')'); + } + $PHPCAS_CLIENT->setLang($lang); + } + + /** @} */ + // ######################################################################## + // VERSION + // ######################################################################## + /** + * @addtogroup public + * @{ + */ + + /** + * This method returns the phpCAS version. + * + * @return the phpCAS version. + */ + function getVersion() + { + return PHPCAS_VERSION; + } + + /** @} */ + // ######################################################################## + // HTML OUTPUT + // ######################################################################## + /** + * @addtogroup publicOutput + * @{ + */ + + /** + * This method sets the HTML header used for all outputs. + * + * @param $header the HTML header. + */ + function setHTMLHeader($header) + { + global $PHPCAS_CLIENT; + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); + } + if ( gettype($header) != 'string' ) { + phpCAS::error('type mismatched for parameter $header (should be `string\')'); + } + $PHPCAS_CLIENT->setHTMLHeader($header); + } + + /** + * This method sets the HTML footer used for all outputs. + * + * @param $footer the HTML footer. + */ + function setHTMLFooter($footer) + { + global $PHPCAS_CLIENT; + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); + } + if ( gettype($footer) != 'string' ) { + phpCAS::error('type mismatched for parameter $footer (should be `string\')'); + } + $PHPCAS_CLIENT->setHTMLFooter($footer); + } + + /** @} */ + // ######################################################################## + // PGT STORAGE + // ######################################################################## + /** + * @addtogroup publicPGTStorage + * @{ + */ + + /** + * This method is used to tell phpCAS to store the response of the + * CAS server to PGT requests onto the filesystem. + * + * @param $format the format used to store the PGT's (`plain' and `xml' allowed) + * @param $path the path where the PGT's should be stored + */ + function setPGTStorageFile($format='', + $path='') + { + global $PHPCAS_CLIENT,$PHPCAS_AUTH_CHECK_CALL; + + phpCAS::traceBegin(); + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); + } + if ( !$PHPCAS_CLIENT->isProxy() ) { + phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); + } + if ( $PHPCAS_AUTH_CHECK_CALL['done'] ) { + phpCAS::error('this method should only be called before '.$PHPCAS_AUTH_CHECK_CALL['method'].'() (called at '.$PHPCAS_AUTH_CHECK_CALL['file'].':'.$PHPCAS_AUTH_CHECK_CALL['line'].')'); + } + if ( gettype($format) != 'string' ) { + phpCAS::error('type mismatched for parameter $format (should be `string\')'); + } + if ( gettype($path) != 'string' ) { + phpCAS::error('type mismatched for parameter $format (should be `string\')'); + } + $PHPCAS_CLIENT->setPGTStorageFile($format,$path); + phpCAS::traceEnd(); + } + + /** + * This method is used to tell phpCAS to store the response of the + * CAS server to PGT requests into a database. + * @note The connection to the database is done only when needed. + * As a consequence, bad parameters are detected only when + * initializing PGT storage, except in debug mode. + * + * @param $user the user to access the data with + * @param $password the user's password + * @param $database_type the type of the database hosting the data + * @param $hostname the server hosting the database + * @param $port the port the server is listening on + * @param $database the name of the database + * @param $table the name of the table storing the data + */ + function setPGTStorageDB($user, + $password, + $database_type='', + $hostname='', + $port=0, + $database='', + $table='') + { + global $PHPCAS_CLIENT,$PHPCAS_AUTH_CHECK_CALL; + + phpCAS::traceBegin(); + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); + } + if ( !$PHPCAS_CLIENT->isProxy() ) { + phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); + } + if ( $PHPCAS_AUTH_CHECK_CALL['done'] ) { + phpCAS::error('this method should only be called before '.$PHPCAS_AUTH_CHECK_CALL['method'].'() (called at '.$PHPCAS_AUTH_CHECK_CALL['file'].':'.$PHPCAS_AUTH_CHECK_CALL['line'].')'); + } + if ( gettype($user) != 'string' ) { + phpCAS::error('type mismatched for parameter $user (should be `string\')'); + } + if ( gettype($password) != 'string' ) { + phpCAS::error('type mismatched for parameter $password (should be `string\')'); + } + if ( gettype($database_type) != 'string' ) { + phpCAS::error('type mismatched for parameter $database_type (should be `string\')'); + } + if ( gettype($hostname) != 'string' ) { + phpCAS::error('type mismatched for parameter $hostname (should be `string\')'); + } + if ( gettype($port) != 'integer' ) { + phpCAS::error('type mismatched for parameter $port (should be `integer\')'); + } + if ( gettype($database) != 'string' ) { + phpCAS::error('type mismatched for parameter $database (should be `string\')'); + } + if ( gettype($table) != 'string' ) { + phpCAS::error('type mismatched for parameter $table (should be `string\')'); + } + $PHPCAS_CLIENT->setPGTStorageDB($user,$password,$database_type,$hostname,$port,$database,$table); + phpCAS::traceEnd(); + } + + /** @} */ + // ######################################################################## + // ACCESS TO EXTERNAL SERVICES + // ######################################################################## + /** + * @addtogroup publicServices + * @{ + */ + + /** + * This method is used to access an HTTP[S] service. + * + * @param $url the service to access. + * @param $err_code an error code Possible values are PHPCAS_SERVICE_OK (on + * success), PHPCAS_SERVICE_PT_NO_SERVER_RESPONSE, PHPCAS_SERVICE_PT_BAD_SERVER_RESPONSE, + * PHPCAS_SERVICE_PT_FAILURE, PHPCAS_SERVICE_NOT AVAILABLE. + * @param $output the output of the service (also used to give an error + * message on failure). + * + * @return TRUE on success, FALSE otherwise (in this later case, $err_code + * gives the reason why it failed and $output contains an error message). + */ + function serviceWeb($url,&$err_code,&$output) + { + global $PHPCAS_CLIENT, $PHPCAS_AUTH_CHECK_CALL; + + phpCAS::traceBegin(); + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); + } + if ( !$PHPCAS_CLIENT->isProxy() ) { + phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); + } + if ( !$PHPCAS_AUTH_CHECK_CALL['done'] ) { + phpCAS::error('this method should only be called after the programmer is sure the user has been authenticated (by calling '.__CLASS__.'::checkAuthentication() or '.__CLASS__.'::forceAuthentication()'); + } + if ( !$PHPCAS_AUTH_CHECK_CALL['result'] ) { + phpCAS::error('authentication was checked (by '.$PHPCAS_AUTH_CHECK_CALL['method'].'() at '.$PHPCAS_AUTH_CHECK_CALL['file'].':'.$PHPCAS_AUTH_CHECK_CALL['line'].') but the method returned FALSE'); + } + if ( gettype($url) != 'string' ) { + phpCAS::error('type mismatched for parameter $url (should be `string\')'); + } + + $res = $PHPCAS_CLIENT->serviceWeb($url,$err_code,$output); + + phpCAS::traceEnd($res); + return $res; + } + + /** + * This method is used to access an IMAP/POP3/NNTP service. + * + * @param $url a string giving the URL of the service, including the mailing box + * for IMAP URLs, as accepted by imap_open(). + * @param $service a string giving for CAS retrieve Proxy ticket + * @param $flags options given to imap_open(). + * @param $err_code an error code Possible values are PHPCAS_SERVICE_OK (on + * success), PHPCAS_SERVICE_PT_NO_SERVER_RESPONSE, PHPCAS_SERVICE_PT_BAD_SERVER_RESPONSE, + * PHPCAS_SERVICE_PT_FAILURE, PHPCAS_SERVICE_NOT AVAILABLE. + * @param $err_msg an error message on failure + * @param $pt the Proxy Ticket (PT) retrieved from the CAS server to access the URL + * on success, FALSE on error). + * + * @return an IMAP stream on success, FALSE otherwise (in this later case, $err_code + * gives the reason why it failed and $err_msg contains an error message). + */ + function serviceMail($url,$service,$flags,&$err_code,&$err_msg,&$pt) + { + global $PHPCAS_CLIENT, $PHPCAS_AUTH_CHECK_CALL; + + phpCAS::traceBegin(); + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); + } + if ( !$PHPCAS_CLIENT->isProxy() ) { + phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); + } + if ( !$PHPCAS_AUTH_CHECK_CALL['done'] ) { + phpCAS::error('this method should only be called after the programmer is sure the user has been authenticated (by calling '.__CLASS__.'::checkAuthentication() or '.__CLASS__.'::forceAuthentication()'); + } + if ( !$PHPCAS_AUTH_CHECK_CALL['result'] ) { + phpCAS::error('authentication was checked (by '.$PHPCAS_AUTH_CHECK_CALL['method'].'() at '.$PHPCAS_AUTH_CHECK_CALL['file'].':'.$PHPCAS_AUTH_CHECK_CALL['line'].') but the method returned FALSE'); + } + if ( gettype($url) != 'string' ) { + phpCAS::error('type mismatched for parameter $url (should be `string\')'); + } + + if ( gettype($flags) != 'integer' ) { + phpCAS::error('type mismatched for parameter $flags (should be `integer\')'); + } + + $res = $PHPCAS_CLIENT->serviceMail($url,$service,$flags,$err_code,$err_msg,$pt); + + phpCAS::traceEnd($res); + return $res; + } + + /** @} */ + // ######################################################################## + // AUTHENTICATION + // ######################################################################## + /** + * @addtogroup publicAuth + * @{ + */ + + /** + * Set the times authentication will be cached before really accessing the CAS server in gateway mode: + * - -1: check only once, and then never again (until you pree login) + * - 0: always check + * - n: check every "n" time + * + * @param $n an integer. + */ + function setCacheTimesForAuthRecheck($n) + { + global $PHPCAS_CLIENT; + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); + } + if ( gettype($n) != 'integer' ) { + phpCAS::error('type mismatched for parameter $header (should be `string\')'); + } + $PHPCAS_CLIENT->setCacheTimesForAuthRecheck($n); + } + + /** + * This method is called to check if the user is authenticated (use the gateway feature). + * @return TRUE when the user is authenticated; otherwise FALSE. + */ + function checkAuthentication() + { + global $PHPCAS_CLIENT, $PHPCAS_AUTH_CHECK_CALL; + + phpCAS::traceBegin(); + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); + } + + $auth = $PHPCAS_CLIENT->checkAuthentication(); + + // store where the authentication has been checked and the result + $dbg = phpCAS::backtrace(); + $PHPCAS_AUTH_CHECK_CALL = array('done' => TRUE, + 'file' => $dbg[0]['file'], + 'line' => $dbg[0]['line'], + 'method' => __CLASS__.'::'.__FUNCTION__, + 'result' => $auth ); + phpCAS::traceEnd($auth); + return $auth; + } + + /** + * This method is called to force authentication if the user was not already + * authenticated. If the user is not authenticated, halt by redirecting to + * the CAS server. + */ + function forceAuthentication() + { + global $PHPCAS_CLIENT, $PHPCAS_AUTH_CHECK_CALL; + + phpCAS::traceBegin(); + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); + } + + $auth = $PHPCAS_CLIENT->forceAuthentication(); + + // store where the authentication has been checked and the result + $dbg = phpCAS::backtrace(); + $PHPCAS_AUTH_CHECK_CALL = array('done' => TRUE, + 'file' => $dbg[0]['file'], + 'line' => $dbg[0]['line'], + 'method' => __CLASS__.'::'.__FUNCTION__, + 'result' => $auth ); + + if ( !$auth ) { + phpCAS::trace('user is not authenticated, redirecting to the CAS server'); + $PHPCAS_CLIENT->forceAuthentication(); + } else { + phpCAS::trace('no need to authenticate (user `'.phpCAS::getUser().'\' is already authenticated)'); + } + + phpCAS::traceEnd(); + return $auth; + } + + /** + * This method is called to renew the authentication. + **/ + function renewAuthentication() { + global $PHPCAS_CLIENT, $PHPCAS_AUTH_CHECK_CALL; + + phpCAS::traceBegin(); + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should not be called before'.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); + } + + // store where the authentication has been checked and the result + $dbg = phpCAS::backtrace(); + $PHPCAS_AUTH_CHECK_CALL = array('done' => TRUE, 'file' => $dbg[0]['file'], 'line' => $dbg[0]['line'], 'method' => __CLASS__.'::'.__FUNCTION__, 'result' => $auth ); + + $PHPCAS_CLIENT->renewAuthentication(); + phpCAS::traceEnd(); + } + + /** + * This method has been left from version 0.4.1 for compatibility reasons. + */ + function authenticate() + { + phpCAS::error('this method is deprecated. You should use '.__CLASS__.'::forceAuthentication() instead'); + } + + /** + * This method is called to check if the user is authenticated (previously or by + * tickets given in the URL). + * + * @return TRUE when the user is authenticated. + */ + function isAuthenticated() + { + global $PHPCAS_CLIENT, $PHPCAS_AUTH_CHECK_CALL; + + phpCAS::traceBegin(); + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); + } + + // call the isAuthenticated method of the global $PHPCAS_CLIENT object + $auth = $PHPCAS_CLIENT->isAuthenticated(); + + // store where the authentication has been checked and the result + $dbg = phpCAS::backtrace(); + $PHPCAS_AUTH_CHECK_CALL = array('done' => TRUE, + 'file' => $dbg[0]['file'], + 'line' => $dbg[0]['line'], + 'method' => __CLASS__.'::'.__FUNCTION__, + 'result' => $auth ); + phpCAS::traceEnd($auth); + return $auth; + } + + /** + * Checks whether authenticated based on $_SESSION. Useful to avoid + * server calls. + * @return true if authenticated, false otherwise. + * @since 0.4.22 by Brendan Arnold + */ + function isSessionAuthenticated () + { + global $PHPCAS_CLIENT; + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); + } + return($PHPCAS_CLIENT->isSessionAuthenticated()); + } + + /** + * This method returns the CAS user's login name. + * @warning should not be called only after phpCAS::forceAuthentication() + * or phpCAS::checkAuthentication(). + * + * @return the login name of the authenticated user + */ + function getUser() + { + global $PHPCAS_CLIENT, $PHPCAS_AUTH_CHECK_CALL; + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); + } + if ( !$PHPCAS_AUTH_CHECK_CALL['done'] ) { + phpCAS::error('this method should only be called after '.__CLASS__.'::forceAuthentication() or '.__CLASS__.'::isAuthenticated()'); + } + if ( !$PHPCAS_AUTH_CHECK_CALL['result'] ) { + phpCAS::error('authentication was checked (by '.$PHPCAS_AUTH_CHECK_CALL['method'].'() at '.$PHPCAS_AUTH_CHECK_CALL['file'].':'.$PHPCAS_AUTH_CHECK_CALL['line'].') but the method returned FALSE'); + } + return $PHPCAS_CLIENT->getUser(); + } + + /** + * This method returns the CAS user's login name. + * @warning should not be called only after phpCAS::forceAuthentication() + * or phpCAS::checkAuthentication(). + * + * @return the login name of the authenticated user + */ + function getAttributes() + { + global $PHPCAS_CLIENT, $PHPCAS_AUTH_CHECK_CALL; + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); + } + if ( !$PHPCAS_AUTH_CHECK_CALL['done'] ) { + phpCAS::error('this method should only be called after '.__CLASS__.'::forceAuthentication() or '.__CLASS__.'::isAuthenticated()'); + } + if ( !$PHPCAS_AUTH_CHECK_CALL['result'] ) { + phpCAS::error('authentication was checked (by '.$PHPCAS_AUTH_CHECK_CALL['method'].'() at '.$PHPCAS_AUTH_CHECK_CALL['file'].':'.$PHPCAS_AUTH_CHECK_CALL['line'].') but the method returned FALSE'); + } + return $PHPCAS_CLIENT->getAttributes(); + } + /** + * Handle logout requests. + */ + function handleLogoutRequests($check_client=true, $allowed_clients=false) + { + global $PHPCAS_CLIENT; + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); + } + return($PHPCAS_CLIENT->handleLogoutRequests($check_client, $allowed_clients)); + } + + /** + * This method returns the URL to be used to login. + * or phpCAS::isAuthenticated(). + * + * @return the login name of the authenticated user + */ + function getServerLoginURL() + { + global $PHPCAS_CLIENT; + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); + } + return $PHPCAS_CLIENT->getServerLoginURL(); + } + + /** + * Set the login URL of the CAS server. + * @param $url the login URL + * @since 0.4.21 by Wyman Chan + */ + function setServerLoginURL($url='') + { + global $PHPCAS_CLIENT; + phpCAS::traceBegin(); + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should only be called after + '.__CLASS__.'::client()'); + } + if ( gettype($url) != 'string' ) { + phpCAS::error('type mismatched for parameter $url (should be + `string\')'); + } + $PHPCAS_CLIENT->setServerLoginURL($url); + phpCAS::traceEnd(); + } + + + /** + * Set the serviceValidate URL of the CAS server. + * @param $url the serviceValidate URL + * @since 1.1.0 by Joachim Fritschi + */ + function setServerServiceValidateURL($url='') + { + global $PHPCAS_CLIENT; + phpCAS::traceBegin(); + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should only be called after + '.__CLASS__.'::client()'); + } + if ( gettype($url) != 'string' ) { + phpCAS::error('type mismatched for parameter $url (should be + `string\')'); + } + $PHPCAS_CLIENT->setServerServiceValidateURL($url); + phpCAS::traceEnd(); + } + + + /** + * Set the proxyValidate URL of the CAS server. + * @param $url the proxyValidate URL + * @since 1.1.0 by Joachim Fritschi + */ + function setServerProxyValidateURL($url='') + { + global $PHPCAS_CLIENT; + phpCAS::traceBegin(); + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should only be called after + '.__CLASS__.'::client()'); + } + if ( gettype($url) != 'string' ) { + phpCAS::error('type mismatched for parameter $url (should be + `string\')'); + } + $PHPCAS_CLIENT->setServerProxyValidateURL($url); + phpCAS::traceEnd(); + } + + /** + * Set the samlValidate URL of the CAS server. + * @param $url the samlValidate URL + * @since 1.1.0 by Joachim Fritschi + */ + function setServerSamlValidateURL($url='') + { + global $PHPCAS_CLIENT; + phpCAS::traceBegin(); + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should only be called after + '.__CLASS__.'::client()'); + } + if ( gettype($url) != 'string' ) { + phpCAS::error('type mismatched for parameter $url (should be + `string\')'); + } + $PHPCAS_CLIENT->setServerSamlValidateURL($url); + phpCAS::traceEnd(); + } + + /** + * This method returns the URL to be used to login. + * or phpCAS::isAuthenticated(). + * + * @return the login name of the authenticated user + */ + function getServerLogoutURL() + { + global $PHPCAS_CLIENT; + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should not be called before '.__CLASS__.'::client() or '.__CLASS__.'::proxy()'); + } + return $PHPCAS_CLIENT->getServerLogoutURL(); + } + + /** + * Set the logout URL of the CAS server. + * @param $url the logout URL + * @since 0.4.21 by Wyman Chan + */ + function setServerLogoutURL($url='') + { + global $PHPCAS_CLIENT; + phpCAS::traceBegin(); + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should only be called after + '.__CLASS__.'::client()'); + } + if ( gettype($url) != 'string' ) { + phpCAS::error('type mismatched for parameter $url (should be + `string\')'); + } + $PHPCAS_CLIENT->setServerLogoutURL($url); + phpCAS::traceEnd(); + } + + /** + * This method is used to logout from CAS. + * @params $params an array that contains the optional url and service parameters that will be passed to the CAS server + * @public + */ + function logout($params = "") { + global $PHPCAS_CLIENT; + phpCAS::traceBegin(); + if (!is_object($PHPCAS_CLIENT)) { + phpCAS::error('this method should only be called after '.__CLASS__.'::client() or'.__CLASS__.'::proxy()'); + } + $parsedParams = array(); + if ($params != "") { + if (is_string($params)) { + phpCAS::error('method `phpCAS::logout($url)\' is now deprecated, use `phpCAS::logoutWithUrl($url)\' instead'); + } + if (!is_array($params)) { + phpCAS::error('type mismatched for parameter $params (should be `array\')'); + } + foreach ($params as $key => $value) { + if ($key != "service" && $key != "url") { + phpCAS::error('only `url\' and `service\' parameters are allowed for method `phpCAS::logout($params)\''); + } + $parsedParams[$key] = $value; + } + } + $PHPCAS_CLIENT->logout($parsedParams); + // never reached + phpCAS::traceEnd(); + } + + /** + * This method is used to logout from CAS. Halts by redirecting to the CAS server. + * @param $service a URL that will be transmitted to the CAS server + */ + function logoutWithRedirectService($service) { + global $PHPCAS_CLIENT; + phpCAS::traceBegin(); + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should only be called after '.__CLASS__.'::client() or'.__CLASS__.'::proxy()'); + } + if (!is_string($service)) { + phpCAS::error('type mismatched for parameter $service (should be `string\')'); + } + $PHPCAS_CLIENT->logout(array("service" => $service)); + // never reached + phpCAS::traceEnd(); + } + + /** + * This method is used to logout from CAS. Halts by redirecting to the CAS server. + * @param $url a URL that will be transmitted to the CAS server + */ + function logoutWithUrl($url) { + global $PHPCAS_CLIENT; + phpCAS::traceBegin(); + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should only be called after '.__CLASS__.'::client() or'.__CLASS__.'::proxy()'); + } + if (!is_string($url)) { + phpCAS::error('type mismatched for parameter $url (should be `string\')'); + } + $PHPCAS_CLIENT->logout(array("url" => $url)); + // never reached + phpCAS::traceEnd(); + } + + /** + * This method is used to logout from CAS. Halts by redirecting to the CAS server. + * @param $service a URL that will be transmitted to the CAS server + * @param $url a URL that will be transmitted to the CAS server + */ + function logoutWithRedirectServiceAndUrl($service, $url) { + global $PHPCAS_CLIENT; + phpCAS::traceBegin(); + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should only be called after '.__CLASS__.'::client() or'.__CLASS__.'::proxy()'); + } + if (!is_string($service)) { + phpCAS::error('type mismatched for parameter $service (should be `string\')'); + } + if (!is_string($url)) { + phpCAS::error('type mismatched for parameter $url (should be `string\')'); + } + $PHPCAS_CLIENT->logout(array("service" => $service, "url" => $url)); + // never reached + phpCAS::traceEnd(); + } + + /** + * Set the fixed URL that will be used by the CAS server to transmit the PGT. + * When this method is not called, a phpCAS script uses its own URL for the callback. + * + * @param $url the URL + */ + function setFixedCallbackURL($url='') + { + global $PHPCAS_CLIENT; + phpCAS::traceBegin(); + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); + } + if ( !$PHPCAS_CLIENT->isProxy() ) { + phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); + } + if ( gettype($url) != 'string' ) { + phpCAS::error('type mismatched for parameter $url (should be `string\')'); + } + $PHPCAS_CLIENT->setCallbackURL($url); + phpCAS::traceEnd(); + } + + /** + * Set the fixed URL that will be set as the CAS service parameter. When this + * method is not called, a phpCAS script uses its own URL. + * + * @param $url the URL + */ + function setFixedServiceURL($url) + { + global $PHPCAS_CLIENT; + phpCAS::traceBegin(); + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); + } + if ( gettype($url) != 'string' ) { + phpCAS::error('type mismatched for parameter $url (should be `string\')'); + } + $PHPCAS_CLIENT->setURL($url); + phpCAS::traceEnd(); + } + + /** + * Get the URL that is set as the CAS service parameter. + */ + function getServiceURL() + { + global $PHPCAS_CLIENT; + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); + } + return($PHPCAS_CLIENT->getURL()); + } + + /** + * Retrieve a Proxy Ticket from the CAS server. + */ + function retrievePT($target_service,&$err_code,&$err_msg) + { + global $PHPCAS_CLIENT; + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should only be called after '.__CLASS__.'::proxy()'); + } + if ( gettype($target_service) != 'string' ) { + phpCAS::error('type mismatched for parameter $target_service(should be `string\')'); + } + return($PHPCAS_CLIENT->retrievePT($target_service,$err_code,$err_msg)); + } + + /** + * Set the certificate of the CAS server. + * + * @param $cert the PEM certificate + */ + function setCasServerCert($cert) + { + global $PHPCAS_CLIENT; + phpCAS::traceBegin(); + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should only be called after '.__CLASS__.'::client() or'.__CLASS__.'::proxy()'); + } + if ( gettype($cert) != 'string' ) { + phpCAS::error('type mismatched for parameter $cert (should be `string\')'); + } + $PHPCAS_CLIENT->setCasServerCert($cert); + phpCAS::traceEnd(); + } + + /** + * Set the certificate of the CAS server CA. + * + * @param $cert the CA certificate + */ + function setCasServerCACert($cert) + { + global $PHPCAS_CLIENT; + phpCAS::traceBegin(); + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should only be called after '.__CLASS__.'::client() or'.__CLASS__.'::proxy()'); + } + if ( gettype($cert) != 'string' ) { + phpCAS::error('type mismatched for parameter $cert (should be `string\')'); + } + $PHPCAS_CLIENT->setCasServerCACert($cert); + phpCAS::traceEnd(); + } + + /** + * Set no SSL validation for the CAS server. + */ + function setNoCasServerValidation() + { + global $PHPCAS_CLIENT; + phpCAS::traceBegin(); + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should only be called after '.__CLASS__.'::client() or'.__CLASS__.'::proxy()'); + } + $PHPCAS_CLIENT->setNoCasServerValidation(); + phpCAS::traceEnd(); + } + + /** @} */ + + /** + * Change CURL options. + * CURL is used to connect through HTTPS to CAS server + * @param $key the option key + * @param $value the value to set + */ + function setExtraCurlOption($key, $value) + { + global $PHPCAS_CLIENT; + phpCAS::traceBegin(); + if ( !is_object($PHPCAS_CLIENT) ) { + phpCAS::error('this method should only be called after '.__CLASS__.'::client() or'.__CLASS__.'::proxy()'); + } + $PHPCAS_CLIENT->setExtraCurlOption($key, $value); + phpCAS::traceEnd(); + } + +} + +// ######################################################################## +// DOCUMENTATION +// ######################################################################## + +// ######################################################################## +// MAIN PAGE + +/** + * @mainpage + * + * The following pages only show the source documentation. + * + */ + +// ######################################################################## +// MODULES DEFINITION + +/** @defgroup public User interface */ + +/** @defgroup publicInit Initialization + * @ingroup public */ + +/** @defgroup publicAuth Authentication + * @ingroup public */ + +/** @defgroup publicServices Access to external services + * @ingroup public */ + +/** @defgroup publicConfig Configuration + * @ingroup public */ + +/** @defgroup publicLang Internationalization + * @ingroup publicConfig */ + +/** @defgroup publicOutput HTML output + * @ingroup publicConfig */ + +/** @defgroup publicPGTStorage PGT storage + * @ingroup publicConfig */ + +/** @defgroup publicDebug Debugging + * @ingroup public */ + + +/** @defgroup internal Implementation */ + +/** @defgroup internalAuthentication Authentication + * @ingroup internal */ + +/** @defgroup internalBasic CAS Basic client features (CAS 1.0, Service Tickets) + * @ingroup internal */ + +/** @defgroup internalProxy CAS Proxy features (CAS 2.0, Proxy Granting Tickets) + * @ingroup internal */ + +/** @defgroup internalPGTStorage PGT storage + * @ingroup internalProxy */ + +/** @defgroup internalPGTStorageDB PGT storage in a database + * @ingroup internalPGTStorage */ + +/** @defgroup internalPGTStorageFile PGT storage on the filesystem + * @ingroup internalPGTStorage */ + +/** @defgroup internalCallback Callback from the CAS server + * @ingroup internalProxy */ + +/** @defgroup internalProxied CAS proxied client features (CAS 2.0, Proxy Tickets) + * @ingroup internal */ + +/** @defgroup internalConfig Configuration + * @ingroup internal */ + +/** @defgroup internalOutput HTML output + * @ingroup internalConfig */ + +/** @defgroup internalLang Internationalization + * @ingroup internalConfig + * + * To add a new language: + * - 1. define a new constant PHPCAS_LANG_XXXXXX in CAS/CAS.php + * - 2. copy any file from CAS/languages to CAS/languages/XXXXXX.php + * - 3. Make the translations + */ + +/** @defgroup internalDebug Debugging + * @ingroup internal */ + +/** @defgroup internalMisc Miscellaneous + * @ingroup internal */ + +// ######################################################################## +// EXAMPLES + +/** + * @example example_simple.php + */ + /** + * @example example_proxy.php + */ + /** + * @example example_proxy2.php + */ + /** + * @example example_lang.php + */ + /** + * @example example_html.php + */ + /** + * @example example_file.php + */ + /** + * @example example_db.php + */ + /** + * @example example_service.php + */ + /** + * @example example_session_proxy.php + */ + /** + * @example example_session_service.php + */ + /** + * @example example_gateway.php + */ + + + +?> diff --git a/plugins/CasAuthentication/extlib/CAS/PGTStorage/pgt-db.php b/plugins/CasAuthentication/extlib/CAS/PGTStorage/pgt-db.php index 00797b9c5..5a589e4b2 100644 --- a/plugins/CasAuthentication/extlib/CAS/PGTStorage/pgt-db.php +++ b/plugins/CasAuthentication/extlib/CAS/PGTStorage/pgt-db.php @@ -1,190 +1,190 @@ - - * - * @ingroup internalPGTStorageDB - */ - -class PGTStorageDB extends PGTStorage -{ - /** - * @addtogroup internalPGTStorageDB - * @{ - */ - - /** - * a string representing a PEAR DB URL to connect to the database. Written by - * PGTStorageDB::PGTStorageDB(), read by getURL(). - * - * @hideinitializer - * @private - */ - var $_url=''; - - /** - * This method returns the PEAR DB URL to use to connect to the database. - * - * @return a PEAR DB URL - * - * @private - */ - function getURL() - { - return $this->_url; - } - - /** - * The handle of the connection to the database where PGT's are stored. Written by - * PGTStorageDB::init(), read by getLink(). - * - * @hideinitializer - * @private - */ - var $_link = null; - - /** - * This method returns the handle of the connection to the database where PGT's are - * stored. - * - * @return a handle of connection. - * - * @private - */ - function getLink() - { - return $this->_link; - } - - /** - * The name of the table where PGT's are stored. Written by - * PGTStorageDB::PGTStorageDB(), read by getTable(). - * - * @hideinitializer - * @private - */ - var $_table = ''; - - /** - * This method returns the name of the table where PGT's are stored. - * - * @return the name of a table. - * - * @private - */ - function getTable() - { - return $this->_table; - } - - // ######################################################################## - // DEBUGGING - // ######################################################################## - - /** - * This method returns an informational string giving the type of storage - * used by the object (used for debugging purposes). - * - * @return an informational string. - * @public - */ - function getStorageType() - { - return "database"; - } - - /** - * This method returns an informational string giving informations on the - * parameters of the storage.(used for debugging purposes). - * - * @public - */ - function getStorageInfo() - { - return 'url=`'.$this->getURL().'\', table=`'.$this->getTable().'\''; - } - - // ######################################################################## - // CONSTRUCTOR - // ######################################################################## - - /** - * The class constructor, called by CASClient::SetPGTStorageDB(). - * - * @param $cas_parent the CASClient instance that creates the object. - * @param $user the user to access the data with - * @param $password the user's password - * @param $database_type the type of the database hosting the data - * @param $hostname the server hosting the database - * @param $port the port the server is listening on - * @param $database the name of the database - * @param $table the name of the table storing the data - * - * @public - */ - function PGTStorageDB($cas_parent,$user,$password,$database_type,$hostname,$port,$database,$table) - { - phpCAS::traceBegin(); - - // call the ancestor's constructor - $this->PGTStorage($cas_parent); - - if ( empty($database_type) ) $database_type = CAS_PGT_STORAGE_DB_DEFAULT_DATABASE_TYPE; - if ( empty($hostname) ) $hostname = CAS_PGT_STORAGE_DB_DEFAULT_HOSTNAME; - if ( $port==0 ) $port = CAS_PGT_STORAGE_DB_DEFAULT_PORT; - if ( empty($database) ) $database = CAS_PGT_STORAGE_DB_DEFAULT_DATABASE; - if ( empty($table) ) $table = CAS_PGT_STORAGE_DB_DEFAULT_TABLE; - - // build and store the PEAR DB URL - $this->_url = $database_type.':'.'//'.$user.':'.$password.'@'.$hostname.':'.$port.'/'.$database; - - // XXX should use setURL and setTable - phpCAS::traceEnd(); - } - - // ######################################################################## - // INITIALIZATION - // ######################################################################## - - /** - * This method is used to initialize the storage. Halts on error. - * - * @public - */ - function init() - { - phpCAS::traceBegin(); - // if the storage has already been initialized, return immediatly - if ( $this->isInitialized() ) - return; - // call the ancestor's method (mark as initialized) - parent::init(); - - //include phpDB library (the test was introduced in release 0.4.8 for - //the integration into Tikiwiki). - if (!class_exists('DB')) { - include_once('DB.php'); - } - - // try to connect to the database - $this->_link = DB::connect($this->getURL()); - if ( DB::isError($this->_link) ) { - phpCAS::error('could not connect to database ('.DB::errorMessage($this->_link).')'); - } - var_dump($this->_link); - phpCAS::traceBEnd(); - } - - /** @} */ -} - + + * + * @ingroup internalPGTStorageDB + */ + +class PGTStorageDB extends PGTStorage +{ + /** + * @addtogroup internalPGTStorageDB + * @{ + */ + + /** + * a string representing a PEAR DB URL to connect to the database. Written by + * PGTStorageDB::PGTStorageDB(), read by getURL(). + * + * @hideinitializer + * @private + */ + var $_url=''; + + /** + * This method returns the PEAR DB URL to use to connect to the database. + * + * @return a PEAR DB URL + * + * @private + */ + function getURL() + { + return $this->_url; + } + + /** + * The handle of the connection to the database where PGT's are stored. Written by + * PGTStorageDB::init(), read by getLink(). + * + * @hideinitializer + * @private + */ + var $_link = null; + + /** + * This method returns the handle of the connection to the database where PGT's are + * stored. + * + * @return a handle of connection. + * + * @private + */ + function getLink() + { + return $this->_link; + } + + /** + * The name of the table where PGT's are stored. Written by + * PGTStorageDB::PGTStorageDB(), read by getTable(). + * + * @hideinitializer + * @private + */ + var $_table = ''; + + /** + * This method returns the name of the table where PGT's are stored. + * + * @return the name of a table. + * + * @private + */ + function getTable() + { + return $this->_table; + } + + // ######################################################################## + // DEBUGGING + // ######################################################################## + + /** + * This method returns an informational string giving the type of storage + * used by the object (used for debugging purposes). + * + * @return an informational string. + * @public + */ + function getStorageType() + { + return "database"; + } + + /** + * This method returns an informational string giving informations on the + * parameters of the storage.(used for debugging purposes). + * + * @public + */ + function getStorageInfo() + { + return 'url=`'.$this->getURL().'\', table=`'.$this->getTable().'\''; + } + + // ######################################################################## + // CONSTRUCTOR + // ######################################################################## + + /** + * The class constructor, called by CASClient::SetPGTStorageDB(). + * + * @param $cas_parent the CASClient instance that creates the object. + * @param $user the user to access the data with + * @param $password the user's password + * @param $database_type the type of the database hosting the data + * @param $hostname the server hosting the database + * @param $port the port the server is listening on + * @param $database the name of the database + * @param $table the name of the table storing the data + * + * @public + */ + function PGTStorageDB($cas_parent,$user,$password,$database_type,$hostname,$port,$database,$table) + { + phpCAS::traceBegin(); + + // call the ancestor's constructor + $this->PGTStorage($cas_parent); + + if ( empty($database_type) ) $database_type = CAS_PGT_STORAGE_DB_DEFAULT_DATABASE_TYPE; + if ( empty($hostname) ) $hostname = CAS_PGT_STORAGE_DB_DEFAULT_HOSTNAME; + if ( $port==0 ) $port = CAS_PGT_STORAGE_DB_DEFAULT_PORT; + if ( empty($database) ) $database = CAS_PGT_STORAGE_DB_DEFAULT_DATABASE; + if ( empty($table) ) $table = CAS_PGT_STORAGE_DB_DEFAULT_TABLE; + + // build and store the PEAR DB URL + $this->_url = $database_type.':'.'//'.$user.':'.$password.'@'.$hostname.':'.$port.'/'.$database; + + // XXX should use setURL and setTable + phpCAS::traceEnd(); + } + + // ######################################################################## + // INITIALIZATION + // ######################################################################## + + /** + * This method is used to initialize the storage. Halts on error. + * + * @public + */ + function init() + { + phpCAS::traceBegin(); + // if the storage has already been initialized, return immediatly + if ( $this->isInitialized() ) + return; + // call the ancestor's method (mark as initialized) + parent::init(); + + //include phpDB library (the test was introduced in release 0.4.8 for + //the integration into Tikiwiki). + if (!class_exists('DB')) { + include_once('DB.php'); + } + + // try to connect to the database + $this->_link = DB::connect($this->getURL()); + if ( DB::isError($this->_link) ) { + phpCAS::error('could not connect to database ('.DB::errorMessage($this->_link).')'); + } + var_dump($this->_link); + phpCAS::traceBEnd(); + } + + /** @} */ +} + ?> \ No newline at end of file diff --git a/plugins/CasAuthentication/extlib/CAS/PGTStorage/pgt-file.php b/plugins/CasAuthentication/extlib/CAS/PGTStorage/pgt-file.php index d48a60d67..bc07485b8 100644 --- a/plugins/CasAuthentication/extlib/CAS/PGTStorage/pgt-file.php +++ b/plugins/CasAuthentication/extlib/CAS/PGTStorage/pgt-file.php @@ -1,249 +1,249 @@ - - * - * @ingroup internalPGTStorageFile - */ - -class PGTStorageFile extends PGTStorage -{ - /** - * @addtogroup internalPGTStorageFile - * @{ - */ - - /** - * a string telling where PGT's should be stored on the filesystem. Written by - * PGTStorageFile::PGTStorageFile(), read by getPath(). - * - * @private - */ - var $_path; - - /** - * This method returns the name of the directory where PGT's should be stored - * on the filesystem. - * - * @return the name of a directory (with leading and trailing '/') - * - * @private - */ - function getPath() - { - return $this->_path; - } - - /** - * a string telling the format to use to store PGT's (plain or xml). Written by - * PGTStorageFile::PGTStorageFile(), read by getFormat(). - * - * @private - */ - var $_format; - - /** - * This method returns the format to use when storing PGT's on the filesystem. - * - * @return a string corresponding to the format used (plain or xml). - * - * @private - */ - function getFormat() - { - return $this->_format; - } - - // ######################################################################## - // DEBUGGING - // ######################################################################## - - /** - * This method returns an informational string giving the type of storage - * used by the object (used for debugging purposes). - * - * @return an informational string. - * @public - */ - function getStorageType() - { - return "file"; - } - - /** - * This method returns an informational string giving informations on the - * parameters of the storage.(used for debugging purposes). - * - * @return an informational string. - * @public - */ - function getStorageInfo() - { - return 'path=`'.$this->getPath().'\', format=`'.$this->getFormat().'\''; - } - - // ######################################################################## - // CONSTRUCTOR - // ######################################################################## - - /** - * The class constructor, called by CASClient::SetPGTStorageFile(). - * - * @param $cas_parent the CASClient instance that creates the object. - * @param $format the format used to store the PGT's (`plain' and `xml' allowed). - * @param $path the path where the PGT's should be stored - * - * @public - */ - function PGTStorageFile($cas_parent,$format,$path) - { - phpCAS::traceBegin(); - // call the ancestor's constructor - $this->PGTStorage($cas_parent); - - if (empty($format) ) $format = CAS_PGT_STORAGE_FILE_DEFAULT_FORMAT; - if (empty($path) ) $path = CAS_PGT_STORAGE_FILE_DEFAULT_PATH; - - // check that the path is an absolute path - if (getenv("OS")=="Windows_NT"){ - - if (!preg_match('`^[a-zA-Z]:`', $path)) { - phpCAS::error('an absolute path is needed for PGT storage to file'); - } - - } - else - { - - if ( $path[0] != '/' ) { - phpCAS::error('an absolute path is needed for PGT storage to file'); - } - - // store the path (with a leading and trailing '/') - $path = preg_replace('|[/]*$|','/',$path); - $path = preg_replace('|^[/]*|','/',$path); - } - - $this->_path = $path; - // check the format and store it - switch ($format) { - case CAS_PGT_STORAGE_FILE_FORMAT_PLAIN: - case CAS_PGT_STORAGE_FILE_FORMAT_XML: - $this->_format = $format; - break; - default: - phpCAS::error('unknown PGT file storage format (`'.CAS_PGT_STORAGE_FILE_FORMAT_PLAIN.'\' and `'.CAS_PGT_STORAGE_FILE_FORMAT_XML.'\' allowed)'); - } - phpCAS::traceEnd(); - } - - // ######################################################################## - // INITIALIZATION - // ######################################################################## - - /** - * This method is used to initialize the storage. Halts on error. - * - * @public - */ - function init() - { - phpCAS::traceBegin(); - // if the storage has already been initialized, return immediatly - if ( $this->isInitialized() ) - return; - // call the ancestor's method (mark as initialized) - parent::init(); - phpCAS::traceEnd(); - } - - // ######################################################################## - // PGT I/O - // ######################################################################## - - /** - * This method returns the filename corresponding to a PGT Iou. - * - * @param $pgt_iou the PGT iou. - * - * @return a filename - * @private - */ - function getPGTIouFilename($pgt_iou) - { - phpCAS::traceBegin(); - $filename = $this->getPath().$pgt_iou.'.'.$this->getFormat(); - phpCAS::traceEnd($filename); - return $filename; - } - - /** - * This method stores a PGT and its corresponding PGT Iou into a file. Echoes a - * warning on error. - * - * @param $pgt the PGT - * @param $pgt_iou the PGT iou - * - * @public - */ - function write($pgt,$pgt_iou) - { - phpCAS::traceBegin(); - $fname = $this->getPGTIouFilename($pgt_iou); - if ( $f=fopen($fname,"w") ) { - if ( fputs($f,$pgt) === FALSE ) { - phpCAS::error('could not write PGT to `'.$fname.'\''); - } - fclose($f); - } else { - phpCAS::error('could not open `'.$fname.'\''); - } - phpCAS::traceEnd(); - } - - /** - * This method reads a PGT corresponding to a PGT Iou and deletes the - * corresponding file. - * - * @param $pgt_iou the PGT iou - * - * @return the corresponding PGT, or FALSE on error - * - * @public - */ - function read($pgt_iou) - { - phpCAS::traceBegin(); - $pgt = FALSE; - $fname = $this->getPGTIouFilename($pgt_iou); - if ( !($f=fopen($fname,"r")) ) { - phpCAS::trace('could not open `'.$fname.'\''); - } else { - if ( ($pgt=fgets($f)) === FALSE ) { - phpCAS::trace('could not read PGT from `'.$fname.'\''); - } - fclose($f); - } - - // delete the PGT file - @unlink($fname); - - phpCAS::traceEnd($pgt); - return $pgt; - } - - /** @} */ - -} - - + + * + * @ingroup internalPGTStorageFile + */ + +class PGTStorageFile extends PGTStorage +{ + /** + * @addtogroup internalPGTStorageFile + * @{ + */ + + /** + * a string telling where PGT's should be stored on the filesystem. Written by + * PGTStorageFile::PGTStorageFile(), read by getPath(). + * + * @private + */ + var $_path; + + /** + * This method returns the name of the directory where PGT's should be stored + * on the filesystem. + * + * @return the name of a directory (with leading and trailing '/') + * + * @private + */ + function getPath() + { + return $this->_path; + } + + /** + * a string telling the format to use to store PGT's (plain or xml). Written by + * PGTStorageFile::PGTStorageFile(), read by getFormat(). + * + * @private + */ + var $_format; + + /** + * This method returns the format to use when storing PGT's on the filesystem. + * + * @return a string corresponding to the format used (plain or xml). + * + * @private + */ + function getFormat() + { + return $this->_format; + } + + // ######################################################################## + // DEBUGGING + // ######################################################################## + + /** + * This method returns an informational string giving the type of storage + * used by the object (used for debugging purposes). + * + * @return an informational string. + * @public + */ + function getStorageType() + { + return "file"; + } + + /** + * This method returns an informational string giving informations on the + * parameters of the storage.(used for debugging purposes). + * + * @return an informational string. + * @public + */ + function getStorageInfo() + { + return 'path=`'.$this->getPath().'\', format=`'.$this->getFormat().'\''; + } + + // ######################################################################## + // CONSTRUCTOR + // ######################################################################## + + /** + * The class constructor, called by CASClient::SetPGTStorageFile(). + * + * @param $cas_parent the CASClient instance that creates the object. + * @param $format the format used to store the PGT's (`plain' and `xml' allowed). + * @param $path the path where the PGT's should be stored + * + * @public + */ + function PGTStorageFile($cas_parent,$format,$path) + { + phpCAS::traceBegin(); + // call the ancestor's constructor + $this->PGTStorage($cas_parent); + + if (empty($format) ) $format = CAS_PGT_STORAGE_FILE_DEFAULT_FORMAT; + if (empty($path) ) $path = CAS_PGT_STORAGE_FILE_DEFAULT_PATH; + + // check that the path is an absolute path + if (getenv("OS")=="Windows_NT"){ + + if (!preg_match('`^[a-zA-Z]:`', $path)) { + phpCAS::error('an absolute path is needed for PGT storage to file'); + } + + } + else + { + + if ( $path[0] != '/' ) { + phpCAS::error('an absolute path is needed for PGT storage to file'); + } + + // store the path (with a leading and trailing '/') + $path = preg_replace('|[/]*$|','/',$path); + $path = preg_replace('|^[/]*|','/',$path); + } + + $this->_path = $path; + // check the format and store it + switch ($format) { + case CAS_PGT_STORAGE_FILE_FORMAT_PLAIN: + case CAS_PGT_STORAGE_FILE_FORMAT_XML: + $this->_format = $format; + break; + default: + phpCAS::error('unknown PGT file storage format (`'.CAS_PGT_STORAGE_FILE_FORMAT_PLAIN.'\' and `'.CAS_PGT_STORAGE_FILE_FORMAT_XML.'\' allowed)'); + } + phpCAS::traceEnd(); + } + + // ######################################################################## + // INITIALIZATION + // ######################################################################## + + /** + * This method is used to initialize the storage. Halts on error. + * + * @public + */ + function init() + { + phpCAS::traceBegin(); + // if the storage has already been initialized, return immediatly + if ( $this->isInitialized() ) + return; + // call the ancestor's method (mark as initialized) + parent::init(); + phpCAS::traceEnd(); + } + + // ######################################################################## + // PGT I/O + // ######################################################################## + + /** + * This method returns the filename corresponding to a PGT Iou. + * + * @param $pgt_iou the PGT iou. + * + * @return a filename + * @private + */ + function getPGTIouFilename($pgt_iou) + { + phpCAS::traceBegin(); + $filename = $this->getPath().$pgt_iou.'.'.$this->getFormat(); + phpCAS::traceEnd($filename); + return $filename; + } + + /** + * This method stores a PGT and its corresponding PGT Iou into a file. Echoes a + * warning on error. + * + * @param $pgt the PGT + * @param $pgt_iou the PGT iou + * + * @public + */ + function write($pgt,$pgt_iou) + { + phpCAS::traceBegin(); + $fname = $this->getPGTIouFilename($pgt_iou); + if ( $f=fopen($fname,"w") ) { + if ( fputs($f,$pgt) === FALSE ) { + phpCAS::error('could not write PGT to `'.$fname.'\''); + } + fclose($f); + } else { + phpCAS::error('could not open `'.$fname.'\''); + } + phpCAS::traceEnd(); + } + + /** + * This method reads a PGT corresponding to a PGT Iou and deletes the + * corresponding file. + * + * @param $pgt_iou the PGT iou + * + * @return the corresponding PGT, or FALSE on error + * + * @public + */ + function read($pgt_iou) + { + phpCAS::traceBegin(); + $pgt = FALSE; + $fname = $this->getPGTIouFilename($pgt_iou); + if ( !($f=fopen($fname,"r")) ) { + phpCAS::trace('could not open `'.$fname.'\''); + } else { + if ( ($pgt=fgets($f)) === FALSE ) { + phpCAS::trace('could not read PGT from `'.$fname.'\''); + } + fclose($f); + } + + // delete the PGT file + @unlink($fname); + + phpCAS::traceEnd($pgt); + return $pgt; + } + + /** @} */ + +} + + ?> \ No newline at end of file diff --git a/plugins/CasAuthentication/extlib/CAS/PGTStorage/pgt-main.php b/plugins/CasAuthentication/extlib/CAS/PGTStorage/pgt-main.php index 8fd3c9e12..cd9b49967 100644 --- a/plugins/CasAuthentication/extlib/CAS/PGTStorage/pgt-main.php +++ b/plugins/CasAuthentication/extlib/CAS/PGTStorage/pgt-main.php @@ -1,188 +1,188 @@ - - * - * @ingroup internalPGTStorage - */ - -class PGTStorage -{ - /** - * @addtogroup internalPGTStorage - * @{ - */ - - // ######################################################################## - // CONSTRUCTOR - // ######################################################################## - - /** - * The constructor of the class, should be called only by inherited classes. - * - * @param $cas_parent the CASclient instance that creates the current object. - * - * @protected - */ - function PGTStorage($cas_parent) - { - phpCAS::traceBegin(); - if ( !$cas_parent->isProxy() ) { - phpCAS::error('defining PGT storage makes no sense when not using a CAS proxy'); - } - phpCAS::traceEnd(); - } - - // ######################################################################## - // DEBUGGING - // ######################################################################## - - /** - * This virtual method returns an informational string giving the type of storage - * used by the object (used for debugging purposes). - * - * @public - */ - function getStorageType() - { - phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called'); - } - - /** - * This virtual method returns an informational string giving informations on the - * parameters of the storage.(used for debugging purposes). - * - * @public - */ - function getStorageInfo() - { - phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called'); - } - - // ######################################################################## - // ERROR HANDLING - // ######################################################################## - - /** - * string used to store an error message. Written by PGTStorage::setErrorMessage(), - * read by PGTStorage::getErrorMessage(). - * - * @hideinitializer - * @private - * @deprecated not used. - */ - var $_error_message=FALSE; - - /** - * This method sets en error message, which can be read later by - * PGTStorage::getErrorMessage(). - * - * @param $error_message an error message - * - * @protected - * @deprecated not used. - */ - function setErrorMessage($error_message) - { - $this->_error_message = $error_message; - } - - /** - * This method returns an error message set by PGTStorage::setErrorMessage(). - * - * @return an error message when set by PGTStorage::setErrorMessage(), FALSE - * otherwise. - * - * @public - * @deprecated not used. - */ - function getErrorMessage() - { - return $this->_error_message; - } - - // ######################################################################## - // INITIALIZATION - // ######################################################################## - - /** - * a boolean telling if the storage has already been initialized. Written by - * PGTStorage::init(), read by PGTStorage::isInitialized(). - * - * @hideinitializer - * @private - */ - var $_initialized = FALSE; - - /** - * This method tells if the storage has already been intialized. - * - * @return a boolean - * - * @protected - */ - function isInitialized() - { - return $this->_initialized; - } - - /** - * This virtual method initializes the object. - * - * @protected - */ - function init() - { - $this->_initialized = TRUE; - } - - // ######################################################################## - // PGT I/O - // ######################################################################## - - /** - * This virtual method stores a PGT and its corresponding PGT Iuo. - * @note Should never be called. - * - * @param $pgt the PGT - * @param $pgt_iou the PGT iou - * - * @protected - */ - function write($pgt,$pgt_iou) - { - phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called'); - } - - /** - * This virtual method reads a PGT corresponding to a PGT Iou and deletes - * the corresponding storage entry. - * @note Should never be called. - * - * @param $pgt_iou the PGT iou - * - * @protected - */ - function read($pgt_iou) - { - phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called'); - } - - /** @} */ - -} - -// include specific PGT storage classes -include_once(dirname(__FILE__).'/pgt-file.php'); -include_once(dirname(__FILE__).'/pgt-db.php'); - + + * + * @ingroup internalPGTStorage + */ + +class PGTStorage +{ + /** + * @addtogroup internalPGTStorage + * @{ + */ + + // ######################################################################## + // CONSTRUCTOR + // ######################################################################## + + /** + * The constructor of the class, should be called only by inherited classes. + * + * @param $cas_parent the CASclient instance that creates the current object. + * + * @protected + */ + function PGTStorage($cas_parent) + { + phpCAS::traceBegin(); + if ( !$cas_parent->isProxy() ) { + phpCAS::error('defining PGT storage makes no sense when not using a CAS proxy'); + } + phpCAS::traceEnd(); + } + + // ######################################################################## + // DEBUGGING + // ######################################################################## + + /** + * This virtual method returns an informational string giving the type of storage + * used by the object (used for debugging purposes). + * + * @public + */ + function getStorageType() + { + phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called'); + } + + /** + * This virtual method returns an informational string giving informations on the + * parameters of the storage.(used for debugging purposes). + * + * @public + */ + function getStorageInfo() + { + phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called'); + } + + // ######################################################################## + // ERROR HANDLING + // ######################################################################## + + /** + * string used to store an error message. Written by PGTStorage::setErrorMessage(), + * read by PGTStorage::getErrorMessage(). + * + * @hideinitializer + * @private + * @deprecated not used. + */ + var $_error_message=FALSE; + + /** + * This method sets en error message, which can be read later by + * PGTStorage::getErrorMessage(). + * + * @param $error_message an error message + * + * @protected + * @deprecated not used. + */ + function setErrorMessage($error_message) + { + $this->_error_message = $error_message; + } + + /** + * This method returns an error message set by PGTStorage::setErrorMessage(). + * + * @return an error message when set by PGTStorage::setErrorMessage(), FALSE + * otherwise. + * + * @public + * @deprecated not used. + */ + function getErrorMessage() + { + return $this->_error_message; + } + + // ######################################################################## + // INITIALIZATION + // ######################################################################## + + /** + * a boolean telling if the storage has already been initialized. Written by + * PGTStorage::init(), read by PGTStorage::isInitialized(). + * + * @hideinitializer + * @private + */ + var $_initialized = FALSE; + + /** + * This method tells if the storage has already been intialized. + * + * @return a boolean + * + * @protected + */ + function isInitialized() + { + return $this->_initialized; + } + + /** + * This virtual method initializes the object. + * + * @protected + */ + function init() + { + $this->_initialized = TRUE; + } + + // ######################################################################## + // PGT I/O + // ######################################################################## + + /** + * This virtual method stores a PGT and its corresponding PGT Iuo. + * @note Should never be called. + * + * @param $pgt the PGT + * @param $pgt_iou the PGT iou + * + * @protected + */ + function write($pgt,$pgt_iou) + { + phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called'); + } + + /** + * This virtual method reads a PGT corresponding to a PGT Iou and deletes + * the corresponding storage entry. + * @note Should never be called. + * + * @param $pgt_iou the PGT iou + * + * @protected + */ + function read($pgt_iou) + { + phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called'); + } + + /** @} */ + +} + +// include specific PGT storage classes +include_once(dirname(__FILE__).'/pgt-file.php'); +include_once(dirname(__FILE__).'/pgt-db.php'); + ?> \ No newline at end of file diff --git a/plugins/CasAuthentication/extlib/CAS/client.php b/plugins/CasAuthentication/extlib/CAS/client.php index bbde55a28..ad5a23f83 100644 --- a/plugins/CasAuthentication/extlib/CAS/client.php +++ b/plugins/CasAuthentication/extlib/CAS/client.php @@ -351,6 +351,43 @@ class CASClient { return $this->_server['login_url'] = $url; } + + + /** + * This method sets the serviceValidate URL of the CAS server. + * @param $url the serviceValidate URL + * @private + * @since 1.1.0 by Joachim Fritschi + */ + function setServerServiceValidateURL($url) + { + return $this->_server['service_validate_url'] = $url; + } + + + /** + * This method sets the proxyValidate URL of the CAS server. + * @param $url the proxyValidate URL + * @private + * @since 1.1.0 by Joachim Fritschi + */ + function setServerProxyValidateURL($url) + { + return $this->_server['proxy_validate_url'] = $url; + } + + + /** + * This method sets the samlValidate URL of the CAS server. + * @param $url the samlValidate URL + * @private + * @since 1.1.0 by Joachim Fritschi + */ + function setServerSamlValidateURL($url) + { + return $this->_server['saml_validate_url'] = $url; + } + /** * This method is used to retrieve the service validating URL of the CAS server. @@ -373,7 +410,25 @@ class CASClient // return $this->_server['service_validate_url'].'?service='.preg_replace('/&/','%26',$this->getURL()); return $this->_server['service_validate_url'].'?service='.urlencode($this->getURL()); } - + /** + * This method is used to retrieve the SAML validating URL of the CAS server. + * @return a URL. + * @private + */ + function getServerSamlValidateURL() + { + phpCAS::traceBegin(); + // the URL is build only when needed + if ( empty($this->_server['saml_validate_url']) ) { + switch ($this->getServerVersion()) { + case SAML_VERSION_1_1: + $this->_server['saml_validate_url'] = $this->getServerBaseURL().'samlValidate'; + break; + } + } + phpCAS::traceEnd($this->_server['saml_validate_url'].'?TARGET='.urlencode($this->getURL())); + return $this->_server['saml_validate_url'].'?TARGET='.urlencode($this->getURL()); + } /** * This method is used to retrieve the proxy validating URL of the CAS server. * @return a URL. @@ -497,31 +552,51 @@ class CASClient phpCAS::traceBegin(); - if (!$this->isLogoutRequest() && !empty($_GET['ticket']) && $start_session) { - // copy old session vars and destroy the current session - if (!isset($_SESSION)) { - session_start(); - } - $old_session = $_SESSION; - session_destroy(); - // set up a new session, of name based on the ticket - $session_id = preg_replace('/[^\w]/','',$_GET['ticket']); - phpCAS::LOG("Session ID: " . $session_id); - session_id($session_id); - if (!isset($_SESSION)) { - session_start(); - } - // restore old session vars - $_SESSION = $old_session; - // Redirect to location without ticket. - header('Location: '.$this->getURL()); - } - - //activate session mechanism if desired - if (!$this->isLogoutRequest() && $start_session) { - session_start(); + // the redirect header() call and DOM parsing code from domxml-php4-php5.php won't work in PHP4 compatibility mode + if (version_compare(PHP_VERSION,'5','>=') && ini_get('zend.ze1_compatibility_mode')) { + phpCAS::error('phpCAS cannot support zend.ze1_compatibility_mode. Sorry.'); + } + // skip Session Handling for logout requests and if don't want it' + if ($start_session && !$this->isLogoutRequest()) { + phpCAS::trace("Starting session handling"); + // Check for Tickets from the CAS server + if (empty($_GET['ticket'])){ + phpCAS::trace("No ticket found"); + // only create a session if necessary + if (!isset($_SESSION)) { + phpCAS::trace("No session found, creating new session"); + session_start(); + } + }else{ + phpCAS::trace("Ticket found"); + // We have to copy any old data before renaming the session + if (isset($_SESSION)) { + phpCAS::trace("Old active session found, saving old data and destroying session"); + $old_session = $_SESSION; + session_destroy(); + }else{ + session_start(); + phpCAS::trace("Starting possible old session to copy variables"); + $old_session = $_SESSION; + session_destroy(); + } + // set up a new session, of name based on the ticket + $session_id = preg_replace('/[^\w]/','',$_GET['ticket']); + phpCAS::LOG("Session ID: " . $session_id); + session_id($session_id); + session_start(); + // restore old session vars + if(isset($old_session)){ + phpCAS::trace("Restoring old session vars"); + $_SESSION = $old_session; + } + } + }else{ + phpCAS::trace("Skipping session creation"); } + + // are we in proxy mode ? $this->_proxy = $proxy; //check version @@ -533,6 +608,8 @@ class CASClient break; case CAS_VERSION_2_0: break; + case SAML_VERSION_1_1: + break; default: phpCAS::error('this version of CAS (`' .$server_version @@ -541,29 +618,29 @@ class CASClient } $this->_server['version'] = $server_version; - //check hostname + // check hostname if ( empty($server_hostname) || !preg_match('/[\.\d\-abcdefghijklmnopqrstuvwxyz]*/',$server_hostname) ) { phpCAS::error('bad CAS server hostname (`'.$server_hostname.'\')'); } $this->_server['hostname'] = $server_hostname; - //check port + // check port if ( $server_port == 0 || !is_int($server_port) ) { phpCAS::error('bad CAS server port (`'.$server_hostname.'\')'); } $this->_server['port'] = $server_port; - //check URI + // check URI if ( !preg_match('/[\.\d\-_abcdefghijklmnopqrstuvwxyz\/]*/',$server_uri) ) { phpCAS::error('bad CAS server URI (`'.$server_uri.'\')'); } - //add leading and trailing `/' and remove doubles + // add leading and trailing `/' and remove doubles $server_uri = preg_replace('/\/\//','/','/'.$server_uri.'/'); $this->_server['uri'] = $server_uri; - //set to callback mode if PgtIou and PgtId CGI GET parameters are provided + // set to callback mode if PgtIou and PgtId CGI GET parameters are provided if ( $this->isProxy() ) { $this->setCallbackMode(!empty($_GET['pgtIou'])&&!empty($_GET['pgtId'])); } @@ -590,8 +667,12 @@ class CASClient } break; case CAS_VERSION_2_0: // check for a Service or Proxy Ticket - if( preg_match('/^[SP]T-/',$ticket) ) { - phpCAS::trace('ST or PT \''.$ticket.'\' found'); + if (preg_match('/^ST-/', $ticket)) { + phpCAS::trace('ST \'' . $ticket . '\' found'); + $this->setST($ticket); + unset ($_GET['ticket']); + } else if (preg_match('/^PT-/', $ticket)) { + phpCAS::trace('PT \'' . $ticket . '\' found'); $this->setPT($ticket); unset($_GET['ticket']); } else if ( !empty($ticket) ) { @@ -599,6 +680,16 @@ class CASClient phpCAS::error('ill-formed ticket found in the URL (ticket=`'.htmlentities($ticket).'\')'); } break; + case SAML_VERSION_1_1: // SAML just does Service Tickets + if( preg_match('/^[SP]T-/',$ticket) ) { + phpCAS::trace('SA \''.$ticket.'\' found'); + $this->setSA($ticket); + unset($_GET['ticket']); + } else if ( !empty($ticket) ) { + //ill-formed ticket, halt + phpCAS::error('ill-formed ticket found in the URL (ticket=`'.htmlentities($ticket).'\')'); + } + break; } } phpCAS::traceEnd(); @@ -652,6 +743,45 @@ class CASClient } return $this->_user; } + + + + /*********************************************************************************************************************** + * Atrributes section + * + * @author Matthias Crauwels , Ghent University, Belgium + * + ***********************************************************************************************************************/ + /** + * The Authenticated users attributes. Written by CASClient::setAttributes(), read by CASClient::getAttributes(). + * @attention client applications should use phpCAS::getAttributes(). + * + * @hideinitializer + * @private + */ + var $_attributes = array(); + + function setAttributes($attributes) + { $this->_attributes = $attributes; } + + function getAttributes() { + if ( empty($this->_user) ) { // if no user is set, there shouldn't be any attributes also... + phpCAS::error('this method should be used only after '.__CLASS__.'::forceAuthentication() or '.__CLASS__.'::isAuthenticated()'); + } + return $this->_attributes; + } + + function hasAttributes() + { return !empty($this->_attributes); } + + function hasAttribute($key) + { return (is_array($this->_attributes) && array_key_exists($key, $this->_attributes)); } + + function getAttribute($key) { + if($this->hasAttribute($key)) { + return $this->_attributes[$key]; + } + } /** * This method is called to renew the authentication of the user @@ -778,55 +908,72 @@ class CASClient * This method is called to check if the user is authenticated (previously or by * tickets given in the URL). * - * @return TRUE when the user is authenticated. + * @return TRUE when the user is authenticated. Also may redirect to the same URL without the ticket. * * @public */ function isAuthenticated() { - phpCAS::traceBegin(); - $res = FALSE; - $validate_url = ''; - - if ( $this->wasPreviouslyAuthenticated() ) { - // the user has already (previously during the session) been - // authenticated, nothing to be done. - phpCAS::trace('user was already authenticated, no need to look for tickets'); - $res = TRUE; - } - elseif ( $this->hasST() ) { - // if a Service Ticket was given, validate it - phpCAS::trace('ST `'.$this->getST().'\' is present'); - $this->validateST($validate_url,$text_response,$tree_response); // if it fails, it halts - phpCAS::trace('ST `'.$this->getST().'\' was validated'); - if ( $this->isProxy() ) { - $this->validatePGT($validate_url,$text_response,$tree_response); // idem - phpCAS::trace('PGT `'.$this->getPGT().'\' was validated'); - $_SESSION['phpCAS']['pgt'] = $this->getPGT(); + phpCAS::traceBegin(); + $res = FALSE; + $validate_url = ''; + + if ( $this->wasPreviouslyAuthenticated() ) { + // the user has already (previously during the session) been + // authenticated, nothing to be done. + phpCAS::trace('user was already authenticated, no need to look for tickets'); + $res = TRUE; } - $_SESSION['phpCAS']['user'] = $this->getUser(); - $res = TRUE; - } - elseif ( $this->hasPT() ) { - // if a Proxy Ticket was given, validate it - phpCAS::trace('PT `'.$this->getPT().'\' is present'); - $this->validatePT($validate_url,$text_response,$tree_response); // note: if it fails, it halts - phpCAS::trace('PT `'.$this->getPT().'\' was validated'); - if ( $this->isProxy() ) { - $this->validatePGT($validate_url,$text_response,$tree_response); // idem - phpCAS::trace('PGT `'.$this->getPGT().'\' was validated'); - $_SESSION['phpCAS']['pgt'] = $this->getPGT(); + else { + if ( $this->hasST() ) { + // if a Service Ticket was given, validate it + phpCAS::trace('ST `'.$this->getST().'\' is present'); + $this->validateST($validate_url,$text_response,$tree_response); // if it fails, it halts + phpCAS::trace('ST `'.$this->getST().'\' was validated'); + if ( $this->isProxy() ) { + $this->validatePGT($validate_url,$text_response,$tree_response); // idem + phpCAS::trace('PGT `'.$this->getPGT().'\' was validated'); + $_SESSION['phpCAS']['pgt'] = $this->getPGT(); + } + $_SESSION['phpCAS']['user'] = $this->getUser(); + $res = TRUE; + } + elseif ( $this->hasPT() ) { + // if a Proxy Ticket was given, validate it + phpCAS::trace('PT `'.$this->getPT().'\' is present'); + $this->validatePT($validate_url,$text_response,$tree_response); // note: if it fails, it halts + phpCAS::trace('PT `'.$this->getPT().'\' was validated'); + if ( $this->isProxy() ) { + $this->validatePGT($validate_url,$text_response,$tree_response); // idem + phpCAS::trace('PGT `'.$this->getPGT().'\' was validated'); + $_SESSION['phpCAS']['pgt'] = $this->getPGT(); + } + $_SESSION['phpCAS']['user'] = $this->getUser(); + $res = TRUE; + } + elseif ( $this->hasSA() ) { + // if we have a SAML ticket, validate it. + phpCAS::trace('SA `'.$this->getSA().'\' is present'); + $this->validateSA($validate_url,$text_response,$tree_response); // if it fails, it halts + phpCAS::trace('SA `'.$this->getSA().'\' was validated'); + $_SESSION['phpCAS']['user'] = $this->getUser(); + $_SESSION['phpCAS']['attributes'] = $this->getAttributes(); + $res = TRUE; + } + else { + // no ticket given, not authenticated + phpCAS::trace('no ticket found'); + } + if ($res) { + // if called with a ticket parameter, we need to redirect to the app without the ticket so that CAS-ification is transparent to the browser (for later POSTS) + // most of the checks and errors should have been made now, so we're safe for redirect without masking error messages. + header('Location: '.$this->getURL()); + phpCAS::log( "Prepare redirect to : ".$this->getURL() ); + } } - $_SESSION['phpCAS']['user'] = $this->getUser(); - $res = TRUE; - } - else { - // no ticket given, not authenticated - phpCAS::trace('no ticket found'); - } - - phpCAS::traceEnd($res); - return $res; + + phpCAS::traceEnd($res); + return $res; } /** @@ -889,6 +1036,9 @@ class CASClient if ( $this->isSessionAuthenticated() ) { // authentication already done $this->setUser($_SESSION['phpCAS']['user']); + if(isset($_SESSION['phpCAS']['attributes'])){ + $this->setAttributes($_SESSION['phpCAS']['attributes']); + } phpCAS::trace('user = `'.$_SESSION['phpCAS']['user'].'\''); $auth = TRUE; } else { @@ -917,6 +1067,7 @@ class CASClient printf('

'.$this->getString(CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED).'

',$cas_url); $this->printHTMLFooter(); + phpCAS::traceExit(); exit(); } @@ -962,11 +1113,15 @@ class CASClient $cas_url = $cas_url . $paramSeparator . "service=" . urlencode($params['service']); } header('Location: '.$cas_url); + phpCAS::log( "Prepare redirect to : ".$cas_url ); + session_unset(); session_destroy(); + $this->printHTMLHeader($this->getString(CAS_STR_LOGOUT)); printf('

'.$this->getString(CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED).'

',$cas_url); $this->printHTMLFooter(); + phpCAS::traceExit(); exit(); } @@ -1009,10 +1164,10 @@ class CASClient } $client_ip = $_SERVER['REMOTE_ADDR']; $client = gethostbyaddr($client_ip); - phpCAS::log("Client: ".$client); + phpCAS::log("Client: ".$client."/".$client_ip); $allowed = false; foreach ($allowed_clients as $allowed_client) { - if ($client == $allowed_client) { + if (($client == $allowed_client) or ($client_ip == $allowed_client)) { phpCAS::log("Allowed client '".$allowed_client."' matches, logout request is allowed"); $allowed = true; break; @@ -1284,6 +1439,151 @@ class CASClient phpCAS::traceEnd(TRUE); return TRUE; } + + // ######################################################################## + // SAML VALIDATION + // ######################################################################## + /** + * @addtogroup internalBasic + * @{ + */ + + /** + * This method is used to validate a SAML TICKET; halt on failure, and sets $validate_url, + * $text_reponse and $tree_response on success. These parameters are used later + * by CASClient::validatePGT() for CAS proxies. + * + * @param $validate_url the URL of the request to the CAS server. + * @param $text_response the response of the CAS server, as is (XML text). + * @param $tree_response the response of the CAS server, as a DOM XML tree. + * + * @return bool TRUE when successfull, halt otherwise by calling CASClient::authError(). + * + * @private + */ + function validateSA($validate_url,&$text_response,&$tree_response) + { + phpCAS::traceBegin(); + + // build the URL to validate the ticket + $validate_url = $this->getServerSamlValidateURL(); + + // open and read the URL + if ( !$this->readURL($validate_url,''/*cookies*/,$headers,$text_response,$err_msg) ) { + phpCAS::trace('could not open URL \''.$validate_url.'\' to validate ('.$err_msg.')'); + $this->authError('SA not validated', $validate_url, TRUE/*$no_response*/); + } + + phpCAS::trace('server version: '.$this->getServerVersion()); + + // analyze the result depending on the version + switch ($this->getServerVersion()) { + case SAML_VERSION_1_1: + + // read the response of the CAS server into a DOM object + if ( !($dom = domxml_open_mem($text_response))) { + phpCAS::trace('domxml_open_mem() failed'); + $this->authError('SA not validated', + $validate_url, + FALSE/*$no_response*/, + TRUE/*$bad_response*/, + $text_response); + } + // read the root node of the XML tree + if ( !($tree_response = $dom->document_element()) ) { + phpCAS::trace('document_element() failed'); + $this->authError('SA not validated', + $validate_url, + FALSE/*$no_response*/, + TRUE/*$bad_response*/, + $text_response); + } + // insure that tag name is 'Envelope' + if ( $tree_response->node_name() != 'Envelope' ) { + phpCAS::trace('bad XML root node (should be `Envelope\' instead of `'.$tree_response->node_name().'\''); + $this->authError('SA not validated', + $validate_url, + FALSE/*$no_response*/, + TRUE/*$bad_response*/, + $text_response); + } + // check for the NameIdentifier tag in the SAML response + if ( sizeof($success_elements = $tree_response->get_elements_by_tagname("NameIdentifier")) != 0) { + phpCAS::trace('NameIdentifier found'); + $user = trim($success_elements[0]->get_content()); + phpCAS::trace('user = `'.$user.'`'); + $this->setUser($user); + $this->setSessionAttributes($text_response); + } else { + phpCAS::trace('no tag found in SAML payload'); + $this->authError('SA not validated', + $validate_url, + FALSE/*$no_response*/, + TRUE/*$bad_response*/, + $text_response); + } + break; + } + + // at this step, ST has been validated and $this->_user has been set, + phpCAS::traceEnd(TRUE); + return TRUE; + } + + /** + * This method will parse the DOM and pull out the attributes from the SAML + * payload and put them into an array, then put the array into the session. + * + * @param $text_response the SAML payload. + * @return bool TRUE when successfull, halt otherwise by calling CASClient::authError(). + * + * @private + */ + function setSessionAttributes($text_response) + { + phpCAS::traceBegin(); + + $result = FALSE; + + if (isset($_SESSION[SAML_ATTRIBUTES])) { + phpCAS::trace("session attrs already set."); //testbml - do we care? + } + + $attr_array = array(); + + if (($dom = domxml_open_mem($text_response))) { + $xPath = $dom->xpath_new_context(); + $xPath->xpath_register_ns('samlp', 'urn:oasis:names:tc:SAML:1.0:protocol'); + $xPath->xpath_register_ns('saml', 'urn:oasis:names:tc:SAML:1.0:assertion'); + $nodelist = $xPath->xpath_eval("//saml:Attribute"); + $attrs = $nodelist->nodeset; + phpCAS::trace($text_response); + foreach($attrs as $attr){ + $xres = $xPath->xpath_eval("saml:AttributeValue", $attr); + $name = $attr->get_attribute("AttributeName"); + $value_array = array(); + foreach($xres->nodeset as $node){ + $value_array[] = $node->get_content(); + + } + phpCAS::trace("* " . $name . "=" . $value_array); + $attr_array[$name] = $value_array; + } + $_SESSION[SAML_ATTRIBUTES] = $attr_array; + // UGent addition... + foreach($attr_array as $attr_key => $attr_value) { + if(count($attr_value) > 1) { + $this->_attributes[$attr_key] = $attr_value; + } + else { + $this->_attributes[$attr_key] = $attr_value[0]; + } + } + $result = TRUE; + } + phpCAS::traceEnd($result); + return $result; + } /** @} */ @@ -1495,6 +1795,7 @@ class CASClient $this->storePGT($pgt,$pgt_iou); $this->printHTMLFooter(); phpCAS::traceExit(); + exit(); } /** @} */ @@ -1585,7 +1886,7 @@ class CASClient } // create the storage object - $this->_pgt_storage = &new PGTStorageFile($this,$format,$path); + $this->_pgt_storage = new PGTStorageFile($this,$format,$path); } /** @@ -1622,7 +1923,7 @@ class CASClient trigger_error('PGT storage into database is an experimental feature, use at your own risk',E_USER_WARNING); // create the storage object - $this->_pgt_storage = & new PGTStorageDB($this,$user,$password,$database_type,$hostname,$port,$database,$table); + $this->_pgt_storage = new PGTStorageDB($this,$user,$password,$database_type,$hostname,$port,$database,$table); } // ######################################################################## @@ -1643,7 +1944,8 @@ class CASClient */ function validatePGT(&$validate_url,$text_response,$tree_response) { - phpCAS::traceBegin(); + // here cannot use phpCAS::traceBegin(); alongside domxml-php4-to-php5.php + phpCAS::log('start validatePGT()'); if ( sizeof($arr = $tree_response->get_elements_by_tagname("proxyGrantingTicket")) == 0) { phpCAS::trace(' not found'); // authentication succeded, but no PGT Iou was transmitted @@ -1666,7 +1968,8 @@ class CASClient } $this->setPGT($pgt); } - phpCAS::traceEnd(TRUE); + // here, cannot use phpCAS::traceEnd(TRUE); alongside domxml-php4-to-php5.php + phpCAS::log('end validatePGT()'); return TRUE; } @@ -1819,7 +2122,15 @@ class CASClient if ($this->_cas_server_cert == '' && $this->_cas_server_ca_cert == '' && !$this->_no_cas_server_validation) { phpCAS::error('one of the methods phpCAS::setCasServerCert(), phpCAS::setCasServerCACert() or phpCAS::setNoCasServerValidation() must be called.'); } - if ($this->_cas_server_cert != '' ) { + if ($this->_cas_server_cert != '' && $this->_cas_server_ca_cert != '') { + // This branch added by IDMS. Seems phpCAS implementor got a bit confused about the curl options CURLOPT_SSLCERT and CURLOPT_CAINFO + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1); + curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1); + curl_setopt($ch, CURLOPT_SSLCERT, $this->_cas_server_cert); + curl_setopt($ch, CURLOPT_CAINFO, $this->_cas_server_ca_cert); + curl_setopt($ch, CURLOPT_VERBOSE, '1'); + phpCAS::trace('CURL: Set all required opts for mutual authentication ------'); + } else if ($this->_cas_server_cert != '' ) { curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1); curl_setopt($ch, CURLOPT_SSLCERT, $this->_cas_server_cert); } else if ($this->_cas_server_ca_cert != '') { @@ -1839,11 +2150,28 @@ class CASClient if ( is_array($cookies) ) { curl_setopt($ch,CURLOPT_COOKIE,implode(';',$cookies)); } + // add extra stuff if SAML + if ($this->hasSA()) { + $more_headers = array ("soapaction: http://www.oasis-open.org/committees/security", + "cache-control: no-cache", + "pragma: no-cache", + "accept: text/xml", + "connection: keep-alive", + "content-type: text/xml"); + + curl_setopt($ch, CURLOPT_HTTPHEADER, $more_headers); + curl_setopt($ch, CURLOPT_POST, 1); + $data = $this->buildSAMLPayload(); + //phpCAS::trace('SAML Payload: '.print_r($data, TRUE)); + curl_setopt($ch, CURLOPT_POSTFIELDS, $data); + } // perform the query $buf = curl_exec ($ch); + //phpCAS::trace('CURL: Call completed. Response body is: \''.$buf.'\''); if ( $buf === FALSE ) { phpCAS::trace('curl_exec() failed'); $err_msg = 'CURL error #'.curl_errno($ch).': '.curl_error($ch); + //phpCAS::trace('curl error: '.$err_msg); // close the CURL session curl_close ($ch); $res = FALSE; @@ -1858,7 +2186,28 @@ class CASClient phpCAS::traceEnd($res); return $res; } - + + /** + * This method is used to build the SAML POST body sent to /samlValidate URL. + * + * @return the SOAP-encased SAMLP artifact (the ticket). + * + * @private + */ + function buildSAMLPayload() + { + phpCAS::traceBegin(); + + //get the ticket + $sa = $this->getSA(); + //phpCAS::trace("SA: ".$sa); + + $body=SAML_SOAP_ENV.SAML_SOAP_BODY.SAMLP_REQUEST.SAML_ASSERTION_ARTIFACT.$sa.SAML_ASSERTION_ARTIFACT_CLOSE.SAMLP_REQUEST_CLOSE.SAML_SOAP_BODY_CLOSE.SAML_SOAP_ENV_CLOSE; + + phpCAS::traceEnd($body); + return ($body); + } + /** * This method is the callback used by readURL method to request HTTP headers. */ @@ -1951,6 +2300,7 @@ class CASClient * * @param $url a string giving the URL of the service, including the mailing box * for IMAP URLs, as accepted by imap_open(). + * @param $service a string giving for CAS retrieve Proxy ticket * @param $flags options given to imap_open(). * @param $err_code an error code Possible values are PHPCAS_SERVICE_OK (on * success), PHPCAS_SERVICE_PT_NO_SERVER_RESPONSE, PHPCAS_SERVICE_PT_BAD_SERVER_RESPONSE, @@ -1964,11 +2314,11 @@ class CASClient * * @public */ - function serviceMail($url,$flags,&$err_code,&$err_msg,&$pt) + function serviceMail($url,$service,$flags,&$err_code,&$err_msg,&$pt) { phpCAS::traceBegin(); // at first retrieve a PT - $pt = $this->retrievePT($target_service,$err_code,$output); + $pt = $this->retrievePT($service,$err_code,$output); $stream = FALSE; @@ -2049,7 +2399,30 @@ class CASClient */ function hasPT() { return !empty($this->_pt); } - + /** + * This method returns the SAML Ticket provided in the URL of the request. + * @return The SAML ticket. + * @private + */ + function getSA() + { return 'ST'.substr($this->_sa, 2); } + + /** + * This method stores the SAML Ticket. + * @param $sa The SAML Ticket. + * @private + */ + function setSA($sa) + { $this->_sa = $sa; } + + /** + * This method tells if a SAML Ticket was stored. + * @return TRUE if a SAML Ticket has been stored. + * @private + */ + function hasSA() + { return !empty($this->_sa); } + /** @} */ // ######################################################################## // PT VALIDATION @@ -2213,8 +2586,13 @@ class CASClient } } - $final_uri .= strtok($_SERVER['REQUEST_URI'],"?"); - $cgi_params = '?'.strtok("?"); + $php_is_for_sissies = split("\?", $_SERVER['REQUEST_URI'], 2); + $final_uri .= $php_is_for_sissies[0]; + if(sizeof($php_is_for_sissies) > 1){ + $cgi_params = '?' . $php_is_for_sissies[1]; + } else { + $cgi_params = '?'; + } // remove the ticket if present in the CGI parameters $cgi_params = preg_replace('/&ticket=[^&]*/','',$cgi_params); $cgi_params = preg_replace('/\?ticket=[^&;]*/','?',$cgi_params); @@ -2294,4 +2672,4 @@ class CASClient /** @} */ } -?> \ No newline at end of file +?> diff --git a/plugins/CasAuthentication/extlib/CAS/domxml-php4-php5.php b/plugins/CasAuthentication/extlib/CAS/domxml-php4-php5.php deleted file mode 100644 index a0dfb99c7..000000000 --- a/plugins/CasAuthentication/extlib/CAS/domxml-php4-php5.php +++ /dev/null @@ -1,277 +0,0 @@ - - * { - * if (version_compare(PHP_VERSION,'5','>=')) - * require_once('domxml-php4-to-php5.php'); - * } - * - * - * Version 1.5.5, 2005-01-18, http://alexandre.alapetite.net/doc-alex/domxml-php4-php5/ - * - * ------------------------------------------------------------------
- * Written by Alexandre Alapetite, http://alexandre.alapetite.net/cv/ - * - * Copyright 2004, Licence: Creative Commons "Attribution-ShareAlike 2.0 France" BY-SA (FR), - * http://creativecommons.org/licenses/by-sa/2.0/fr/ - * http://alexandre.alapetite.net/divers/apropos/#by-sa - * - Attribution. You must give the original author credit - * - Share Alike. If you alter, transform, or build upon this work, - * you may distribute the resulting work only under a license identical to this one - * - The French law is authoritative - * - Any of these conditions can be waived if you get permission from Alexandre Alapetite - * - Please send to Alexandre Alapetite the modifications you make, - * in order to improve this file for the benefit of everybody - * - * If you want to distribute this code, please do it as a link to: - * http://alexandre.alapetite.net/doc-alex/domxml-php4-php5/ - */ - -function domxml_new_doc($version) {return new php4DOMDocument('');} -function domxml_open_file($filename) {return new php4DOMDocument($filename);} -function domxml_open_mem($str) -{ - $dom=new php4DOMDocument(''); - $dom->myDOMNode->loadXML($str); - return $dom; -} -function xpath_eval($xpath_context,$eval_str,$contextnode=null) {return $xpath_context->query($eval_str,$contextnode);} -function xpath_new_context($dom_document) {return new php4DOMXPath($dom_document);} - -class php4DOMAttr extends php4DOMNode -{ - function php4DOMAttr($aDOMAttr) {$this->myDOMNode=$aDOMAttr;} - function Name() {return $this->myDOMNode->name;} - function Specified() {return $this->myDOMNode->specified;} - function Value() {return $this->myDOMNode->value;} -} - -class php4DOMDocument extends php4DOMNode -{ - function php4DOMDocument($filename='') - { - $this->myDOMNode=new DOMDocument(); - if ($filename!='') $this->myDOMNode->load($filename); - } - function create_attribute($name,$value) - { - $myAttr=$this->myDOMNode->createAttribute($name); - $myAttr->value=$value; - return new php4DOMAttr($myAttr,$this); - } - function create_cdata_section($content) {return new php4DOMNode($this->myDOMNode->createCDATASection($content),$this);} - function create_comment($data) {return new php4DOMNode($this->myDOMNode->createComment($data),$this);} - function create_element($name) {return new php4DOMElement($this->myDOMNode->createElement($name),$this);} - function create_text_node($content) {return new php4DOMNode($this->myDOMNode->createTextNode($content),$this);} - function document_element() {return new php4DOMElement($this->myDOMNode->documentElement,$this);} - function dump_file($filename,$compressionmode=false,$format=false) {return $this->myDOMNode->save($filename);} - function dump_mem($format=false,$encoding=false) {return $this->myDOMNode->saveXML();} - function get_element_by_id($id) {return new php4DOMElement($this->myDOMNode->getElementById($id),$this);} - function get_elements_by_tagname($name) - { - $myDOMNodeList=$this->myDOMNode->getElementsByTagName($name); - $nodeSet=array(); - $i=0; - if (isset($myDOMNodeList)) - while ($node=$myDOMNodeList->item($i)) - { - $nodeSet[]=new php4DOMElement($node,$this); - $i++; - } - return $nodeSet; - } - function html_dump_mem() {return $this->myDOMNode->saveHTML();} - function root() {return new php4DOMElement($this->myDOMNode->documentElement,$this);} -} - -class php4DOMElement extends php4DOMNode -{ - function get_attribute($name) {return $this->myDOMNode->getAttribute($name);} - function get_elements_by_tagname($name) - { - $myDOMNodeList=$this->myDOMNode->getElementsByTagName($name); - $nodeSet=array(); - $i=0; - if (isset($myDOMNodeList)) - while ($node=$myDOMNodeList->item($i)) - { - $nodeSet[]=new php4DOMElement($node,$this->myOwnerDocument); - $i++; - } - return $nodeSet; - } - function has_attribute($name) {return $this->myDOMNode->hasAttribute($name);} - function remove_attribute($name) {return $this->myDOMNode->removeAttribute($name);} - function set_attribute($name,$value) {return $this->myDOMNode->setAttribute($name,$value);} - function tagname() {return $this->myDOMNode->tagName;} -} - -class php4DOMNode -{ - var $myDOMNode; - var $myOwnerDocument; - function php4DOMNode($aDomNode,$aOwnerDocument) - { - $this->myDOMNode=$aDomNode; - $this->myOwnerDocument=$aOwnerDocument; - } - function __get($name) - { - if ($name=='type') return $this->myDOMNode->nodeType; - elseif ($name=='tagname') return $this->myDOMNode->tagName; - elseif ($name=='content') return $this->myDOMNode->textContent; - else - { - $myErrors=debug_backtrace(); - trigger_error('Undefined property: '.get_class($this).'::$'.$name.' ['.$myErrors[0]['file'].':'.$myErrors[0]['line'].']',E_USER_NOTICE); - return false; - } - } - function append_child($newnode) {return new php4DOMElement($this->myDOMNode->appendChild($newnode->myDOMNode),$this->myOwnerDocument);} - function append_sibling($newnode) {return new php4DOMElement($this->myDOMNode->parentNode->appendChild($newnode->myDOMNode),$this->myOwnerDocument);} - function attributes() - { - $myDOMNodeList=$this->myDOMNode->attributes; - $nodeSet=array(); - $i=0; - if (isset($myDOMNodeList)) - while ($node=$myDOMNodeList->item($i)) - { - $nodeSet[]=new php4DOMAttr($node,$this->myOwnerDocument); - $i++; - } - return $nodeSet; - } - function child_nodes() - { - $myDOMNodeList=$this->myDOMNode->childNodes; - $nodeSet=array(); - $i=0; - if (isset($myDOMNodeList)) - while ($node=$myDOMNodeList->item($i)) - { - $nodeSet[]=new php4DOMElement($node,$this->myOwnerDocument); - $i++; - } - return $nodeSet; - } - function children() {return $this->child_nodes();} - function clone_node($deep=false) {return new php4DOMElement($this->myDOMNode->cloneNode($deep),$this->myOwnerDocument);} - function first_child() {return new php4DOMElement($this->myDOMNode->firstChild,$this->myOwnerDocument);} - function get_content() {return $this->myDOMNode->textContent;} - function has_attributes() {return $this->myDOMNode->hasAttributes();} - function has_child_nodes() {return $this->myDOMNode->hasChildNodes();} - function insert_before($newnode,$refnode) {return new php4DOMElement($this->myDOMNode->insertBefore($newnode->myDOMNode,$refnode->myDOMNode),$this->myOwnerDocument);} - function is_blank_node() - { - $myDOMNodeList=$this->myDOMNode->childNodes; - $i=0; - if (isset($myDOMNodeList)) - while ($node=$myDOMNodeList->item($i)) - { - if (($node->nodeType==XML_ELEMENT_NODE)|| - (($node->nodeType==XML_TEXT_NODE)&&!ereg('^([[:cntrl:]]|[[:space:]])*$',$node->nodeValue))) - return false; - $i++; - } - return true; - } - function last_child() {return new php4DOMElement($this->myDOMNode->lastChild,$this->myOwnerDocument);} - function new_child($name,$content) - { - $mySubNode=$this->myDOMNode->ownerDocument->createElement($name); - $mySubNode->appendChild($this->myDOMNode->ownerDocument->createTextNode($content)); - $this->myDOMNode->appendChild($mySubNode); - return new php4DOMElement($mySubNode,$this->myOwnerDocument); - } - function next_sibling() {return new php4DOMElement($this->myDOMNode->nextSibling,$this->myOwnerDocument);} - function node_name() {return $this->myDOMNode->localName;} - function node_type() {return $this->myDOMNode->nodeType;} - function node_value() {return $this->myDOMNode->nodeValue;} - function owner_document() {return $this->myOwnerDocument;} - function parent_node() {return new php4DOMElement($this->myDOMNode->parentNode,$this->myOwnerDocument);} - function prefix() {return $this->myDOMNode->prefix;} - function previous_sibling() {return new php4DOMElement($this->myDOMNode->previousSibling,$this->myOwnerDocument);} - function remove_child($oldchild) {return new php4DOMElement($this->myDOMNode->removeChild($oldchild->myDOMNode),$this->myOwnerDocument);} - function replace_child($oldnode,$newnode) {return new php4DOMElement($this->myDOMNode->replaceChild($oldnode->myDOMNode,$newnode->myDOMNode),$this->myOwnerDocument);} - function set_content($text) - { - if (($this->myDOMNode->hasChildNodes())&&($this->myDOMNode->firstChild->nodeType==XML_TEXT_NODE)) - $this->myDOMNode->removeChild($this->myDOMNode->firstChild); - return $this->myDOMNode->appendChild($this->myDOMNode->ownerDocument->createTextNode($text)); - } -} - -class php4DOMNodelist -{ - var $myDOMNodelist; - var $nodeset; - function php4DOMNodelist($aDOMNodelist,$aOwnerDocument) - { - $this->myDOMNodelist=$aDOMNodelist; - $this->nodeset=array(); - $i=0; - if (isset($this->myDOMNodelist)) - while ($node=$this->myDOMNodelist->item($i)) - { - $this->nodeset[]=new php4DOMElement($node,$aOwnerDocument); - $i++; - } - } -} - -class php4DOMXPath -{ - var $myDOMXPath; - var $myOwnerDocument; - function php4DOMXPath($dom_document) - { - $this->myOwnerDocument=$dom_document; - $this->myDOMXPath=new DOMXPath($dom_document->myDOMNode); - } - function query($eval_str,$contextnode) - { - if (isset($contextnode)) return new php4DOMNodelist($this->myDOMXPath->query($eval_str,$contextnode->myDOMNode),$this->myOwnerDocument); - else return new php4DOMNodelist($this->myDOMXPath->query($eval_str),$this->myOwnerDocument); - } - function xpath_register_ns($prefix,$namespaceURI) {return $this->myDOMXPath->registerNamespace($prefix,$namespaceURI);} -} - -if (extension_loaded('xsl')) -{//See also: http://alexandre.alapetite.net/doc-alex/xslt-php4-php5/ - function domxml_xslt_stylesheet($xslstring) {return new php4DomXsltStylesheet(DOMDocument::loadXML($xslstring));} - function domxml_xslt_stylesheet_doc($dom_document) {return new php4DomXsltStylesheet($dom_document);} - function domxml_xslt_stylesheet_file($xslfile) {return new php4DomXsltStylesheet(DOMDocument::load($xslfile));} - class php4DomXsltStylesheet - { - var $myxsltProcessor; - function php4DomXsltStylesheet($dom_document) - { - $this->myxsltProcessor=new xsltProcessor(); - $this->myxsltProcessor->importStyleSheet($dom_document); - } - function process($dom_document,$xslt_parameters=array(),$param_is_xpath=false) - { - foreach ($xslt_parameters as $param=>$value) - $this->myxsltProcessor->setParameter('',$param,$value); - $myphp4DOMDocument=new php4DOMDocument(); - $myphp4DOMDocument->myDOMNode=$this->myxsltProcessor->transformToDoc($dom_document->myDOMNode); - return $myphp4DOMDocument; - } - function result_dump_file($dom_document,$filename) - { - $html=$dom_document->myDOMNode->saveHTML(); - file_put_contents($filename,$html); - return $html; - } - function result_dump_mem($dom_document) {return $dom_document->myDOMNode->saveHTML();} - } -} -?> \ No newline at end of file diff --git a/plugins/CasAuthentication/extlib/CAS/domxml-php4-to-php5.php b/plugins/CasAuthentication/extlib/CAS/domxml-php4-to-php5.php new file mode 100644 index 000000000..1dc4e4b97 --- /dev/null +++ b/plugins/CasAuthentication/extlib/CAS/domxml-php4-to-php5.php @@ -0,0 +1,499 @@ +=5.1 for XPath evaluation functions, and PHP>=5.1/libxml for DOMXML error reports) + + Typical use: + { + if (PHP_VERSION>='5') + require_once('domxml-php4-to-php5.php'); + } + + Version 1.21, 2008-12-05, http://alexandre.alapetite.net/doc-alex/domxml-php4-php5/ + + ------------------------------------------------------------------ + Written by Alexandre Alapetite, http://alexandre.alapetite.net/cv/ + + Copyright 2004-2008, GNU Lesser General Public License, + http://www.gnu.org/licenses/lgpl.html + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser 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 Lesser General Public License for more details. + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see + + == Rights and obligations == + - Attribution: You must give the original author credit. + - Share Alike: If you alter or transform this library, + you may distribute the resulting library only under the same license GNU/LGPL. + - In case of jurisdiction dispute, the French law is authoritative. + - Any of these conditions can be waived if you get permission from Alexandre Alapetite. + - Not required, but please send to Alexandre Alapetite the modifications you make, + in order to improve this file for the benefit of everybody. + + If you want to distribute this code, please do it as a link to: + http://alexandre.alapetite.net/doc-alex/domxml-php4-php5/ +*/ + +define('DOMXML_LOAD_PARSING',0); +define('DOMXML_LOAD_VALIDATING',1); +define('DOMXML_LOAD_RECOVERING',2); +define('DOMXML_LOAD_SUBSTITUTE_ENTITIES',4); +//define('DOMXML_LOAD_COMPLETE_ATTRS',8); +define('DOMXML_LOAD_DONT_KEEP_BLANKS',16); + +function domxml_new_doc($version) {return new php4DOMDocument();} +function domxml_new_xmldoc($version) {return new php4DOMDocument();} +function domxml_open_file($filename,$mode=DOMXML_LOAD_PARSING,&$error=null) +{ + $dom=new php4DOMDocument($mode); + $errorMode=(func_num_args()>2)&&defined('LIBXML_VERSION'); + if ($errorMode) libxml_use_internal_errors(true); + if (!$dom->myDOMNode->load($filename)) $dom=null; + if ($errorMode) + { + $error=array_map('_error_report',libxml_get_errors()); + libxml_clear_errors(); + } + return $dom; +} +function domxml_open_mem($str,$mode=DOMXML_LOAD_PARSING,&$error=null) +{ + $dom=new php4DOMDocument($mode); + $errorMode=(func_num_args()>2)&&defined('LIBXML_VERSION'); + if ($errorMode) libxml_use_internal_errors(true); + if (!$dom->myDOMNode->loadXML($str)) $dom=null; + if ($errorMode) + { + $error=array_map('_error_report',libxml_get_errors()); + libxml_clear_errors(); + } + return $dom; +} +function html_doc($html_doc,$from_file=false) +{ + $dom=new php4DOMDocument(); + if ($from_file) $result=$dom->myDOMNode->loadHTMLFile($html_doc); + else $result=$dom->myDOMNode->loadHTML($html_doc); + return $result ? $dom : null; +} +function html_doc_file($filename) {return html_doc($filename,true);} +function xmldoc($str) {return domxml_open_mem($str);} +function xmldocfile($filename) {return domxml_open_file($filename);} +function xpath_eval($xpath_context,$eval_str,$contextnode=null) {return $xpath_context->xpath_eval($eval_str,$contextnode);} +function xpath_new_context($dom_document) {return new php4DOMXPath($dom_document);} +function xpath_register_ns($xpath_context,$prefix,$namespaceURI) {return $xpath_context->myDOMXPath->registerNamespace($prefix,$namespaceURI);} +function _entityDecode($text) {return html_entity_decode(strtr($text,array('''=>'\'')),ENT_QUOTES,'UTF-8');} +function _error_report($error) {return array('errormessage'=>$error->message,'nodename'=>'','line'=>$error->line,'col'=>$error->column)+($error->file==''?array():array('directory'=>dirname($error->file),'file'=>basename($error->file)));} + +class php4DOMAttr extends php4DOMNode +{ + function __get($name) + { + if ($name==='name') return $this->myDOMNode->name; + else return parent::__get($name); + } + function name() {return $this->myDOMNode->name;} + function set_content($text) {} + //function set_value($content) {return $this->myDOMNode->value=htmlspecialchars($content,ENT_QUOTES);} + function specified() {return $this->myDOMNode->specified;} + function value() {return $this->myDOMNode->value;} +} + +class php4DOMDocument extends php4DOMNode +{ + function php4DOMDocument($mode=DOMXML_LOAD_PARSING) + { + $this->myDOMNode=new DOMDocument(); + $this->myOwnerDocument=$this; + if ($mode & DOMXML_LOAD_VALIDATING) $this->myDOMNode->validateOnParse=true; + if ($mode & DOMXML_LOAD_RECOVERING) $this->myDOMNode->recover=true; + if ($mode & DOMXML_LOAD_SUBSTITUTE_ENTITIES) $this->myDOMNode->substituteEntities=true; + if ($mode & DOMXML_LOAD_DONT_KEEP_BLANKS) $this->myDOMNode->preserveWhiteSpace=false; + } + function add_root($name) + { + if ($this->myDOMNode->hasChildNodes()) $this->myDOMNode->removeChild($this->myDOMNode->firstChild); + return new php4DOMElement($this->myDOMNode->appendChild($this->myDOMNode->createElement($name)),$this->myOwnerDocument); + } + function create_attribute($name,$value) + { + $myAttr=$this->myDOMNode->createAttribute($name); + $myAttr->value=htmlspecialchars($value,ENT_QUOTES); + return new php4DOMAttr($myAttr,$this); + } + function create_cdata_section($content) {return new php4DOMNode($this->myDOMNode->createCDATASection($content),$this);} + function create_comment($data) {return new php4DOMNode($this->myDOMNode->createComment($data),$this);} + function create_element($name) {return new php4DOMElement($this->myDOMNode->createElement($name),$this);} + function create_element_ns($uri,$name,$prefix=null) + { + if ($prefix==null) $prefix=$this->myDOMNode->lookupPrefix($uri); + if (($prefix==null)&&(($this->myDOMNode->documentElement==null)||(!$this->myDOMNode->documentElement->isDefaultNamespace($uri)))) $prefix='a'.sprintf('%u',crc32($uri)); + return new php4DOMElement($this->myDOMNode->createElementNS($uri,$prefix==null ? $name : $prefix.':'.$name),$this); + } + function create_entity_reference($content) {return new php4DOMNode($this->myDOMNode->createEntityReference($content),$this);} //By Walter Ebert 2007-01-22 + function create_processing_instruction($target,$data=''){return new php4DomProcessingInstruction($this->myDOMNode->createProcessingInstruction($target,$data),$this);} + function create_text_node($content) {return new php4DOMText($this->myDOMNode->createTextNode($content),$this);} + function document_element() {return parent::_newDOMElement($this->myDOMNode->documentElement,$this);} + function dump_file($filename,$compressionmode=false,$format=false) + { + $format0=$this->myDOMNode->formatOutput; + $this->myDOMNode->formatOutput=$format; + $res=$this->myDOMNode->save($filename); + $this->myDOMNode->formatOutput=$format0; + return $res; + } + function dump_mem($format=false,$encoding=false) + { + $format0=$this->myDOMNode->formatOutput; + $this->myDOMNode->formatOutput=$format; + $encoding0=$this->myDOMNode->encoding; + if ($encoding) $this->myDOMNode->encoding=$encoding; + $dump=$this->myDOMNode->saveXML(); + $this->myDOMNode->formatOutput=$format0; + if ($encoding) $this->myDOMNode->encoding= $encoding0=='' ? 'UTF-8' : $encoding0; //UTF-8 is XML default encoding + return $dump; + } + function free() + { + if ($this->myDOMNode->hasChildNodes()) $this->myDOMNode->removeChild($this->myDOMNode->firstChild); + $this->myDOMNode=null; + $this->myOwnerDocument=null; + } + function get_element_by_id($id) {return parent::_newDOMElement($this->myDOMNode->getElementById($id),$this);} + function get_elements_by_tagname($name) + { + $myDOMNodeList=$this->myDOMNode->getElementsByTagName($name); + $nodeSet=array(); + $i=0; + if (isset($myDOMNodeList)) + while ($node=$myDOMNodeList->item($i++)) $nodeSet[]=new php4DOMElement($node,$this); + return $nodeSet; + } + function html_dump_mem() {return $this->myDOMNode->saveHTML();} + function root() {return parent::_newDOMElement($this->myDOMNode->documentElement,$this);} + function xinclude() {return $this->myDOMNode->xinclude();} + function xpath_new_context() {return new php4DOMXPath($this);} +} + +class php4DOMElement extends php4DOMNode +{ + function add_namespace($uri,$prefix) + { + if ($this->myDOMNode->hasAttributeNS('http://www.w3.org/2000/xmlns/',$prefix)) return false; + else + { + $this->myDOMNode->setAttributeNS('http://www.w3.org/2000/xmlns/','xmlns:'.$prefix,$uri); //By Daniel Walker 2006-09-08 + return true; + } + } + function get_attribute($name) {return $this->myDOMNode->getAttribute($name);} + function get_attribute_node($name) {return parent::_newDOMElement($this->myDOMNode->getAttributeNode($name),$this->myOwnerDocument);} + function get_elements_by_tagname($name) + { + $myDOMNodeList=$this->myDOMNode->getElementsByTagName($name); + $nodeSet=array(); + $i=0; + if (isset($myDOMNodeList)) + while ($node=$myDOMNodeList->item($i++)) $nodeSet[]=new php4DOMElement($node,$this->myOwnerDocument); + return $nodeSet; + } + function has_attribute($name) {return $this->myDOMNode->hasAttribute($name);} + function remove_attribute($name) {return $this->myDOMNode->removeAttribute($name);} + function set_attribute($name,$value) + { + //return $this->myDOMNode->setAttribute($name,$value); //Does not return a DomAttr + $myAttr=$this->myDOMNode->ownerDocument->createAttribute($name); + $myAttr->value=htmlspecialchars($value,ENT_QUOTES); //Entity problem reported by AL-DesignWorks 2007-09-07 + $this->myDOMNode->setAttributeNode($myAttr); + return new php4DOMAttr($myAttr,$this->myOwnerDocument); + } + /*function set_attribute_node($attr) + { + $this->myDOMNode->setAttributeNode($this->_importNode($attr)); + return $attr; + }*/ + function set_name($name) + { + if ($this->myDOMNode->prefix=='') $newNode=$this->myDOMNode->ownerDocument->createElement($name); + else $newNode=$this->myDOMNode->ownerDocument->createElementNS($this->myDOMNode->namespaceURI,$this->myDOMNode->prefix.':'.$name); + $myDOMNodeList=$this->myDOMNode->attributes; + $i=0; + if (isset($myDOMNodeList)) + while ($node=$myDOMNodeList->item($i++)) + if ($node->namespaceURI=='') $newNode->setAttribute($node->name,$node->value); + else $newNode->setAttributeNS($node->namespaceURI,$node->nodeName,$node->value); + $myDOMNodeList=$this->myDOMNode->childNodes; + if (isset($myDOMNodeList)) + while ($node=$myDOMNodeList->item(0)) $newNode->appendChild($node); + $this->myDOMNode->parentNode->replaceChild($newNode,$this->myDOMNode); + $this->myDOMNode=$newNode; + return true; + } + function tagname() {return $this->tagname;} +} + +class php4DOMNode +{ + public $myDOMNode; + public $myOwnerDocument; + function php4DOMNode($aDomNode,$aOwnerDocument) + { + $this->myDOMNode=$aDomNode; + $this->myOwnerDocument=$aOwnerDocument; + } + function __get($name) + { + switch ($name) + { + case 'type': return $this->myDOMNode->nodeType; + case 'tagname': return ($this->myDOMNode->nodeType===XML_ELEMENT_NODE) ? $this->myDOMNode->localName : $this->myDOMNode->tagName; //Avoid namespace prefix for DOMElement + case 'content': return $this->myDOMNode->textContent; + case 'value': return $this->myDOMNode->value; + default: + $myErrors=debug_backtrace(); + trigger_error('Undefined property: '.get_class($this).'::$'.$name.' ['.$myErrors[0]['file'].':'.$myErrors[0]['line'].']',E_USER_NOTICE); + return false; + } + } + function add_child($newnode) {return append_child($newnode);} + function add_namespace($uri,$prefix) {return false;} + function append_child($newnode) {return self::_newDOMElement($this->myDOMNode->appendChild($this->_importNode($newnode)),$this->myOwnerDocument);} + function append_sibling($newnode) {return self::_newDOMElement($this->myDOMNode->parentNode->appendChild($this->_importNode($newnode)),$this->myOwnerDocument);} + function attributes() + { + $myDOMNodeList=$this->myDOMNode->attributes; + if (!(isset($myDOMNodeList)&&$this->myDOMNode->hasAttributes())) return null; + $nodeSet=array(); + $i=0; + while ($node=$myDOMNodeList->item($i++)) $nodeSet[]=new php4DOMAttr($node,$this->myOwnerDocument); + return $nodeSet; + } + function child_nodes() + { + $myDOMNodeList=$this->myDOMNode->childNodes; + $nodeSet=array(); + $i=0; + if (isset($myDOMNodeList)) + while ($node=$myDOMNodeList->item($i++)) $nodeSet[]=self::_newDOMElement($node,$this->myOwnerDocument); + return $nodeSet; + } + function children() {return $this->child_nodes();} + function clone_node($deep=false) {return self::_newDOMElement($this->myDOMNode->cloneNode($deep),$this->myOwnerDocument);} + //dump_node($node) should only be called on php4DOMDocument + function dump_node($node=null) {return $node==null ? $this->myOwnerDocument->myDOMNode->saveXML($this->myDOMNode) : $this->myOwnerDocument->myDOMNode->saveXML($node->myDOMNode);} + function first_child() {return self::_newDOMElement($this->myDOMNode->firstChild,$this->myOwnerDocument);} + function get_content() {return $this->myDOMNode->textContent;} + function has_attributes() {return $this->myDOMNode->hasAttributes();} + function has_child_nodes() {return $this->myDOMNode->hasChildNodes();} + function insert_before($newnode,$refnode) {return self::_newDOMElement($this->myDOMNode->insertBefore($this->_importNode($newnode),$refnode==null?null:$refnode->myDOMNode),$this->myOwnerDocument);} + function is_blank_node() {return ($this->myDOMNode->nodeType===XML_TEXT_NODE)&&preg_match('%^\s*$%',$this->myDOMNode->nodeValue);} + function last_child() {return self::_newDOMElement($this->myDOMNode->lastChild,$this->myOwnerDocument);} + function new_child($name,$content) + { + $mySubNode=$this->myDOMNode->ownerDocument->createElement($name); + $mySubNode->appendChild($this->myDOMNode->ownerDocument->createTextNode(_entityDecode($content))); + $this->myDOMNode->appendChild($mySubNode); + return new php4DOMElement($mySubNode,$this->myOwnerDocument); + } + function next_sibling() {return self::_newDOMElement($this->myDOMNode->nextSibling,$this->myOwnerDocument);} + function node_name() {return ($this->myDOMNode->nodeType===XML_ELEMENT_NODE) ? $this->myDOMNode->localName : $this->myDOMNode->nodeName;} //Avoid namespace prefix for DOMElement + function node_type() {return $this->myDOMNode->nodeType;} + function node_value() {return $this->myDOMNode->nodeValue;} + function owner_document() {return $this->myOwnerDocument;} + function parent_node() {return self::_newDOMElement($this->myDOMNode->parentNode,$this->myOwnerDocument);} + function prefix() {return $this->myDOMNode->prefix;} + function previous_sibling() {return self::_newDOMElement($this->myDOMNode->previousSibling,$this->myOwnerDocument);} + function remove_child($oldchild) {return self::_newDOMElement($this->myDOMNode->removeChild($oldchild->myDOMNode),$this->myOwnerDocument);} + function replace_child($newnode,$oldnode) {return self::_newDOMElement($this->myDOMNode->replaceChild($this->_importNode($newnode),$oldnode->myDOMNode),$this->myOwnerDocument);} + function replace_node($newnode) {return self::_newDOMElement($this->myDOMNode->parentNode->replaceChild($this->_importNode($newnode),$this->myDOMNode),$this->myOwnerDocument);} + function set_content($text) {return $this->myDOMNode->appendChild($this->myDOMNode->ownerDocument->createTextNode(_entityDecode($text)));} //Entity problem reported by AL-DesignWorks 2007-09-07 + //function set_name($name) {return $this->myOwnerDocument->renameNode($this->myDOMNode,$this->myDOMNode->namespaceURI,$name);} + function set_namespace($uri,$prefix=null) + {//Contributions by Daniel Walker 2006-09-08 + $nsprefix=$this->myDOMNode->lookupPrefix($uri); + if ($nsprefix==null) + { + $nsprefix= $prefix==null ? $nsprefix='a'.sprintf('%u',crc32($uri)) : $prefix; + if ($this->myDOMNode->nodeType===XML_ATTRIBUTE_NODE) + { + if (($prefix!=null)&&$this->myDOMNode->ownerElement->hasAttributeNS('http://www.w3.org/2000/xmlns/',$nsprefix)&& + ($this->myDOMNode->ownerElement->getAttributeNS('http://www.w3.org/2000/xmlns/',$nsprefix)!=$uri)) + {//Remove namespace + $parent=$this->myDOMNode->ownerElement; + $parent->removeAttributeNode($this->myDOMNode); + $parent->setAttribute($this->myDOMNode->localName,$this->myDOMNode->nodeValue); + $this->myDOMNode=$parent->getAttributeNode($this->myDOMNode->localName); + return; + } + $this->myDOMNode->ownerElement->setAttributeNS('http://www.w3.org/2000/xmlns/','xmlns:'.$nsprefix,$uri); + } + } + if ($this->myDOMNode->nodeType===XML_ATTRIBUTE_NODE) + { + $parent=$this->myDOMNode->ownerElement; + $parent->removeAttributeNode($this->myDOMNode); + $parent->setAttributeNS($uri,$nsprefix.':'.$this->myDOMNode->localName,$this->myDOMNode->nodeValue); + $this->myDOMNode=$parent->getAttributeNodeNS($uri,$this->myDOMNode->localName); + } + elseif ($this->myDOMNode->nodeType===XML_ELEMENT_NODE) + { + $NewNode=$this->myDOMNode->ownerDocument->createElementNS($uri,$nsprefix.':'.$this->myDOMNode->localName); + foreach ($this->myDOMNode->attributes as $n) $NewNode->appendChild($n->cloneNode(true)); + foreach ($this->myDOMNode->childNodes as $n) $NewNode->appendChild($n->cloneNode(true)); + $xpath=new DOMXPath($this->myDOMNode->ownerDocument); + $myDOMNodeList=$xpath->query('namespace::*[name()!="xml"]',$this->myDOMNode); //Add old namespaces + foreach ($myDOMNodeList as $n) $NewNode->setAttributeNS('http://www.w3.org/2000/xmlns/',$n->nodeName,$n->nodeValue); + $this->myDOMNode->parentNode->replaceChild($NewNode,$this->myDOMNode); + $this->myDOMNode=$NewNode; + } + } + function unlink_node() + { + if ($this->myDOMNode->parentNode!=null) + { + if ($this->myDOMNode->nodeType===XML_ATTRIBUTE_NODE) $this->myDOMNode->parentNode->removeAttributeNode($this->myDOMNode); + else $this->myDOMNode->parentNode->removeChild($this->myDOMNode); + } + } + protected function _importNode($newnode) {return $this->myOwnerDocument===$newnode->myOwnerDocument ? $newnode->myDOMNode : $this->myOwnerDocument->myDOMNode->importNode($newnode->myDOMNode,true);} //To import DOMNode from another DOMDocument + static function _newDOMElement($aDOMNode,$aOwnerDocument) + {//Check the PHP5 DOMNode before creating a new associated PHP4 DOMNode wrapper + if ($aDOMNode==null) return null; + switch ($aDOMNode->nodeType) + { + case XML_ELEMENT_NODE: return new php4DOMElement($aDOMNode,$aOwnerDocument); + case XML_TEXT_NODE: return new php4DOMText($aDOMNode,$aOwnerDocument); + case XML_ATTRIBUTE_NODE: return new php4DOMAttr($aDOMNode,$aOwnerDocument); + case XML_PI_NODE: return new php4DomProcessingInstruction($aDOMNode,$aOwnerDocument); + default: return new php4DOMNode($aDOMNode,$aOwnerDocument); + } + } +} + +class php4DomProcessingInstruction extends php4DOMNode +{ + function data() {return $this->myDOMNode->data;} + function target() {return $this->myDOMNode->target;} +} + +class php4DOMText extends php4DOMNode +{ + function __get($name) + { + if ($name==='tagname') return '#text'; + else return parent::__get($name); + } + function tagname() {return '#text';} + function set_content($text) {$this->myDOMNode->nodeValue=$text; return true;} +} + +if (!defined('XPATH_NODESET')) +{ + define('XPATH_UNDEFINED',0); + define('XPATH_NODESET',1); + define('XPATH_BOOLEAN',2); + define('XPATH_NUMBER',3); + define('XPATH_STRING',4); + /*define('XPATH_POINT',5); + define('XPATH_RANGE',6); + define('XPATH_LOCATIONSET',7); + define('XPATH_USERS',8); + define('XPATH_XSLT_TREE',9);*/ +} + +class php4DOMNodelist +{ + private $myDOMNodelist; + public $nodeset; + public $type=XPATH_UNDEFINED; + public $value; + function php4DOMNodelist($aDOMNodelist,$aOwnerDocument) + { + if (!isset($aDOMNodelist)) return; + elseif (is_object($aDOMNodelist)||is_array($aDOMNodelist)) + { + if ($aDOMNodelist->length>0) + { + $this->myDOMNodelist=$aDOMNodelist; + $this->nodeset=array(); + $this->type=XPATH_NODESET; + $i=0; + while ($node=$this->myDOMNodelist->item($i++)) $this->nodeset[]=php4DOMNode::_newDOMElement($node,$aOwnerDocument); + } + } + elseif (is_int($aDOMNodelist)||is_float($aDOMNodelist)) + { + $this->type=XPATH_NUMBER; + $this->value=$aDOMNodelist; + } + elseif (is_bool($aDOMNodelist)) + { + $this->type=XPATH_BOOLEAN; + $this->value=$aDOMNodelist; + } + elseif (is_string($aDOMNodelist)) + { + $this->type=XPATH_STRING; + $this->value=$aDOMNodelist; + } + } +} + +class php4DOMXPath +{ + public $myDOMXPath; + private $myOwnerDocument; + function php4DOMXPath($dom_document) + { + //TODO: If $dom_document is a DomElement, make that default $contextnode and modify XPath. Ex: '/test' + $this->myOwnerDocument=$dom_document->myOwnerDocument; + $this->myDOMXPath=new DOMXPath($this->myOwnerDocument->myDOMNode); + } + function xpath_eval($eval_str,$contextnode=null) + { + if (method_exists($this->myDOMXPath,'evaluate')) $xp=isset($contextnode) ? $this->myDOMXPath->evaluate($eval_str,$contextnode->myDOMNode) : $this->myDOMXPath->evaluate($eval_str); + else $xp=isset($contextnode) ? $this->myDOMXPath->query($eval_str,$contextnode->myDOMNode) : $this->myDOMXPath->query($eval_str); + $xp=new php4DOMNodelist($xp,$this->myOwnerDocument); + return ($xp->type===XPATH_UNDEFINED) ? false : $xp; + } + function xpath_register_ns($prefix,$namespaceURI) {return $this->myDOMXPath->registerNamespace($prefix,$namespaceURI);} +} + +if (extension_loaded('xsl')) +{//See also: http://alexandre.alapetite.net/doc-alex/xslt-php4-php5/ + function domxml_xslt_stylesheet($xslstring) {return new php4DomXsltStylesheet(DOMDocument::loadXML($xslstring));} + function domxml_xslt_stylesheet_doc($dom_document) {return new php4DomXsltStylesheet($dom_document);} + function domxml_xslt_stylesheet_file($xslfile) {return new php4DomXsltStylesheet(DOMDocument::load($xslfile));} + class php4DomXsltStylesheet + { + private $myxsltProcessor; + function php4DomXsltStylesheet($dom_document) + { + $this->myxsltProcessor=new xsltProcessor(); + $this->myxsltProcessor->importStyleSheet($dom_document); + } + function process($dom_document,$xslt_parameters=array(),$param_is_xpath=false) + { + foreach ($xslt_parameters as $param=>$value) $this->myxsltProcessor->setParameter('',$param,$value); + $myphp4DOMDocument=new php4DOMDocument(); + $myphp4DOMDocument->myDOMNode=$this->myxsltProcessor->transformToDoc($dom_document->myDOMNode); + return $myphp4DOMDocument; + } + function result_dump_file($dom_document,$filename) + { + $html=$dom_document->myDOMNode->saveHTML(); + file_put_contents($filename,$html); + return $html; + } + function result_dump_mem($dom_document) {return $dom_document->myDOMNode->saveHTML();} + } +} +?> diff --git a/plugins/CasAuthentication/extlib/CAS/languages/catalan.php b/plugins/CasAuthentication/extlib/CAS/languages/catalan.php index 0b139c7ca..3d67473d9 100644 --- a/plugins/CasAuthentication/extlib/CAS/languages/catalan.php +++ b/plugins/CasAuthentication/extlib/CAS/languages/catalan.php @@ -1,27 +1,27 @@ - - * @sa @link internalLang Internationalization @endlink - * @ingroup internalLang - */ - -$this->_strings = array( - CAS_STR_USING_SERVER - => 'usant servidor', - CAS_STR_AUTHENTICATION_WANTED - => 'Autentificació CAS necessària!', - CAS_STR_LOGOUT - => 'Sortida de CAS necessària!', - CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED - => 'Ja hauria d\ haver estat redireccionat al servidor CAS. Feu click aquí per a continuar.', - CAS_STR_AUTHENTICATION_FAILED - => 'Autentificació CAS fallida!', - CAS_STR_YOU_WERE_NOT_AUTHENTICATED - => '

No estàs autentificat.

Pots tornar a intentar-ho fent click aquí.

Si el problema persisteix hauría de contactar amb l\'administrador d\'aquest llocc.

', - CAS_STR_SERVICE_UNAVAILABLE - => 'El servei `%s\' no està disponible (%s).' -); - -?> + + * @sa @link internalLang Internationalization @endlink + * @ingroup internalLang + */ + +$this->_strings = array( + CAS_STR_USING_SERVER + => 'usant servidor', + CAS_STR_AUTHENTICATION_WANTED + => 'Autentificació CAS necessària!', + CAS_STR_LOGOUT + => 'Sortida de CAS necessària!', + CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED + => 'Ja hauria d\ haver estat redireccionat al servidor CAS. Feu click aquí per a continuar.', + CAS_STR_AUTHENTICATION_FAILED + => 'Autentificació CAS fallida!', + CAS_STR_YOU_WERE_NOT_AUTHENTICATED + => '

No estàs autentificat.

Pots tornar a intentar-ho fent click aquí.

Si el problema persisteix hauría de contactar amb l\'administrador d\'aquest llocc.

', + CAS_STR_SERVICE_UNAVAILABLE + => 'El servei `%s\' no està disponible (%s).' +); + +?> diff --git a/plugins/CasAuthentication/extlib/CAS/languages/english.php b/plugins/CasAuthentication/extlib/CAS/languages/english.php index d38d42c1f..c14345031 100644 --- a/plugins/CasAuthentication/extlib/CAS/languages/english.php +++ b/plugins/CasAuthentication/extlib/CAS/languages/english.php @@ -1,27 +1,27 @@ - - * @sa @link internalLang Internationalization @endlink - * @ingroup internalLang - */ - -$this->_strings = array( - CAS_STR_USING_SERVER - => 'using server', - CAS_STR_AUTHENTICATION_WANTED - => 'CAS Authentication wanted!', - CAS_STR_LOGOUT - => 'CAS logout wanted!', - CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED - => 'You should already have been redirected to the CAS server. Click here to continue.', - CAS_STR_AUTHENTICATION_FAILED - => 'CAS Authentication failed!', - CAS_STR_YOU_WERE_NOT_AUTHENTICATED - => '

You were not authenticated.

You may submit your request again by clicking here.

If the problem persists, you may contact the administrator of this site.

', - CAS_STR_SERVICE_UNAVAILABLE - => 'The service `%s\' is not available (%s).' -); - + + * @sa @link internalLang Internationalization @endlink + * @ingroup internalLang + */ + +$this->_strings = array( + CAS_STR_USING_SERVER + => 'using server', + CAS_STR_AUTHENTICATION_WANTED + => 'CAS Authentication wanted!', + CAS_STR_LOGOUT + => 'CAS logout wanted!', + CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED + => 'You should already have been redirected to the CAS server. Click here to continue.', + CAS_STR_AUTHENTICATION_FAILED + => 'CAS Authentication failed!', + CAS_STR_YOU_WERE_NOT_AUTHENTICATED + => '

You were not authenticated.

You may submit your request again by clicking here.

If the problem persists, you may contact the administrator of this site.

', + CAS_STR_SERVICE_UNAVAILABLE + => 'The service `%s\' is not available (%s).' +); + ?> \ No newline at end of file diff --git a/plugins/CasAuthentication/extlib/CAS/languages/french.php b/plugins/CasAuthentication/extlib/CAS/languages/french.php index 32d141685..b077ec02e 100644 --- a/plugins/CasAuthentication/extlib/CAS/languages/french.php +++ b/plugins/CasAuthentication/extlib/CAS/languages/french.php @@ -1,28 +1,28 @@ - - * @sa @link internalLang Internationalization @endlink - * @ingroup internalLang - */ - -$this->_strings = array( - CAS_STR_USING_SERVER - => 'utilisant le serveur', - CAS_STR_AUTHENTICATION_WANTED - => 'Authentication CAS ncessaire !', - CAS_STR_LOGOUT - => 'Dconnexion demande !', - CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED - => 'Vous auriez du etre redirig(e) vers le serveur CAS. Cliquez ici pour continuer.', - CAS_STR_AUTHENTICATION_FAILED - => 'Authentification CAS infructueuse !', - CAS_STR_YOU_WERE_NOT_AUTHENTICATED - => '

Vous n\'avez pas t authentifi(e).

Vous pouvez soumettre votre requete nouveau en cliquant ici.

Si le problme persiste, vous pouvez contacter l\'administrateur de ce site.

', - CAS_STR_SERVICE_UNAVAILABLE - => 'Le service `%s\' est indisponible (%s)' - -); - + + * @sa @link internalLang Internationalization @endlink + * @ingroup internalLang + */ + +$this->_strings = array( + CAS_STR_USING_SERVER + => 'utilisant le serveur', + CAS_STR_AUTHENTICATION_WANTED + => 'Authentication CAS n�cessaire !', + CAS_STR_LOGOUT + => 'D�connexion demand�e !', + CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED + => 'Vous auriez du etre redirig�(e) vers le serveur CAS. Cliquez ici pour continuer.', + CAS_STR_AUTHENTICATION_FAILED + => 'Authentification CAS infructueuse !', + CAS_STR_YOU_WERE_NOT_AUTHENTICATED + => '

Vous n\'avez pas �t� authentifi�(e).

Vous pouvez soumettre votre requete � nouveau en cliquant ici.

Si le probl�me persiste, vous pouvez contacter l\'administrateur de ce site.

', + CAS_STR_SERVICE_UNAVAILABLE + => 'Le service `%s\' est indisponible (%s)' + +); + ?> \ No newline at end of file diff --git a/plugins/CasAuthentication/extlib/CAS/languages/german.php b/plugins/CasAuthentication/extlib/CAS/languages/german.php index 55c3238fd..29daeb35d 100644 --- a/plugins/CasAuthentication/extlib/CAS/languages/german.php +++ b/plugins/CasAuthentication/extlib/CAS/languages/german.php @@ -1,27 +1,27 @@ - - * @sa @link internalLang Internationalization @endlink - * @ingroup internalLang - */ - -$this->_strings = array( - CAS_STR_USING_SERVER - => 'via Server', - CAS_STR_AUTHENTICATION_WANTED - => 'CAS Authentifizierung erforderlich!', - CAS_STR_LOGOUT - => 'CAS Abmeldung!', - CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED - => 'eigentlich häten Sie zum CAS Server weitergeleitet werden sollen. Drücken Sie hier um fortzufahren.', - CAS_STR_AUTHENTICATION_FAILED - => 'CAS Anmeldung fehlgeschlagen!', - CAS_STR_YOU_WERE_NOT_AUTHENTICATED - => '

Sie wurden nicht angemeldet.

Um es erneut zu versuchen klicken Sie hier.

Wenn das Problem bestehen bleibt, kontkatieren Sie den Administrator dieser Seite.

', - CAS_STR_SERVICE_UNAVAILABLE - => 'Der Dienst `%s\' ist nicht verfügbar (%s).' -); - + + * @sa @link internalLang Internationalization @endlink + * @ingroup internalLang + */ + +$this->_strings = array( + CAS_STR_USING_SERVER + => 'via Server', + CAS_STR_AUTHENTICATION_WANTED + => 'CAS Authentifizierung erforderlich!', + CAS_STR_LOGOUT + => 'CAS Abmeldung!', + CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED + => 'eigentlich häten Sie zum CAS Server weitergeleitet werden sollen. Drücken Sie hier um fortzufahren.', + CAS_STR_AUTHENTICATION_FAILED + => 'CAS Anmeldung fehlgeschlagen!', + CAS_STR_YOU_WERE_NOT_AUTHENTICATED + => '

Sie wurden nicht angemeldet.

Um es erneut zu versuchen klicken Sie hier.

Wenn das Problem bestehen bleibt, kontkatieren Sie den Administrator dieser Seite.

', + CAS_STR_SERVICE_UNAVAILABLE + => 'Der Dienst `%s\' ist nicht verfügbar (%s).' +); + ?> \ No newline at end of file diff --git a/plugins/CasAuthentication/extlib/CAS/languages/greek.php b/plugins/CasAuthentication/extlib/CAS/languages/greek.php index d41bf783b..fdff77e4e 100644 --- a/plugins/CasAuthentication/extlib/CAS/languages/greek.php +++ b/plugins/CasAuthentication/extlib/CAS/languages/greek.php @@ -1,27 +1,27 @@ - - * @sa @link internalLang Internationalization @endlink - * @ingroup internalLang - */ - -$this->_strings = array( - CAS_STR_USING_SERVER - => ' ', - CAS_STR_AUTHENTICATION_WANTED - => ' CAS!', - CAS_STR_LOGOUT - => ' CAS!', - CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED - => ' CAS. .', - CAS_STR_AUTHENTICATION_FAILED - => ' CAS !', - CAS_STR_YOU_WERE_NOT_AUTHENTICATED - => '

.

, .

, .

', - CAS_STR_SERVICE_UNAVAILABLE - => ' `%s\' (%s).' -); - + + * @sa @link internalLang Internationalization @endlink + * @ingroup internalLang + */ + +$this->_strings = array( + CAS_STR_USING_SERVER + => '��������������� � ������������', + CAS_STR_AUTHENTICATION_WANTED + => '���������� � ����������� CAS!', + CAS_STR_LOGOUT + => '���������� � ���������� ��� CAS!', + CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED + => '�� ������ �� ������ �������������� ���� ����������� CAS. ����� ���� ��� ��� �� ����������.', + CAS_STR_AUTHENTICATION_FAILED + => '� ����������� CAS �������!', + CAS_STR_YOU_WERE_NOT_AUTHENTICATED + => '

��� ���������������.

�������� �� ����������������, �������� ���� ���.

��� �� �������� ���������, ����� �� ����� �� ��� �����������.

', + CAS_STR_SERVICE_UNAVAILABLE + => '� �������� `%s\' ��� ����� ��������� (%s).' +); + ?> \ No newline at end of file diff --git a/plugins/CasAuthentication/extlib/CAS/languages/japanese.php b/plugins/CasAuthentication/extlib/CAS/languages/japanese.php index 333bb17b6..76ebe77bc 100644 --- a/plugins/CasAuthentication/extlib/CAS/languages/japanese.php +++ b/plugins/CasAuthentication/extlib/CAS/languages/japanese.php @@ -11,17 +11,17 @@ $this->_strings = array( CAS_STR_USING_SERVER => 'using server', CAS_STR_AUTHENTICATION_WANTED - => 'CASˤǧڤԤޤ', + => 'CAS�ˤ��ǧ�ڤ�Ԥ��ޤ�', CAS_STR_LOGOUT - => 'CASȤޤ!', + => 'CAS����?�����Ȥ��ޤ�!', CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED - => 'CASФ˹ԤɬפޤưŪžʤ 򥯥å³Ԥޤ', + => 'CAS�����Ф˹Ԥ�ɬ�פ�����ޤ�����ưŪ��ž������ʤ����� ������ �򥯥�å�����³�Ԥ��ޤ���', CAS_STR_AUTHENTICATION_FAILED - => 'CASˤǧڤ˼Ԥޤ', + => 'CAS�ˤ��ǧ�ڤ˼��Ԥ��ޤ���', CAS_STR_YOU_WERE_NOT_AUTHENTICATED - => '

ǧڤǤޤǤ.

⤦٥ꥯȤ򥯥å.

꤬褷ʤ ΥȤδ䤤碌Ƥ.

', + => '

ǧ�ڤǤ��ޤ���Ǥ���.

�⤦���٥ꥯ�����Ȥ�������������������򥯥�å�.

���꤬��褷�ʤ����� ���Υ����Ȥδ�������䤤��碌�Ƥ�������.

', CAS_STR_SERVICE_UNAVAILABLE - => 'ӥ `%s\' ѤǤޤ (%s).' + => '�����ӥ� `%s\' �����ѤǤ��ޤ��� (%s).' ); ?> \ No newline at end of file diff --git a/plugins/CasAuthentication/extlib/CAS/languages/languages.php b/plugins/CasAuthentication/extlib/CAS/languages/languages.php index 001cfe445..2c6f8bb3b 100644 --- a/plugins/CasAuthentication/extlib/CAS/languages/languages.php +++ b/plugins/CasAuthentication/extlib/CAS/languages/languages.php @@ -1,24 +1,24 @@ - - * @sa @link internalLang Internationalization @endlink - * @ingroup internalLang - */ - -//@{ -/** - * a phpCAS string index - */ -define("CAS_STR_USING_SERVER", 1); -define("CAS_STR_AUTHENTICATION_WANTED", 2); -define("CAS_STR_LOGOUT", 3); -define("CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED", 4); -define("CAS_STR_AUTHENTICATION_FAILED", 5); -define("CAS_STR_YOU_WERE_NOT_AUTHENTICATED", 6); -define("CAS_STR_SERVICE_UNAVAILABLE", 7); -//@} - + + * @sa @link internalLang Internationalization @endlink + * @ingroup internalLang + */ + +//@{ +/** + * a phpCAS string index + */ +define("CAS_STR_USING_SERVER", 1); +define("CAS_STR_AUTHENTICATION_WANTED", 2); +define("CAS_STR_LOGOUT", 3); +define("CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED", 4); +define("CAS_STR_AUTHENTICATION_FAILED", 5); +define("CAS_STR_YOU_WERE_NOT_AUTHENTICATED", 6); +define("CAS_STR_SERVICE_UNAVAILABLE", 7); +//@} + ?> \ No newline at end of file diff --git a/plugins/CasAuthentication/extlib/CAS/languages/spanish.php b/plugins/CasAuthentication/extlib/CAS/languages/spanish.php index 04067ca03..3a8ffc253 100644 --- a/plugins/CasAuthentication/extlib/CAS/languages/spanish.php +++ b/plugins/CasAuthentication/extlib/CAS/languages/spanish.php @@ -1,27 +1,27 @@ - - * @sa @link internalLang Internationalization @endlink - * @ingroup internalLang - */ - -$this->_strings = array( - CAS_STR_USING_SERVER - => 'usando servidor', - CAS_STR_AUTHENTICATION_WANTED - => '¡Autentificación CAS necesaria!', - CAS_STR_LOGOUT - => '¡Salida CAS necesaria!', - CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED - => 'Ya debería haber sido redireccionado al servidor CAS. Haga click aquí para continuar.', - CAS_STR_AUTHENTICATION_FAILED - => '¡Autentificación CAS fallida!', - CAS_STR_YOU_WERE_NOT_AUTHENTICATED - => '

No estás autentificado.

Puedes volver a intentarlo haciendo click aquí.

Si el problema persiste debería contactar con el administrador de este sitio.

', - CAS_STR_SERVICE_UNAVAILABLE - => 'El servicio `%s\' no está disponible (%s).' -); - -?> + + * @sa @link internalLang Internationalization @endlink + * @ingroup internalLang + */ + +$this->_strings = array( + CAS_STR_USING_SERVER + => 'usando servidor', + CAS_STR_AUTHENTICATION_WANTED + => '¡Autentificación CAS necesaria!', + CAS_STR_LOGOUT + => '¡Salida CAS necesaria!', + CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED + => 'Ya debería haber sido redireccionado al servidor CAS. Haga click aquí para continuar.', + CAS_STR_AUTHENTICATION_FAILED + => '¡Autentificación CAS fallida!', + CAS_STR_YOU_WERE_NOT_AUTHENTICATED + => '

No estás autentificado.

Puedes volver a intentarlo haciendo click aquí.

Si el problema persiste debería contactar con el administrador de este sitio.

', + CAS_STR_SERVICE_UNAVAILABLE + => 'El servicio `%s\' no está disponible (%s).' +); + +?> -- cgit v1.2.3-54-g00ecf From 1a4652b1ade6ea4de842835a7d2a011845a1cd62 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 3 Mar 2010 10:32:54 -0500 Subject: Changed label text for remote subscription to something similar. Given that this button will be used within context of subscriptions, 'New' works along with the '+' icon. --- plugins/OStatus/OStatusPlugin.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/OStatus/OStatusPlugin.php b/plugins/OStatus/OStatusPlugin.php index 7b6d22acf..b5e6867c8 100644 --- a/plugins/OStatus/OStatusPlugin.php +++ b/plugins/OStatus/OStatusPlugin.php @@ -727,7 +727,7 @@ class OStatusPlugin extends Plugin 'class' => 'entity_subscribe')); $action->element('a', array('href' => common_local_url('ostatussub'), 'class' => 'entity_remote_subscribe') - , _m('Subscribe to remote user')); + , _m('New')); $action->elementEnd('p'); $action->elementEnd('div'); } -- cgit v1.2.3-54-g00ecf From 06fb1124f5cd328bc0b3028a0cc0499b1c916653 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 3 Mar 2010 11:14:39 -0500 Subject: Added event hooks for start and end of subscriptions mini list --- EVENTS.txt | 6 ++++++ lib/profileaction.php | 35 +++++++++++++++++++---------------- 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/EVENTS.txt b/EVENTS.txt index bb4936b35..a40855134 100644 --- a/EVENTS.txt +++ b/EVENTS.txt @@ -776,6 +776,12 @@ StartShowAllContent: before showing the all (you and friends) content EndShowAllContent: after showing the all (you and friends) content - $action: the current action +StartShowSubscriptionsMiniList: at the start of subscriptions mini list +- $action: the current action + +EndShowSubscriptionsMiniList: at the end of subscriptions mini list +- $action: the current action + StartDeleteUserForm: starting the data in the form for deleting a user - $action: action being shown - $user: user being deleted diff --git a/lib/profileaction.php b/lib/profileaction.php index 2d4d23265..2bda8b07c 100644 --- a/lib/profileaction.php +++ b/lib/profileaction.php @@ -106,27 +106,30 @@ class ProfileAction extends OwnerDesignAction $this->elementStart('div', array('id' => 'entity_subscriptions', 'class' => 'section')); - $this->element('h2', null, _('Subscriptions')); + if (Event::handle('StartShowSubscriptionsMiniList', array($this))) { + $this->element('h2', null, _('Subscriptions')); - $cnt = 0; + $cnt = 0; - if (!empty($profile)) { - $pml = new ProfileMiniList($profile, $this); - $cnt = $pml->show(); - if ($cnt == 0) { - $this->element('p', null, _('(None)')); + if (!empty($profile)) { + $pml = new ProfileMiniList($profile, $this); + $cnt = $pml->show(); + if ($cnt == 0) { + $this->element('p', null, _('(None)')); + } } - } - if ($cnt > PROFILES_PER_MINILIST) { - $this->elementStart('p'); - $this->element('a', array('href' => common_local_url('subscriptions', - array('nickname' => $this->profile->nickname)), - 'class' => 'more'), - _('All subscriptions')); - $this->elementEnd('p'); - } + if ($cnt > PROFILES_PER_MINILIST) { + $this->elementStart('p'); + $this->element('a', array('href' => common_local_url('subscriptions', + array('nickname' => $this->profile->nickname)), + 'class' => 'more'), + _('All subscriptions')); + $this->elementEnd('p'); + } + Event::handle('EndShowSubscriptionsMiniList', array($this)); + } $this->elementEnd('div'); } -- cgit v1.2.3-54-g00ecf From ea10805e3f68f5781321e7c93144242478081a1f Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 3 Mar 2010 11:22:21 -0500 Subject: Moved the remote subscription button to subscription mini list --- plugins/OStatus/OStatusPlugin.php | 2 +- plugins/OStatus/theme/base/css/ostatus.css | 18 ++++++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/plugins/OStatus/OStatusPlugin.php b/plugins/OStatus/OStatusPlugin.php index b5e6867c8..eb777c6b2 100644 --- a/plugins/OStatus/OStatusPlugin.php +++ b/plugins/OStatus/OStatusPlugin.php @@ -711,7 +711,7 @@ class OStatusPlugin extends Plugin return true; } - function onStartShowAllContent($action) + function onEndShowSubscriptionsMiniList($action) { $this->showEntityRemoteSubscribe($action); diff --git a/plugins/OStatus/theme/base/css/ostatus.css b/plugins/OStatus/theme/base/css/ostatus.css index 13e30ef5d..40cdfcef1 100644 --- a/plugins/OStatus/theme/base/css/ostatus.css +++ b/plugins/OStatus/theme/base/css/ostatus.css @@ -41,8 +41,22 @@ min-width:96px; #entity_remote_subscribe { padding:0; float:right; +position:relative; } -#all #entity_remote_subscribe { -margin-top:-52px; +.section .entity_actions { +margin-bottom:0; +} + +.section #entity_remote_subscribe .entity_remote_subscribe { +border-color:#AAAAAA; +} + +.section #entity_remote_subscribe .dialogbox { +width:405px; +} + + +.aside #entity_subscriptions .more { +float:left; } -- cgit v1.2.3-54-g00ecf From b65ee23e8293c301f8b142320eabff6c4acdfcfe Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 3 Mar 2010 12:01:38 -0500 Subject: Added event hooks for group subscribe --- EVENTS.txt | 8 ++++++++ actions/showgroup.php | 24 +++++++++++++----------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/EVENTS.txt b/EVENTS.txt index a40855134..2c3863f22 100644 --- a/EVENTS.txt +++ b/EVENTS.txt @@ -363,6 +363,14 @@ EndProfileRemoteSubscribe: After showing the link to remote subscription - $userprofile: UserProfile widget - &$profile: the profile being shown +StartGroupSubscribe: Before showing the link to remote subscription +- $action: the current action +- $group: the group being shown + +EndGroupSubscribe: After showing the link to remote subscription +- $action: the current action +- $group: the group being shown + StartProfilePageProfileSection: Starting to show the section of the profile page with the actual profile data; hook to prevent showing the profile (e.g.) diff --git a/actions/showgroup.php b/actions/showgroup.php index 4e1fcb6c7..a1dc3865b 100644 --- a/actions/showgroup.php +++ b/actions/showgroup.php @@ -300,20 +300,22 @@ class ShowgroupAction extends GroupDesignAction $this->elementStart('div', 'entity_actions'); $this->element('h2', null, _('Group actions')); $this->elementStart('ul'); - $this->elementStart('li', 'entity_subscribe'); - $cur = common_current_user(); - if ($cur) { - if ($cur->isMember($this->group)) { - $lf = new LeaveForm($this, $this->group); - $lf->show(); - } else if (!Group_block::isBlocked($this->group, $cur->getProfile())) { - $jf = new JoinForm($this, $this->group); - $jf->show(); + if (Event::handle('StartGroupSubscribe', array($this, $this->group))) { + $this->elementStart('li', 'entity_subscribe'); + $cur = common_current_user(); + if ($cur) { + if ($cur->isMember($this->group)) { + $lf = new LeaveForm($this, $this->group); + $lf->show(); + } else if (!Group_block::isBlocked($this->group, $cur->getProfile())) { + $jf = new JoinForm($this, $this->group); + $jf->show(); + } } + $this->elementEnd('li'); + Event::handle('EndGroupSubscribe', array($this, $this->group)); } - $this->elementEnd('li'); - $this->elementEnd('ul'); $this->elementEnd('div'); } -- cgit v1.2.3-54-g00ecf From 11750e832f994013b2fbce860bd24d24f49a14db Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 3 Mar 2010 12:02:10 -0500 Subject: Added remote join action for group profile --- plugins/OStatus/OStatusPlugin.php | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/plugins/OStatus/OStatusPlugin.php b/plugins/OStatus/OStatusPlugin.php index eb777c6b2..014fb0b38 100644 --- a/plugins/OStatus/OStatusPlugin.php +++ b/plugins/OStatus/OStatusPlugin.php @@ -210,6 +210,26 @@ class OStatusPlugin extends Plugin return false; } + function onStartGroupSubscribe($output, $group) + { + $cur = common_current_user(); + + if (empty($cur)) { + // Add an OStatus subscribe + $output->elementStart('li', 'entity_subscribe'); + $url = common_local_url('ostatusinit', + array('nickname' => $group->nickname)); + $output->element('a', array('href' => $url, + 'class' => 'entity_remote_subscribe'), + _m('Join')); + + $output->elementEnd('li'); + } + + return false; + } + + /** * Check if we've got remote replies to send via Salmon. * -- cgit v1.2.3-54-g00ecf From ffa1931c9dafea385e8f30c53ea079e2425a0786 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 3 Mar 2010 09:31:14 -0800 Subject: Avoid warning/notice spew in XRD parser. Not all DOM nodes are elements. --- plugins/OStatus/lib/xrd.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/plugins/OStatus/lib/xrd.php b/plugins/OStatus/lib/xrd.php index 85df26c54..f00e1f809 100644 --- a/plugins/OStatus/lib/xrd.php +++ b/plugins/OStatus/lib/xrd.php @@ -149,9 +149,11 @@ class XRD $link['href'] = $element->getAttribute('href'); $link['template'] = $element->getAttribute('template'); foreach ($element->childNodes as $node) { - switch($node->tagName) { - case 'Title': - $link['title'][] = $node->nodeValue; + if ($node instanceof DOMElement) { + switch($node->tagName) { + case 'Title': + $link['title'][] = $node->nodeValue; + } } } -- cgit v1.2.3-54-g00ecf From 1e63fda6695c8ab06f2cd8181de26f03f7f7a5d4 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 3 Mar 2010 09:32:25 -0800 Subject: Clean up OStatus mentions finding; separate regexes keeps the code paths a bit clearer. Also switched to hitting HTTP profile first; as the common case it'll be faster. --- plugins/OStatus/OStatusPlugin.php | 86 +++++++++++++++++++-------------------- 1 file changed, 43 insertions(+), 43 deletions(-) diff --git a/plugins/OStatus/OStatusPlugin.php b/plugins/OStatus/OStatusPlugin.php index 7b6d22acf..f435d6283 100644 --- a/plugins/OStatus/OStatusPlugin.php +++ b/plugins/OStatus/OStatusPlugin.php @@ -233,70 +233,70 @@ class OStatusPlugin extends Plugin function onEndFindMentions($sender, $text, &$mentions) { - preg_match_all('!(?:^|\s+) - @( # Webfinger: - (?:\w+\.)*\w+ # user - @ # @ - (?:\w+\.)*\w+(?:\w+\-\w+)*\.\w+ # domain - | # Profile: - (?:\w+\.)*\w+(?:\w+\-\w+)*\.\w+ # domain - (?:/\w+)+ # /path1(/path2...) - )!x', + $matches = array(); + + // Webfinger matches: @user@example.com + if (preg_match_all('!(?:^|\s+)@((?:\w+\.)*\w+@(?:\w+\.)*\w+(?:\w+\-\w+)*\.\w+)!', $text, $wmatches, - PREG_OFFSET_CAPTURE); - - foreach ($wmatches[1] as $wmatch) { - $target = $wmatch[0]; - $oprofile = null; - - if (strpos($target, '/') === false) { - $this->log(LOG_INFO, "Checking Webfinger for address '$target'"); + PREG_OFFSET_CAPTURE)) { + foreach ($wmatches[1] as $wmatch) { + list($target, $pos) = $wmatch; + $this->log(LOG_INFO, "Checking webfinger '$target'"); try { $oprofile = Ostatus_profile::ensureWebfinger($target); + if ($oprofile && !$oprofile->isGroup()) { + $profile = $oprofile->localProfile(); + $matches[$pos] = array('mentioned' => array($profile), + 'text' => $target, + 'position' => $pos, + 'url' => $profile->profileurl); + } } catch (Exception $e) { $this->log(LOG_ERR, "Webfinger check failed: " . $e->getMessage()); } - } else { - $schemes = array('https', 'http'); + } + } + + // Profile matches: @example.com/mublog/user + if (preg_match_all('!(?:^|\s+)@((?:\w+\.)*\w+(?:\w+\-\w+)*\.\w+(?:/\w+)+)!', + $text, + $wmatches, + PREG_OFFSET_CAPTURE)) { + foreach ($wmatches[1] as $wmatch) { + list($target, $pos) = $wmatch; + $schemes = array('http', 'https'); foreach ($schemes as $scheme) { $url = "$scheme://$target"; $this->log(LOG_INFO, "Checking profile address '$url'"); try { $oprofile = Ostatus_profile::ensureProfile($url); - if ($oprofile) { - continue; + if ($oprofile && !$oprofile->isGroup()) { + $profile = $oprofile->localProfile(); + $matches[$pos] = array('mentioned' => array($profile), + 'text' => $target, + 'position' => $pos, + 'url' => $profile->profileurl); + break; } } catch (Exception $e) { $this->log(LOG_ERR, "Profile check failed: " . $e->getMessage()); } } } + } - if (empty($oprofile)) { - $this->log(LOG_INFO, "No Ostatus_profile found for address '$target'"); - } else { - - $this->log(LOG_INFO, "Ostatus_profile found for address '$target'"); - - if ($oprofile->isGroup()) { - continue; - } - $profile = $oprofile->localProfile(); - - $pos = $wmatch[1]; - foreach ($mentions as $i => $other) { - // If we share a common prefix with a local user, override it! - if ($other['position'] == $pos) { - unset($mentions[$i]); - } - } - $mentions[] = array('mentioned' => array($profile), - 'text' => $target, - 'position' => $pos, - 'url' => $profile->profileurl); + foreach ($mentions as $i => $other) { + // If we share a common prefix with a local user, override it! + $pos = $other['position']; + if (isset($matches[$pos])) { + $mentions[$i] = $matches[$pos]; + unset($matches[$pos]); } } + foreach ($matches as $mention) { + $mentions[] = $mention; + } return true; } -- cgit v1.2.3-54-g00ecf From f3cea2430497e751bc7776fe3abf0603e2b55f8b Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 3 Mar 2010 09:36:26 -0800 Subject: Fix for hcard parsing: typo caused notice spew accessing unset array index --- plugins/OStatus/classes/Ostatus_profile.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/OStatus/classes/Ostatus_profile.php b/plugins/OStatus/classes/Ostatus_profile.php index 059c19e7c..7ab031aa5 100644 --- a/plugins/OStatus/classes/Ostatus_profile.php +++ b/plugins/OStatus/classes/Ostatus_profile.php @@ -1500,7 +1500,7 @@ class Ostatus_profile extends Memcached_DataObject if (array_key_exists('url', $hcard)) { if (is_string($hcard['url'])) { $hints['homepage'] = $hcard['url']; - } else if (is_array($hcard['adr'])) { + } else if (is_array($hcard['url'])) { // HACK get the last one; that's how our hcards look $hints['homepage'] = $hcard['url'][count($hcard['url'])-1]; } -- cgit v1.2.3-54-g00ecf From 1fd91de82c0be74ae2305f1412b1cd1b2948dfbc Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Mon, 1 Mar 2010 14:58:06 -0800 Subject: Upgrade XML output scrubbing to better deal with newline and a few other chars --- lib/util.php | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/lib/util.php b/lib/util.php index 8381bc63c..f793cc10e 100644 --- a/lib/util.php +++ b/lib/util.php @@ -770,8 +770,28 @@ function common_shorten_links($text) function common_xml_safe_str($str) { - // Neutralize control codes and surrogates - return preg_replace('/[\p{Cc}\p{Cs}]/u', '*', $str); + // Replace common eol and extra whitespace input chars + $unWelcome = array( + "\t", // tab + "\n", // newline + "\r", // cr + "\0", // null byte eos + "\x0B" // vertical tab + ); + + $replacement = array( + ' ', // single space + ' ', + '', // nothing + '', + ' ' + ); + + $str = str_replace($unWelcome, $replacement, $str); + + // Neutralize any additional control codes and UTF-16 surrogates + // (Twitter uses '*') + return preg_replace('/[\p{Cc}\p{Cs}]/u', '*', $str); } function common_tag_link($tag) -- cgit v1.2.3-54-g00ecf From de65b15f9df6703268eeff92502152605ec0f536 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Mon, 1 Mar 2010 21:34:50 -0800 Subject: Initial Twitter bridge admin panel --- lib/default.php | 5 +- plugins/TwitterBridge/README | 32 +-- plugins/TwitterBridge/TwitterBridgePlugin.php | 129 +++++++++--- plugins/TwitterBridge/twitteradminpanel.php | 280 +++++++++++++++++++++++++ plugins/TwitterBridge/twitterauthorization.php | 2 +- 5 files changed, 403 insertions(+), 45 deletions(-) create mode 100644 plugins/TwitterBridge/twitteradminpanel.php diff --git a/lib/default.php b/lib/default.php index d849055c2..668206acf 100644 --- a/lib/default.php +++ b/lib/default.php @@ -177,8 +177,9 @@ $default = array('source' => 'StatusNet', # source attribute for Twitter 'taguri' => null), # base for tag URIs 'twitter' => - array('enabled' => true, - 'consumer_key' => null, + array('enabled' => true, + 'signin' => true, + 'consumer_key' => null, 'consumer_secret' => null), 'cache' => array('base' => null), diff --git a/plugins/TwitterBridge/README b/plugins/TwitterBridge/README index d3bcda598..91b34eb49 100644 --- a/plugins/TwitterBridge/README +++ b/plugins/TwitterBridge/README @@ -1,7 +1,7 @@ This Twitter "bridge" plugin allows you to integrate your StatusNet instance with Twitter. Installing it will allow your users to: - - automatically post notices to thier Twitter accounts + - automatically post notices to their Twitter accounts - automatically subscribe to other Twitter users who are also using your StatusNet install, if possible (requires running a daemon) - import their Twitter friends' tweets (requires running a daemon) @@ -9,18 +9,14 @@ instance with Twitter. Installing it will allow your users to: Installation ------------ -To enable the plugin, add the following to your config.php: - - addPlugin("TwitterBridge"); - -OAuth is used to to access protected resources on Twitter (as opposed to -HTTP Basic Auth)*. To use Twitter bridging you will need to register -your instance of StatusNet as an application on Twitter -(http://twitter.com/apps), and update the following variables in your -config.php with the consumer key and secret Twitter generates for you: - - $config['twitter']['consumer_key'] = 'YOURKEY'; - $config['twitter']['consumer_secret'] = 'YOURSECRET'; +OAuth (http://oauth.net) is used to to access protected resources on +Twitter (as opposed to HTTP Basic Auth)*. To use Twitter bridging you +will need to register your instance of StatusNet as an application on +Twitter (http://twitter.com/apps). During the application registration +process your application will be assigned a "consumer" key and secret, +which the plugin will use to make OAuth requests to Twitter. You can +either pass the consumer key and secret in when you enable the plugin, +or set it using the Twitter administration panel. When registering your application with Twitter set the type to "Browser" and your Callback URL to: @@ -29,6 +25,16 @@ and your Callback URL to: The default access type should be, "Read & Write". +To enable the plugin, add the following to your config.php: + + addPlugin( + 'TwitterBridge', + array( + 'consumer_key' => 'YOUR_CONSUMER_KEY', + 'consumer_secret' => 'YOUR_CONSUMER_SECRET' + ) + ); + * Note: The plugin will still push notices to Twitter for users who have previously setup the Twitter bridge using their Twitter name and password under an older versions of StatusNet, but all new Twitter diff --git a/plugins/TwitterBridge/TwitterBridgePlugin.php b/plugins/TwitterBridge/TwitterBridgePlugin.php index c7f57ffc7..ac08cc593 100644 --- a/plugins/TwitterBridge/TwitterBridgePlugin.php +++ b/plugins/TwitterBridge/TwitterBridgePlugin.php @@ -23,7 +23,7 @@ * @author Julien C * @copyright 2009-2010 Control Yourself, Inc. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://laconi.ca/ + * @link http://status.net/ */ if (!defined('STATUSNET')) { @@ -32,8 +32,6 @@ if (!defined('STATUSNET')) { require_once INSTALLDIR . '/plugins/TwitterBridge/twitter.php'; -define('TWITTERBRIDGEPLUGIN_VERSION', '0.9'); - /** * Plugin for sending and importing Twitter statuses * @@ -44,19 +42,41 @@ define('TWITTERBRIDGEPLUGIN_VERSION', '0.9'); * @author Zach Copley * @author Julien C * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://laconi.ca/ + * @link http://status.net/ * @link http://twitter.com/ */ class TwitterBridgePlugin extends Plugin { + + const VERSION = STATUSNET_VERSION; + /** * Initializer for the plugin. */ - function __construct() + function initialize() { - parent::__construct(); + // Allow the key and secret to be passed in + // Control panel will override + + if (isset($this->consumer_key)) { + $key = common_config('twitter', 'consumer_key'); + if (empty($key)) { + Config::save('twitter', 'consumer_key', $this->consumer_key); + } + } + + if (isset($this->consumer_secret)) { + $secret = common_config('twitter', 'consumer_secret'); + if (empty($secret)) { + Config::save( + 'twitter', + 'consumer_secret', + $this->consumer_secret + ); + } + } } /** @@ -71,10 +91,13 @@ class TwitterBridgePlugin extends Plugin function onRouterInitialized($m) { - $m->connect('twitter/authorization', - array('action' => 'twitterauthorization')); + $m->connect( + 'twitter/authorization', + array('action' => 'twitterauthorization') + ); $m->connect('settings/twitter', array('action' => 'twittersettings')); $m->connect('main/twitterlogin', array('action' => 'twitterlogin')); + $m->connect('admin/twitter', array('action' => 'twitteradminpanel')); return true; } @@ -88,13 +111,14 @@ class TwitterBridgePlugin extends Plugin */ function onEndLoginGroupNav(&$action) { - $action_name = $action->trimmed('action'); - $action->menuItem(common_local_url('twitterlogin'), - _('Twitter'), - _('Login or register using Twitter'), - 'twitterlogin' === $action_name); + $action->menuItem( + common_local_url('twitterlogin'), + _m('Twitter'), + _m('Login or register using Twitter'), + 'twitterlogin' === $action_name + ); return true; } @@ -110,10 +134,12 @@ class TwitterBridgePlugin extends Plugin { $action_name = $action->trimmed('action'); - $action->menuItem(common_local_url('twittersettings'), - _m('Twitter'), - _m('Twitter integration options'), - $action_name === 'twittersettings'); + $action->menuItem( + common_local_url('twittersettings'), + _m('Twitter'), + _m('Twitter integration options'), + $action_name === 'twittersettings' + ); return true; } @@ -132,6 +158,7 @@ class TwitterBridgePlugin extends Plugin case 'TwittersettingsAction': case 'TwitterauthorizationAction': case 'TwitterloginAction': + case 'TwitteradminpanelAction': include_once INSTALLDIR . '/plugins/TwitterBridge/' . strtolower(mb_substr($cls, 0, -6)) . '.php'; return false; @@ -173,12 +200,18 @@ class TwitterBridgePlugin extends Plugin */ function onGetValidDaemons($daemons) { - array_push($daemons, INSTALLDIR . - '/plugins/TwitterBridge/daemons/synctwitterfriends.php'); + array_push( + $daemons, + INSTALLDIR + . '/plugins/TwitterBridge/daemons/synctwitterfriends.php' + ); if (common_config('twitterimport', 'enabled')) { - array_push($daemons, INSTALLDIR - . '/plugins/TwitterBridge/daemons/twitterstatusfetcher.php'); + array_push( + $daemons, + INSTALLDIR + . '/plugins/TwitterBridge/daemons/twitterstatusfetcher.php' + ); } return true; @@ -197,17 +230,55 @@ class TwitterBridgePlugin extends Plugin return true; } + /** + * Add a Twitter tab to the admin panel + * + * @param Widget $nav Admin panel nav + * + * @return boolean hook value + */ + + function onEndAdminPanelNav($nav) + { + if (AdminPanelAction::canAdmin('twitter')) { + + $action_name = $nav->action->trimmed('action'); + + $nav->out->menuItem( + common_local_url('twitteradminpanel'), + _m('Twitter'), + _m('Twitter bridge configuration'), + $action_name == 'twitteradminpanel', + 'nav_twitter_admin_panel' + ); + } + + return true; + } + + /** + * Plugin version data + * + * @param array &$versions array of version blocks + * + * @return boolean hook value + */ + function onPluginVersion(&$versions) { - $versions[] = array('name' => 'TwitterBridge', - 'version' => TWITTERBRIDGEPLUGIN_VERSION, - 'author' => 'Zach Copley', - 'homepage' => 'http://status.net/wiki/Plugin:TwitterBridge', - 'rawdescription' => - _m('The Twitter "bridge" plugin allows you to integrate ' . - 'your StatusNet instance with ' . - 'Twitter.')); + $versions[] = array( + 'name' => 'TwitterBridge', + 'version' => self::VERSION, + 'author' => 'Zach Copley, Julien C', + 'homepage' => 'http://status.net/wiki/Plugin:TwitterBridge', + 'rawdescription' => _m( + 'The Twitter "bridge" plugin allows you to integrate ' . + 'your StatusNet instance with ' . + 'Twitter.' + ) + ); return true; } } + diff --git a/plugins/TwitterBridge/twitteradminpanel.php b/plugins/TwitterBridge/twitteradminpanel.php new file mode 100644 index 000000000..b22e6d99f --- /dev/null +++ b/plugins/TwitterBridge/twitteradminpanel.php @@ -0,0 +1,280 @@ +. + * + * @category Settings + * @package StatusNet + * @author Zach Copley + * @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 global Twitter bridge settings + * + * @category Admin + * @package StatusNet + * @author Zach Copley + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +class TwitteradminpanelAction extends AdminPanelAction +{ + /** + * Returns the page title + * + * @return string page title + */ + + function title() + { + return _m('Twitter'); + } + + /** + * Instructions for using this form. + * + * @return string instructions + */ + + function getInstructions() + { + return _m('Twitter bridge settings'); + } + + /** + * Show the Twitter admin panel form + * + * @return void + */ + + function showForm() + { + $form = new TwitterAdminPanelForm($this); + $form->show(); + return; + } + + /** + * Save settings from the form + * + * @return void + */ + + function saveSettings() + { + static $settings = array( + 'twitter' => array('consumer_key', 'consumer_secret'), + 'integration' => array('source') + ); + + static $booleans = array( + 'twitter' => array('signin'), + 'twitterimport' => array('enabled') + ); + + $values = array(); + + foreach ($settings as $section => $parts) { + foreach ($parts as $setting) { + $values[$section][$setting] + = $this->trimmed($setting); + } + } + + foreach ($booleans as $section => $parts) { + foreach ($parts as $setting) { + $values[$section][$setting] + = ($this->boolean($setting)) ? 1 : 0; + } + } + + // 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]); + } + } + + foreach ($booleans as $section => $parts) { + foreach ($parts as $setting) { + Config::save($section, $setting, $values[$section][$setting]); + } + } + + $config->query('COMMIT'); + + return; + } + + function validate(&$values) + { + // Validate consumer key and secret (can't be too long) + + if (mb_strlen($values['twitter']['consumer_key']) > 255) { + $this->clientError( + _m("Invalid consumer key. Max length is 255 characters.") + ); + } + + if (mb_strlen($values['twitter']['consumer_secret']) > 255) { + $this->clientError( + _m("Invalid consumer secret. Max length is 255 characters.") + ); + } + } +} + +class TwitterAdminPanelForm extends AdminForm +{ + /** + * ID of the form + * + * @return int ID of the form + */ + + function id() + { + return 'twitteradminpanel'; + } + + /** + * class of the form + * + * @return string class of the form + */ + + function formClass() + { + return 'form_settings'; + } + + /** + * Action of the form + * + * @return string URL of the action + */ + + function action() + { + return common_local_url('twitteradminpanel'); + } + + /** + * Data elements of the form + * + * @return void + */ + + function formData() + { + $this->out->elementStart( + 'fieldset', + array('id' => 'settings_twitter-application') + ); + $this->out->element('legend', null, _m('Twitter application settings')); + $this->out->elementStart('ul', 'form_data'); + + $this->li(); + $this->input( + 'consumer_key', + _m('Consumer key'), + _m('Consumer key assigned by Twitter'), + 'twitter' + ); + $this->unli(); + + $this->li(); + $this->input( + 'consumer_secret', + _m('Consumer secret'), + _m('Consumer secret assigned by Twitter'), + 'twitter' + ); + $this->unli(); + + $this->li(); + $this->input( + 'source', + _m('Integration source'), + _m('Name of your Twitter application'), + 'integration' + ); + $this->unli(); + + $this->out->elementEnd('ul'); + $this->out->elementEnd('fieldset'); + + $this->out->elementStart( + 'fieldset', + array('id' => 'settings_twitter-options') + ); + $this->out->element('legend', null, _m('Options')); + + $this->out->elementStart('ul', 'form_data'); + + $this->li(); + + $this->out->checkbox( + 'signin', _m('Enable "Sign-in with Twitter"'), + (bool) $this->value('signin', 'twitter'), + _m('Allow users to login with their Twitter credentials') + ); + $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(); + + $this->out->elementEnd('ul'); + + $this->out->elementEnd('fieldset'); + } + + /** + * Action elements + * + * @return void + */ + + function formActions() + { + $this->out->submit('submit', _('Save'), 'submit', null, _('Save Twitter settings')); + } +} diff --git a/plugins/TwitterBridge/twitterauthorization.php b/plugins/TwitterBridge/twitterauthorization.php index cabf69d7a..c93f6666b 100644 --- a/plugins/TwitterBridge/twitterauthorization.php +++ b/plugins/TwitterBridge/twitterauthorization.php @@ -47,7 +47,7 @@ require_once INSTALLDIR . '/plugins/TwitterBridge/twitter.php'; * @author Zach Copley * @author Julien C * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://laconi.ca/ + * @link http://status.net/ * */ class TwitterauthorizationAction extends Action -- cgit v1.2.3-54-g00ecf From 705891f9bef09b59d957a4fbd48c1bab3e025942 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Mon, 1 Mar 2010 21:52:31 -0800 Subject: Remove un-needed config variable for enabling/disabling Twitter integration --- lib/action.php | 2 -- lib/default.php | 3 +-- plugins/Facebook/FacebookPlugin.php | 2 -- plugins/MobileProfile/MobileProfilePlugin.php | 2 -- 4 files changed, 1 insertion(+), 8 deletions(-) diff --git a/lib/action.php b/lib/action.php index fa9ddb911..94b1fa535 100644 --- a/lib/action.php +++ b/lib/action.php @@ -425,8 +425,6 @@ class Action extends HTMLOutputter // lawsuit $connect = 'imsettings'; } else if (common_config('sms', 'enabled')) { $connect = 'smssettings'; - } else if (common_config('twitter', 'enabled')) { - $connect = 'twittersettings'; } $this->elementStart('dl', array('id' => 'site_nav_global_primary')); diff --git a/lib/default.php b/lib/default.php index 668206acf..7b50242ae 100644 --- a/lib/default.php +++ b/lib/default.php @@ -177,8 +177,7 @@ $default = array('source' => 'StatusNet', # source attribute for Twitter 'taguri' => null), # base for tag URIs 'twitter' => - array('enabled' => true, - 'signin' => true, + array('signin' => true, 'consumer_key' => null, 'consumer_secret' => null), 'cache' => diff --git a/plugins/Facebook/FacebookPlugin.php b/plugins/Facebook/FacebookPlugin.php index 4266b886d..8fb81aea0 100644 --- a/plugins/Facebook/FacebookPlugin.php +++ b/plugins/Facebook/FacebookPlugin.php @@ -359,8 +359,6 @@ class FacebookPlugin extends Plugin $connect = 'imsettings'; } else if (common_config('sms', 'enabled')) { $connect = 'smssettings'; - } else if (common_config('twitter', 'enabled')) { - $connect = 'twittersettings'; } if (!empty($user)) { diff --git a/plugins/MobileProfile/MobileProfilePlugin.php b/plugins/MobileProfile/MobileProfilePlugin.php index cd2531fa7..f788639ae 100644 --- a/plugins/MobileProfile/MobileProfilePlugin.php +++ b/plugins/MobileProfile/MobileProfilePlugin.php @@ -312,8 +312,6 @@ class MobileProfilePlugin extends WAP20Plugin $connect = 'imsettings'; } else if (common_config('sms', 'enabled')) { $connect = 'smssettings'; - } else if (common_config('twitter', 'enabled')) { - $connect = 'twittersettings'; } $action->elementStart('ul', array('id' => 'site_nav_global_primary')); -- cgit v1.2.3-54-g00ecf From 61036953decc021e4de2ce575160d5fe4a0460f1 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Mon, 1 Mar 2010 22:41:07 -0800 Subject: - Make 'Sign in with Twitter' optional - Updates to the Twitter bridge plugin README --- plugins/TwitterBridge/README | 86 +++++++++++++++++++-------- plugins/TwitterBridge/TwitterBridgePlugin.php | 20 ++++--- 2 files changed, 74 insertions(+), 32 deletions(-) diff --git a/plugins/TwitterBridge/README b/plugins/TwitterBridge/README index 91b34eb49..a386989b7 100644 --- a/plugins/TwitterBridge/README +++ b/plugins/TwitterBridge/README @@ -5,25 +5,29 @@ instance with Twitter. Installing it will allow your users to: - automatically subscribe to other Twitter users who are also using your StatusNet install, if possible (requires running a daemon) - import their Twitter friends' tweets (requires running a daemon) + - allow users to authenticate using Twitter ('Sign in with Twitter') Installation ------------ -OAuth (http://oauth.net) is used to to access protected resources on -Twitter (as opposed to HTTP Basic Auth)*. To use Twitter bridging you -will need to register your instance of StatusNet as an application on -Twitter (http://twitter.com/apps). During the application registration -process your application will be assigned a "consumer" key and secret, -which the plugin will use to make OAuth requests to Twitter. You can -either pass the consumer key and secret in when you enable the plugin, -or set it using the Twitter administration panel. +OAuth 1.0a (http://oauth.net) is used to to access protected resources +on Twitter (as opposed to HTTP Basic Auth)*. To use Twitter bridging +you will need to register your instance of StatusNet as an application +on Twitter (http://twitter.com/apps). During the application +registration process your application will be assigned a "consumer" key +and secret, which the plugin will use to make OAuth requests to Twitter. +You can either pass the consumer key and secret in when you enable the +plugin, or set it using the Twitter administration panel. When registering your application with Twitter set the type to "Browser" and your Callback URL to: http://example.org/mublog/twitter/authorization -The default access type should be, "Read & Write". +(Change "example.org" to your site domain and "mublog" to your site +path.) + +The default access type should be "Read & Write". To enable the plugin, add the following to your config.php: @@ -36,18 +40,47 @@ To enable the plugin, add the following to your config.php: ); * Note: The plugin will still push notices to Twitter for users who - have previously setup the Twitter bridge using their Twitter name and - password under an older versions of StatusNet, but all new Twitter + have previously set up the Twitter bridge using their Twitter name and + password under an older version of StatusNet, but all new Twitter bridge connections will use OAuth. -Deamons +Admin panel +----------- + +As of StatusNet 0.9.0 there is a new administration panel that allows +you to configure Twitter bridge settings within StatusNet itself, +instead of having to specify them manually in your config.php. To enable +the administration panel, you will need to add it to the list of active +administration panels. You can do this via your config.php. E.g.: + + $config['admin']['panels'][] = 'twitter'; + +And to access it, you'll need to use a user with the "administrator" +role (see: scripts/userrole.php). + +Sign in with Twitter +-------------------- + +As of 0.9.0 you StatusNet optionally allows users to register and +authenticate using their Twitter credentials via the "Sign in with +Twitter" pattern described here: + + http://apiwiki.twitter.com/Sign-in-with-Twitter + +The option is _on_ by default when you install the plugin, but it can +disabled via the Twitter bridge admin panel, or by adding the following +line to your config.php: + + $config['twitter']['signin'] = false; + +Daemons ------- -For friend syncing and importing notices running two additional daemon -scripts is necessary (synctwitterfriends.php and -twitterstatusfetcher.php). +For friend syncing and importing Twitter tweets, running two +additional daemon scripts is necessary: synctwitterfriends.php and +twitterstatusfetcher.php. -In the daemons subidrectory of the plugin are three scripts: +In the daemons subdirectory of the plugin are three scripts: * Twitter Friends Syncing (daemons/synctwitterfriends.php) @@ -57,13 +90,13 @@ subscribe to "friends" (people they "follow") on Twitter who also have accounts on your StatusNet system, and who have previously set up a link for automatically posting notices to Twitter. -The plugin will try to start this daemon when you run -scripts/startdaemons.sh. +The plugin will start this daemon when you run scripts/startdaemons.sh. * Importing statuses from Twitter (daemons/twitterstatusfetcher.php) -To allow your users to import their friends' Twitter statuses, you will -need to enable the bidirectional Twitter bridge in your config.php: +You can allow uses to enable importing of your friends' Twitter +timelines either in the Twitter bridge administration panel or in your +config.php using the following configuration line: $config['twitterimport']['enabled'] = true; @@ -72,8 +105,9 @@ other daemons when you run scripts/startdaemons.sh. Additionally, you will want to set the integration source variable, which will keep notices posted to Twitter via StatusNet from looping -back. The integration source should be set to the name of your -application, exactly as you specified it on the settings page for your +back. You can do this in the Twitter bridge administration panel, or +via config.php. The integration source should be set to the name of your +application _exactly_ as you specified it on the settings page for your StatusNet application on Twitter, e.g.: $config['integration']['source'] = 'YourApp'; @@ -85,7 +119,9 @@ set up Twitter bridging. It's not strictly necessary to run this queue handler, and sites that haven't enabled queuing are still able to push notices to Twitter, but -for larger sites and sites that wish to improve performance, this -script allows notices to be sent "offline" via a separate process. +for larger sites and sites that wish to improve performance, this script +allows notices to be sent "offline" via a separate process. -The plugin will start this script when you run scripts/startdaemons.sh. +StatusNet will automatically use the TwitterQueueHandler if you have +enabled the queuing system. See the "Queues and daemons" section of the +main README file for more information about how to do that. diff --git a/plugins/TwitterBridge/TwitterBridgePlugin.php b/plugins/TwitterBridge/TwitterBridgePlugin.php index ac08cc593..6ce69d5e2 100644 --- a/plugins/TwitterBridge/TwitterBridgePlugin.php +++ b/plugins/TwitterBridge/TwitterBridgePlugin.php @@ -96,7 +96,11 @@ class TwitterBridgePlugin extends Plugin array('action' => 'twitterauthorization') ); $m->connect('settings/twitter', array('action' => 'twittersettings')); - $m->connect('main/twitterlogin', array('action' => 'twitterlogin')); + + if (common_config('twitter', 'signin')) { + $m->connect('main/twitterlogin', array('action' => 'twitterlogin')); + } + $m->connect('admin/twitter', array('action' => 'twitteradminpanel')); return true; @@ -113,12 +117,14 @@ class TwitterBridgePlugin extends Plugin { $action_name = $action->trimmed('action'); - $action->menuItem( - common_local_url('twitterlogin'), - _m('Twitter'), - _m('Login or register using Twitter'), - 'twitterlogin' === $action_name - ); + if (common_config('twitter', 'signin')) { + $action->menuItem( + common_local_url('twitterlogin'), + _m('Twitter'), + _m('Login or register using Twitter'), + 'twitterlogin' === $action_name + ); + } return true; } -- cgit v1.2.3-54-g00ecf From 625215cd80af34a9dd4e68072221d1de5a30ad87 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Mon, 1 Mar 2010 22:58:27 -0800 Subject: Some wording / spelling fixes --- plugins/TwitterBridge/README | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/plugins/TwitterBridge/README b/plugins/TwitterBridge/README index a386989b7..72278b32e 100644 --- a/plugins/TwitterBridge/README +++ b/plugins/TwitterBridge/README @@ -1,3 +1,6 @@ +Twitter Bridge Plugin +===================== + This Twitter "bridge" plugin allows you to integrate your StatusNet instance with Twitter. Installing it will allow your users to: @@ -44,8 +47,8 @@ To enable the plugin, add the following to your config.php: password under an older version of StatusNet, but all new Twitter bridge connections will use OAuth. -Admin panel ------------ +Administration panel +-------------------- As of StatusNet 0.9.0 there is a new administration panel that allows you to configure Twitter bridge settings within StatusNet itself, @@ -61,15 +64,15 @@ role (see: scripts/userrole.php). Sign in with Twitter -------------------- -As of 0.9.0 you StatusNet optionally allows users to register and +With 0.9.0, StatusNet optionally allows users to register and authenticate using their Twitter credentials via the "Sign in with Twitter" pattern described here: http://apiwiki.twitter.com/Sign-in-with-Twitter The option is _on_ by default when you install the plugin, but it can -disabled via the Twitter bridge admin panel, or by adding the following -line to your config.php: +disabled via the Twitter bridge administration panel, or by adding the +following line to your config.php: $config['twitter']['signin'] = false; @@ -119,9 +122,9 @@ set up Twitter bridging. It's not strictly necessary to run this queue handler, and sites that haven't enabled queuing are still able to push notices to Twitter, but -for larger sites and sites that wish to improve performance, this script +for larger sites and sites that wish to improve performance the script allows notices to be sent "offline" via a separate process. StatusNet will automatically use the TwitterQueueHandler if you have -enabled the queuing system. See the "Queues and daemons" section of the -main README file for more information about how to do that. +enabled the queuing subsystem. See the "Queues and daemons" section of +the main README file for more information about how to do that. -- cgit v1.2.3-54-g00ecf From 84663dccff4d3ca4e321cef99e9d4d556ba29ec4 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Mon, 1 Mar 2010 23:31:56 -0800 Subject: Initial Facebook admin panel --- plugins/Facebook/FacebookPlugin.php | 85 ++++++++++-- plugins/Facebook/facebookadminpanel.php | 223 ++++++++++++++++++++++++++++++++ 2 files changed, 296 insertions(+), 12 deletions(-) create mode 100644 plugins/Facebook/facebookadminpanel.php diff --git a/plugins/Facebook/FacebookPlugin.php b/plugins/Facebook/FacebookPlugin.php index 8fb81aea0..014d0d197 100644 --- a/plugins/Facebook/FacebookPlugin.php +++ b/plugins/Facebook/FacebookPlugin.php @@ -22,7 +22,7 @@ * @category Plugin * @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/ */ @@ -32,12 +32,12 @@ if (!defined('STATUSNET')) { } define("FACEBOOK_CONNECT_SERVICE", 3); -define('FACEBOOKPLUGIN_VERSION', '0.9'); require_once INSTALLDIR . '/plugins/Facebook/facebookutil.php'; /** - * Facebook plugin to add a StatusNet Facebook application + * Facebook plugin to add a StatusNet Facebook canvas application + * and allow registration and authentication via Facebook Connect * * @category Plugin * @package StatusNet @@ -49,6 +49,36 @@ require_once INSTALLDIR . '/plugins/Facebook/facebookutil.php'; class FacebookPlugin extends Plugin { + const VERSION = STATUSNET_VERSION; + + /** + * Initializer for the plugin. + */ + + function initialize() + { + // Allow the key and secret to be passed in + // Control panel will override + + if (isset($this->apikey)) { + $key = common_config('facebook', 'apikey'); + if (empty($key)) { + Config::save('facebook', 'apikey', $this->apikey); + } + } + + if (isset($this->secret)) { + $secret = common_config('facebook', 'secret'); + if (empty($secret)) { + Config::save( + 'facebook', + 'secret', + $this->secret + ); + } + } + } + /** * Add Facebook app actions to the router table * @@ -70,6 +100,7 @@ class FacebookPlugin extends Plugin array('action' => 'facebooksettings')); $m->connect('facebook/app/invite.php', array('action' => 'facebookinvite')); $m->connect('facebook/app/remove', array('action' => 'facebookremove')); + $m->connect('admin/facebook', array('action' => 'facebookadminpanel')); // Facebook Connect stuff @@ -98,6 +129,7 @@ class FacebookPlugin extends Plugin case 'FacebookinviteAction': case 'FacebookremoveAction': case 'FacebooksettingsAction': + case 'FacebookadminpanelAction': include_once INSTALLDIR . '/plugins/Facebook/' . strtolower(mb_substr($cls, 0, -6)) . '.php'; return false; @@ -122,6 +154,32 @@ class FacebookPlugin extends Plugin } } + /** + * Add a Facebook tab to the admin panels + * + * @param Widget $nav Admin panel nav + * + * @return boolean hook value + */ + + function onEndAdminPanelNav($nav) + { + if (AdminPanelAction::canAdmin('facebook')) { + + $action_name = $nav->action->trimmed('action'); + + $nav->out->menuItem( + common_local_url('facebookadminpanel'), + _m('Facebook'), + _m('Facebook integration configuration'), + $action_name == 'facebookadminpanel', + 'nav_facebook_admin_panel' + ); + } + + return true; + } + /** * Override normal HTML output to force the content type to * text/html and add in xmlns:fb @@ -523,15 +581,18 @@ class FacebookPlugin extends Plugin function onPluginVersion(&$versions) { - $versions[] = array('name' => 'Facebook', - 'version' => FACEBOOKPLUGIN_VERSION, - 'author' => 'Zach Copley', - 'homepage' => 'http://status.net/wiki/Plugin:Facebook', - 'rawdescription' => - _m('The Facebook plugin allows you to integrate ' . - 'your StatusNet instance with ' . - 'Facebook ' . - 'and Facebook Connect.')); + $versions[] = array( + 'name' => 'Facebook', + 'version' => self::VERSION, + 'author' => 'Zach Copley', + 'homepage' => 'http://status.net/wiki/Plugin:Facebook', + 'rawdescription' => _m( + 'The Facebook plugin allows you to integrate ' . + 'your StatusNet instance with ' . + 'Facebook ' . + 'and Facebook Connect.' + ) + ); return true; } diff --git a/plugins/Facebook/facebookadminpanel.php b/plugins/Facebook/facebookadminpanel.php new file mode 100644 index 000000000..ae1c7302f --- /dev/null +++ b/plugins/Facebook/facebookadminpanel.php @@ -0,0 +1,223 @@ +. + * + * @category Settings + * @package StatusNet + * @author Zach Copley + * @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 global Facebook integration settings + * + * @category Admin + * @package StatusNet + * @author Zach Copley + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +class FacebookadminpanelAction extends AdminPanelAction +{ + /** + * Returns the page title + * + * @return string page title + */ + + function title() + { + return _m('Facebook'); + } + + /** + * Instructions for using this form. + * + * @return string instructions + */ + + function getInstructions() + { + return _m('Facebook integration settings'); + } + + /** + * Show the Facebook admin panel form + * + * @return void + */ + + function showForm() + { + $form = new FacebookAdminPanelForm($this); + $form->show(); + return; + } + + /** + * Save settings from the form + * + * @return void + */ + + function saveSettings() + { + static $settings = array( + 'facebook' => array('apikey', 'secret'), + ); + + $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) + { + // Validate consumer key and secret (can't be too long) + + if (mb_strlen($values['facebook']['apikey']) > 255) { + $this->clientError( + _m("Invalid Facebook API key. Max length is 255 characters.") + ); + } + + if (mb_strlen($values['facebook']['secret']) > 255) { + $this->clientError( + _m("Invalid Facebook API secret. Max length is 255 characters.") + ); + } + } +} + +class FacebookAdminPanelForm extends AdminForm +{ + /** + * ID of the form + * + * @return int ID of the form + */ + + function id() + { + return 'facebookadminpanel'; + } + + /** + * class of the form + * + * @return string class of the form + */ + + function formClass() + { + return 'form_settings'; + } + + /** + * Action of the form + * + * @return string URL of the action + */ + + function action() + { + return common_local_url('facebookadminpanel'); + } + + /** + * Data elements of the form + * + * @return void + */ + + function formData() + { + $this->out->elementStart( + 'fieldset', + array('id' => 'settings_facebook-application') + ); + $this->out->element('legend', null, _m('Facebook application settings')); + $this->out->elementStart('ul', 'form_data'); + + $this->li(); + $this->input( + 'apikey', + _m('API key'), + _m('API key provided by Facebook'), + 'facebook' + ); + $this->unli(); + + $this->li(); + $this->input( + 'secret', + _m('Secret'), + _m('API secret provided by Facebook'), + 'facebook' + ); + $this->unli(); + + $this->out->elementEnd('ul'); + $this->out->elementEnd('fieldset'); + } + + /** + * Action elements + * + * @return void + */ + + function formActions() + { + $this->out->submit('submit', _('Save'), 'submit', null, _('Save Facebook settings')); + } +} -- cgit v1.2.3-54-g00ecf From b533e0e7356ce99922334a0f381a14044e109d6a Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Tue, 2 Mar 2010 00:38:00 -0800 Subject: Update Facebook plugin README with info about new admin panel --- plugins/Facebook/README | 84 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 56 insertions(+), 28 deletions(-) diff --git a/plugins/Facebook/README b/plugins/Facebook/README index bf2f4a180..14c1d3241 100644 --- a/plugins/Facebook/README +++ b/plugins/Facebook/README @@ -1,6 +1,9 @@ -This plugin allows you to use Facebook Connect with StatusNet, provides a -Facebook application for your users, and allows them to update their -Facebook statuses from StatusNet. +Facebook Plugin +=============== + +This plugin allows you to use Facebook Connect with StatusNet, provides +a Facebook canvas application for your users, and allows them to update +their Facebook statuses from StatusNet. Facebook Connect ---------------- @@ -15,12 +18,12 @@ Facebook credentials. With Facebook Connect, your users can: Built-in Facebook Application ----------------------------- -The plugin also installs a StatusNet Facebook application that allows your -users to automatically update their Facebook statuses with their latest -notices, invite their friends to use the app (and thus your site), view -their notice timelines, and post notices -- all from within Facebook. The -application is built into the StatusNet Facebook plugin and runs on your -host. +The plugin also installs a StatusNet Facebook canvas application that +allows your users to automatically update their Facebook status with +their latest notices, invite their friends to use the app (and thus your +site), view their notice timelines and post notices -- all from within +Facebook. The application is built into the StatusNet Facebook plugin +and runs on your host. Quick setup instructions* ------------------------- @@ -29,13 +32,9 @@ Install the Facebook Developer application on Facebook: http://www.facebook.com/developers/ -Use it to create a new application and generate an API key and secret. Add a -Facebook app section of your config.php and copy in the key and secret, -e.g.: - - // Config section for the built-in Facebook application - $config['facebook']['apikey'] = 'APIKEY'; - $config['facebook']['secret'] = 'SECRET'; +Use it to create a new application and generate an API key and secret. +You will need the key and secret so cut-n-paste them into your text +editor or write them down. In Facebook's application editor, specify the following URLs for your app: @@ -67,11 +66,36 @@ can be left with default values. http://wiki.developers.facebook.com/index.php/Connect/Setting_Up_Your_Site http://wiki.developers.facebook.com/index.php/Creating_your_first_application -Finally you must activate the plugin by adding the following line to your -config.php: +Finally you must activate the plugin by adding it in your config.php +(this is where you'll need the API key and secret generated earlier): + + addPlugin( + 'Facebook', + array( + 'apikey' => 'YOUR_APIKEY', + 'secret' => 'YOUR_SECRET' + ) + ); + +Administration Panel +-------------------- + +As of StatusNet 0.9.0 you can alternatively specify the key and secret +via a Facebook administration panel from within StatusNet, in which case +you can just add: addPlugin('Facebook'); +to activate the plugin. + +NOTE: To enable the administration panel you'll need to add it to the +list of active administration panels, e.g.: + + $config['admin']['panels'][] = 'facebook'; + +and of course you'll need a user with the administrative role to access +it and input the API key and secret (see: scripts/userrole.php). + Testing It Out -------------- @@ -81,11 +105,11 @@ disconnect* to their Facebook accounts from it. To try out the plugin, fire up your browser and connect to: - http://SITE/PATH_TO_STATUSNET/main/facebooklogin + http://example.net/mublog/main/facebooklogin or, if you do not have fancy URLs turned on: - http://SITE/PATH_TO_STATUSNET/index.php/main/facebooklogin + http://example.net/mublog/index.php/main/facebooklogin You should see a page with a blue button that says: "Connect with Facebook" and you should be able to login or register. @@ -101,7 +125,7 @@ the app, you are given the option to update their Facebook status via StatusNet. * Note: Before a user can disconnect from Facebook, she must set a normal - StatusNet password. Otherwise, she might not be able to login in to her + StatusNet password. Otherwise, she might not be able to login in to her account in the future. This is usually only required for users who have used Facebook Connect to register their StatusNet account, and therefore haven't already set a local password. @@ -109,16 +133,20 @@ StatusNet. Offline Queue Handling ---------------------- -For larger sites needing better performance it's possible to enable queuing -and have users' notices posted to Facebook via a separate "offline" -FacebookQueueHandler (facebookqueuhandler.php in the Facebook plugin -directory), which will be started by the plugin along with their other -daemons when you run scripts/startdaemons.sh. See the StatusNet README for -more about queuing and daemons. +For larger sites needing better performance it's possible to enable +queuing and have users' notices posted to Facebook via a separate +"offline" process -- FacebookQueueHandler (facebookqueuhandler.php in +the Facebook plugin directory). It will run automatically if you have +enabled StatusNet's offline queueing subsystem. See the "Queues and +daemons" section in the StatusNet README for more about queuing. + TODO ---- +- Make Facebook Connect work for authentication for multi-site setups + (e.g.: *.status.net) +- Posting to Facebook user streams using only Facebook Connect - Invite Facebook friends to use your StatusNet installation via Facebook Connect - Auto-subscribe Facebook friends already using StatusNet @@ -126,4 +154,4 @@ TODO - Allow users to update their Facebook statuses once they have authenticated with Facebook Connect (no need for them to use the Facebook app if they don't want to). -- Re-design the whole thing to support multiple instances of StatusNet +- Import a user's Facebook updates into StatusNet -- cgit v1.2.3-54-g00ecf From 8a3f27ac9102029f7c8b8eb44431e1df4d82a9b9 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Fri, 22 Jan 2010 10:12:26 -0500 Subject: Updated some references to the long gnone "isEnclosure" function to the new "getEnclosure" --- classes/File.php | 2 ++ lib/apiaction.php | 9 +++++---- lib/util.php | 17 +++++------------ 3 files changed, 12 insertions(+), 16 deletions(-) diff --git a/classes/File.php b/classes/File.php index 91b12d2e2..189e04ce0 100644 --- a/classes/File.php +++ b/classes/File.php @@ -279,6 +279,8 @@ class File extends Memcached_DataObject if($oembed->modified) $enclosure->modified=$oembed->modified; unset($oembed->size); } + } else { + return false; } } } diff --git a/lib/apiaction.php b/lib/apiaction.php index 2af150ab9..f7b4ef473 100644 --- a/lib/apiaction.php +++ b/lib/apiaction.php @@ -289,11 +289,12 @@ class ApiAction extends Action $twitter_status['attachments'] = array(); foreach ($attachments as $attachment) { - if ($attachment->isEnclosure()) { + $enclosure_o=$attachment->getEnclosure(); + if ($attachment_enclosure) { $enclosure = array(); - $enclosure['url'] = $attachment->url; - $enclosure['mimetype'] = $attachment->mimetype; - $enclosure['size'] = $attachment->size; + $enclosure['url'] = $enclosure_o->url; + $enclosure['mimetype'] = $enclosure_o->mimetype; + $enclosure['size'] = $enclosure_o->size; $twitter_status['attachments'][] = $enclosure; } } diff --git a/lib/util.php b/lib/util.php index f793cc10e..77a332b5e 100644 --- a/lib/util.php +++ b/lib/util.php @@ -731,20 +731,13 @@ function common_linkify($url) { } if (!empty($f)) { - if ($f->isEnclosure()) { + if ($f->getEnclosure()) { $is_attachment = true; $attachment_id = $f->id; - } else { - $foe = File_oembed::staticGet('file_id', $f->id); - if (!empty($foe)) { - // if it has OEmbed info, it's an attachment, too - $is_attachment = true; - $attachment_id = $f->id; - - $thumb = File_thumbnail::staticGet('file_id', $f->id); - if (!empty($thumb)) { - $has_thumb = true; - } + + $thumb = File_thumbnail::staticGet('file_id', $f->id); + if (!empty($thumb)) { + $has_thumb = true; } } } -- cgit v1.2.3-54-g00ecf From b1e172a3d9bdeb8f9b7a5559d45b843245a1a3b0 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Fri, 22 Jan 2010 10:40:21 -0500 Subject: stupid mistake... let's not talk about this. --- lib/apiaction.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/apiaction.php b/lib/apiaction.php index f7b4ef473..9bfca3b66 100644 --- a/lib/apiaction.php +++ b/lib/apiaction.php @@ -290,7 +290,7 @@ class ApiAction extends Action foreach ($attachments as $attachment) { $enclosure_o=$attachment->getEnclosure(); - if ($attachment_enclosure) { + if ($enclosure_o) { $enclosure = array(); $enclosure['url'] = $enclosure_o->url; $enclosure['mimetype'] = $enclosure_o->mimetype; -- cgit v1.2.3-54-g00ecf From ca86a4efb8c533dd709f1574d5e9e7e0ac0c4787 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Tue, 2 Mar 2010 16:49:29 -0800 Subject: - Have Twitter bridge check for a global key and secret if it can't find one in the local config - Refuse to work at all if the consumer key and secret aren't set --- plugins/TwitterBridge/README | 17 ++++- plugins/TwitterBridge/TwitterBridgePlugin.php | 98 ++++++++++++++++++--------- plugins/TwitterBridge/twitteroauthclient.php | 21 +++++- 3 files changed, 101 insertions(+), 35 deletions(-) diff --git a/plugins/TwitterBridge/README b/plugins/TwitterBridge/README index 72278b32e..5117cf69a 100644 --- a/plugins/TwitterBridge/README +++ b/plugins/TwitterBridge/README @@ -20,7 +20,7 @@ on Twitter (http://twitter.com/apps). During the application registration process your application will be assigned a "consumer" key and secret, which the plugin will use to make OAuth requests to Twitter. You can either pass the consumer key and secret in when you enable the -plugin, or set it using the Twitter administration panel. +plugin, or set it using the Twitter administration panel**. When registering your application with Twitter set the type to "Browser" and your Callback URL to: @@ -42,11 +42,26 @@ To enable the plugin, add the following to your config.php: ) ); +or just: + + addPlugin('TwitterBridge'); + +if you want to set the consumer key and secret from the Twitter bridge +administration panel. (The Twitter bridge wont work at all +unless you configure it with a consumer key and secret.) + * Note: The plugin will still push notices to Twitter for users who have previously set up the Twitter bridge using their Twitter name and password under an older version of StatusNet, but all new Twitter bridge connections will use OAuth. +** For multi-site setups you can also set a global consumer key and and + secret. The Twitter bridge will fall back on the global key pair if + it can't find a local pair, e.g.: + + $config['twitter']['global_consumer_key'] = 'YOUR_CONSUMER_KEY' + $config['twitter']['global_consumer_secret'] = 'YOUR_CONSUMER_SECRET' + Administration panel -------------------- diff --git a/plugins/TwitterBridge/TwitterBridgePlugin.php b/plugins/TwitterBridge/TwitterBridgePlugin.php index 6ce69d5e2..bc702e745 100644 --- a/plugins/TwitterBridge/TwitterBridgePlugin.php +++ b/plugins/TwitterBridge/TwitterBridgePlugin.php @@ -79,6 +79,30 @@ class TwitterBridgePlugin extends Plugin } } + /** + * Check to see if there is a consumer key and secret defined + * for Twitter integration. + * + * @return boolean result + */ + + static function hasKeys() + { + $key = common_config('twitter', 'consumer_key'); + $secret = common_config('twitter', 'consumer_secret'); + + if (empty($key) && empty($secret)) { + $key = common_config('twitter', 'global_consumer_key'); + $secret = common_config('twitter', 'global_consumer_secret'); + } + + if (!empty($key) && !empty($secret)) { + return true; + } + + return false; + } + /** * Add Twitter-related paths to the router table * @@ -91,14 +115,22 @@ class TwitterBridgePlugin extends Plugin function onRouterInitialized($m) { - $m->connect( - 'twitter/authorization', - array('action' => 'twitterauthorization') - ); - $m->connect('settings/twitter', array('action' => 'twittersettings')); - - if (common_config('twitter', 'signin')) { - $m->connect('main/twitterlogin', array('action' => 'twitterlogin')); + if (self::hasKeys()) { + $m->connect( + 'twitter/authorization', + array('action' => 'twitterauthorization') + ); + $m->connect( + 'settings/twitter', array( + 'action' => 'twittersettings' + ) + ); + if (common_config('twitter', 'signin')) { + $m->connect( + 'main/twitterlogin', + array('action' => 'twitterlogin') + ); + } } $m->connect('admin/twitter', array('action' => 'twitteradminpanel')); @@ -117,7 +149,7 @@ class TwitterBridgePlugin extends Plugin { $action_name = $action->trimmed('action'); - if (common_config('twitter', 'signin')) { + if (self::hasKeys() && common_config('twitter', 'signin')) { $action->menuItem( common_local_url('twitterlogin'), _m('Twitter'), @@ -138,15 +170,16 @@ class TwitterBridgePlugin extends Plugin */ function onEndConnectSettingsNav(&$action) { - $action_name = $action->trimmed('action'); - - $action->menuItem( - common_local_url('twittersettings'), - _m('Twitter'), - _m('Twitter integration options'), - $action_name === 'twittersettings' - ); + if (self::hasKeys()) { + $action_name = $action->trimmed('action'); + $action->menuItem( + common_local_url('twittersettings'), + _m('Twitter'), + _m('Twitter integration options'), + $action_name === 'twittersettings' + ); + } return true; } @@ -188,12 +221,12 @@ class TwitterBridgePlugin extends Plugin */ function onStartEnqueueNotice($notice, &$transports) { - // Avoid a possible loop - - if ($notice->source != 'twitter') { - array_push($transports, 'twitter'); + if (self::hasKeys()) { + // Avoid a possible loop + if ($notice->source != 'twitter') { + array_push($transports, 'twitter'); + } } - return true; } @@ -206,18 +239,19 @@ class TwitterBridgePlugin extends Plugin */ function onGetValidDaemons($daemons) { - array_push( - $daemons, - INSTALLDIR - . '/plugins/TwitterBridge/daemons/synctwitterfriends.php' - ); - - if (common_config('twitterimport', 'enabled')) { + if (self::hasKeys()) { array_push( $daemons, INSTALLDIR - . '/plugins/TwitterBridge/daemons/twitterstatusfetcher.php' + . '/plugins/TwitterBridge/daemons/synctwitterfriends.php' ); + if (common_config('twitterimport', 'enabled')) { + array_push( + $daemons, + INSTALLDIR + . '/plugins/TwitterBridge/daemons/twitterstatusfetcher.php' + ); + } } return true; @@ -232,7 +266,9 @@ class TwitterBridgePlugin extends Plugin */ function onEndInitializeQueueManager($manager) { - $manager->connect('twitter', 'TwitterQueueHandler'); + if (self::hasKeys()) { + $manager->connect('twitter', 'TwitterQueueHandler'); + } return true; } diff --git a/plugins/TwitterBridge/twitteroauthclient.php b/plugins/TwitterBridge/twitteroauthclient.php index ba45b533d..93f6aadd1 100644 --- a/plugins/TwitterBridge/twitteroauthclient.php +++ b/plugins/TwitterBridge/twitteroauthclient.php @@ -22,7 +22,7 @@ * @category Integration * @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/ */ @@ -61,8 +61,23 @@ class TwitterOAuthClient extends OAuthClient $consumer_key = common_config('twitter', 'consumer_key'); $consumer_secret = common_config('twitter', 'consumer_secret'); - parent::__construct($consumer_key, $consumer_secret, - $oauth_token, $oauth_token_secret); + if (empty($consumer_key) && empty($consumer_secret)) { + $consumer_key = common_config( + 'twitter', + 'global_consumer_key' + ); + $consumer_secret = common_config( + 'twitter', + 'global_consumer_secret' + ); + } + + parent::__construct( + $consumer_key, + $consumer_secret, + $oauth_token, + $oauth_token_secret + ); } // XXX: the following two functions are to support the horrible hack -- cgit v1.2.3-54-g00ecf From 9342e6f818fb35bd7f64412e9765205b5b0af849 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Tue, 2 Mar 2010 16:53:37 -0800 Subject: Remove double word from Twitter bridge README --- plugins/TwitterBridge/README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/TwitterBridge/README b/plugins/TwitterBridge/README index 5117cf69a..d0d34b7ef 100644 --- a/plugins/TwitterBridge/README +++ b/plugins/TwitterBridge/README @@ -55,7 +55,7 @@ unless you configure it with a consumer key and secret.) password under an older version of StatusNet, but all new Twitter bridge connections will use OAuth. -** For multi-site setups you can also set a global consumer key and and +** For multi-site setups you can also set a global consumer key and secret. The Twitter bridge will fall back on the global key pair if it can't find a local pair, e.g.: -- cgit v1.2.3-54-g00ecf From ecccb344e0bb5427ed8a3a82fdf2512da67184b6 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Wed, 3 Mar 2010 01:49:14 +0000 Subject: Show global key and secret, if defined, in Twitter bridge admin panel --- plugins/TwitterBridge/TwitterBridgePlugin.php | 16 +++++----- plugins/TwitterBridge/twitteradminpanel.php | 43 +++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 8 deletions(-) diff --git a/plugins/TwitterBridge/TwitterBridgePlugin.php b/plugins/TwitterBridge/TwitterBridgePlugin.php index bc702e745..1a0a69682 100644 --- a/plugins/TwitterBridge/TwitterBridgePlugin.php +++ b/plugins/TwitterBridge/TwitterBridgePlugin.php @@ -88,15 +88,15 @@ class TwitterBridgePlugin extends Plugin static function hasKeys() { - $key = common_config('twitter', 'consumer_key'); - $secret = common_config('twitter', 'consumer_secret'); + $ckey = common_config('twitter', 'consumer_key'); + $csecret = common_config('twitter', 'consumer_secret'); - if (empty($key) && empty($secret)) { - $key = common_config('twitter', 'global_consumer_key'); - $secret = common_config('twitter', 'global_consumer_secret'); + if (empty($ckey) && empty($csecret)) { + $ckey = common_config('twitter', 'global_consumer_key'); + $csecret = common_config('twitter', 'global_consumer_secret'); } - if (!empty($key) && !empty($secret)) { + if (!empty($ckey) && !empty($csecret)) { return true; } @@ -115,6 +115,8 @@ class TwitterBridgePlugin extends Plugin function onRouterInitialized($m) { + $m->connect('admin/twitter', array('action' => 'twitteradminpanel')); + if (self::hasKeys()) { $m->connect( 'twitter/authorization', @@ -133,8 +135,6 @@ class TwitterBridgePlugin extends Plugin } } - $m->connect('admin/twitter', array('action' => 'twitteradminpanel')); - return true; } diff --git a/plugins/TwitterBridge/twitteradminpanel.php b/plugins/TwitterBridge/twitteradminpanel.php index b22e6d99f..0ed53bc05 100644 --- a/plugins/TwitterBridge/twitteradminpanel.php +++ b/plugins/TwitterBridge/twitteradminpanel.php @@ -225,6 +225,49 @@ class TwitterAdminPanelForm extends AdminForm ); $this->unli(); + $globalConsumerKey = common_config('twitter', 'global_consumer_key'); + $globalConsumerSec = common_config('twitter', 'global_consumer_secret'); + + if (!empty($globalConsumerKey)) { + $this->li(); + $this->out->element( + 'label', + array('for' => 'global_consumer_key'), + '' + ); + $this->out->element( + 'input', + array( + 'name' => 'global_consumer_key', + 'type' => 'text', + 'id' => 'global_consumer_key', + 'value' => $globalConsumerKey, + 'disabled' => 'true' + ) + ); + $this->out->element('p', 'form_guide', _('Global consumer key')); + $this->unli(); + + $this->li(); + $this->out->element( + 'label', + array('for' => 'global_consumer_secret'), + '' + ); + $this->out->element( + 'input', + array( + 'name' => 'global_consumer_secret', + 'type' => 'text', + 'id' => 'global_consumer_secret', + 'value' => $globalConsumerSec, + 'disabled' => 'true' + ) + ); + $this->out->element('p', 'form_guide', _('Global consumer secret')); + $this->unli(); + } + $this->li(); $this->input( 'source', -- cgit v1.2.3-54-g00ecf From 4aa516db454f56c5f6307b17503b6c524bd918ae Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Tue, 2 Mar 2010 18:27:37 -0800 Subject: Make Facebook plugin look for API key and secret before doing anything --- plugins/Facebook/FacebookPlugin.php | 159 ++++++++++++++++++++++-------------- 1 file changed, 98 insertions(+), 61 deletions(-) diff --git a/plugins/Facebook/FacebookPlugin.php b/plugins/Facebook/FacebookPlugin.php index 014d0d197..90ed7351f 100644 --- a/plugins/Facebook/FacebookPlugin.php +++ b/plugins/Facebook/FacebookPlugin.php @@ -79,6 +79,25 @@ class FacebookPlugin extends Plugin } } + /** + * Check to see if there is an API key and secret defined + * for Facebook integration. + * + * @return boolean result + */ + + static function hasKeys() + { + $apiKey = common_config('facebook', 'apikey'); + $apiSecret = common_config('facebook', 'secret'); + + if (!empty($apiKey) && !empty($apiSecret)) { + return true; + } + + return false; + } + /** * Add Facebook app actions to the router table * @@ -91,23 +110,26 @@ class FacebookPlugin extends Plugin function onStartInitializeRouter($m) { + $m->connect('admin/facebook', array('action' => 'facebookadminpanel')); - // Facebook App stuff + if (self::hasKeys()) { - $m->connect('facebook/app', array('action' => 'facebookhome')); - $m->connect('facebook/app/index.php', array('action' => 'facebookhome')); - $m->connect('facebook/app/settings.php', - array('action' => 'facebooksettings')); - $m->connect('facebook/app/invite.php', array('action' => 'facebookinvite')); - $m->connect('facebook/app/remove', array('action' => 'facebookremove')); - $m->connect('admin/facebook', array('action' => 'facebookadminpanel')); + // Facebook App stuff - // Facebook Connect stuff + $m->connect('facebook/app', array('action' => 'facebookhome')); + $m->connect('facebook/app/index.php', array('action' => 'facebookhome')); + $m->connect('facebook/app/settings.php', + array('action' => 'facebooksettings')); + $m->connect('facebook/app/invite.php', array('action' => 'facebookinvite')); + $m->connect('facebook/app/remove', array('action' => 'facebookremove')); - $m->connect('main/facebookconnect', array('action' => 'FBConnectAuth')); - $m->connect('main/facebooklogin', array('action' => 'FBConnectLogin')); - $m->connect('settings/facebook', array('action' => 'FBConnectSettings')); - $m->connect('xd_receiver.html', array('action' => 'FBC_XDReceiver')); + // Facebook Connect stuff + + $m->connect('main/facebookconnect', array('action' => 'FBConnectAuth')); + $m->connect('main/facebooklogin', array('action' => 'FBConnectLogin')); + $m->connect('settings/facebook', array('action' => 'FBConnectSettings')); + $m->connect('xd_receiver.html', array('action' => 'FBC_XDReceiver')); + } return true; } @@ -338,6 +360,9 @@ class FacebookPlugin extends Plugin function reqFbScripts($action) { + if (!self::hasKeys()) { + return false; + } // If you're logged in w/FB Connect, you always need the FB stuff @@ -410,42 +435,45 @@ class FacebookPlugin extends Plugin function onStartPrimaryNav($action) { - $user = common_current_user(); + if (self::hasKeys()) { - $connect = 'FBConnectSettings'; - if (common_config('xmpp', 'enabled')) { - $connect = 'imsettings'; - } else if (common_config('sms', 'enabled')) { - $connect = 'smssettings'; - } + $user = common_current_user(); - if (!empty($user)) { + $connect = 'FBConnectSettings'; + if (common_config('xmpp', 'enabled')) { + $connect = 'imsettings'; + } else if (common_config('sms', 'enabled')) { + $connect = 'smssettings'; + } - $fbuid = $this->loggedIn(); + if (!empty($user)) { - if (!empty($fbuid)) { + $fbuid = $this->loggedIn(); - /* Default FB silhouette pic for FB users who haven't - uploaded a profile pic yet. */ + if (!empty($fbuid)) { - $silhouetteUrl = - 'http://static.ak.fbcdn.net/pics/q_silhouette.gif'; + /* Default FB silhouette pic for FB users who haven't + uploaded a profile pic yet. */ - $url = $this->getProfilePicURL($fbuid); + $silhouetteUrl = + 'http://static.ak.fbcdn.net/pics/q_silhouette.gif'; - $action->elementStart('li', array('id' => 'nav_fb')); + $url = $this->getProfilePicURL($fbuid); - $action->element('img', array('id' => 'fbc_profile-pic', - 'src' => (!empty($url)) ? $url : $silhouetteUrl, - 'alt' => 'Facebook Connect User', - 'width' => '16'), ''); + $action->elementStart('li', array('id' => 'nav_fb')); - $iconurl = common_path('plugins/Facebook/fbfavicon.ico'); - $action->element('img', array('id' => 'fb_favicon', - 'src' => $iconurl)); + $action->element('img', array('id' => 'fbc_profile-pic', + 'src' => (!empty($url)) ? $url : $silhouetteUrl, + 'alt' => 'Facebook Connect User', + 'width' => '16'), ''); - $action->elementEnd('li'); + $iconurl = common_path('plugins/Facebook/fbfavicon.ico'); + $action->element('img', array('id' => 'fb_favicon', + 'src' => $iconurl)); + $action->elementEnd('li'); + + } } } @@ -462,14 +490,15 @@ class FacebookPlugin extends Plugin function onEndLoginGroupNav(&$action) { + if (self::hasKeys()) { - $action_name = $action->trimmed('action'); - - $action->menuItem(common_local_url('FBConnectLogin'), - _m('Facebook'), - _m('Login or register using Facebook'), - 'FBConnectLogin' === $action_name); + $action_name = $action->trimmed('action'); + $action->menuItem(common_local_url('FBConnectLogin'), + _m('Facebook'), + _m('Login or register using Facebook'), + 'FBConnectLogin' === $action_name); + } return true; } @@ -483,13 +512,15 @@ class FacebookPlugin extends Plugin function onEndConnectSettingsNav(&$action) { - $action_name = $action->trimmed('action'); + if (self::hasKeys()) { - $action->menuItem(common_local_url('FBConnectSettings'), - _m('Facebook'), - _m('Facebook Connect Settings'), - $action_name === 'FBConnectSettings'); + $action_name = $action->trimmed('action'); + $action->menuItem(common_local_url('FBConnectSettings'), + _m('Facebook'), + _m('Facebook Connect Settings'), + $action_name === 'FBConnectSettings'); + } return true; } @@ -503,20 +534,22 @@ class FacebookPlugin extends Plugin function onStartLogout($action) { - $action->logout(); - $fbuid = $this->loggedIn(); + if (self::hasKeys()) { - if (!empty($fbuid)) { - try { - $facebook = getFacebook(); - $facebook->expire_session(); - } catch (Exception $e) { - common_log(LOG_WARNING, 'Facebook Connect Plugin - ' . - 'Could\'t logout of Facebook: ' . - $e->getMessage()); + $action->logout(); + $fbuid = $this->loggedIn(); + + if (!empty($fbuid)) { + try { + $facebook = getFacebook(); + $facebook->expire_session(); + } catch (Exception $e) { + common_log(LOG_WARNING, 'Facebook Connect Plugin - ' . + 'Could\'t logout of Facebook: ' . + $e->getMessage()); + } } } - return true; } @@ -562,7 +595,9 @@ class FacebookPlugin extends Plugin function onStartEnqueueNotice($notice, &$transports) { - array_push($transports, 'facebook'); + if (self::hasKeys()) { + array_push($transports, 'facebook'); + } return true; } @@ -575,7 +610,9 @@ class FacebookPlugin extends Plugin */ function onEndInitializeQueueManager($manager) { - $manager->connect('facebook', 'FacebookQueueHandler'); + if (self::hasKeys()) { + $manager->connect('facebook', 'FacebookQueueHandler'); + } return true; } -- cgit v1.2.3-54-g00ecf From 15574c59def8160020d367bd441a55f2d0afe6b6 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 3 Mar 2010 12:55:01 -0500 Subject: Added event hooks at the start and end of groups mini list --- EVENTS.txt | 6 ++++++ lib/profileaction.php | 35 ++++++++++++++++++----------------- 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/EVENTS.txt b/EVENTS.txt index 2c3863f22..47c67512a 100644 --- a/EVENTS.txt +++ b/EVENTS.txt @@ -790,6 +790,12 @@ StartShowSubscriptionsMiniList: at the start of subscriptions mini list EndShowSubscriptionsMiniList: at the end of subscriptions mini list - $action: the current action +StartShowGroupsMiniList: at the start of groups mini list +- $action: the current action + +EndShowGroupsMiniList: at the end of groups mini list +- $action: the current action + StartDeleteUserForm: starting the data in the form for deleting a user - $action: action being shown - $user: user being deleted diff --git a/lib/profileaction.php b/lib/profileaction.php index 2bda8b07c..029c21845 100644 --- a/lib/profileaction.php +++ b/lib/profileaction.php @@ -105,7 +105,6 @@ class ProfileAction extends OwnerDesignAction $this->elementStart('div', array('id' => 'entity_subscriptions', 'class' => 'section')); - if (Event::handle('StartShowSubscriptionsMiniList', array($this))) { $this->element('h2', null, _('Subscriptions')); @@ -229,27 +228,29 @@ class ProfileAction extends OwnerDesignAction $this->elementStart('div', array('id' => 'entity_groups', 'class' => 'section')); + if (Event::handle('StartShowGroupsMiniList', array($this))) { + $this->element('h2', null, _('Groups')); - $this->element('h2', null, _('Groups')); + if ($groups) { + $gml = new GroupMiniList($groups, $this->user, $this); + $cnt = $gml->show(); + if ($cnt == 0) { + $this->element('p', null, _('(None)')); + } + } - if ($groups) { - $gml = new GroupMiniList($groups, $this->user, $this); - $cnt = $gml->show(); - if ($cnt == 0) { - $this->element('p', null, _('(None)')); + if ($cnt > GROUPS_PER_MINILIST) { + $this->elementStart('p'); + $this->element('a', array('href' => common_local_url('usergroups', + array('nickname' => $this->profile->nickname)), + 'class' => 'more'), + _('All groups')); + $this->elementEnd('p'); } - } - if ($cnt > GROUPS_PER_MINILIST) { - $this->elementStart('p'); - $this->element('a', array('href' => common_local_url('usergroups', - array('nickname' => $this->profile->nickname)), - 'class' => 'more'), - _('All groups')); - $this->elementEnd('p'); + Event::handle('EndShowGroupsMiniList', array($this)); } - - $this->elementEnd('div'); + $this->elementEnd('div'); } } -- cgit v1.2.3-54-g00ecf From c8bdf3cacbff1e5ce92b4553480e44d9f0053158 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 3 Mar 2010 12:56:19 -0500 Subject: Added group subscription button to groups mini list --- plugins/OStatus/OStatusPlugin.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/plugins/OStatus/OStatusPlugin.php b/plugins/OStatus/OStatusPlugin.php index 014fb0b38..38f5e8d41 100644 --- a/plugins/OStatus/OStatusPlugin.php +++ b/plugins/OStatus/OStatusPlugin.php @@ -738,6 +738,13 @@ class OStatusPlugin extends Plugin return true; } + function onEndShowGroupsMiniList($action) + { + $this->showEntityRemoteSubscribe($action); + + return true; + } + function showEntityRemoteSubscribe($action) { $user = common_current_user(); -- cgit v1.2.3-54-g00ecf From 7d7847295afb6b801b1a904c257a7ac5531b806e Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 3 Mar 2010 13:17:00 -0500 Subject: Using position relative only for the remote subscription in section --- plugins/OStatus/theme/base/css/ostatus.css | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/OStatus/theme/base/css/ostatus.css b/plugins/OStatus/theme/base/css/ostatus.css index 40cdfcef1..d1c60cc0d 100644 --- a/plugins/OStatus/theme/base/css/ostatus.css +++ b/plugins/OStatus/theme/base/css/ostatus.css @@ -41,6 +41,9 @@ min-width:96px; #entity_remote_subscribe { padding:0; float:right; +} + +.section #entity_remote_subscribe { position:relative; } -- cgit v1.2.3-54-g00ecf From 61ada4558d69901c71b6542c16d43b5ea75ea3b3 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Wed, 3 Mar 2010 10:19:14 -0800 Subject: Fix for disappearing 'connect' menu if xmpp and sms are disabled. All 'connect' menu panels used to be optional, so Action tried to figure out what the first item on the 'connect' menu should be. This is no longer necessary because we have the non-optional OAuth client connections panel now, which is not optional and can't be turned off. --- lib/action.php | 13 ++----------- plugins/Facebook/FacebookPlugin.php | 10 ---------- plugins/MobileProfile/MobileProfilePlugin.php | 11 +---------- 3 files changed, 3 insertions(+), 31 deletions(-) diff --git a/lib/action.php b/lib/action.php index 0918c6858..816086d20 100644 --- a/lib/action.php +++ b/lib/action.php @@ -420,13 +420,6 @@ class Action extends HTMLOutputter // lawsuit function showPrimaryNav() { $user = common_current_user(); - $connect = ''; - if (common_config('xmpp', 'enabled')) { - $connect = 'imsettings'; - } else if (common_config('sms', 'enabled')) { - $connect = 'smssettings'; - } - $this->elementStart('dl', array('id' => 'site_nav_global_primary')); $this->element('dt', null, _('Primary site navigation')); $this->elementStart('dd'); @@ -437,10 +430,8 @@ class Action extends HTMLOutputter // lawsuit _('Home'), _('Personal profile and friends timeline'), false, 'nav_home'); $this->menuItem(common_local_url('profilesettings'), _('Account'), _('Change your email, avatar, password, profile'), false, 'nav_account'); - if ($connect) { - $this->menuItem(common_local_url($connect), - _('Connect'), _('Connect to services'), false, 'nav_connect'); - } + $this->menuItem(common_local_url('oauthconnectionssettings'), + _('Connect'), _('Connect to services'), false, 'nav_connect'); if ($user->hasRight(Right::CONFIGURESITE)) { $this->menuItem(common_local_url('siteadminpanel'), _('Admin'), _('Change site configuration'), false, 'nav_admin'); diff --git a/plugins/Facebook/FacebookPlugin.php b/plugins/Facebook/FacebookPlugin.php index 90ed7351f..65d4409b5 100644 --- a/plugins/Facebook/FacebookPlugin.php +++ b/plugins/Facebook/FacebookPlugin.php @@ -436,16 +436,7 @@ class FacebookPlugin extends Plugin function onStartPrimaryNav($action) { if (self::hasKeys()) { - $user = common_current_user(); - - $connect = 'FBConnectSettings'; - if (common_config('xmpp', 'enabled')) { - $connect = 'imsettings'; - } else if (common_config('sms', 'enabled')) { - $connect = 'smssettings'; - } - if (!empty($user)) { $fbuid = $this->loggedIn(); @@ -472,7 +463,6 @@ class FacebookPlugin extends Plugin 'src' => $iconurl)); $action->elementEnd('li'); - } } } diff --git a/plugins/MobileProfile/MobileProfilePlugin.php b/plugins/MobileProfile/MobileProfilePlugin.php index f788639ae..0b37734b7 100644 --- a/plugins/MobileProfile/MobileProfilePlugin.php +++ b/plugins/MobileProfile/MobileProfilePlugin.php @@ -307,23 +307,14 @@ class MobileProfilePlugin extends WAP20Plugin function _showPrimaryNav($action) { $user = common_current_user(); - $connect = ''; - if (common_config('xmpp', 'enabled')) { - $connect = 'imsettings'; - } else if (common_config('sms', 'enabled')) { - $connect = 'smssettings'; - } - $action->elementStart('ul', array('id' => 'site_nav_global_primary')); if ($user) { $action->menuItem(common_local_url('all', array('nickname' => $user->nickname)), _('Home')); $action->menuItem(common_local_url('profilesettings'), _('Account')); - if ($connect) { - $action->menuItem(common_local_url($connect), + $action->menuItem(common_local_url('oauthconnectionssettings'), _('Connect')); - } if ($user->hasRight(Right::CONFIGURESITE)) { $action->menuItem(common_local_url('siteadminpanel'), _('Admin'), _('Change site configuration'), false, 'nav_admin'); -- cgit v1.2.3-54-g00ecf From 023b9bb00f096a532218b6689c1f035051653c8e Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 3 Mar 2010 13:30:14 -0500 Subject: Renamed subscribe button from New to Remote since it only does remote subscriptions at the moment. --- plugins/OStatus/OStatusPlugin.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/OStatus/OStatusPlugin.php b/plugins/OStatus/OStatusPlugin.php index 9d5613b20..e371f72f9 100644 --- a/plugins/OStatus/OStatusPlugin.php +++ b/plugins/OStatus/OStatusPlugin.php @@ -754,7 +754,7 @@ class OStatusPlugin extends Plugin 'class' => 'entity_subscribe')); $action->element('a', array('href' => common_local_url('ostatussub'), 'class' => 'entity_remote_subscribe') - , _m('New')); + , _m('Remote')); $action->elementEnd('p'); $action->elementEnd('div'); } -- cgit v1.2.3-54-g00ecf From 3bb42d117027ebf610481ca3b0733854e0127e56 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 3 Mar 2010 19:00:02 +0000 Subject: Use poster's subscribed groups to disambiguate group linking when a remote group and a local group exist with the same name. (If you're a member of two groups with the same name though, there's not a defined winner.) --- classes/Notice.php | 2 +- classes/Profile.php | 26 ++++++++++++++++++++++++++ classes/User.php | 24 ++---------------------- classes/User_group.php | 20 +++++++++++++++++--- lib/util.php | 2 +- 5 files changed, 47 insertions(+), 27 deletions(-) diff --git a/classes/Notice.php b/classes/Notice.php index c1263c782..97cb3b8fb 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -877,7 +877,7 @@ class Notice extends Memcached_DataObject foreach (array_unique($match[1]) as $nickname) { /* XXX: remote groups. */ - $group = User_group::getForNickname($nickname); + $group = User_group::getForNickname($nickname, $profile); if (empty($group)) { continue; diff --git a/classes/Profile.php b/classes/Profile.php index 470ef3320..9c2fa7a0c 100644 --- a/classes/Profile.php +++ b/classes/Profile.php @@ -282,6 +282,32 @@ class Profile extends Memcached_DataObject } } + function getGroups($offset=0, $limit=null) + { + $qry = + 'SELECT user_group.* ' . + 'FROM user_group JOIN group_member '. + 'ON user_group.id = group_member.group_id ' . + 'WHERE group_member.profile_id = %d ' . + 'ORDER BY group_member.created DESC '; + + if ($offset>0 && !is_null($limit)) { + if ($offset) { + if (common_config('db','type') == 'pgsql') { + $qry .= ' LIMIT ' . $limit . ' OFFSET ' . $offset; + } else { + $qry .= ' LIMIT ' . $offset . ', ' . $limit; + } + } + } + + $groups = new User_group(); + + $cnt = $groups->query(sprintf($qry, $this->id)); + + return $groups; + } + function avatarUrl($size=AVATAR_PROFILE_SIZE) { $avatar = $this->getAvatar($size); diff --git a/classes/User.php b/classes/User.php index 57d76731b..aa9fbf948 100644 --- a/classes/User.php +++ b/classes/User.php @@ -612,28 +612,8 @@ class User extends Memcached_DataObject function getGroups($offset=0, $limit=null) { - $qry = - 'SELECT user_group.* ' . - 'FROM user_group JOIN group_member '. - 'ON user_group.id = group_member.group_id ' . - 'WHERE group_member.profile_id = %d ' . - 'ORDER BY group_member.created DESC '; - - if ($offset>0 && !is_null($limit)) { - if ($offset) { - if (common_config('db','type') == 'pgsql') { - $qry .= ' LIMIT ' . $limit . ' OFFSET ' . $offset; - } else { - $qry .= ' LIMIT ' . $offset . ', ' . $limit; - } - } - } - - $groups = new User_group(); - - $cnt = $groups->query(sprintf($qry, $this->id)); - - return $groups; + $profile = $this->getProfile(); + return $profile->getGroups($offset, $limit); } function getSubscriptions($offset=0, $limit=null) diff --git a/classes/User_group.php b/classes/User_group.php index 64fe024b3..1a5ddf253 100644 --- a/classes/User_group.php +++ b/classes/User_group.php @@ -279,12 +279,26 @@ class User_group extends Memcached_DataObject return true; } - static function getForNickname($nickname) + static function getForNickname($nickname, $profile=null) { $nickname = common_canonical_nickname($nickname); - $group = User_group::staticGet('nickname', $nickname); + + // Are there any matching remote groups this profile's in? + if ($profile) { + $group = $profile->getGroups(); + while ($group->fetch()) { + if ($group->nickname == $nickname) { + // @fixme is this the best way? + return clone($group); + } + } + } + + // If not, check local groups. + + $group = Local_group::staticGet('nickname', $nickname); if (!empty($group)) { - return $group; + return User_group::staticGet('id', $group->group_id); } $alias = Group_alias::staticGet('alias', $nickname); if (!empty($alias)) { diff --git a/lib/util.php b/lib/util.php index add1b0ae6..46be920fa 100644 --- a/lib/util.php +++ b/lib/util.php @@ -853,7 +853,7 @@ function common_valid_profile_tag($str) function common_group_link($sender_id, $nickname) { $sender = Profile::staticGet($sender_id); - $group = User_group::getForNickname($nickname); + $group = User_group::getForNickname($nickname, $sender); if ($sender && $group && $sender->isMember($group)) { $attrs = array('href' => $group->permalink(), 'class' => 'url'); -- cgit v1.2.3-54-g00ecf From 33af29b47cb4009dc89b5431597bfda14dccfe65 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 3 Mar 2010 19:22:22 +0000 Subject: Fix for 4113f2884113f288: show regular subscribe form for all non-OMB profiles. We can't initiate remote sub for an OMB from our end, so dropping there. --- lib/profilelist.php | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/lib/profilelist.php b/lib/profilelist.php index 4f1e84a6a..d970e605a 100644 --- a/lib/profilelist.php +++ b/lib/profilelist.php @@ -273,18 +273,12 @@ class ProfileListItem extends Widget $usf = new UnsubscribeForm($this->out, $this->profile); $usf->show(); } else { - $other = User::staticGet('id', $this->profile->id); - if (!empty($other)) { + // We can't initiate sub for a remote OMB profile. + $remote = Remote_profile::staticGet('id', $this->profile->id); + if (empty($remote)) { $sf = new SubscribeForm($this->out, $this->profile); $sf->show(); } - else { - $url = common_local_url('remotesubscribe', - array('nickname' => $this->profile->nickname)); - $this->out->element('a', array('href' => $url, - 'class' => 'entity_remote_subscribe'), - _('Subscribe')); - } } $this->out->elementEnd('li'); } -- cgit v1.2.3-54-g00ecf From ccd0db1e0a928fe914c894966ecf2260964a68f0 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Wed, 3 Mar 2010 14:32:03 -0500 Subject: add remote subscribe button for not-logged-in users looking a profile list with local users in it --- plugins/OStatus/OStatusPlugin.php | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/plugins/OStatus/OStatusPlugin.php b/plugins/OStatus/OStatusPlugin.php index e371f72f9..da7ca2fe2 100644 --- a/plugins/OStatus/OStatusPlugin.php +++ b/plugins/OStatus/OStatusPlugin.php @@ -111,11 +111,11 @@ class OStatusPlugin extends Plugin $acct = 'acct:'. $action->profile->nickname .'@'. common_config('site', 'server'); $url = common_local_url('xrd'); $url.= '?uri='. $acct; - + header('Link: <'.$url.'>; rel="'. Discovery::LRDD_REL.'"; type="application/xrd+xml"'); } } - + /** * Set up a PuSH hub link to our internal link for canonical timeline * Atom feeds for users and groups. @@ -229,7 +229,6 @@ class OStatusPlugin extends Plugin return false; } - /** * Check if we've got remote replies to send via Salmon. * @@ -587,7 +586,6 @@ class OStatusPlugin extends Plugin // Drop the PuSH subscription if there are no other subscribers. $oprofile->garbageCollect(); - $member = Profile::staticGet($user->id); $act = new Activity(); @@ -806,4 +804,28 @@ class OStatusPlugin extends Plugin return true; } + + function onStartProfileListItemActionElements($item) + { + if (!common_logged_in()) { + + $profileUser = User::staticGet('id', $item->profile->id); + + if (!empty($profileUser)) { + + $output = $item->out; + + // Add an OStatus subscribe + $output->elementStart('li', 'entity_subscribe'); + $url = common_local_url('ostatusinit', + array('nickname' => $profileUser->nickname)); + $output->element('a', array('href' => $url, + 'class' => 'entity_remote_subscribe'), + _m('Subscribe')); + $output->elementEnd('li'); + } + } + + return true; + } } -- cgit v1.2.3-54-g00ecf From c82efb7fd8ba28b854020821246878fc0a8cec2b Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Wed, 3 Mar 2010 15:09:07 -0500 Subject: subscribers list wasn't firing correct events --- actions/subscribers.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/actions/subscribers.php b/actions/subscribers.php index cd3e2ee5b..4bced6284 100644 --- a/actions/subscribers.php +++ b/actions/subscribers.php @@ -143,9 +143,12 @@ class SubscribersListItem extends SubscriptionListItem function showActions() { $this->startActions(); - $this->showSubscribeButton(); - // Relevant code! - $this->showBlockForm(); + if (Event::handle('StartProfileListItemActionElements', array($this))) { + $this->showSubscribeButton(); + // Relevant code! + $this->showBlockForm(); + Event::handle('EndProfileListItemActionElements', array($this)); + } $this->endActions(); } -- cgit v1.2.3-54-g00ecf From 2f167f2663b2731d9f5d21bb9893aebff4dcf6f0 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Wed, 3 Mar 2010 12:10:21 -0800 Subject: Fix syntax errors --- actions/oauthconnectionssettings.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/actions/oauthconnectionssettings.php b/actions/oauthconnectionssettings.php index b1467f0d0..f125f4c63 100644 --- a/actions/oauthconnectionssettings.php +++ b/actions/oauthconnectionssettings.php @@ -99,7 +99,7 @@ class OauthconnectionssettingsAction extends ConnectSettingsAction $application = $profile->getApplications($offset, $limit); - $cnt == 0; + $cnt = 0; if (!empty($application)) { $al = new ApplicationList($application, $user, $this, true); @@ -112,7 +112,7 @@ class OauthconnectionssettingsAction extends ConnectSettingsAction $this->pagination($this->page > 1, $cnt > APPS_PER_PAGE, $this->page, 'connectionssettings', - array('nickname' => $this->user->nickname)); + array('nickname' => $user->nickname)); } /** -- cgit v1.2.3-54-g00ecf From 0881eba80eabfea65919be2f3d65235ccd0b5eb6 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 3 Mar 2010 12:08:07 -0800 Subject: Language setting fixes: - switch 'en_US' to 'en', fixes the "admin panel switches to Arabic" bug - tweak setting descriptions to clarify that most of the time we'll be using browser language - add a backend switch to disable language detection (should this be exposed to ui?) --- actions/siteadminpanel.php | 4 ++-- index.php | 1 + lib/default.php | 3 ++- lib/util.php | 12 +++++++----- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/actions/siteadminpanel.php b/actions/siteadminpanel.php index 8c8f8b374..4b29819b7 100644 --- a/actions/siteadminpanel.php +++ b/actions/siteadminpanel.php @@ -277,8 +277,8 @@ class SiteAdminPanelForm extends AdminForm $this->unli(); $this->li(); - $this->out->dropdown('language', _('Language'), - get_nice_language_list(), _('Default site language'), + $this->out->dropdown('language', _('Default language'), + get_nice_language_list(), _('Site language when autodetection from browser settings is not available'), false, $this->value('language')); $this->unli(); diff --git a/index.php b/index.php index 06ff9900f..a46bc084d 100644 --- a/index.php +++ b/index.php @@ -253,6 +253,7 @@ function main() $user = common_current_user(); // initialize language env +common_log(LOG_DEBUG, "XXX: WAIII"); common_init_language(); diff --git a/lib/default.php b/lib/default.php index 7b50242ae..b7216045c 100644 --- a/lib/default.php +++ b/lib/default.php @@ -40,7 +40,8 @@ $default = 'logdebug' => false, 'fancy' => false, 'locale_path' => INSTALLDIR.'/locale', - 'language' => 'en_US', + 'language' => 'en', + 'langdetect' => true, 'languages' => get_all_languages(), 'email' => array_key_exists('SERVER_ADMIN', $_SERVER) ? $_SERVER['SERVER_ADMIN'] : null, diff --git a/lib/util.php b/lib/util.php index 46be920fa..da2799d4f 100644 --- a/lib/util.php +++ b/lib/util.php @@ -105,11 +105,13 @@ function common_language() // Otherwise, find the best match for the languages requested by the // user's browser... - $httplang = isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? $_SERVER['HTTP_ACCEPT_LANGUAGE'] : null; - if (!empty($httplang)) { - $language = client_prefered_language($httplang); - if ($language) - return $language; + if (common_config('site', 'langdetect')) { + $httplang = isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? $_SERVER['HTTP_ACCEPT_LANGUAGE'] : null; + if (!empty($httplang)) { + $language = client_prefered_language($httplang); + if ($language) + return $language; + } } // Finally, if none of the above worked, use the site's default... -- cgit v1.2.3-54-g00ecf From c7d390e4949b28c28c95375bfe4523de05af7808 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Wed, 3 Mar 2010 12:18:20 -0800 Subject: Add class="admin" to the content div of admin panels for styling --- lib/adminpanelaction.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/lib/adminpanelaction.php b/lib/adminpanelaction.php index 536d97cdf..9ea4fe206 100644 --- a/lib/adminpanelaction.php +++ b/lib/adminpanelaction.php @@ -171,6 +171,24 @@ class AdminPanelAction extends Action $this->showForm(); } + /** + * Show content block. Overrided just to add a special class + * to the content div to allow styling. + * + * @return nothing + */ + function showContentBlock() + { + $this->elementStart('div', array('id' => 'content', 'class' => 'admin')); + $this->showPageTitle(); + $this->showPageNoticeBlock(); + $this->elementStart('div', array('id' => 'content_inner')); + // show the actual content (forms, lists, whatever) + $this->showContent(); + $this->elementEnd('div'); + $this->elementEnd('div'); + } + /** * show human-readable instructions for the page, or * a success/failure on save. -- cgit v1.2.3-54-g00ecf From 2ce9ae004d1f15ea4181f9fa686a73817ee45474 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 3 Mar 2010 15:29:51 -0500 Subject: Added event hooks for before and after user groups content --- EVENTS.txt | 6 ++++++ actions/usergroups.php | 30 +++++++++++++++++------------- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/EVENTS.txt b/EVENTS.txt index 47c67512a..2da6f3da6 100644 --- a/EVENTS.txt +++ b/EVENTS.txt @@ -778,6 +778,12 @@ StartShowSubscriptionsContent: before showing the subscriptions content EndShowSubscriptionsContent: after showing the subscriptions content - $action: the current action +StartShowUserGroupsContent: before showing the user groups content +- $action: the current action + +EndShowUserGroupsContent: after showing the user groups content +- $action: the current action + StartShowAllContent: before showing the all (you and friends) content - $action: the current action diff --git a/actions/usergroups.php b/actions/usergroups.php index 97faabae6..29bda0a76 100644 --- a/actions/usergroups.php +++ b/actions/usergroups.php @@ -130,22 +130,26 @@ class UsergroupsAction extends OwnerDesignAction _('Search for more groups')); $this->elementEnd('p'); - $offset = ($this->page-1) * GROUPS_PER_PAGE; - $limit = GROUPS_PER_PAGE + 1; + if (Event::handle('StartShowUserGroupsContent', array($this))) { + $offset = ($this->page-1) * GROUPS_PER_PAGE; + $limit = GROUPS_PER_PAGE + 1; + + $groups = $this->user->getGroups($offset, $limit); + + if ($groups) { + $gl = new GroupList($groups, $this->user, $this); + $cnt = $gl->show(); + if (0 == $cnt) { + $this->showEmptyListMessage(); + } + } - $groups = $this->user->getGroups($offset, $limit); + $this->pagination($this->page > 1, $cnt > GROUPS_PER_PAGE, + $this->page, 'usergroups', + array('nickname' => $this->user->nickname)); - if ($groups) { - $gl = new GroupList($groups, $this->user, $this); - $cnt = $gl->show(); - if (0 == $cnt) { - $this->showEmptyListMessage(); - } + Event::handle('EndShowUserGroupsContent', array($this)); } - - $this->pagination($this->page > 1, $cnt > GROUPS_PER_PAGE, - $this->page, 'usergroups', - array('nickname' => $this->user->nickname)); } function showEmptyListMessage() -- cgit v1.2.3-54-g00ecf From 3c55edde39086918eea8c1adba5d01a026e230a3 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 3 Mar 2010 15:30:43 -0500 Subject: Showing the remote subscribe button on the user groups page --- plugins/OStatus/OStatusPlugin.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/plugins/OStatus/OStatusPlugin.php b/plugins/OStatus/OStatusPlugin.php index da7ca2fe2..dc502e52c 100644 --- a/plugins/OStatus/OStatusPlugin.php +++ b/plugins/OStatus/OStatusPlugin.php @@ -729,6 +729,13 @@ class OStatusPlugin extends Plugin return true; } + function onStartShowUserGroupsContent($action) + { + $this->showEntityRemoteSubscribe($action); + + return true; + } + function onEndShowSubscriptionsMiniList($action) { $this->showEntityRemoteSubscribe($action); -- cgit v1.2.3-54-g00ecf From d3c1888256e32495cb0db9065ff7a03e105299a3 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 3 Mar 2010 15:31:16 -0500 Subject: Generalized style for remote subscription button --- plugins/OStatus/theme/base/css/ostatus.css | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/plugins/OStatus/theme/base/css/ostatus.css b/plugins/OStatus/theme/base/css/ostatus.css index d1c60cc0d..3b8928a3a 100644 --- a/plugins/OStatus/theme/base/css/ostatus.css +++ b/plugins/OStatus/theme/base/css/ostatus.css @@ -41,9 +41,6 @@ min-width:96px; #entity_remote_subscribe { padding:0; float:right; -} - -.section #entity_remote_subscribe { position:relative; } @@ -55,11 +52,10 @@ margin-bottom:0; border-color:#AAAAAA; } -.section #entity_remote_subscribe .dialogbox { +#entity_remote_subscribe .dialogbox { width:405px; } - .aside #entity_subscriptions .more { float:left; } -- cgit v1.2.3-54-g00ecf From ef6bf8f331175374af6889df82927b3cf6757b8a Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 3 Mar 2010 15:42:34 -0500 Subject: Removed aside container from output for the admin panel sections --- lib/adminpanelaction.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/adminpanelaction.php b/lib/adminpanelaction.php index 9ea4fe206..1d9c42563 100644 --- a/lib/adminpanelaction.php +++ b/lib/adminpanelaction.php @@ -189,6 +189,16 @@ class AdminPanelAction extends Action $this->elementEnd('div'); } + /** + * There is no data for aside, so, we don't output + * + * @return nothing + */ + function showAside() + { + + } + /** * show human-readable instructions for the page, or * a success/failure on save. -- cgit v1.2.3-54-g00ecf From 5c70481d30a82c3f2fe91ef5b24be29b8464ae49 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 3 Mar 2010 15:43:02 -0500 Subject: Using the full width for the content area for the admin section. It also makes the local navigation's tabs stay in context with the content --- theme/base/css/display.css | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/theme/base/css/display.css b/theme/base/css/display.css index f32c57ea4..b8dd561cc 100644 --- a/theme/base/css/display.css +++ b/theme/base/css/display.css @@ -452,6 +452,13 @@ width:100%; float:left; } +#content.admin { +width:95.5%; +} +#content.admin #content_inner { +width:66.3%; +} + #aside_primary { width:27.917%; min-height:259px; -- cgit v1.2.3-54-g00ecf From 7e5bf39f768e3c97ddb5b82ad20a690b674f1f47 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 3 Mar 2010 12:57:40 -0800 Subject: Avoid notice on local group creation when uri isn't passed in at create time (needs to be generated) --- classes/User_group.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/classes/User_group.php b/classes/User_group.php index 1a5ddf253..0460c9870 100644 --- a/classes/User_group.php +++ b/classes/User_group.php @@ -455,6 +455,11 @@ class User_group extends Memcached_DataObject $group = new User_group(); $group->query('BEGIN'); + + if (empty($uri)) { + // fill in later... + $uri = null; + } $group->nickname = $nickname; $group->fullname = $fullname; -- cgit v1.2.3-54-g00ecf From c04c8ae59a7953a21cc464a49b657dfdc926e009 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 3 Mar 2010 13:00:09 -0800 Subject: quick fix: skip notice from unused variable on group atom feed generation --- actions/apitimelinegroup.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/actions/apitimelinegroup.php b/actions/apitimelinegroup.php index d0af49844..e30a08fb5 100644 --- a/actions/apitimelinegroup.php +++ b/actions/apitimelinegroup.php @@ -140,7 +140,7 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction // @todo set all this Atom junk up inside the feed class - $atom->setId($id); + #$atom->setId($id); $atom->setTitle($title); $atom->setSubtitle($subtitle); $atom->setLogo($logo); -- cgit v1.2.3-54-g00ecf From 339b0b0a4d506638b7b3457db295ab7969e2a9df Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Wed, 3 Mar 2010 13:05:11 -0800 Subject: Don't expose global Twitter consumer key and secret, because that would be idiotic. --- plugins/TwitterBridge/twitteradminpanel.php | 40 +++-------------------------- 1 file changed, 3 insertions(+), 37 deletions(-) diff --git a/plugins/TwitterBridge/twitteradminpanel.php b/plugins/TwitterBridge/twitteradminpanel.php index 0ed53bc05..a78a92c66 100644 --- a/plugins/TwitterBridge/twitteradminpanel.php +++ b/plugins/TwitterBridge/twitteradminpanel.php @@ -225,46 +225,12 @@ class TwitterAdminPanelForm extends AdminForm ); $this->unli(); - $globalConsumerKey = common_config('twitter', 'global_consumer_key'); + $globalConsumerKey = common_config('twitter', 'global_consumer_key'); $globalConsumerSec = common_config('twitter', 'global_consumer_secret'); - if (!empty($globalConsumerKey)) { + if (!empty($globalConsumerKey) && !empty($globalConsumerSec)) { $this->li(); - $this->out->element( - 'label', - array('for' => 'global_consumer_key'), - '' - ); - $this->out->element( - 'input', - array( - 'name' => 'global_consumer_key', - 'type' => 'text', - 'id' => 'global_consumer_key', - 'value' => $globalConsumerKey, - 'disabled' => 'true' - ) - ); - $this->out->element('p', 'form_guide', _('Global consumer key')); - $this->unli(); - - $this->li(); - $this->out->element( - 'label', - array('for' => 'global_consumer_secret'), - '' - ); - $this->out->element( - 'input', - array( - 'name' => 'global_consumer_secret', - 'type' => 'text', - 'id' => 'global_consumer_secret', - 'value' => $globalConsumerSec, - 'disabled' => 'true' - ) - ); - $this->out->element('p', 'form_guide', _('Global consumer secret')); + $this->out->element('p', 'form_guide', _('Note: a global consumer key and secret are set.')); $this->unli(); } -- cgit v1.2.3-54-g00ecf From 6ff994b14c93c51f1af1a52d568ffb3391d9c6db Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 3 Mar 2010 16:25:17 -0500 Subject: Fix to group join event position. --- actions/showgroup.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/actions/showgroup.php b/actions/showgroup.php index a1dc3865b..5704b13d1 100644 --- a/actions/showgroup.php +++ b/actions/showgroup.php @@ -300,8 +300,8 @@ class ShowgroupAction extends GroupDesignAction $this->elementStart('div', 'entity_actions'); $this->element('h2', null, _('Group actions')); $this->elementStart('ul'); + $this->elementStart('li', 'entity_subscribe'); if (Event::handle('StartGroupSubscribe', array($this, $this->group))) { - $this->elementStart('li', 'entity_subscribe'); $cur = common_current_user(); if ($cur) { if ($cur->isMember($this->group)) { @@ -312,10 +312,9 @@ class ShowgroupAction extends GroupDesignAction $jf->show(); } } - $this->elementEnd('li'); Event::handle('EndGroupSubscribe', array($this, $this->group)); } - + $this->elementEnd('li'); $this->elementEnd('ul'); $this->elementEnd('div'); } -- cgit v1.2.3-54-g00ecf From 219e15ac64b0ceefcd714af27b9bbb53123dbe71 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 3 Mar 2010 16:26:02 -0500 Subject: Returning true instead for group remote subscription. If not logged in, it gives the chance to use the logged in join/leave instead. --- plugins/OStatus/OStatusPlugin.php | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/plugins/OStatus/OStatusPlugin.php b/plugins/OStatus/OStatusPlugin.php index dc502e52c..d28260a4a 100644 --- a/plugins/OStatus/OStatusPlugin.php +++ b/plugins/OStatus/OStatusPlugin.php @@ -216,17 +216,14 @@ class OStatusPlugin extends Plugin if (empty($cur)) { // Add an OStatus subscribe - $output->elementStart('li', 'entity_subscribe'); $url = common_local_url('ostatusinit', array('nickname' => $group->nickname)); $output->element('a', array('href' => $url, 'class' => 'entity_remote_subscribe'), _m('Join')); - - $output->elementEnd('li'); } - return false; + return true; } /** -- cgit v1.2.3-54-g00ecf From a42d1116db06539f2da4eb5332bbdbef5beda3fe Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 3 Mar 2010 13:40:26 -0800 Subject: Separate the UI paths for ostatussub and ostatusgroup. They'll redirect to each other transparently if they find you've put a remote entity of the other type. --- plugins/OStatus/OStatusPlugin.php | 12 +- plugins/OStatus/actions/ostatusgroup.php | 181 +++++++++++++++++++++++++++++++ plugins/OStatus/actions/ostatussub.php | 134 +++++++---------------- 3 files changed, 224 insertions(+), 103 deletions(-) create mode 100644 plugins/OStatus/actions/ostatusgroup.php diff --git a/plugins/OStatus/OStatusPlugin.php b/plugins/OStatus/OStatusPlugin.php index dc502e52c..b4b446a7f 100644 --- a/plugins/OStatus/OStatusPlugin.php +++ b/plugins/OStatus/OStatusPlugin.php @@ -51,8 +51,8 @@ class OStatusPlugin extends Plugin array('action' => 'ostatusinit'), array('nickname' => '[A-Za-z0-9_-]+')); $m->connect('main/ostatussub', array('action' => 'ostatussub')); - $m->connect('main/ostatussub', - array('action' => 'ostatussub'), array('feed' => '[A-Za-z0-9\.\/\:]+')); + $m->connect('main/ostatusgroup', + array('action' => 'ostatusgroup')); // PuSH actions $m->connect('main/push/hub', array('action' => 'pushhub')); @@ -731,7 +731,7 @@ class OStatusPlugin extends Plugin function onStartShowUserGroupsContent($action) { - $this->showEntityRemoteSubscribe($action); + $this->showEntityRemoteSubscribe($action, 'ostatusgroup'); return true; } @@ -745,19 +745,19 @@ class OStatusPlugin extends Plugin function onEndShowGroupsMiniList($action) { - $this->showEntityRemoteSubscribe($action); + $this->showEntityRemoteSubscribe($action, 'ostatusgroup'); return true; } - function showEntityRemoteSubscribe($action) + function showEntityRemoteSubscribe($action, $target='ostatussub') { $user = common_current_user(); if ($user && ($user->id == $action->profile->id)) { $action->elementStart('div', 'entity_actions'); $action->elementStart('p', array('id' => 'entity_remote_subscribe', 'class' => 'entity_subscribe')); - $action->element('a', array('href' => common_local_url('ostatussub'), + $action->element('a', array('href' => common_local_url($target), 'class' => 'entity_remote_subscribe') , _m('Remote')); $action->elementEnd('p'); diff --git a/plugins/OStatus/actions/ostatusgroup.php b/plugins/OStatus/actions/ostatusgroup.php new file mode 100644 index 000000000..4fcd0eb39 --- /dev/null +++ b/plugins/OStatus/actions/ostatusgroup.php @@ -0,0 +1,181 @@ +. + */ + +/** + * @package OStatusPlugin + * @maintainer Brion Vibber + */ + +if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } + +/** + * Key UI methods: + * + * showInputForm() - form asking for a remote profile account or URL + * We end up back here on errors + * + * showPreviewForm() - surrounding form for preview-and-confirm + * preview() - display profile for a remote group + * + * success() - redirects to groups page on join + */ +class OStatusGroupAction extends OStatusSubAction +{ + protected $profile_uri; // provided acct: or URI of remote entity + protected $oprofile; // Ostatus_profile of remote entity, if valid + + + function validateRemoteProfile() + { + if (!$this->oprofile->isGroup()) { + // Send us to the user subscription form for conf + $target = common_local_url('ostatussub', array(), array('profile' => $this->profile_uri)); + common_redirect($target, 303); + } + } + + /** + * Show the initial form, when we haven't yet been given a valid + * remote profile. + */ + function showInputForm() + { + $user = common_current_user(); + + $profile = $user->getProfile(); + + $this->elementStart('form', array('method' => 'post', + 'id' => 'form_ostatus_sub', + 'class' => 'form_settings', + 'action' => $this->selfLink())); + + $this->hidden('token', common_session_token()); + + $this->elementStart('fieldset', array('id' => 'settings_feeds')); + + $this->elementStart('ul', 'form_data'); + $this->elementStart('li'); + $this->input('profile', + _m('Group profile URL'), + $this->profile_uri, + _m('Enter the profile URL of a group on another StatusNet site')); + $this->elementEnd('li'); + $this->elementEnd('ul'); + + $this->submit('validate', _m('Continue')); + + $this->elementEnd('fieldset'); + + $this->elementEnd('form'); + } + + /** + * Show a preview for a remote group's profile + * @return boolean true if we're ok to try joining + */ + function preview() + { + $oprofile = $this->oprofile; + $group = $oprofile->localGroup(); + + $cur = common_current_user(); + if ($cur->isMember($group)) { + $this->element('div', array('class' => 'error'), + _m("You are already a member of this group.")); + $ok = false; + } else { + $ok = true; + } + + $this->showEntity($group, + $group->getProfileUrl(), + $group->homepage_logo, + $group->description); + return $ok; + } + + /** + * Redirect on successful remote group join + */ + function success() + { + $cur = common_current_user(); + $url = common_local_url('usergroups', array('nickname' => $cur->nickname)); + common_redirect($url, 303); + } + + /** + * Attempt to finalize subscription. + * validateFeed must have been run first. + * + * Calls showForm on failure or success on success. + */ + function saveFeed() + { + $user = common_current_user(); + $group = $this->oprofile->localGroup(); + if ($user->isMember($group)) { + // TRANS: OStatus remote group subscription dialog error. + $this->showForm(_m('Already a member!')); + return; + } + + if (Event::handle('StartJoinGroup', array($group, $user))) { + $ok = Group_member::join($this->oprofile->group_id, $user->id); + if ($ok) { + Event::handle('EndJoinGroup', array($group, $user)); + $this->success(); + } else { + // TRANS: OStatus remote group subscription dialog error. + $this->showForm(_m('Remote group join failed!')); + } + } else { + // TRANS: OStatus remote group subscription dialog error. + $this->showForm(_m('Remote group join aborted!')); + } + } + + /** + * Title of the page + * + * @return string Title of the page + */ + + function title() + { + // TRANS: Page title for OStatus remote group join form + return _m('Confirm joining remote group'); + } + + /** + * Instructions for use + * + * @return instructions for use + */ + + function getInstructions() + { + return _m('You can subscribe to groups from other supported sites. Paste the group\'s profile URI below:'); + } + + function selfLink() + { + return common_local_url('ostatusgroup'); + } +} diff --git a/plugins/OStatus/actions/ostatussub.php b/plugins/OStatus/actions/ostatussub.php index e318701a2..542f7e20c 100644 --- a/plugins/OStatus/actions/ostatussub.php +++ b/plugins/OStatus/actions/ostatussub.php @@ -1,7 +1,7 @@ elementStart('form', array('method' => 'post', 'id' => 'form_ostatus_sub', 'class' => 'form_settings', - 'action' => - common_local_url('ostatussub'))); + 'action' => $this->selfLink())); $this->hidden('token', common_session_token()); @@ -87,11 +84,7 @@ class OStatusSubAction extends Action */ function showPreviewForm() { - if ($this->oprofile->isGroup()) { - $ok = $this->previewGroup(); - } else { - $ok = $this->previewUser(); - } + $ok = $this->preview(); if (!$ok) { // @fixme maybe provide a cancel button or link back? return; @@ -104,7 +97,7 @@ class OStatusSubAction extends Action 'id' => 'form_ostatus_sub', 'class' => 'form_remote_authorize', 'action' => - common_local_url('ostatussub'))); + $this->selfLink())); $this->elementStart('fieldset'); $this->hidden('token', common_session_token()); $this->hidden('profile', $this->profile_uri); @@ -126,7 +119,7 @@ class OStatusSubAction extends Action * Show a preview for a remote user's profile * @return boolean true if we're ok to try subscribing */ - function previewUser() + function preview() { $oprofile = $this->oprofile; $profile = $oprofile->localProfile(); @@ -150,32 +143,6 @@ class OStatusSubAction extends Action return $ok; } - /** - * Show a preview for a remote group's profile - * @return boolean true if we're ok to try joining - */ - function previewGroup() - { - $oprofile = $this->oprofile; - $group = $oprofile->localGroup(); - - $cur = common_current_user(); - if ($cur->isMember($group)) { - $this->element('div', array('class' => 'error'), - _m("You are already a member of this group.")); - $ok = false; - } else { - $ok = true; - } - - $this->showEntity($group, - $group->getProfileUrl(), - $group->homepage_logo, - $group->description); - return $ok; - } - - function showEntity($entity, $profile, $avatar, $note) { $nickname = $entity->nickname; @@ -254,23 +221,13 @@ class OStatusSubAction extends Action /** * Redirect on successful remote user subscription */ - function successUser() + function success() { $cur = common_current_user(); $url = common_local_url('subscriptions', array('nickname' => $cur->nickname)); common_redirect($url, 303); } - /** - * Redirect on successful remote group join - */ - function successGroup() - { - $cur = common_current_user(); - $url = common_local_url('usergroups', array('nickname' => $cur->nickname)); - common_redirect($url, 303); - } - /** * Pull data for a remote profile and check if it's valid. * Fills out error UI string in $this->error @@ -278,16 +235,9 @@ class OStatusSubAction extends Action * * @return boolean */ - function validateFeed() + function pullRemoteProfile() { - $profile_uri = trim($this->arg('profile')); - - if ($profile_uri == '') { - $this->showForm(_m('Empty remote profile URL!')); - return; - } - $this->profile_uri = $profile_uri; - + $this->profile_uri = $this->trimmed('profile'); try { if (Validate::email($this->profile_uri)) { $this->oprofile = Ostatus_profile::ensureWebfinger($this->profile_uri); @@ -318,48 +268,34 @@ class OStatusSubAction extends Action return false; } + function validateRemoteProfile() + { + if ($this->oprofile->isGroup()) { + // Send us to the group subscription form for conf + $target = common_local_url('ostatusgroup', array(), array('profile' => $this->profile_uri)); + common_redirect($target, 303); + } + } + /** * Attempt to finalize subscription. * validateFeed must have been run first. * - * Calls showForm on failure or successUser/successGroup on success. + * Calls showForm on failure or success on success. */ function saveFeed() { // And subscribe the current user to the local profile $user = common_current_user(); - - if ($this->oprofile->isGroup()) { - $group = $this->oprofile->localGroup(); - if ($user->isMember($group)) { - // TRANS: OStatus remote group subscription dialog error. - $this->showForm(_m('Already a member!')); - return; - } - if (Event::handle('StartJoinGroup', array($group, $user))) { - $ok = Group_member::join($this->oprofile->group_id, $user->id); - if ($ok) { - Event::handle('EndJoinGroup', array($group, $user)); - $this->successGroup(); - } else { - // TRANS: OStatus remote group subscription dialog error. - $this->showForm(_m('Remote group join failed!')); - } - } else { - // TRANS: OStatus remote group subscription dialog error. - $this->showForm(_m('Remote group join aborted!')); - } + $local = $this->oprofile->localProfile(); + if ($user->isSubscribed($local)) { + // TRANS: OStatus remote subscription dialog error. + $this->showForm(_m('Already subscribed!')); + } elseif ($this->oprofile->subscribeLocalToRemote($user)) { + $this->success(); } else { - $local = $this->oprofile->localProfile(); - if ($user->isSubscribed($local)) { - // TRANS: OStatus remote subscription dialog error. - $this->showForm(_m('Already subscribed!')); - } elseif ($this->oprofile->subscribeLocalToRemote($user)) { - $this->successUser(); - } else { - // TRANS: OStatus remote subscription dialog error. - $this->showForm(_m('Remote subscription failed!')); - } + // TRANS: OStatus remote subscription dialog error. + $this->showForm(_m('Remote subscription failed!')); } } @@ -376,7 +312,9 @@ class OStatusSubAction extends Action return false; } - $this->profile_uri = $this->arg('profile'); + if ($this->pullRemoteProfile()) { + $this->validateRemoteProfile(); + } return true; } @@ -390,9 +328,6 @@ class OStatusSubAction extends Action if ($_SERVER['REQUEST_METHOD'] == 'POST') { $this->handlePost(); } else { - if ($this->arg('profile')) { - $this->validateFeed(); - } $this->showForm(); } } @@ -414,7 +349,7 @@ class OStatusSubAction extends Action return; } - if ($this->validateFeed()) { + if ($this->oprofile) { if ($this->arg('submit')) { $this->saveFeed(); return; @@ -500,4 +435,9 @@ class OStatusSubAction extends Action parent::showScripts(); $this->autofocus('feedurl'); } + + function selfLink() + { + return common_local_url('ostatussub'); + } } -- cgit v1.2.3-54-g00ecf From 628338265c1607000eaffc42418c63092b019720 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 3 Mar 2010 14:06:05 -0800 Subject: OStatus: fix up remote join button on group profiles --- plugins/OStatus/OStatusPlugin.php | 4 ++- plugins/OStatus/actions/ostatusinit.php | 51 ++++++++++++++++++++++++++------- 2 files changed, 44 insertions(+), 11 deletions(-) diff --git a/plugins/OStatus/OStatusPlugin.php b/plugins/OStatus/OStatusPlugin.php index ca6786a26..cc7e75976 100644 --- a/plugins/OStatus/OStatusPlugin.php +++ b/plugins/OStatus/OStatusPlugin.php @@ -49,6 +49,8 @@ class OStatusPlugin extends Plugin array('action' => 'ostatusinit')); $m->connect('main/ostatus?nickname=:nickname', array('action' => 'ostatusinit'), array('nickname' => '[A-Za-z0-9_-]+')); + $m->connect('main/ostatus?group=:group', + array('action' => 'ostatusinit'), array('group' => '[A-Za-z0-9_-]+')); $m->connect('main/ostatussub', array('action' => 'ostatussub')); $m->connect('main/ostatusgroup', @@ -217,7 +219,7 @@ class OStatusPlugin extends Plugin if (empty($cur)) { // Add an OStatus subscribe $url = common_local_url('ostatusinit', - array('nickname' => $group->nickname)); + array('group' => $group->nickname)); $output->element('a', array('href' => $url, 'class' => 'entity_remote_subscribe'), _m('Join')); diff --git a/plugins/OStatus/actions/ostatusinit.php b/plugins/OStatus/actions/ostatusinit.php index 8ba8dcdcc..1e45025b0 100644 --- a/plugins/OStatus/actions/ostatusinit.php +++ b/plugins/OStatus/actions/ostatusinit.php @@ -29,6 +29,7 @@ class OStatusInitAction extends Action { var $nickname; + var $group; var $profile; var $err; @@ -41,8 +42,9 @@ class OStatusInitAction extends Action return false; } - // Local user the remote wants to subscribe to + // Local user or group the remote wants to subscribe to $this->nickname = $this->trimmed('nickname'); + $this->group = $this->trimmed('group'); // Webfinger or profile URL of the remote user $this->profile = $this->trimmed('profile'); @@ -89,25 +91,33 @@ class OStatusInitAction extends Action function showContent() { + if ($this->group) { + $header = sprintf(_m('Join group %s'), $this->group); + $submit = _m('Join'); + } else { + $header = sprintf(_m('Subscribe to %s'), $this->nickname); + $submit = _m('Subscribe'); + } $this->elementStart('form', array('id' => 'form_ostatus_connect', 'method' => 'post', 'class' => 'form_settings', 'action' => common_local_url('ostatusinit'))); $this->elementStart('fieldset'); - $this->element('legend', null, sprintf(_m('Subscribe to %s'), $this->nickname)); + $this->element('legend', null, $header); $this->hidden('token', common_session_token()); $this->elementStart('ul', 'form_data'); $this->elementStart('li', array('id' => 'ostatus_nickname')); $this->input('nickname', _m('User nickname'), $this->nickname, _m('Nickname of the user you want to follow')); + $this->hidden('group', $this->group); // pass-through for magic links $this->elementEnd('li'); $this->elementStart('li', array('id' => 'ostatus_profile')); $this->input('profile', _m('Profile Account'), $this->profile, _m('Your account id (i.e. user@identi.ca)')); $this->elementEnd('li'); $this->elementEnd('ul'); - $this->submit('submit', _m('Subscribe')); + $this->submit('submit', $submit); $this->elementEnd('fieldset'); $this->elementEnd('form'); } @@ -131,19 +141,17 @@ class OStatusInitAction extends Action function connectWebfinger($acct) { - $disco = new Discovery; + $target_profile = $this->targetProfile(); + $disco = new Discovery; $result = $disco->lookup($acct); if (!$result) { $this->clientError(_m("Couldn't look up OStatus account profile.")); } + foreach ($result->links as $link) { if ($link['rel'] == 'http://ostatus.org/schema/1.0/subscribe') { // We found a URL - let's redirect! - - $user = User::staticGet('nickname', $this->nickname); - $target_profile = common_local_url('userbyid', array('id' => $user->id)); - $url = Discovery::applyTemplate($link['template'], $target_profile); common_log(LOG_INFO, "Sending remote subscriber $acct to $url"); common_redirect($url, 303); @@ -155,8 +163,7 @@ class OStatusInitAction extends Action function connectProfile($subscriber_profile) { - $user = User::staticGet('nickname', $this->nickname); - $target_profile = common_local_url('userbyid', array('id' => $user->id)); + $target_profile = $this->targetProfile(); // @fixme hack hack! We should look up the remote sub URL from XRDS $suburl = preg_replace('!^(.*)/(.*?)$!', '$1/main/ostatussub', $subscriber_profile); @@ -166,6 +173,30 @@ class OStatusInitAction extends Action common_redirect($suburl, 303); } + /** + * Build the canonical profile URI+URL of the requested user or group + */ + function targetProfile() + { + if ($this->nickname) { + $user = User::staticGet('nickname', $this->nickname); + if ($user) { + return common_local_url('userbyid', array('id' => $user->id)); + } else { + $this->clientError("No such user."); + } + } else if ($this->group) { + $group = Local_group::staticGet('id', $this->group); + if ($group) { + return common_local_url('groupbyid', array('id' => $group->group_id)); + } else { + $this->clientError("No such group."); + } + } else { + $this->clientError("No local user or group nickname provided."); + } + } + function title() { return _m('OStatus Connect'); -- cgit v1.2.3-54-g00ecf From 337b1aaaa16bde80b42a9902ebeb299f8f13a226 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Wed, 3 Mar 2010 14:32:14 -0800 Subject: Site-wide notice text admin panel --- actions/sitenoticeadminpanel.php | 201 +++++++++++++++++++++++++++++++++++++++ lib/adminpanelaction.php | 15 ++- lib/default.php | 7 +- lib/router.php | 1 + 4 files changed, 216 insertions(+), 8 deletions(-) create mode 100644 actions/sitenoticeadminpanel.php diff --git a/actions/sitenoticeadminpanel.php b/actions/sitenoticeadminpanel.php new file mode 100644 index 000000000..613a2e96b --- /dev/null +++ b/actions/sitenoticeadminpanel.php @@ -0,0 +1,201 @@ +. + * + * @category Settings + * @package StatusNet + * @author Zach Copley + * @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); +} + +require_once INSTALLDIR.'/extlib/htmLawed/htmLawed.php'; + +/** + * Update the site-wide notice text + * + * @category Admin + * @package StatusNet + * @author Zach Copley + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +class SitenoticeadminpanelAction extends AdminPanelAction +{ + /** + * Returns the page title + * + * @return string page title + */ + + function title() + { + return _('Site Notice'); + } + + /** + * Instructions for using this form. + * + * @return string instructions + */ + + function getInstructions() + { + return _('Edit site-wide message'); + } + + /** + * Show the site notice admin panel form + * + * @return void + */ + + function showForm() + { + $form = new SiteNoticeAdminPanelForm($this); + $form->show(); + return; + } + + /** + * Save settings from the form + * + * @return void + */ + + function saveSettings() + { + $siteNotice = $this->trimmed('site-notice'); + + // assert(all values are valid); + // This throws an exception on validation errors + + $this->validate(&$siteNotice); + + $config = new Config(); + + $result = Config::save('site', 'notice', $siteNotice); + + if (!result) { + $this->ServerError(_("Unable to save site notice.")); + } + } + + function validate(&$siteNotice) + { + // Validate notice text + + if (mb_strlen($siteNotice) > 255) { + $this->clientError( + _('Max length for the site-wide notice is 255 chars') + ); + } + + // scrub HTML input + + $config = array( + 'safe' => 1, + 'deny_attribute' => 'id,style,on*' + ); + + $siteNotice = htmLawed($siteNotice, $config); + } +} + +class SiteNoticeAdminPanelForm extends AdminForm +{ + /** + * ID of the form + * + * @return int ID of the form + */ + + function id() + { + return 'form_site_notice_admin_panel'; + } + + /** + * class of the form + * + * @return string class of the form + */ + + function formClass() + { + return 'form_settings'; + } + + /** + * Action of the form + * + * @return string URL of the action + */ + + function action() + { + return common_local_url('sitenoticeadminpanel'); + } + + /** + * Data elements of the form + * + * @return void + */ + + function formData() + { + $this->out->elementStart('ul', 'form_data'); + + $this->out->elementStart('li'); + $this->out->textarea( + 'site-notice', + _('Site notice text'), + common_config('site', 'notice'), + _('Site-wide notice text (255 chars max; HTML okay)') + ); + $this->out->elementEnd('li'); + + $this->out->elementEnd('ul'); + } + + /** + * Action elements + * + * @return void + */ + + function formActions() + { + $this->out->submit( + 'submit', + _('Save'), + 'submit', + null, + _('Save site notice') + ); + } +} diff --git a/lib/adminpanelaction.php b/lib/adminpanelaction.php index 1d9c42563..eb622871e 100644 --- a/lib/adminpanelaction.php +++ b/lib/adminpanelaction.php @@ -173,7 +173,7 @@ class AdminPanelAction extends Action /** * Show content block. Overrided just to add a special class - * to the content div to allow styling. + * to the content div to allow styling. * * @return nothing */ @@ -358,22 +358,27 @@ class AdminPanelNav extends Widget if (AdminPanelAction::canAdmin('user')) { $this->out->menuItem(common_local_url('useradminpanel'), _('User'), - _('User configuration'), $action_name == 'useradminpanel', 'nav_design_admin_panel'); + _('User configuration'), $action_name == 'useradminpanel', 'nav_user_admin_panel'); } if (AdminPanelAction::canAdmin('access')) { $this->out->menuItem(common_local_url('accessadminpanel'), _('Access'), - _('Access configuration'), $action_name == 'accessadminpanel', 'nav_design_admin_panel'); + _('Access configuration'), $action_name == 'accessadminpanel', 'nav_access_admin_panel'); } if (AdminPanelAction::canAdmin('paths')) { $this->out->menuItem(common_local_url('pathsadminpanel'), _('Paths'), - _('Paths configuration'), $action_name == 'pathsadminpanel', 'nav_design_admin_panel'); + _('Paths configuration'), $action_name == 'pathsadminpanel', 'nav_paths_admin_panel'); } if (AdminPanelAction::canAdmin('sessions')) { $this->out->menuItem(common_local_url('sessionsadminpanel'), _('Sessions'), - _('Sessions configuration'), $action_name == 'sessionsadminpanel', 'nav_design_admin_panel'); + _('Sessions configuration'), $action_name == 'sessionsadminpanel', 'nav_sessions_admin_panel'); + } + + if (AdminPanelAction::canAdmin('sitenotice')) { + $this->out->menuItem(common_local_url('sitenoticeadminpanel'), _('Site notice'), + _('Edit site notice'), $action_name == 'sitenoticeadminpanel', 'nav_sitenotice_admin_panel'); } Event::handle('EndAdminPanelNav', array($this)); diff --git a/lib/default.php b/lib/default.php index b7216045c..8e99a0e1c 100644 --- a/lib/default.php +++ b/lib/default.php @@ -54,10 +54,11 @@ $default = 'ssl' => 'never', 'sslserver' => null, 'shorturllength' => 30, - 'dupelimit' => 60, # default for same person saying the same thing + 'dupelimit' => 60, // default for same person saying the same thing 'textlimit' => 140, 'indent' => true, - 'use_x_sendfile' => false + 'use_x_sendfile' => false, + 'notice' => null // site wide notice text ), 'db' => array('database' => 'YOU HAVE TO SET THIS IN config.php', @@ -283,7 +284,7 @@ $default = 'OpenID' => null), ), 'admin' => - array('panels' => array('design', 'site', 'user', 'paths', 'access', 'sessions')), + array('panels' => array('design', 'site', 'user', 'paths', 'access', 'sessions', 'sitenotice')), 'singleuser' => array('enabled' => false, 'nickname' => null), diff --git a/lib/router.php b/lib/router.php index abbce041d..7e8e22a7d 100644 --- a/lib/router.php +++ b/lib/router.php @@ -649,6 +649,7 @@ class Router $m->connect('admin/access', array('action' => 'accessadminpanel')); $m->connect('admin/paths', array('action' => 'pathsadminpanel')); $m->connect('admin/sessions', array('action' => 'sessionsadminpanel')); + $m->connect('admin/sitenotice', array('action' => 'sitenoticeadminpanel')); $m->connect('getfile/:filename', array('action' => 'getfile'), -- cgit v1.2.3-54-g00ecf From b3969be85ae37b2b3e8abfce2c545866dd910af7 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 3 Mar 2010 17:48:00 -0500 Subject: Updated remote subscribe button style in aside --- plugins/OStatus/theme/base/css/ostatus.css | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/plugins/OStatus/theme/base/css/ostatus.css b/plugins/OStatus/theme/base/css/ostatus.css index 3b8928a3a..ac668623d 100644 --- a/plugins/OStatus/theme/base/css/ostatus.css +++ b/plugins/OStatus/theme/base/css/ostatus.css @@ -48,10 +48,6 @@ position:relative; margin-bottom:0; } -.section #entity_remote_subscribe .entity_remote_subscribe { -border-color:#AAAAAA; -} - #entity_remote_subscribe .dialogbox { width:405px; } @@ -59,3 +55,19 @@ width:405px; .aside #entity_subscriptions .more { float:left; } + +.section #entity_remote_subscribe { +border:0; +} + +.section .entity_remote_subscribe { +color:#002FA7; +box-shadow:none; +-moz-box-shadow:none; +-webkit-box-shadow:none; +background-color:transparent; +background-position:0 -1183px; +padding:0 0 0 23px; +border:0; + +} -- cgit v1.2.3-54-g00ecf From 06db00d303bda500eec578b490c12d2bf389c853 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 3 Mar 2010 15:15:46 -0800 Subject: remove debug line --- index.php | 1 - 1 file changed, 1 deletion(-) diff --git a/index.php b/index.php index a46bc084d..06ff9900f 100644 --- a/index.php +++ b/index.php @@ -253,7 +253,6 @@ function main() $user = common_current_user(); // initialize language env -common_log(LOG_DEBUG, "XXX: WAIII"); common_init_language(); -- cgit v1.2.3-54-g00ecf From 4103e8584c7ccfb444af0814345104afedd2c6fc Mon Sep 17 00:00:00 2001 From: James Walker Date: Wed, 3 Mar 2010 18:16:56 -0500 Subject: Making one time passwords work on private sites --- index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.php b/index.php index 06ff9900f..36ba3a0d2 100644 --- a/index.php +++ b/index.php @@ -185,7 +185,7 @@ function checkMirror($action_obj, $args) function isLoginAction($action) { - static $loginActions = array('login', 'recoverpassword', 'api', 'doc', 'register', 'publicxrds'); + static $loginActions = array('login', 'recoverpassword', 'api', 'doc', 'register', 'publicxrds', 'otp'); $login = null; -- cgit v1.2.3-54-g00ecf From 4a2511139eaafcbe93a2e720e0c6f170ecb00d77 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 3 Mar 2010 15:43:49 -0800 Subject: Initial user role controls on profile pages, for owner to add/remove administrator and moderator options. Buttons need to be themed. --- actions/grantrole.php | 99 ++++++++++++++++++++++++++++++++++++++++++++++++ actions/revokerole.php | 99 ++++++++++++++++++++++++++++++++++++++++++++++++ classes/Profile.php | 4 ++ classes/Profile_role.php | 17 +++++++++ lib/grantroleform.php | 93 +++++++++++++++++++++++++++++++++++++++++++++ lib/revokeroleform.php | 93 +++++++++++++++++++++++++++++++++++++++++++++ lib/right.php | 2 + lib/router.php | 1 + lib/userprofile.php | 26 +++++++++++++ 9 files changed, 434 insertions(+) create mode 100644 actions/grantrole.php create mode 100644 actions/revokerole.php create mode 100644 lib/grantroleform.php create mode 100644 lib/revokeroleform.php diff --git a/actions/grantrole.php b/actions/grantrole.php new file mode 100644 index 000000000..cd6bd4d79 --- /dev/null +++ b/actions/grantrole.php @@ -0,0 +1,99 @@ +. + * + * @category Action + * @package StatusNet + * @author Evan Prodromou + * @copyright 2009 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Sandbox a user. + * + * @category Action + * @package StatusNet + * @author Evan Prodromou + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + */ + +class GrantRoleAction extends ProfileFormAction +{ + /** + * Check parameters + * + * @param array $args action arguments (URL, GET, POST) + * + * @return boolean success flag + */ + + function prepare($args) + { + if (!parent::prepare($args)) { + return false; + } + + $this->role = $this->arg('role'); + if (!Profile_role::isValid($this->role)) { + $this->clientError(_("Invalid role.")); + return false; + } + if (!Profile_role::isSettable($this->role)) { + $this->clientError(_("This role is reserved and cannot be set.")); + return false; + } + + $cur = common_current_user(); + + assert(!empty($cur)); // checked by parent + + if (!$cur->hasRight(Right::GRANTROLE)) { + $this->clientError(_("You cannot grant user roles on this site.")); + return false; + } + + assert(!empty($this->profile)); // checked by parent + + if ($this->profile->hasRole($this->role)) { + $this->clientError(_("User already has this role.")); + return false; + } + + return true; + } + + /** + * Sandbox a user. + * + * @return void + */ + + function handlePost() + { + $this->profile->grantRole($this->role); + } +} diff --git a/actions/revokerole.php b/actions/revokerole.php new file mode 100644 index 000000000..b78c1c25a --- /dev/null +++ b/actions/revokerole.php @@ -0,0 +1,99 @@ +. + * + * @category Action + * @package StatusNet + * @author Evan Prodromou + * @copyright 2009 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Sandbox a user. + * + * @category Action + * @package StatusNet + * @author Evan Prodromou + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + */ + +class RevokeRoleAction extends ProfileFormAction +{ + /** + * Check parameters + * + * @param array $args action arguments (URL, GET, POST) + * + * @return boolean success flag + */ + + function prepare($args) + { + if (!parent::prepare($args)) { + return false; + } + + $this->role = $this->arg('role'); + if (!Profile_role::isValid($this->role)) { + $this->clientError(_("Invalid role.")); + return false; + } + if (!Profile_role::isSettable($this->role)) { + $this->clientError(_("This role is reserved and cannot be set.")); + return false; + } + + $cur = common_current_user(); + + assert(!empty($cur)); // checked by parent + + if (!$cur->hasRight(Right::REVOKEROLE)) { + $this->clientError(_("You cannot revoke user roles on this site.")); + return false; + } + + assert(!empty($this->profile)); // checked by parent + + if (!$this->profile->hasRole($this->role)) { + $this->clientError(_("User doesn't have this role.")); + return false; + } + + return true; + } + + /** + * Sandbox a user. + * + * @return void + */ + + function handlePost() + { + $this->profile->revokeRole($this->role); + } +} diff --git a/classes/Profile.php b/classes/Profile.php index 9c2fa7a0c..0322c9358 100644 --- a/classes/Profile.php +++ b/classes/Profile.php @@ -743,6 +743,10 @@ class Profile extends Memcached_DataObject case Right::CONFIGURESITE: $result = $this->hasRole(Profile_role::ADMINISTRATOR); break; + case Right::GRANTROLE: + case Right::REVOKEROLE: + $result = $this->hasRole(Profile_role::OWNER); + break; case Right::NEWNOTICE: case Right::NEWMESSAGE: case Right::SUBSCRIBE: diff --git a/classes/Profile_role.php b/classes/Profile_role.php index bf2c453ed..d0a0b31f0 100644 --- a/classes/Profile_role.php +++ b/classes/Profile_role.php @@ -53,4 +53,21 @@ class Profile_role extends Memcached_DataObject const ADMINISTRATOR = 'administrator'; const SANDBOXED = 'sandboxed'; const SILENCED = 'silenced'; + + public static function isValid($role) + { + // @fixme could probably pull this from class constants + $known = array(self::OWNER, + self::MODERATOR, + self::ADMINISTRATOR, + self::SANDBOXED, + self::SILENCED); + return in_array($role, $known); + } + + public static function isSettable($role) + { + $allowedRoles = array('administrator', 'moderator'); + return self::isValid($role) && in_array($role, $allowedRoles); + } } diff --git a/lib/grantroleform.php b/lib/grantroleform.php new file mode 100644 index 000000000..b5f952746 --- /dev/null +++ b/lib/grantroleform.php @@ -0,0 +1,93 @@ +. + * + * @category Form + * @package StatusNet + * @author Evan Prodromou , Brion Vibber + * @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/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Form for sandboxing a user + * + * @category Form + * @package StatusNet + * @author Evan Prodromou + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + * + * @see UnSandboxForm + */ + +class GrantRoleForm extends ProfileActionForm +{ + function __construct($role, $label, $writer, $profile, $r2args) + { + parent::__construct($writer, $profile, $r2args); + $this->role = $role; + $this->label = $label; + } + + /** + * Action this form provides + * + * @return string Name of the action, lowercased. + */ + + function target() + { + return 'grantrole'; + } + + /** + * Title of the form + * + * @return string Title of the form, internationalized + */ + + function title() + { + return $this->label; + } + + function formData() + { + parent::formData(); + $this->out->hidden('role', $this->role); + } + + /** + * Description of the form + * + * @return string description of the form, internationalized + */ + + function description() + { + return sprintf(_('Grant this user the "%s" role'), $this->label); + } +} diff --git a/lib/revokeroleform.php b/lib/revokeroleform.php new file mode 100644 index 000000000..ec24b9910 --- /dev/null +++ b/lib/revokeroleform.php @@ -0,0 +1,93 @@ +. + * + * @category Form + * @package StatusNet + * @author Evan Prodromou , Brion Vibber + * @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/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Form for sandboxing a user + * + * @category Form + * @package StatusNet + * @author Evan Prodromou + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + * + * @see UnSandboxForm + */ + +class RevokeRoleForm extends ProfileActionForm +{ + function __construct($role, $label, $writer, $profile, $r2args) + { + parent::__construct($writer, $profile, $r2args); + $this->role = $role; + $this->label = $label; + } + + /** + * Action this form provides + * + * @return string Name of the action, lowercased. + */ + + function target() + { + return 'revokerole'; + } + + /** + * Title of the form + * + * @return string Title of the form, internationalized + */ + + function title() + { + return $this->label; + } + + function formData() + { + parent::formData(); + $this->out->hidden('role', $this->role); + } + + /** + * Description of the form + * + * @return string description of the form, internationalized + */ + + function description() + { + return sprintf(_('Revoke the "%s" role from this user'), $this->label); + } +} diff --git a/lib/right.php b/lib/right.php index 4e9c5a918..deb451fde 100644 --- a/lib/right.php +++ b/lib/right.php @@ -58,5 +58,7 @@ class Right const EMAILONSUBSCRIBE = 'emailonsubscribe'; const EMAILONFAVE = 'emailonfave'; const MAKEGROUPADMIN = 'makegroupadmin'; + const GRANTROLE = 'grantrole'; + const REVOKEROLE = 'revokerole'; } diff --git a/lib/router.php b/lib/router.php index 7e8e22a7d..15f88c959 100644 --- a/lib/router.php +++ b/lib/router.php @@ -98,6 +98,7 @@ class Router 'groupblock', 'groupunblock', 'sandbox', 'unsandbox', 'silence', 'unsilence', + 'grantrole', 'revokerole', 'repeat', 'deleteuser', 'geocode', diff --git a/lib/userprofile.php b/lib/userprofile.php index 43dfd05be..8464c2446 100644 --- a/lib/userprofile.php +++ b/lib/userprofile.php @@ -346,6 +346,16 @@ class UserProfile extends Widget $this->out->elementEnd('ul'); $this->out->elementEnd('li'); } + + if ($cur->hasRight(Right::GRANTROLE)) { + $this->out->elementStart('li', 'entity_role'); + $this->out->element('p', null, _('User role')); + $this->out->elementStart('ul'); + $this->roleButton('administrator', _m('role', 'Administrator')); + $this->roleButton('moderator', _m('role', 'Moderator')); + $this->out->elementEnd('ul'); + $this->out->elementEnd('li'); + } } } @@ -359,6 +369,22 @@ class UserProfile extends Widget } } + function roleButton($role, $label) + { + list($action, $r2args) = $this->out->returnToArgs(); + $r2args['action'] = $action; + + $this->out->elementStart('li', "entity_role_$role"); + if ($this->user->hasRole($role)) { + $rf = new RevokeRoleForm($role, $label, $this->out, $this->profile, $r2args); + $rf->show(); + } else { + $rf = new GrantRoleForm($role, $label, $this->out, $this->profile, $r2args); + $rf->show(); + } + $this->out->elementEnd('li'); + } + function showRemoteSubscribeLink() { $url = common_local_url('remotesubscribe', -- cgit v1.2.3-54-g00ecf From 610238442e211940716c83126526a42079007fea Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 3 Mar 2010 19:24:18 -0500 Subject: Added styles for User Role --- theme/base/css/display.css | 15 +++++++++------ theme/base/images/icons/icons-01.gif | Bin 3740 -> 3788 bytes theme/base/images/icons/twotone/green/clipboard.gif | Bin 0 -> 80 bytes theme/default/css/display.css | 19 ++++++++++++++++++- 4 files changed, 27 insertions(+), 7 deletions(-) create mode 100644 theme/base/images/icons/twotone/green/clipboard.gif diff --git a/theme/base/css/display.css b/theme/base/css/display.css index b8dd561cc..01d5dd134 100644 --- a/theme/base/css/display.css +++ b/theme/base/css/display.css @@ -771,10 +771,12 @@ display:none; text-align:center; } -.entity_moderation { +.entity_moderation, +.entity_role { position:relative; } -.entity_moderation p { +.entity_moderation p, +.entity_role p { border-radius:4px; -moz-border-radius:4px; -webkit-border-radius:4px; @@ -782,13 +784,14 @@ font-weight:bold; padding-bottom:2px; margin-bottom:7px; } -.entity_moderation ul { +.entity_moderation ul, +.entity_role ul { display:none; } -.entity_moderation:hover ul { +.entity_moderation:hover ul, +.entity_role:hover ul { display:block; -min-width:21%; -width:100%; +width:110%; padding:11px; position:absolute; top:-1px; diff --git a/theme/base/images/icons/icons-01.gif b/theme/base/images/icons/icons-01.gif index be884ff48..deba4970d 100644 Binary files a/theme/base/images/icons/icons-01.gif and b/theme/base/images/icons/icons-01.gif differ diff --git a/theme/base/images/icons/twotone/green/clipboard.gif b/theme/base/images/icons/twotone/green/clipboard.gif new file mode 100644 index 000000000..9317bdcd0 Binary files /dev/null and b/theme/base/images/icons/twotone/green/clipboard.gif differ diff --git a/theme/default/css/display.css b/theme/default/css/display.css index 8ae2b4014..8ca267c33 100644 --- a/theme/default/css/display.css +++ b/theme/default/css/display.css @@ -49,6 +49,7 @@ box-shadow:3px 3px 7px rgba(194, 194, 194, 0.3); .pagination .nav_next a, .form_settings fieldset fieldset, .entity_moderation:hover ul, +.entity_role:hover ul, .dialogbox { border-color:#DDDDDD; } @@ -67,6 +68,7 @@ input.submit, .entity_actions a, .entity_actions input, .entity_moderation p, +.entity_role p, button { box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3); -moz-box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3); @@ -127,7 +129,8 @@ a, .notice-options input, .entity_actions a, .entity_actions input, -.entity_moderation p { +.entity_moderation p, +.entity_role p { color:#002FA7; } @@ -190,6 +193,9 @@ button.close, .entity_sandbox input.submit, .entity_silence input.submit, .entity_delete input.submit, +.entity_role p, +.entity_role_administrator input.submit, +.entity_role_moderator input.submit, .notice-options .repeated, .form_notice label[for=notice_data-geo], button.minimize, @@ -229,6 +235,7 @@ border-color:transparent; #site_nav_local_views .current a, .entity_send-a-message .form_notice, .entity_moderation:hover ul, +.entity_role:hover ul, .dialogbox { background-color:#FFFFFF; } @@ -319,6 +326,7 @@ background-position: 5px -852px; } .entity_send-a-message .form_notice, .entity_moderation:hover ul, +.entity_role:hover ul, .dialogbox { box-shadow:3px 7px 5px rgba(194, 194, 194, 0.7); -moz-box-shadow:3px 7px 5px rgba(194, 194, 194, 0.7); @@ -350,6 +358,15 @@ background-position: 5px -1445px; .entity_delete input.submit { background-position: 5px -1511px; } +.entity_role p { +background-position: 5px -2436px; +} +.entity_role_administrator input.submit { +background-position: 5px -983px; +} +.entity_role_moderator input.submit { +background-position: 5px -1313px; +} .form_reset_key input.submit { background-position: 5px -1973px; } -- cgit v1.2.3-54-g00ecf From 6ebc0f87231de8f6c4acd28ecbddca227e4b3007 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 3 Mar 2010 19:28:54 -0500 Subject: Updated identica theme for User Role styles --- theme/identica/css/display.css | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/theme/identica/css/display.css b/theme/identica/css/display.css index 737e3a103..bc27cfb4d 100644 --- a/theme/identica/css/display.css +++ b/theme/identica/css/display.css @@ -49,6 +49,7 @@ box-shadow:3px 3px 7px rgba(194, 194, 194, 0.3); .pagination .nav_next a, .form_settings fieldset fieldset, .entity_moderation:hover ul, +.entity_role:hover ul, .dialogbox { border-color:#DDDDDD; } @@ -67,6 +68,7 @@ input.submit, .entity_actions a, .entity_actions input, .entity_moderation p, +.entity_role p, button { box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3); -moz-box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3); @@ -128,7 +130,8 @@ a, .notice-options input, .entity_actions a, .entity_actions input, -.entity_moderation p { +.entity_moderation p, +.entity_role p { color:#002FA7; } @@ -191,6 +194,9 @@ button.close, .entity_sandbox input.submit, .entity_silence input.submit, .entity_delete input.submit, +.entity_role p, +.entity_role_administrator input.submit, +.entity_role_moderator input.submit, .notice-options .repeated, .form_notice label[for=notice_data-geo], button.minimize, @@ -230,6 +236,7 @@ border-color:transparent; #site_nav_local_views .current a, .entity_send-a-message .form_notice, .entity_moderation:hover ul, +.entity_role:hover ul, .dialogbox { background-color:#FFFFFF; } @@ -319,6 +326,7 @@ background-position: 5px -852px; } .entity_send-a-message .form_notice, .entity_moderation:hover ul, +.entity_role:hover ul, .dialogbox { box-shadow:3px 7px 5px rgba(194, 194, 194, 0.7); -moz-box-shadow:3px 7px 5px rgba(194, 194, 194, 0.7); @@ -350,6 +358,15 @@ background-position: 5px -1445px; .entity_delete input.submit { background-position: 5px -1511px; } +.entity_role p { +background-position: 5px -2436px; +} +.entity_role_administrator input.submit { +background-position: 5px -983px; +} +.entity_role_moderator input.submit { +background-position: 5px -1313px; +} .form_reset_key input.submit { background-position: 5px -1973px; } -- cgit v1.2.3-54-g00ecf From 04e474c98c9b907fe2d0f263fad79018a15c0783 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 3 Mar 2010 19:29:59 -0500 Subject: Updated icons README --- theme/base/images/icons/README | 1 + 1 file changed, 1 insertion(+) diff --git a/theme/base/images/icons/README b/theme/base/images/icons/README index ea582149f..0451fda49 100644 --- a/theme/base/images/icons/README +++ b/theme/base/images/icons/README @@ -25,6 +25,7 @@ White reject with green background White play with green background White pause with green background + White clipboard with green background */ -- cgit v1.2.3-54-g00ecf From 9fadf8da1164d620284917b829329e195aa2a226 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 3 Mar 2010 12:51:23 -0800 Subject: Put all required field setup into AtomUserNoticeFeed and AtomGroupNoticeFeed, consolidating some code. (RSS feeds pulling title, logo etc from the Atom data structure so we don't dupe it.) OStatus now calling the feed classes directly instead of faking a call into the API, should be less flakey. --- actions/apitimelinegroup.php | 45 ++++++------------------- actions/apitimelineuser.php | 51 ++++++----------------------- lib/atom10feed.php | 20 +++++++++-- lib/atomgroupnoticefeed.php | 32 ++++++++++++++++-- lib/atomusernoticefeed.php | 41 +++++++++++++++++++++-- plugins/OStatus/lib/ostatusqueuehandler.php | 45 ++++++------------------- 6 files changed, 116 insertions(+), 118 deletions(-) diff --git a/actions/apitimelinegroup.php b/actions/apitimelinegroup.php index e30a08fb5..8f971392b 100644 --- a/actions/apitimelinegroup.php +++ b/actions/apitimelinegroup.php @@ -104,30 +104,21 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction function showTimeline() { - $sitename = common_config('site', 'name'); - $avatar = $this->group->homepage_logo; - $title = sprintf(_("%s timeline"), $this->group->nickname); - - $subtitle = sprintf( - _('Updates from %1$s on %2$s!'), - $this->group->nickname, - $sitename - ); - - $logo = ($avatar) ? $avatar : User_group::defaultLogo(AVATAR_PROFILE_SIZE); + // We'll pull common formatting out of this for other formats + $atom = new AtomGroupNoticeFeed($this->group); switch($this->format) { case 'xml': $this->showXmlTimeline($this->notices); break; case 'rss': - $this->showRssTimeline( + $this->showRssTimeline( $this->notices, - $title, + $atom->title, $this->group->homeUrl(), - $subtitle, + $atom->subtitle, null, - $logo + $atom->logo ); break; case 'atom': @@ -136,38 +127,22 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction try { - $atom = new AtomGroupNoticeFeed($this->group); - - // @todo set all this Atom junk up inside the feed class - - #$atom->setId($id); - $atom->setTitle($title); - $atom->setSubtitle($subtitle); - $atom->setLogo($logo); - $atom->setUpdated('now'); - $atom->addAuthorRaw($this->group->asAtomAuthor()); $atom->setActivitySubject($this->group->asActivitySubject()); - $atom->addLink($this->group->homeUrl()); - $id = $this->arg('id'); $aargs = array('format' => 'atom'); if (!empty($id)) { $aargs['id'] = $id; } + $self = $this->getSelfUri('ApiTimelineGroup', $aargs); - $atom->setId($this->getSelfUri('ApiTimelineGroup', $aargs)); - - $atom->addLink( - $this->getSelfUri('ApiTimelineGroup', $aargs), - array('rel' => 'self', 'type' => 'application/atom+xml') - ); + $atom->setId($self); + $atom->setSelfLink($self); $atom->addEntryFromNotices($this->notices); - //$this->raw($atom->getString()); - print $atom->getString(); // temp hack until PuSH feeds are redone cleanly + $this->raw($atom->getString()); } catch (Atom10FeedException $e) { $this->serverError( diff --git a/actions/apitimelineuser.php b/actions/apitimelineuser.php index 94491946c..2d0047c04 100644 --- a/actions/apitimelineuser.php +++ b/actions/apitimelineuser.php @@ -112,19 +112,17 @@ class ApiTimelineUserAction extends ApiBareAuthAction function showTimeline() { $profile = $this->user->getProfile(); - $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE); - $sitename = common_config('site', 'name'); - $title = sprintf(_("%s timeline"), $this->user->nickname); + // We'll use the shared params from the Atom stub + // for other feed types. + $atom = new AtomUserNoticeFeed($this->user); + $title = $atom->title; $link = common_local_url( 'showstream', array('nickname' => $this->user->nickname) ); - $subtitle = sprintf( - _('Updates from %1$s on %2$s!'), - $this->user->nickname, $sitename - ); - $logo = ($avatar) ? $avatar->displayUrl() : Avatar::defaultImage(AVATAR_PROFILE_SIZE); + $subtitle = $atom->subtitle; + $logo = $atom->logo; // FriendFeed's SUP protocol // Also added RSS and Atom feeds @@ -146,47 +144,18 @@ class ApiTimelineUserAction extends ApiBareAuthAction header('Content-Type: application/atom+xml; charset=utf-8'); - // @todo set all this Atom junk up inside the feed class - - $atom = new AtomUserNoticeFeed($this->user); - - $atom->setTitle($title); - $atom->setSubtitle($subtitle); - $atom->setLogo($logo); - $atom->setUpdated('now'); - - $atom->addLink( - common_local_url( - 'showstream', - array('nickname' => $this->user->nickname) - ) - ); - $id = $this->arg('id'); $aargs = array('format' => 'atom'); if (!empty($id)) { $aargs['id'] = $id; } - - $atom->setId($this->getSelfUri('ApiTimelineUser', $aargs)); - - $atom->addLink( - $this->getSelfUri('ApiTimelineUser', $aargs), - array('rel' => 'self', 'type' => 'application/atom+xml') - ); - - $atom->addLink( - $suplink, - array( - 'rel' => 'http://api.friendfeed.com/2008/03#sup', - 'type' => 'application/json' - ) - ); + $self = $this->getSelfUri('ApiTimelineUser', $aargs); + $atom->setId($self); + $atom->setSelfLink($self); $atom->addEntryFromNotices($this->notices); - #$this->raw($atom->getString()); - print $atom->getString(); // temporary for output buffering + $this->raw($atom->getString()); break; case 'json': diff --git a/lib/atom10feed.php b/lib/atom10feed.php index 8842840d5..c1fdeaae9 100644 --- a/lib/atom10feed.php +++ b/lib/atom10feed.php @@ -49,6 +49,8 @@ class Atom10FeedException extends Exception class Atom10Feed extends XMLStringer { public $xw; + + // @fixme most of these should probably be read-only properties private $namespaces; private $authors; private $subject; @@ -57,10 +59,12 @@ class Atom10Feed extends XMLStringer private $generator; private $icon; private $links; - private $logo; + private $selfLink; + private $selfLinkType; + public $logo; private $rights; - private $subtitle; - private $title; + public $subtitle; + public $title; private $published; private $updated; private $entries; @@ -184,6 +188,10 @@ class Atom10Feed extends XMLStringer $this->renderAuthors(); + if ($this->selfLink) { + $this->addLink($this->selfLink, array('rel' => 'self', + 'type' => $this->selfLinkType)); + } $this->renderLinks(); } @@ -253,6 +261,12 @@ class Atom10Feed extends XMLStringer $this->id = $id; } + function setSelfLink($url, $type='application/atom+xml') + { + $this->selfLink = $url; + $this->selfLinkType = $type; + } + function setTitle($title) { $this->title = $title; diff --git a/lib/atomgroupnoticefeed.php b/lib/atomgroupnoticefeed.php index 52ee4c7d6..08c1c707c 100644 --- a/lib/atomgroupnoticefeed.php +++ b/lib/atomgroupnoticefeed.php @@ -49,14 +49,42 @@ class AtomGroupNoticeFeed extends AtomNoticeFeed /** * Constructor * - * @param Group $group the group for the feed (optional) + * @param Group $group the group for the feed * @param boolean $indent flag to turn indenting on or off * * @return void */ - function __construct($group = null, $indent = true) { + function __construct($group, $indent = true) { parent::__construct($indent); $this->group = $group; + + $title = sprintf(_("%s timeline"), $group->nickname); + $this->setTitle($title); + + $sitename = common_config('site', 'name'); + $subtitle = sprintf( + _('Updates from %1$s on %2$s!'), + $group->nickname, + $sitename + ); + $this->setSubtitle($subtitle); + + $avatar = $group->homepage_logo; + $logo = ($avatar) ? $avatar : User_group::defaultLogo(AVATAR_PROFILE_SIZE); + $this->setLogo($logo); + + $this->setUpdated('now'); + + $self = common_local_url('ApiTimelineGroup', + array('id' => $group->id, + 'format' => 'atom')); + $this->setId($self); + $this->setSelfLink($self); + + $this->addAuthorRaw($group->asAtomAuthor()); + $this->setActivitySubject($group->asActivitySubject()); + + $this->addLink($group->homeUrl()); } function getGroup() diff --git a/lib/atomusernoticefeed.php b/lib/atomusernoticefeed.php index 2ad8de455..55cebef6d 100644 --- a/lib/atomusernoticefeed.php +++ b/lib/atomusernoticefeed.php @@ -49,19 +49,56 @@ class AtomUserNoticeFeed extends AtomNoticeFeed /** * Constructor * - * @param User $user the user for the feed (optional) + * @param User $user the user for the feed * @param boolean $indent flag to turn indenting on or off * * @return void */ - function __construct($user = null, $indent = true) { + function __construct($user, $indent = true) { parent::__construct($indent); $this->user = $user; if (!empty($user)) { $profile = $user->getProfile(); $this->addAuthor($profile->nickname, $user->uri); } + + $title = sprintf(_("%s timeline"), $user->nickname); + $this->setTitle($title); + + $sitename = common_config('site', 'name'); + $subtitle = sprintf( + _('Updates from %1$s on %2$s!'), + $user->nickname, $sitename + ); + $this->setSubtitle($subtitle); + + $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE); + $logo = ($avatar) ? $avatar->displayUrl() : Avatar::defaultImage(AVATAR_PROFILE_SIZE); + $this->setLogo($logo); + + $this->setUpdated('now'); + + $this->addLink( + common_local_url( + 'showstream', + array('nickname' => $user->nickname) + ) + ); + + $self = common_local_url('ApiTimelineUser', + array('id' => $user->id, + 'format' => 'atom')); + $this->setId($self); + $this->setSelfLink($self); + + $this->addLink( + common_local_url('sup', null, null, $user->id), + array( + 'rel' => 'http://api.friendfeed.com/2008/03#sup', + 'type' => 'application/json' + ) + ); } function getUser() diff --git a/plugins/OStatus/lib/ostatusqueuehandler.php b/plugins/OStatus/lib/ostatusqueuehandler.php index 6ca31c485..d1e58f1d6 100644 --- a/plugins/OStatus/lib/ostatusqueuehandler.php +++ b/plugins/OStatus/lib/ostatusqueuehandler.php @@ -164,46 +164,21 @@ class OStatusQueueHandler extends QueueHandler */ function userFeedForNotice() { - // @fixme this feels VERY hacky... - // should probably be a cleaner way to do it - - ob_start(); - $api = new ApiTimelineUserAction(); - $api->prepare(array('id' => $this->notice->profile_id, - 'format' => 'atom', - 'max_id' => $this->notice->id, - 'since_id' => $this->notice->id - 1)); - $api->showTimeline(); - $feed = ob_get_clean(); - - // ...and override the content-type back to something normal... eww! - // hope there's no other headers that got set while we weren't looking. - header('Content-Type: text/html; charset=utf-8'); - - common_log(LOG_DEBUG, $feed); + $atom = new AtomUserNoticeFeed($this->user); + $atom->addEntryFromNotice($this->notice); + $feed = $atom->getString(); + return $feed; } function groupFeedForNotice($group_id) { - // @fixme this feels VERY hacky... - // should probably be a cleaner way to do it - - ob_start(); - $api = new ApiTimelineGroupAction(); - $args = array('id' => $group_id, - 'format' => 'atom', - 'max_id' => $this->notice->id, - 'since_id' => $this->notice->id - 1); - $api->prepare($args); - $api->handle($args); - $feed = ob_get_clean(); - - // ...and override the content-type back to something normal... eww! - // hope there's no other headers that got set while we weren't looking. - header('Content-Type: text/html; charset=utf-8'); - - common_log(LOG_DEBUG, $feed); + $group = User_group::staticGet('id', $group_id); + + $atom = new AtomGroupNoticeFeed($group); + $atom->addEntryFromNotice($this->notice); + $feed = $atom->getString(); + return $feed; } -- cgit v1.2.3-54-g00ecf From 8436306d2872db2d1a50fdaef3cc1f2c8fb0d114 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 3 Mar 2010 16:38:51 -0800 Subject: Fix notice warning in RSS friends timeline --- actions/allrss.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/actions/allrss.php b/actions/allrss.php index 28b1be27d..01e737ad7 100644 --- a/actions/allrss.php +++ b/actions/allrss.php @@ -83,6 +83,7 @@ class AllrssAction extends Rss10Action function getNotices($limit=0) { $cur = common_current_user(); + $user = $this->user; if (!empty($cur) && $cur->id == $user->id) { $notice = $this->user->noticeInbox(0, $limit); @@ -90,7 +91,6 @@ class AllrssAction extends Rss10Action $notice = $this->user->noticesWithFriends(0, $limit); } - $user = $this->user; $notice = $user->noticesWithFriends(0, $limit); $notices = array(); -- cgit v1.2.3-54-g00ecf From 61de37ec7bfb620288d3bc3b1fcdfb66725f0f99 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Wed, 3 Mar 2010 16:47:27 -0800 Subject: Move snapshot configuration to its own admin panel Turn on with: $config['admin']['panels'][] = 'snapshot'; --- actions/siteadminpanel.php | 56 +-------- actions/snapshotadminpanel.php | 251 +++++++++++++++++++++++++++++++++++++++++ lib/adminpanelaction.php | 5 + lib/router.php | 1 + 4 files changed, 263 insertions(+), 50 deletions(-) create mode 100644 actions/snapshotadminpanel.php diff --git a/actions/siteadminpanel.php b/actions/siteadminpanel.php index 4b29819b7..cb3c2e8fd 100644 --- a/actions/siteadminpanel.php +++ b/actions/siteadminpanel.php @@ -66,7 +66,7 @@ class SiteadminpanelAction extends AdminPanelAction function getInstructions() { - return _('Basic settings for this StatusNet site.'); + return _('Basic settings for this StatusNet site'); } /** @@ -90,10 +90,11 @@ class SiteadminpanelAction extends AdminPanelAction function saveSettings() { - static $settings = array('site' => array('name', 'broughtby', 'broughtbyurl', - 'email', 'timezone', 'language', - 'site', 'textlimit', 'dupelimit'), - 'snapshot' => array('run', 'reporturl', 'frequency')); + static $settings = array( + 'site' => array('name', 'broughtby', 'broughtbyurl', + 'email', 'timezone', 'language', + 'site', 'textlimit', 'dupelimit'), + ); $values = array(); @@ -158,25 +159,6 @@ class SiteadminpanelAction extends AdminPanelAction $this->clientError(sprintf(_('Unknown language "%s".'), $values['site']['language'])); } - // Validate report URL - - if (!is_null($values['snapshot']['reporturl']) && - !Validate::uri($values['snapshot']['reporturl'], array('allowed_schemes' => array('http', 'https')))) { - $this->clientError(_("Invalid snapshot report URL.")); - } - - // Validate snapshot run value - - if (!in_array($values['snapshot']['run'], array('web', 'cron', 'never'))) { - $this->clientError(_("Invalid snapshot run value.")); - } - - // Validate snapshot run value - - if (!Validate::number($values['snapshot']['frequency'])) { - $this->clientError(_("Snapshot frequency must be a number.")); - } - // Validate text limit if (!Validate::number($values['site']['textlimit'], array('min' => 140))) { @@ -285,32 +267,6 @@ class SiteAdminPanelForm extends AdminForm $this->out->elementEnd('ul'); $this->out->elementEnd('fieldset'); - $this->out->elementStart('fieldset', array('id' => 'settings_admin_snapshots')); - $this->out->element('legend', null, _('Snapshots')); - $this->out->elementStart('ul', 'form_data'); - $this->li(); - $snapshot = array('web' => _('Randomly during Web hit'), - 'cron' => _('In a scheduled job'), - 'never' => _('Never')); - $this->out->dropdown('run', _('Data snapshots'), - $snapshot, _('When to send statistical data to status.net servers'), - false, $this->value('run', 'snapshot')); - $this->unli(); - - $this->li(); - $this->input('frequency', _('Frequency'), - _('Snapshots will be sent once every N web hits'), - 'snapshot'); - $this->unli(); - - $this->li(); - $this->input('reporturl', _('Report URL'), - _('Snapshots will be sent to this URL'), - 'snapshot'); - $this->unli(); - $this->out->elementEnd('ul'); - $this->out->elementEnd('fieldset'); - $this->out->elementStart('fieldset', array('id' => 'settings_admin_limits')); $this->out->element('legend', null, _('Limits')); $this->out->elementStart('ul', 'form_data'); diff --git a/actions/snapshotadminpanel.php b/actions/snapshotadminpanel.php new file mode 100644 index 000000000..a0c2315bc --- /dev/null +++ b/actions/snapshotadminpanel.php @@ -0,0 +1,251 @@ +. + * + * @category Settings + * @package StatusNet + * @author Zach Copley + * @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); +} + +/** + * Manage snapshots + * + * @category Admin + * @package StatusNet + * @author Zach Copley + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +class SnapshotadminpanelAction extends AdminPanelAction +{ + /** + * Returns the page title + * + * @return string page title + */ + + function title() + { + return _('Snapshots'); + } + + /** + * Instructions for using this form. + * + * @return string instructions + */ + + function getInstructions() + { + return _('Manage snapshot configuration'); + } + + /** + * Show the snapshots admin panel form + * + * @return void + */ + + function showForm() + { + $form = new SnapshotAdminPanelForm($this); + $form->show(); + return; + } + + /** + * Save settings from the form + * + * @return void + */ + + function saveSettings() + { + static $settings = array( + 'snapshot' => array('run', 'reporturl', 'frequency') + ); + + $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) + { + // Validate snapshot run value + + if (!in_array($values['snapshot']['run'], array('web', 'cron', 'never'))) { + $this->clientError(_("Invalid snapshot run value.")); + } + + // Validate snapshot frequency value + + if (!Validate::number($values['snapshot']['frequency'])) { + $this->clientError(_("Snapshot frequency must be a number.")); + } + + // Validate report URL + + if (!is_null($values['snapshot']['reporturl']) + && !Validate::uri( + $values['snapshot']['reporturl'], + array('allowed_schemes' => array('http', 'https') + ) + )) { + $this->clientError(_("Invalid snapshot report URL.")); + } + } +} + +class SnapshotAdminPanelForm extends AdminForm +{ + /** + * ID of the form + * + * @return int ID of the form + */ + + function id() + { + return 'form_snapshot_admin_panel'; + } + + /** + * class of the form + * + * @return string class of the form + */ + + function formClass() + { + return 'form_settings'; + } + + /** + * Action of the form + * + * @return string URL of the action + */ + + function action() + { + return common_local_url('snapshotadminpanel'); + } + + /** + * Data elements of the form + * + * @return void + */ + + function formData() + { + $this->out->elementStart( + 'fieldset', + array('id' => 'settings_admin_snapshots') + ); + $this->out->element('legend', null, _('Snapshots')); + $this->out->elementStart('ul', 'form_data'); + $this->li(); + $snapshot = array( + 'web' => _('Randomly during Web hit'), + 'cron' => _('In a scheduled job'), + 'never' => _('Never') + ); + $this->out->dropdown( + 'run', + _('Data snapshots'), + $snapshot, + _('When to send statistical data to status.net servers'), + false, + $this->value('run', 'snapshot') + ); + $this->unli(); + + $this->li(); + $this->input( + 'frequency', + _('Frequency'), + _('Snapshots will be sent once every N web hits'), + 'snapshot' + ); + $this->unli(); + + $this->li(); + $this->input( + 'reporturl', + _('Report URL'), + _('Snapshots will be sent to this URL'), + 'snapshot' + ); + $this->unli(); + $this->out->elementEnd('ul'); + $this->out->elementEnd('fieldset'); + } + + /** + * Action elements + * + * @return void + */ + + function formActions() + { + $this->out->submit( + 'submit', + _('Save'), + 'submit', + null, + _('Save snapshot settings') + ); + } +} diff --git a/lib/adminpanelaction.php b/lib/adminpanelaction.php index eb622871e..d1aab3dfc 100644 --- a/lib/adminpanelaction.php +++ b/lib/adminpanelaction.php @@ -381,6 +381,11 @@ class AdminPanelNav extends Widget _('Edit site notice'), $action_name == 'sitenoticeadminpanel', 'nav_sitenotice_admin_panel'); } + if (AdminPanelAction::canAdmin('snapshot')) { + $this->out->menuItem(common_local_url('snapshotadminpanel'), _('Snapshots'), + _('Snapshots configuration'), $action_name == 'snapshotadminpanel', 'nav_snapshot_admin_panel'); + } + Event::handle('EndAdminPanelNav', array($this)); } $this->action->elementEnd('ul'); diff --git a/lib/router.php b/lib/router.php index 15f88c959..706120e0b 100644 --- a/lib/router.php +++ b/lib/router.php @@ -651,6 +651,7 @@ class Router $m->connect('admin/paths', array('action' => 'pathsadminpanel')); $m->connect('admin/sessions', array('action' => 'sessionsadminpanel')); $m->connect('admin/sitenotice', array('action' => 'sitenoticeadminpanel')); + $m->connect('admin/snapshot', array('action' => 'snapshotadminpanel')); $m->connect('getfile/:filename', array('action' => 'getfile'), -- cgit v1.2.3-54-g00ecf From a26d23b39515e42a2f5437203d90d583d9a1be89 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 3 Mar 2010 19:51:41 -0500 Subject: Changed clipboard icon to magic wand for user role button --- theme/base/images/icons/README | 2 +- theme/base/images/icons/icons-01.gif | Bin 3788 -> 3792 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/theme/base/images/icons/README b/theme/base/images/icons/README index 0451fda49..2e1782602 100644 --- a/theme/base/images/icons/README +++ b/theme/base/images/icons/README @@ -25,7 +25,6 @@ White reject with green background White play with green background White pause with green background - White clipboard with green background */ @@ -46,6 +45,7 @@ White pin with green background White underscore with green background White C with green background + White magic wand with green background */ Created by various authors diff --git a/theme/base/images/icons/icons-01.gif b/theme/base/images/icons/icons-01.gif index deba4970d..210c44511 100644 Binary files a/theme/base/images/icons/icons-01.gif and b/theme/base/images/icons/icons-01.gif differ -- cgit v1.2.3-54-g00ecf From 1761b185bfc275157906c086b20fb469edc37987 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 3 Mar 2010 19:53:09 -0500 Subject: Removed clipboard icon from core --- theme/base/images/icons/twotone/green/clipboard.gif | Bin 80 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 theme/base/images/icons/twotone/green/clipboard.gif diff --git a/theme/base/images/icons/twotone/green/clipboard.gif b/theme/base/images/icons/twotone/green/clipboard.gif deleted file mode 100644 index 9317bdcd0..000000000 Binary files a/theme/base/images/icons/twotone/green/clipboard.gif and /dev/null differ -- cgit v1.2.3-54-g00ecf From 6a5a629afac881fdc8369dfef2924f7f62949fab Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 3 Mar 2010 20:08:55 -0500 Subject: Updated label and note text for user and group remote subscribe forms --- plugins/OStatus/actions/ostatusgroup.php | 4 ++-- plugins/OStatus/actions/ostatussub.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/OStatus/actions/ostatusgroup.php b/plugins/OStatus/actions/ostatusgroup.php index 4fcd0eb39..f325ba053 100644 --- a/plugins/OStatus/actions/ostatusgroup.php +++ b/plugins/OStatus/actions/ostatusgroup.php @@ -72,9 +72,9 @@ class OStatusGroupAction extends OStatusSubAction $this->elementStart('ul', 'form_data'); $this->elementStart('li'); $this->input('profile', - _m('Group profile URL'), + _m('Join group'), $this->profile_uri, - _m('Enter the profile URL of a group on another StatusNet site')); + _m("OStatus group's address, like http://example.net/group/nickname")); $this->elementEnd('li'); $this->elementEnd('ul'); diff --git a/plugins/OStatus/actions/ostatussub.php b/plugins/OStatus/actions/ostatussub.php index 542f7e20c..7ca8a7869 100644 --- a/plugins/OStatus/actions/ostatussub.php +++ b/plugins/OStatus/actions/ostatussub.php @@ -62,9 +62,9 @@ class OStatusSubAction extends Action $this->elementStart('ul', 'form_data'); $this->elementStart('li'); $this->input('profile', - _m('Address or profile URL'), + _m('Subscribe to'), $this->profile_uri, - _m('Enter the profile URL of a PubSubHubbub-enabled feed')); + _m("OStatus user's address, like nickname@example.com or http://example.net/user/nickname")); $this->elementEnd('li'); $this->elementEnd('ul'); -- cgit v1.2.3-54-g00ecf From a4d9171306a06983094fdc90dbf040335c4f803f Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 3 Mar 2010 18:23:28 -0800 Subject: Fix up catching of webfinger setup fails --- plugins/OStatus/actions/ostatussub.php | 3 +-- plugins/OStatus/classes/Ostatus_profile.php | 13 ++++++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/plugins/OStatus/actions/ostatussub.php b/plugins/OStatus/actions/ostatussub.php index 7ca8a7869..e8a2c78ae 100644 --- a/plugins/OStatus/actions/ostatussub.php +++ b/plugins/OStatus/actions/ostatussub.php @@ -260,7 +260,7 @@ class OStatusSubAction extends Action $this->error = _m('Could not find a feed linked from this URL.'); } catch (FeedSubUnrecognizedTypeException $e) { $this->error = _m('Not a recognized feed type.'); - } catch (FeedSubException $e) { + } catch (Exception $e) { // Any new ones we forgot about $this->error = sprintf(_m('Bad feed URL: %s %s'), get_class($e), $e->getMessage()); } @@ -315,7 +315,6 @@ class OStatusSubAction extends Action if ($this->pullRemoteProfile()) { $this->validateRemoteProfile(); } - return true; } diff --git a/plugins/OStatus/classes/Ostatus_profile.php b/plugins/OStatus/classes/Ostatus_profile.php index 7ab031aa5..b3b4336b5 100644 --- a/plugins/OStatus/classes/Ostatus_profile.php +++ b/plugins/OStatus/classes/Ostatus_profile.php @@ -1267,6 +1267,11 @@ class Ostatus_profile extends Memcached_DataObject } } + /** + * @param string $addr webfinger address + * @return Ostatus_profile + * @throws Exception on error conditions + */ public static function ensureWebfinger($addr) { // First, try the cache @@ -1275,7 +1280,8 @@ class Ostatus_profile extends Memcached_DataObject if ($uri !== false) { if (is_null($uri)) { - return null; + // Negative cache entry + throw new Exception('Not a valid webfinger address.'); } $oprofile = Ostatus_profile::staticGet('uri', $uri); if (!empty($oprofile)) { @@ -1299,8 +1305,9 @@ class Ostatus_profile extends Memcached_DataObject try { $result = $disco->lookup($addr); } catch (Exception $e) { + // Save negative cache entry so we don't waste time looking it up again. self::cacheSet(sprintf('ostatus_profile:webfinger:%s', $addr), null); - return null; + throw new Exception('Not a valid webfinger address.'); } foreach ($result->links as $link) { @@ -1410,7 +1417,7 @@ class Ostatus_profile extends Memcached_DataObject return $oprofile; } - return null; + throw new Exception("Couldn't find a valid profile for '$addr'"); } function saveHTMLFile($title, $rendered) -- cgit v1.2.3-54-g00ecf From 14065ca350cae576461f1a2db33694e38cebf751 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 3 Mar 2010 18:28:39 -0800 Subject: OStatus: code cleanup on webfinger fallback path --- plugins/OStatus/classes/Ostatus_profile.php | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/plugins/OStatus/classes/Ostatus_profile.php b/plugins/OStatus/classes/Ostatus_profile.php index b3b4336b5..fcca1a252 100644 --- a/plugins/OStatus/classes/Ostatus_profile.php +++ b/plugins/OStatus/classes/Ostatus_profile.php @@ -1306,20 +1306,23 @@ class Ostatus_profile extends Memcached_DataObject $result = $disco->lookup($addr); } catch (Exception $e) { // Save negative cache entry so we don't waste time looking it up again. + // @fixme distinguish temporary failures? self::cacheSet(sprintf('ostatus_profile:webfinger:%s', $addr), null); throw new Exception('Not a valid webfinger address.'); } + $hints = array('webfinger' => $addr); + foreach ($result->links as $link) { switch ($link['rel']) { case Discovery::PROFILEPAGE: - $profileUrl = $link['href']; + $hints['profileurl'] = $profileUrl = $link['href']; break; case Salmon::NS_REPLIES: - $salmonEndpoint = $link['href']; + $hints['salmon'] = $salmonEndpoint = $link['href']; break; case Discovery::UPDATESFROM: - $feedUrl = $link['href']; + $hints['feedurl'] = $feedUrl = $link['href']; break; case Discovery::HCARD: $hcardUrl = $link['href']; @@ -1330,11 +1333,6 @@ class Ostatus_profile extends Memcached_DataObject } } - $hints = array('webfinger' => $addr, - 'profileurl' => $profileUrl, - 'feedurl' => $feedUrl, - 'salmon' => $salmonEndpoint); - if (isset($hcardUrl)) { $hcardHints = self::slurpHcard($hcardUrl); // Note: Webfinger > hcard -- cgit v1.2.3-54-g00ecf From 24835c1164251e48037f6ddee14e4b696fe57320 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 3 Mar 2010 18:31:35 -0800 Subject: OStatus: catchable exception instead of fatal when parsing valid XML that isn't a valid XRD doc --- plugins/OStatus/lib/xrd.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/OStatus/lib/xrd.php b/plugins/OStatus/lib/xrd.php index f00e1f809..aa13ef024 100644 --- a/plugins/OStatus/lib/xrd.php +++ b/plugins/OStatus/lib/xrd.php @@ -57,6 +57,9 @@ class XRD throw new Exception("Invalid XML"); } $xrd_element = $dom->getElementsByTagName('XRD')->item(0); + if (!$xrd_element) { + throw new Exception("Invalid XML, missing XRD root"); + } // Check for host-meta host $host = $xrd_element->getElementsByTagName('Host')->item(0); -- cgit v1.2.3-54-g00ecf From de687d00c0ebe8bf5d185b7037df7f1edfd368a3 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 3 Mar 2010 22:56:50 -0500 Subject: Updated OStatus subscription error messages to be more user friendly. Hopefully. --- plugins/OStatus/actions/ostatussub.php | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/plugins/OStatus/actions/ostatussub.php b/plugins/OStatus/actions/ostatussub.php index e8a2c78ae..bee48a8ae 100644 --- a/plugins/OStatus/actions/ostatussub.php +++ b/plugins/OStatus/actions/ostatussub.php @@ -64,7 +64,7 @@ class OStatusSubAction extends Action $this->input('profile', _m('Subscribe to'), $this->profile_uri, - _m("OStatus user's address, like nickname@example.com or http://example.net/user/nickname")); + _m("OStatus user's address, like nickname@example.com or http://example.net/nickname")); $this->elementEnd('li'); $this->elementEnd('ul'); @@ -244,25 +244,33 @@ class OStatusSubAction extends Action } else if (Validate::uri($this->profile_uri)) { $this->oprofile = Ostatus_profile::ensureProfile($this->profile_uri); } else { - $this->error = _m("Invalid address format."); + $this->error = _m("Sorry, we could not reach that address. Please make sure that the OStatus address is like nickname@example.com or http://example.net/nickname"); + common_debug('Invalid address format.', __FILE__); return false; } return true; } catch (FeedSubBadURLException $e) { - $this->error = _m('Invalid URL or could not reach server.'); + $this->error = _m("Sorry, we could not reach that address. Please make sure that the OStatus address is like nickname@example.com or http://example.net/nickname"); + common_debug('Invalid URL or could not reach server.', __FILE__); } catch (FeedSubBadResponseException $e) { - $this->error = _m('Cannot read feed; server returned error.'); + $this->error = _m("Sorry, we could not reach that feed. Please try that OStatus address again later."); + common_debug('Cannot read feed; server returned error.', __FILE__); } catch (FeedSubEmptyException $e) { - $this->error = _m('Cannot read feed; server returned an empty page.'); + $this->error = _m("Sorry, we could not reach that feed. Please try that OStatus address again later."); + common_debug('Cannot read feed; server returned an empty page.', __FILE__); } catch (FeedSubBadHTMLException $e) { - $this->error = _m('Bad HTML, could not find feed link.'); + $this->error = _m("Sorry, we could not reach that feed. Please try that OStatus address again later."); + common_debug('Bad HTML, could not find feed link.', __FILE__); } catch (FeedSubNoFeedException $e) { - $this->error = _m('Could not find a feed linked from this URL.'); + $this->error = _m("Sorry, we could not reach that feed. Please try that OStatus address again later."); + common_debug('Could not find a feed linked from this URL.', __FILE__); } catch (FeedSubUnrecognizedTypeException $e) { - $this->error = _m('Not a recognized feed type.'); + $this->error = _m("Sorry, we could not reach that feed. Please try that OStatus address again later."); + common_debug('Not a recognized feed type.', __FILE__); } catch (Exception $e) { // Any new ones we forgot about - $this->error = sprintf(_m('Bad feed URL: %s %s'), get_class($e), $e->getMessage()); + $this->error = _m("Sorry, we could not reach that address. Please make sure that the OStatus address is like nickname@example.com or http://example.net/nickname"); + common_debug(sprintf('Bad feed URL: %s %s', get_class($e), $e->getMessage()), __FILE__); } return false; -- cgit v1.2.3-54-g00ecf From 1c8399fde123fa2bc7b4ebf21fb323d215a9e7b4 Mon Sep 17 00:00:00 2001 From: James Walker Date: Wed, 3 Mar 2010 23:20:04 -0500 Subject: refactor xrd to allow for ownerxrd - xrd document for the site owner. introduced $config['webfinger']['owner'] for a custom xrd subject --- plugins/OStatus/OStatusPlugin.php | 4 +- plugins/OStatus/actions/ownerxrd.php | 56 +++++++++++++++++ plugins/OStatus/actions/userxrd.php | 48 +++++++++++++++ plugins/OStatus/actions/xrd.php | 113 ----------------------------------- plugins/OStatus/lib/xrdaction.php | 105 ++++++++++++++++++++++++++++++++ 5 files changed, 212 insertions(+), 114 deletions(-) create mode 100644 plugins/OStatus/actions/ownerxrd.php create mode 100644 plugins/OStatus/actions/userxrd.php delete mode 100644 plugins/OStatus/actions/xrd.php create mode 100644 plugins/OStatus/lib/xrdaction.php diff --git a/plugins/OStatus/OStatusPlugin.php b/plugins/OStatus/OStatusPlugin.php index cc7e75976..8baa857d8 100644 --- a/plugins/OStatus/OStatusPlugin.php +++ b/plugins/OStatus/OStatusPlugin.php @@ -44,7 +44,9 @@ class OStatusPlugin extends Plugin $m->connect('.well-known/host-meta', array('action' => 'hostmeta')); $m->connect('main/xrd', - array('action' => 'xrd')); + array('action' => 'userxrd')); + $m->connect('main/ownerxrd', + array('action' => 'ownerxrd')); $m->connect('main/ostatus', array('action' => 'ostatusinit')); $m->connect('main/ostatus?nickname=:nickname', diff --git a/plugins/OStatus/actions/ownerxrd.php b/plugins/OStatus/actions/ownerxrd.php new file mode 100644 index 000000000..9c141d8c7 --- /dev/null +++ b/plugins/OStatus/actions/ownerxrd.php @@ -0,0 +1,56 @@ +. + */ + +/** + * @package OStatusPlugin + * @maintainer James Walker + */ + +if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } + +class OwnerxrdAction extends XrdAction +{ + + public $uri; + + function prepare($args) + { + $this->user = User::siteOwner(); + + if (!$this->user) { + $this->clientError(_('No such user.'), 404); + return false; + } + + $nick = common_canonical_nickname($this->user->nickname); + $acct = 'acct:' . $nick . '@' . common_config('site', 'server'); + + $this->xrd = new XRD(); + + // Check to see if a $config['webfinger']['owner'] has been set + if ($owner = common_config('webfinger', 'owner')) { + $this->xrd->subject = Discovery::normalize($owner); + $this->xrd->alias[] = $acct; + } else { + $this->xrd->subject = $acct; + } + + return true; + } +} diff --git a/plugins/OStatus/actions/userxrd.php b/plugins/OStatus/actions/userxrd.php new file mode 100644 index 000000000..414de9364 --- /dev/null +++ b/plugins/OStatus/actions/userxrd.php @@ -0,0 +1,48 @@ +. + */ + +/** + * @package OStatusPlugin + * @maintainer James Walker + */ + +if (!defined('STATUSNET')) { exit(1); } + +class UserxrdAction extends XrdAction +{ + + function prepare($args) + { + parent::prepare($args); + + $this->uri = $this->trimmed('uri'); + $acct = Discovery::normalize($this->uri); + + list($nick, $domain) = explode('@', substr(urldecode($acct), 5)); + $nick = common_canonical_nickname($nick); + + $this->user = User::staticGet('nickname', $nick); + if (!$this->user) { + $this->clientError(_('No such user.'), 404); + return false; + } + + return true; + } +} diff --git a/plugins/OStatus/actions/xrd.php b/plugins/OStatus/actions/xrd.php deleted file mode 100644 index f574b60ee..000000000 --- a/plugins/OStatus/actions/xrd.php +++ /dev/null @@ -1,113 +0,0 @@ -. - */ - -/** - * @package OStatusPlugin - * @maintainer James Walker - */ - -if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } - -class XrdAction extends Action -{ - - public $uri; - - function prepare($args) - { - parent::prepare($args); - - $this->uri = $this->trimmed('uri'); - - return true; - } - - function handle() - { - $acct = Discovery::normalize($this->uri); - - $xrd = new XRD(); - - list($nick, $domain) = explode('@', substr(urldecode($acct), 5)); - $nick = common_canonical_nickname($nick); - - $this->user = User::staticGet('nickname', $nick); - if (!$this->user) { - $this->clientError(_('No such user.'), 404); - return false; - } - - $xrd->subject = $this->uri; - $xrd->alias[] = common_profile_url($nick); - $xrd->links[] = array('rel' => Discovery::PROFILEPAGE, - 'type' => 'text/html', - 'href' => common_profile_url($nick)); - - $xrd->links[] = array('rel' => Discovery::UPDATESFROM, - 'href' => common_local_url('ApiTimelineUser', - array('id' => $this->user->id, - 'format' => 'atom')), - 'type' => 'application/atom+xml'); - - // hCard - $xrd->links[] = array('rel' => Discovery::HCARD, - 'type' => 'text/html', - 'href' => common_local_url('hcard', array('nickname' => $nick))); - - // XFN - $xrd->links[] = array('rel' => 'http://gmpg.org/xfn/11', - 'type' => 'text/html', - 'href' => common_profile_url($nick)); - // FOAF - $xrd->links[] = array('rel' => 'describedby', - 'type' => 'application/rdf+xml', - 'href' => common_local_url('foaf', - array('nickname' => $nick))); - - // Salmon - $salmon_url = common_local_url('usersalmon', - array('id' => $this->user->id)); - - $xrd->links[] = array('rel' => Salmon::NS_REPLIES, - 'href' => $salmon_url); - - $xrd->links[] = array('rel' => Salmon::NS_MENTIONS, - 'href' => $salmon_url); - - // Get this user's keypair - $magickey = Magicsig::staticGet('user_id', $this->user->id); - if (!$magickey) { - // No keypair yet, let's generate one. - $magickey = new Magicsig(); - $magickey->generate($this->user->id); - } - - $xrd->links[] = array('rel' => Magicsig::PUBLICKEYREL, - 'href' => 'data:application/magic-public-key;'. $magickey->toString(false)); - - // TODO - finalize where the redirect should go on the publisher - $url = common_local_url('ostatussub') . '?profile={uri}'; - $xrd->links[] = array('rel' => 'http://ostatus.org/schema/1.0/subscribe', - 'template' => $url ); - - header('Content-type: text/xml'); - print $xrd->toXML(); - } - -} diff --git a/plugins/OStatus/lib/xrdaction.php b/plugins/OStatus/lib/xrdaction.php new file mode 100644 index 000000000..6881292ad --- /dev/null +++ b/plugins/OStatus/lib/xrdaction.php @@ -0,0 +1,105 @@ +. + */ + +/** + * @package OStatusPlugin + * @maintainer James Walker + */ + +if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } + +class XrdAction extends Action +{ + + public $uri; + + public $user; + + public $xrd; + + function handle() + { + $nick = $this->user->nickname; + + if (empty($this->xrd)) { + $xrd = new XRD(); + } else { + $xrd = $this->xrd; + } + + if (empty($xrd->subject)) { + $xrd->subject = Discovery::normalize($this->uri); + } + $xrd->alias[] = common_profile_url($nick); + $xrd->links[] = array('rel' => Discovery::PROFILEPAGE, + 'type' => 'text/html', + 'href' => common_profile_url($nick)); + + $xrd->links[] = array('rel' => Discovery::UPDATESFROM, + 'href' => common_local_url('ApiTimelineUser', + array('id' => $this->user->id, + 'format' => 'atom')), + 'type' => 'application/atom+xml'); + + // hCard + $xrd->links[] = array('rel' => Discovery::HCARD, + 'type' => 'text/html', + 'href' => common_local_url('hcard', array('nickname' => $nick))); + + // XFN + $xrd->links[] = array('rel' => 'http://gmpg.org/xfn/11', + 'type' => 'text/html', + 'href' => common_profile_url($nick)); + // FOAF + $xrd->links[] = array('rel' => 'describedby', + 'type' => 'application/rdf+xml', + 'href' => common_local_url('foaf', + array('nickname' => $nick))); + + // Salmon + $salmon_url = common_local_url('usersalmon', + array('id' => $this->user->id)); + + $xrd->links[] = array('rel' => Salmon::NS_REPLIES, + 'href' => $salmon_url); + + $xrd->links[] = array('rel' => Salmon::NS_MENTIONS, + 'href' => $salmon_url); + + // Get this user's keypair + $magickey = Magicsig::staticGet('user_id', $this->user->id); + if (!$magickey) { + // No keypair yet, let's generate one. + $magickey = new Magicsig(); + $magickey->generate($this->user->id); + } + + $xrd->links[] = array('rel' => Magicsig::PUBLICKEYREL, + 'href' => 'data:application/magic-public-key;'. $magickey->toString(false)); + + // TODO - finalize where the redirect should go on the publisher + $url = common_local_url('ostatussub') . '?profile={uri}'; + $xrd->links[] = array('rel' => 'http://ostatus.org/schema/1.0/subscribe', + 'template' => $url ); + + header('Content-type: text/xml'); + print $xrd->toXML(); + } + +} -- cgit v1.2.3-54-g00ecf From 38503096d905fbb4db8552eeb59afc12d4b5e903 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 3 Mar 2010 23:34:48 -0500 Subject: Puts All groups and Remote sub button in the mini list on the same line --- plugins/OStatus/theme/base/css/ostatus.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/OStatus/theme/base/css/ostatus.css b/plugins/OStatus/theme/base/css/ostatus.css index ac668623d..f7d9853cf 100644 --- a/plugins/OStatus/theme/base/css/ostatus.css +++ b/plugins/OStatus/theme/base/css/ostatus.css @@ -52,7 +52,8 @@ margin-bottom:0; width:405px; } -.aside #entity_subscriptions .more { +.aside #entity_subscriptions .more, +.aside #entity_groups .more { float:left; } -- cgit v1.2.3-54-g00ecf From b97ac60209fdec3f2d521f7c9d54acca6d00d274 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 3 Mar 2010 23:47:27 -0500 Subject: Changed text for authorizing/confirming remote profile --- plugins/OStatus/actions/ostatussub.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/OStatus/actions/ostatussub.php b/plugins/OStatus/actions/ostatussub.php index bee48a8ae..65dee2392 100644 --- a/plugins/OStatus/actions/ostatussub.php +++ b/plugins/OStatus/actions/ostatussub.php @@ -398,7 +398,7 @@ class OStatusSubAction extends Action function title() { // TRANS: Page title for OStatus remote subscription form - return _m('Authorize subscription'); + return _m('Confirm'); } /** -- cgit v1.2.3-54-g00ecf From f210cadfecc4f87e1fb8e35cd784a7010c443c31 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Wed, 3 Mar 2010 17:35:18 -0800 Subject: Revert "Revert "Show and no activity actors for user feed"" This reverts commit e2578cfad68c45ca177c51997c4cc7c0abafbd9a. --- classes/Notice.php | 8 +++++--- lib/atomnoticefeed.php | 16 +++++++++++++--- lib/atomusernoticefeed.php | 11 +++++++++++ 3 files changed, 29 insertions(+), 6 deletions(-) diff --git a/classes/Notice.php b/classes/Notice.php index 97cb3b8fb..4c7e6ab4b 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -1106,7 +1106,7 @@ class Notice extends Memcached_DataObject return $groups; } - function asAtomEntry($namespace=false, $source=false) + function asAtomEntry($namespace=false, $source=false, $author=true) { $profile = $this->getProfile(); @@ -1151,8 +1151,10 @@ class Notice extends Memcached_DataObject $xs->element('title', null, $this->content); - $xs->raw($profile->asAtomAuthor()); - $xs->raw($profile->asActivityActor()); + if ($author) { + $xs->raw($profile->asAtomAuthor()); + $xs->raw($profile->asActivityActor()); + } $xs->element('link', array('rel' => 'alternate', 'type' => 'text/html', diff --git a/lib/atomnoticefeed.php b/lib/atomnoticefeed.php index 3c3556cb9..e4df731fe 100644 --- a/lib/atomnoticefeed.php +++ b/lib/atomnoticefeed.php @@ -107,9 +107,19 @@ class AtomNoticeFeed extends Atom10Feed */ function addEntryFromNotice($notice) { - $this->addEntryRaw($notice->asAtomEntry()); - } + $source = $this->showSource(); + $author = $this->showAuthor(); -} + $this->addEntryRaw($notice->asAtomEntry(false, $source, $author)); + } + function showSource() + { + return true; + } + function showAuthor() + { + return true; + } +} diff --git a/lib/atomusernoticefeed.php b/lib/atomusernoticefeed.php index 55cebef6d..428cc2de2 100644 --- a/lib/atomusernoticefeed.php +++ b/lib/atomusernoticefeed.php @@ -61,6 +61,7 @@ class AtomUserNoticeFeed extends AtomNoticeFeed if (!empty($user)) { $profile = $user->getProfile(); $this->addAuthor($profile->nickname, $user->uri); + $this->setActivitySubject($profile->asActivityNoun('subject')); } $title = sprintf(_("%s timeline"), $user->nickname); @@ -105,4 +106,14 @@ class AtomUserNoticeFeed extends AtomNoticeFeed { return $this->user; } + + function showSource() + { + return false; + } + + function showAuthor() + { + return false; + } } -- cgit v1.2.3-54-g00ecf From 0e360ad23da4404c47bdb074a1afdb2eed873ecd Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Wed, 3 Mar 2010 20:07:13 -0800 Subject: Test a small user feed to ensure we're taking the activity actor from the subject --- tests/UserFeedParseTest.php | 131 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 tests/UserFeedParseTest.php diff --git a/tests/UserFeedParseTest.php b/tests/UserFeedParseTest.php new file mode 100644 index 000000000..b3f9a6417 --- /dev/null +++ b/tests/UserFeedParseTest.php @@ -0,0 +1,131 @@ +assertFalse(empty($dom)); + + $entries = $dom->getElementsByTagName('entry'); + + $entry1 = $entries->item(0); + $this->assertFalse(empty($entry1)); + + $feedEl = $dom->getElementsByTagName('feed')->item(0); + $this->assertFalse(empty($feedEl)); + + // Test actor (from activity:subject) + + $act1 = new Activity($entry1, $feedEl); + $this->assertFalse(empty($act1)); + $this->assertFalse(empty($act1->actor)); + $this->assertEquals($act1->actor->type, ActivityObject::PERSON); + $this->assertEquals($act1->actor->title, 'Zach Copley'); + $this->assertEquals($act1->actor->id, 'http://localhost/statusnet/user/1'); + $this->assertEquals($act1->actor->link, 'http://localhost/statusnet/zach'); + + $avatars = $act1->actor->avatarLinks; + + $this->assertEquals( + $avatars[0]->url, + 'http://localhost/statusnet/theme/default/default-avatar-profile.png' + ); + + $this->assertEquals( + $avatars[1]->url, + 'http://localhost/statusnet/theme/default/default-avatar-stream.png' + ); + + $this->assertEquals( + $avatars[2]->url, + 'http://localhost/statusnet/theme/default/default-avatar-mini.png' + ); + + $this->assertEquals($act1->actor->displayName, 'Zach Copley'); + + $poco = $act1->actor->poco; + $this->assertEquals($poco->preferredUsername, 'zach'); + $this->assertEquals($poco->address->formatted, 'El Cerrito, CA'); + $this->assertEquals($poco->urls[0]->type, 'homepage'); + $this->assertEquals($poco->urls[0]->value, 'http://zach.copley.name'); + $this->assertEquals($poco->urls[0]->primary, 'true'); + $this->assertEquals($poco->note, 'Zach Hack Attack'); + + // test the post + + //var_export($act1); + $this->assertEquals($act1->object->type, 'http://activitystrea.ms/schema/1.0/note'); + $this->assertEquals($act1->object->title, 'And now for something completely insane...'); + + $this->assertEquals($act1->object->content, 'And now for something completely insane...'); + $this->assertEquals($act1->object->id, 'http://localhost/statusnet/notice/3'); + + } + +} + +$_testfeed1 = << + + http://localhost/statusnet/api/statuses/user_timeline/1.atom + zach timeline + Updates from zach on Zach Dev! + http://localhost/statusnet/theme/default/default-avatar-profile.png + 2010-03-04T01:41:14+00:00 + + zach + http://localhost/statusnet/user/1 + + + + + + + + + + http://activitystrea.ms/schema/1.0/person + http://localhost/statusnet/user/1 + Zach Copley + + + + + +zach +Zach Copley +Zach Hack Attack + + El Cerrito, CA + + + homepage + http://zach.copley.name + true + + + + + And now for something completely insane... + + http://localhost/statusnet/notice/3 + 2010-03-04T01:41:07+00:00 + 2010-03-04T01:41:07+00:00 + + And now for something completely insane... + + + +TESTFEED1; -- cgit v1.2.3-54-g00ecf From 8ffb34a90c78502843aabaac71963d2f40c505d8 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Wed, 3 Mar 2010 20:55:53 -0800 Subject: Temp fix for problem getting actor from PuSH updates where actor is only specified in subject --- lib/activity.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/activity.php b/lib/activity.php index ce14fa254..e1bce6f19 100644 --- a/lib/activity.php +++ b/lib/activity.php @@ -1060,6 +1060,18 @@ class Activity } $this->entry = $entry; + + // @fixme Don't send in a DOMDocument + if ($feed instanceof DOMDocument) { + common_log( + LOG_WARNING, + 'Activity::__construct() - ' + . 'DOMDocument passed in for feed by mistake. ' + . "Expecting a 'feed' DOMElement." + ); + $feed = $feed->getElementsByTagName('feed')->item(0); + } + $this->feed = $feed; $pubEl = $this->_child($entry, self::PUBLISHED, self::ATOM); -- cgit v1.2.3-54-g00ecf From ce9d1618851156cc225a56980c4268a5fe102806 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 4 Mar 2010 00:29:13 -0500 Subject: Added the inverse icons for badge, sandbox, speech, admin --- theme/base/images/icons/README | 4 ++++ theme/base/images/icons/icons-01.gif | Bin 3792 -> 4095 bytes 2 files changed, 4 insertions(+) diff --git a/theme/base/images/icons/README b/theme/base/images/icons/README index 2e1782602..f701959ca 100644 --- a/theme/base/images/icons/README +++ b/theme/base/images/icons/README @@ -46,6 +46,10 @@ White underscore with green background White C with green background White magic wand with green background + Green badge with white background + Green sandbox with white background + Green speech bubble broken with white background + Green person with tie with white background */ Created by various authors diff --git a/theme/base/images/icons/icons-01.gif b/theme/base/images/icons/icons-01.gif index 210c44511..7c2235673 100644 Binary files a/theme/base/images/icons/icons-01.gif and b/theme/base/images/icons/icons-01.gif differ -- cgit v1.2.3-54-g00ecf From 4b99bfce455fbbfda34f46367eb3313c0bf8c9ea Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 4 Mar 2010 00:48:48 -0500 Subject: Updated styles for unsandbox, unsilence, revoke administrator and moderator icons --- theme/base/images/icons/icons-01.gif | Bin 4095 -> 4080 bytes theme/default/css/display.css | 16 ++++++++++++++-- theme/identica/css/display.css | 16 ++++++++++++++-- 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/theme/base/images/icons/icons-01.gif b/theme/base/images/icons/icons-01.gif index 7c2235673..bf0f1230e 100644 Binary files a/theme/base/images/icons/icons-01.gif and b/theme/base/images/icons/icons-01.gif differ diff --git a/theme/default/css/display.css b/theme/default/css/display.css index 8ca267c33..be341813a 100644 --- a/theme/default/css/display.css +++ b/theme/default/css/display.css @@ -358,15 +358,27 @@ background-position: 5px -1445px; .entity_delete input.submit { background-position: 5px -1511px; } +.entity_sandbox .form_user_unsandbox input.submit { +background-position: 5px -2568px; +} +.entity_silence .form_user_unsilence input.submit { +background-position: 5px -2633px; +} .entity_role p { background-position: 5px -2436px; } -.entity_role_administrator input.submit { +.entity_role_administrator .form_user_grantrole input.submit { background-position: 5px -983px; } -.entity_role_moderator input.submit { +.entity_role_moderator .form_user_grantrole input.submit { background-position: 5px -1313px; } +.entity_role_administrator .form_user_revokerole input.submit { +background-position: 5px -2699px; +} +.entity_role_moderator .form_user_revokerole input.submit { +background-position: 5px -2501px; +} .form_reset_key input.submit { background-position: 5px -1973px; } diff --git a/theme/identica/css/display.css b/theme/identica/css/display.css index bc27cfb4d..db85408eb 100644 --- a/theme/identica/css/display.css +++ b/theme/identica/css/display.css @@ -358,15 +358,27 @@ background-position: 5px -1445px; .entity_delete input.submit { background-position: 5px -1511px; } +.entity_sandbox .form_user_unsandbox input.submit { +background-position: 5px -2568px; +} +.entity_silence .form_user_unsilence input.submit { +background-position: 5px -2633px; +} .entity_role p { background-position: 5px -2436px; } -.entity_role_administrator input.submit { +.entity_role_administrator .form_user_grantrole input.submit { background-position: 5px -983px; } -.entity_role_moderator input.submit { +.entity_role_moderator .form_user_grantrole input.submit { background-position: 5px -1313px; } +.entity_role_administrator .form_user_revokerole input.submit { +background-position: 5px -2699px; +} +.entity_role_moderator .form_user_revokerole input.submit { +background-position: 5px -2501px; +} .form_reset_key input.submit { background-position: 5px -1973px; } -- cgit v1.2.3-54-g00ecf From 849f5783c445934da370769310b3b0382bc5d303 Mon Sep 17 00:00:00 2001 From: James Walker Date: Thu, 4 Mar 2010 01:30:15 -0500 Subject: update xrd -> userxrd --- plugins/OStatus/OStatusPlugin.php | 2 +- plugins/OStatus/actions/hostmeta.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/OStatus/OStatusPlugin.php b/plugins/OStatus/OStatusPlugin.php index 8baa857d8..ad4f61389 100644 --- a/plugins/OStatus/OStatusPlugin.php +++ b/plugins/OStatus/OStatusPlugin.php @@ -113,7 +113,7 @@ class OStatusPlugin extends Plugin { if ($action instanceof ShowstreamAction) { $acct = 'acct:'. $action->profile->nickname .'@'. common_config('site', 'server'); - $url = common_local_url('xrd'); + $url = common_local_url('userxrd'); $url.= '?uri='. $acct; header('Link: <'.$url.'>; rel="'. Discovery::LRDD_REL.'"; type="application/xrd+xml"'); diff --git a/plugins/OStatus/actions/hostmeta.php b/plugins/OStatus/actions/hostmeta.php index 3d00b98ae..6d35ada6c 100644 --- a/plugins/OStatus/actions/hostmeta.php +++ b/plugins/OStatus/actions/hostmeta.php @@ -32,7 +32,7 @@ class HostMetaAction extends Action parent::handle(); $domain = common_config('site', 'server'); - $url = common_local_url('xrd'); + $url = common_local_url('userxrd'); $url.= '?uri={uri}'; $xrd = new XRD(); -- cgit v1.2.3-54-g00ecf From ddc4a7d2ffde5a925c2cfe7b57e51cd0b2cf0153 Mon Sep 17 00:00:00 2001 From: James Walker Date: Thu, 4 Mar 2010 01:46:34 -0500 Subject: Catch a previously uncaught exception and add some additional debug logs for signature verification --- plugins/OStatus/lib/magicenvelope.php | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/plugins/OStatus/lib/magicenvelope.php b/plugins/OStatus/lib/magicenvelope.php index 230d81ba1..fb8c57c71 100644 --- a/plugins/OStatus/lib/magicenvelope.php +++ b/plugins/OStatus/lib/magicenvelope.php @@ -156,18 +156,32 @@ class MagicEnvelope public function verify($env) { if ($env['alg'] != 'RSA-SHA256') { + common_log(LOG_DEBUG, "Salmon error: bad algorithm"); return false; } if ($env['encoding'] != MagicEnvelope::ENCODING) { + common_log(LOG_DEBUG, "Salmon error: bad encoding"); return false; } $text = base64_decode($env['data']); $signer_uri = $this->getAuthor($text); - $verifier = Magicsig::fromString($this->getKeyPair($signer_uri)); + try { + $keypair = $this->getKeyPair($signer_uri); + } catch (Exception $e) { + common_log(LOG_DEBUG, "Salmon error: ".$e->getMessage()); + return false; + } + + $verifier = Magicsig::fromString($keypair); + if (!$verifier) { + common_log(LOG_DEBUG, "Salmon error: unable to parse keypair"); + return false; + } + return $verifier->verify($env['data'], $env['sig']); } -- cgit v1.2.3-54-g00ecf From 37b106d49c7e6c563a1e7e4932ab5f458572964f Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Wed, 3 Mar 2010 22:22:57 -0800 Subject: Fix variable name in NoConfigException --- lib/statusnet.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/statusnet.php b/lib/statusnet.php index 7c4df84b4..eba9ab9b8 100644 --- a/lib/statusnet.php +++ b/lib/statusnet.php @@ -354,10 +354,10 @@ class StatusNet class NoConfigException extends Exception { - public $config_files; + public $configFiles; - function __construct($msg, $config_files) { + function __construct($msg, $configFiles) { parent::__construct($msg); - $this->config_files = $config_files; + $this->configFiles = $configFiles; } } -- cgit v1.2.3-54-g00ecf From 44462ac617b315b206f757e3ee7932feabb3ca14 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Wed, 3 Mar 2010 23:26:45 -0800 Subject: Create an initial user during install, and grant owner, moderator and administrator roles. --- install.php | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 71 insertions(+), 3 deletions(-) diff --git a/install.php b/install.php index 435f6d63b..6c0b8d8e6 100644 --- a/install.php +++ b/install.php @@ -31,6 +31,7 @@ * @author Robin Millette * @author Sarven Capadisli * @author Tom Adams + * @author Zach Copley * @license GNU Affero General Public License http://www.gnu.org/licenses/ * @version 0.9.x * @link http://status.net @@ -490,15 +491,25 @@ function showForm()

Database name

  • - +

    Database username

  • - +

    Database password (optional)

  • +
  • + + +

    Nickname for the initial StatusNet user (administrator)

    +
  • +
  • + + +

    Password for the initial StatusNet user (administrator)

    +
  • @@ -521,6 +532,10 @@ function handlePost() $password = $_POST['password']; $sitename = $_POST['sitename']; $fancy = !empty($_POST['fancy']); + + $adminNick = $_POST['admin_nickname']; + $adminPass = $_POST['admin_password']; + $server = $_SERVER['HTTP_HOST']; $path = substr(dirname($_SERVER['PHP_SELF']), 1); @@ -552,6 +567,16 @@ STR; $fail = true; } + if (empty($adminNick)) { + updateStatus("No initial StatusNet user nickname specified.", true); + $fail = true; + } + + if (empty($adminPass)) { + updateStatus("No initial StatusNet user password specified.", true); + $fail = true; + } + if ($fail) { showForm(); return; @@ -574,13 +599,29 @@ STR; return; } + // Okay, cross fingers and try to register an initial user + if (registerInitialUser($adminNick, $adminPass)) { + updateStatus( + "An initial user with the administrator role has been created." + ); + } else { + updateStatus( + "Could not create initial StatusNet user (administrator).", + true + ); + showForm(); + return; + } + /* TODO https needs to be considered */ $link = "http://".$server.'/'.$path; updateStatus("StatusNet has been installed at $link"); - updateStatus("You can visit your new StatusNet site."); + updateStatus( + "You can visit your new StatusNet site (login as '$adminNick')." + ); } function Pgsql_Db_installer($host, $database, $username, $password) @@ -756,6 +797,33 @@ function runDbScript($filename, $conn, $type = 'mysqli') return true; } +function registerInitialUser($nickname, $password) +{ + define('STATUSNET', true); + define('LACONICA', true); // compatibility + + require_once INSTALLDIR . '/lib/common.php'; + + $user = User::register( + array('nickname' => $nickname, + 'password' => $password, + 'fullname' => $nickname + ) + ); + + if (empty($user)) { + return false; + } + + // give initial user carte blanche + + $user->grantRole('owner'); + $user->grantRole('moderator'); + $user->grantRole('administrator'); + + return true; +} + ?> xml version="1.0" encoding="UTF-8" "; ?> Date: Wed, 3 Mar 2010 23:59:10 -0800 Subject: Couple of tweaks to the HTML to try and make installer look bettter. This still needs some work. --- install.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/install.php b/install.php index 6c0b8d8e6..41024c901 100644 --- a/install.php +++ b/install.php @@ -833,10 +833,10 @@ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" Install StatusNet - - - - + + + + @@ -852,8 +852,10 @@ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    -

    Install StatusNet

    +
    +

    Install StatusNet

    +
    -- cgit v1.2.3-54-g00ecf From 79b392a39e9a847c398b697cf8f982a6b220ed56 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Thu, 4 Mar 2010 01:16:25 -0800 Subject: Add generator tag into Atom feeds. --- lib/atom10feed.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/atom10feed.php b/lib/atom10feed.php index c1fdeaae9..2d342e785 100644 --- a/lib/atom10feed.php +++ b/lib/atom10feed.php @@ -176,6 +176,14 @@ class Atom10Feed extends XMLStringer } $this->elementStart('feed', $commonAttrs); + $this->element( + 'generator', array( + 'url' => 'http://status.net', + 'version' => STATUSNET_VERSION + ), + 'StatusNet' + ); + $this->element('id', null, $this->id); $this->element('title', null, $this->title); $this->element('subtitle', null, $this->subtitle); -- cgit v1.2.3-54-g00ecf From 14d7f4a598d0e24467fe3eafd9a02b0e651edad8 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Thu, 4 Mar 2010 01:23:02 -0800 Subject: Removed unused stub class --- lib/atom10entry.php | 105 ---------------------------------------------------- 1 file changed, 105 deletions(-) delete mode 100644 lib/atom10entry.php diff --git a/lib/atom10entry.php b/lib/atom10entry.php deleted file mode 100644 index f8f16d594..000000000 --- a/lib/atom10entry.php +++ /dev/null @@ -1,105 +0,0 @@ -. - * - * @category Feed - * @package StatusNet - * @author Zach Copley - * @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); -} - -class Atom10EntryException extends Exception -{ -} - -/** - * Class for manipulating an Atom entry in memory. Get the entry as an XML - * string with Atom10Entry::getString(). - * - * @category Feed - * @package StatusNet - * @author Zach Copley - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://status.net/ - */ -class Atom10Entry extends XMLStringer -{ - private $namespaces; - private $categories; - private $content; - private $contributors; - private $id; - private $links; - private $published; - private $rights; - private $source; - private $summary; - private $title; - - function __construct($indent = true) { - parent::__construct($indent); - $this->namespaces = array(); - } - - function addNamespace($namespace, $uri) - { - $ns = array($namespace => $uri); - $this->namespaces = array_merge($this->namespaces, $ns); - } - - function initEntry() - { - - } - - function endEntry() - { - - } - - /** - * Check that all required elements have been set, etc. - * Throws an Atom10EntryException if something's missing. - * - * @return void - */ - function validate() - { - - } - - function getString() - { - $this->validate(); - - $this->initEntry(); - $this->renderEntries(); - $this->endEntry(); - - return $this->xw->outputMemory(); - } - -} \ No newline at end of file -- cgit v1.2.3-54-g00ecf From 9f861e9d895325adbb2dc7f1d540a442be2c1b2f Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Thu, 4 Mar 2010 06:39:46 -0800 Subject: Fix on sitenotice admin panel save --- actions/sitenoticeadminpanel.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/actions/sitenoticeadminpanel.php b/actions/sitenoticeadminpanel.php index 613a2e96b..3931aa982 100644 --- a/actions/sitenoticeadminpanel.php +++ b/actions/sitenoticeadminpanel.php @@ -99,7 +99,7 @@ class SitenoticeadminpanelAction extends AdminPanelAction $result = Config::save('site', 'notice', $siteNotice); - if (!result) { + if (!$result) { $this->ServerError(_("Unable to save site notice.")); } } -- cgit v1.2.3-54-g00ecf From 8b3febab5539a3c08da15c78578650ffca41f75e Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Thu, 4 Mar 2010 07:45:26 -0800 Subject: Installer tweaks: maintain form values when redisplaying form after error, add pass confirmation and optional email forms for administrator. Caveat: fancy URLs value isn't currently maintained; JS needs updating to not overwrite the value or we should kill it entirely. --- install.php | 85 +++++++++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 63 insertions(+), 22 deletions(-) diff --git a/install.php b/install.php index 41024c901..51c86683a 100644 --- a/install.php +++ b/install.php @@ -435,15 +435,39 @@ E_O_T; E_O_T; } +/** + * Helper class for building form + */ +class Posted { + function value($name) + { + if (isset($_POST[$name])) { + return htmlspecialchars(strval($_POST[$name])); + } else { + return ''; + } + } +} + function showForm() { global $dbModules; + $post = new Posted(); $dbRadios = ''; - $checked = 'checked="checked" '; // Check the first one which exists + if (isset($_POST['dbtype'])) { + $dbtype = $_POST['dbtype']; + } else { + $dbtype = null; + } foreach ($dbModules as $type => $info) { if (checkExtension($info['check_module'])) { + if ($dbtype == null || $dbtype == $type) { + $checked = 'checked="checked" '; + $dbtype = $type; // if we didn't have one checked, hit the first + } else { + $checked = ''; + } $dbRadios .= " $info[name]
    \n"; - $checked = ''; } } echo<<
  • - +

    The name of your site

  • @@ -475,7 +499,7 @@ function showForm()
  • - +

    Database hostname

  • @@ -487,29 +511,38 @@ function showForm()
  • - +

    Database name

  • - - + +

    Database username

  • - - + +

    Database password (optional)

  • - +

    Nickname for the initial StatusNet user (administrator)

  • - - + +

    Password for the initial StatusNet user (administrator)

  • +
  • + + +
  • +
  • + + +

    Optional email address for the initial StatusNet user (administrator)

    +
  • @@ -528,13 +561,15 @@ function handlePost() $host = $_POST['host']; $dbtype = $_POST['dbtype']; $database = $_POST['database']; - $username = $_POST['username']; - $password = $_POST['password']; + $username = $_POST['dbusername']; + $password = $_POST['dbpassword']; $sitename = $_POST['sitename']; $fancy = !empty($_POST['fancy']); $adminNick = $_POST['admin_nickname']; $adminPass = $_POST['admin_password']; + $adminPass2 = $_POST['admin_password2']; + $adminEmail = $_POST['admin_email']; $server = $_SERVER['HTTP_HOST']; $path = substr(dirname($_SERVER['PHP_SELF']), 1); @@ -576,6 +611,11 @@ STR; updateStatus("No initial StatusNet user password specified.", true); $fail = true; } + + if ($adminPass != $adminPass2) { + updateStatus("Administrator passwords do not match. Did you mistype?", true); + $fail = true; + } if ($fail) { showForm(); @@ -600,7 +640,7 @@ STR; } // Okay, cross fingers and try to register an initial user - if (registerInitialUser($adminNick, $adminPass)) { + if (registerInitialUser($adminNick, $adminPass, $adminEmail)) { updateStatus( "An initial user with the administrator role has been created." ); @@ -797,19 +837,20 @@ function runDbScript($filename, $conn, $type = 'mysqli') return true; } -function registerInitialUser($nickname, $password) +function registerInitialUser($nickname, $password, $email) { define('STATUSNET', true); define('LACONICA', true); // compatibility require_once INSTALLDIR . '/lib/common.php'; - $user = User::register( - array('nickname' => $nickname, - 'password' => $password, - 'fullname' => $nickname - ) - ); + $data = array('nickname' => $nickname, + 'password' => $password, + 'fullname' => $nickname); + if ($email) { + $data['email'] = $email; + } + $user = User::register($data); if (empty($user)) { return false; -- cgit v1.2.3-54-g00ecf From 0cf0a684ce32a4c79cf05d108d6da38052be5bd8 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 4 Mar 2010 11:32:30 -0500 Subject: Updated SN install UI. Using separate fieldsets --- install.php | 140 +++++++++++++++++++++++++++++++----------------------------- 1 file changed, 72 insertions(+), 68 deletions(-) diff --git a/install.php b/install.php index 51c86683a..47a09b67c 100644 --- a/install.php +++ b/install.php @@ -474,76 +474,80 @@ function showForm() -
    -
    Page notice
    -
    -
    -

    Enter your database connection information below to initialize the database.

    -
    -
    -
    - Connection settings -
      -
    • - - -

      The name of your site

      -
    • -
    • - - enable
      - disable
      -

      Enable fancy (pretty) URLs. Auto-detection failed, it depends on Javascript.

      -
    • -
    • - - -

      Database hostname

      -
    • -
    • - - - $dbRadios -

      Database type

      -
    • - -
    • - - -

      Database name

      -
    • -
    • - - -

      Database username

      -
    • -
    • - - -

      Database password (optional)

      -
    • -
    • - - -

      Nickname for the initial StatusNet user (administrator)

      -
    • -
    • - - -

      Password for the initial StatusNet user (administrator)

      -
    • -
    • - - -
    • -
    • - - -

      Optional email address for the initial StatusNet user (administrator)

      -
    • -
    +
    + Site settings +
      +
    • + + +

      The name of your site

      +
    • +
    • + + enable
      + disable
      +

      Enable fancy (pretty) URLs. Auto-detection failed, it depends on Javascript.

      +
    • +
    • + + +

      Database hostname

      +
    • +
    +
    + +
    + Database settings +
      +
    • + + $dbRadios +

      Database type

      +
    • +
    • + + +

      Database name

      +
    • +
    • + + +

      Database username

      +
    • +
    • + + +

      Database password (optional)

      +
    • +
    +
    + +
    + Administrator settings +
      +
    • + + +

      Nickname for the initial StatusNet user (administrator)

      +
    • +
    • + + +

      Password for the initial StatusNet user (administrator)

      +
    • +
    • + + +
    • +
    • + + +

      Optional email address for the initial StatusNet user (administrator)

      +
    • +
    +
    -- cgit v1.2.3-54-g00ecf From 67e4c5d43be2228169f3d08feafbb6a980d4a40a Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Thu, 4 Mar 2010 08:32:45 -0800 Subject: Added oauth_appication tables to 08to09.sql Conflicts: db/08to09.sql --- db/08to09.sql | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/db/08to09.sql b/db/08to09.sql index f30572154..3ebb141bf 100644 --- a/db/08to09.sql +++ b/db/08to09.sql @@ -110,8 +110,36 @@ insert into queue_item_new (frame,transport,created,claimed) alter table queue_item rename to queue_item_old; alter table queue_item_new rename to queue_item; +create table oauth_application ( + id integer auto_increment primary key comment 'unique identifier', + owner integer not null comment 'owner of the application' references profile (id), + consumer_key varchar(255) not null comment 'application consumer key' references consumer (consumer_key), + name varchar(255) not null comment 'name of the application', + description varchar(255) comment 'description of the application', + icon varchar(255) not null comment 'application icon', + source_url varchar(255) comment 'application homepage - used for source link', + organization varchar(255) comment 'name of the organization running the application', + homepage varchar(255) comment 'homepage for the organization', + callback_url varchar(255) comment 'url to redirect to after authentication', + type tinyint default 0 comment 'type of app, 1 = browser, 2 = desktop', + access_type tinyint default 0 comment 'default access type, bit 1 = read, bit 2 = write', + created datetime not null comment 'date this record was created', + modified timestamp comment 'date this record was modified' +) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; + +create table oauth_application_user ( + profile_id integer not null comment 'user of the application' references profile (id), + application_id integer not null comment 'id of the application' references oauth_application (id), + access_type tinyint default 0 comment 'access type, bit 1 = read, bit 2 = write, bit 3 = revoked', + token varchar(255) comment 'request or access token', + created datetime not null comment 'date this record was created', + modified timestamp comment 'date this record was modified', + constraint primary key (profile_id, application_id) +) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; + alter table file_to_post add index post_id_idx (post_id); alter table group_inbox add index group_inbox_notice_id_idx (notice_id); + -- cgit v1.2.3-54-g00ecf From 3d2bf5ce20d494c1d9e890e1d666008ef66e5703 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Mon, 1 Feb 2010 21:05:50 +0000 Subject: Create new field in consumer table in 08to09.sql --- db/08to09.sql | 3 +++ 1 file changed, 3 insertions(+) diff --git a/db/08to09.sql b/db/08to09.sql index 3ebb141bf..05958f612 100644 --- a/db/08to09.sql +++ b/db/08to09.sql @@ -110,6 +110,9 @@ insert into queue_item_new (frame,transport,created,claimed) alter table queue_item rename to queue_item_old; alter table queue_item_new rename to queue_item; +alter table consumer + add column consumer_secret varchar(255) not null comment 'secret value'; + create table oauth_application ( id integer auto_increment primary key comment 'unique identifier', owner integer not null comment 'owner of the application' references profile (id), -- cgit v1.2.3-54-g00ecf From 1831506885ad31c14eb1c4c87274c299fbf39957 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 4 Mar 2010 11:35:18 -0500 Subject: Moved database hostname in install to db fieldset --- install.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/install.php b/install.php index 47a09b67c..32b0447c8 100644 --- a/install.php +++ b/install.php @@ -490,17 +490,17 @@ function showForm() disable

    Enable fancy (pretty) URLs. Auto-detection failed, it depends on Javascript.

    -
  • - - -

    Database hostname

    -
  • Database settings
      +
    • + + +

      Database hostname

      +
    • $dbRadios -- cgit v1.2.3-54-g00ecf From fd4eefe6b4a2a64b21e1f924afe1d8d749cd89e0 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 4 Mar 2010 11:43:31 -0500 Subject: OStatus enabled by default --- lib/default.php | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/default.php b/lib/default.php index 8e99a0e1c..bdd78d4d8 100644 --- a/lib/default.php +++ b/lib/default.php @@ -280,6 +280,7 @@ $default = 'TightUrl' => array('shortenerName' => '2tu.us', 'freeService' => true,'serviceUrl'=>'http://2tu.us/?save=y&url=%1$s'), 'Geonames' => null, 'Mapstraction' => null, + 'OStatus' => null, 'WikiHashtags' => null, 'OpenID' => null), ), -- cgit v1.2.3-54-g00ecf From af04973e9e49c7867a26357ed85d64f04d6bb263 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Thu, 4 Mar 2010 08:49:04 -0800 Subject: Roll up some missing items from 08to09.sql; now hits all changed tables/columns/keys in core. Added partial data conversions: user_groups -> local_user: ids, names filled out; mainpage, uri left null notice -> conversation: stub entry added to push the autoincrement past existing notice items --- db/08to09.sql | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/db/08to09.sql b/db/08to09.sql index 05958f612..ba6f38200 100644 --- a/db/08to09.sql +++ b/db/08to09.sql @@ -111,7 +111,11 @@ alter table queue_item rename to queue_item_old; alter table queue_item_new rename to queue_item; alter table consumer - add column consumer_secret varchar(255) not null comment 'secret value'; + add consumer_secret varchar(255) not null comment 'secret value'; + +alter table token + add verifier varchar(255) comment 'verifier string for OAuth 1.0a', + add verified_callback varchar(255) comment 'verified callback URL for OAuth 1.0a'; create table oauth_application ( id integer auto_increment primary key comment 'unique identifier', @@ -140,6 +144,44 @@ create table oauth_application_user ( constraint primary key (profile_id, application_id) ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; +create table inbox ( + + user_id integer not null comment 'user receiving the notice' references user (id), + notice_ids blob comment 'packed list of notice ids', + + constraint primary key (user_id) + +) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; + +create table conversation ( + id integer auto_increment primary key comment 'unique identifier', + uri varchar(225) unique comment 'URI of the conversation', + created datetime not null comment 'date this record was created', + modified timestamp comment 'date this record was modified' +) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; + +-- stub entry to push the autoincrement past existing notice ids +insert into conversation (id,created) + select max(id)+1, now() from notice; + +alter table user_group + add uri varchar(255) unique key comment 'universal identifier', + add mainpage varchar(255) comment 'page for group info to link to', + drop index nickname; + +create table local_group ( + + group_id integer primary key comment 'group represented' references user_group (id), + nickname varchar(64) unique key comment 'group represented', + + created datetime not null comment 'date this record was created', + modified timestamp comment 'date this record was modified' + +) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; + +insert into local_group (group_id, nickname, created) + select id, nickname, created from user_group; + alter table file_to_post add index post_id_idx (post_id); -- cgit v1.2.3-54-g00ecf From 02f49193d5eaee108899b38678334f775dee596f Mon Sep 17 00:00:00 2001 From: James Walker Date: Thu, 4 Mar 2010 11:48:51 -0500 Subject: adding checkschema to setup script --- scripts/setup_status_network.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/setup_status_network.sh b/scripts/setup_status_network.sh index 89d15415f..4ebb696c7 100755 --- a/scripts/setup_status_network.sh +++ b/scripts/setup_status_network.sh @@ -54,6 +54,8 @@ for top in $AVATARBASE $FILEBASE $BACKGROUNDBASE; do chmod a+w $top/$nickname done +php $PHPBASE/scripts/checkschema.php -s"$server" + php $PHPBASE/scripts/registeruser.php \ -s"$server" \ -n"$nickname" \ -- cgit v1.2.3-54-g00ecf From 0ddd1ef191389ed38988091d098463b19aa86f68 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Thu, 4 Mar 2010 08:55:36 -0800 Subject: Ignore API 'since' silently as Twitter does instead of throwing a 403 error. Getting extra results is less disruptive than total failure. Threw in an X-StatusNet-Warning header on the off chance some API client developer notices it. :) --- lib/apiaction.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/apiaction.php b/lib/apiaction.php index eef0ba637..e4a1df3d1 100644 --- a/lib/apiaction.php +++ b/lib/apiaction.php @@ -86,7 +86,7 @@ class ApiAction extends Action $this->since_id = (int)$this->arg('since_id', 0); if ($this->arg('since')) { - $this->clientError(_("since parameter is disabled for performance; use since_id"), 403); + header('X-StatusNet-Warning: since parameter is disabled; use since_id'); } return true; -- cgit v1.2.3-54-g00ecf From 45f11d9637c90c0bc7348c6bc5707516ea457d6c Mon Sep 17 00:00:00 2001 From: James Walker Date: Thu, 4 Mar 2010 12:02:01 -0500 Subject: adding plugin version to OStatus --- plugins/OStatus/OStatusPlugin.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/plugins/OStatus/OStatusPlugin.php b/plugins/OStatus/OStatusPlugin.php index ad4f61389..bdcaae366 100644 --- a/plugins/OStatus/OStatusPlugin.php +++ b/plugins/OStatus/OStatusPlugin.php @@ -836,4 +836,17 @@ class OStatusPlugin extends Plugin return true; } + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'OStatus', + 'version' => STATUSNET_VERSION, + 'author' => 'Evan Prodromou, James Walker, Brion Vibber, Zach Copley', + 'homepage' => 'http://status.net/wiki/Plugin:OStatus', + 'rawdescription' => + _m('Follow people across social networks that implement '. + 'OStatus.')); + + return true; + } } -- cgit v1.2.3-54-g00ecf From 8f1762cb9580c3f444ff5fd53bcefcbab6b54980 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Thu, 4 Mar 2010 09:24:47 -0800 Subject: OStatus: fix for remote group join via non-logged-in 'join' button. Bad lookup was sending us to the first group instead of the selected group. --- plugins/OStatus/actions/ostatusinit.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/OStatus/actions/ostatusinit.php b/plugins/OStatus/actions/ostatusinit.php index 1e45025b0..22aea9f70 100644 --- a/plugins/OStatus/actions/ostatusinit.php +++ b/plugins/OStatus/actions/ostatusinit.php @@ -186,7 +186,7 @@ class OStatusInitAction extends Action $this->clientError("No such user."); } } else if ($this->group) { - $group = Local_group::staticGet('id', $this->group); + $group = Local_group::staticGet('nickname', $this->group); if ($group) { return common_local_url('groupbyid', array('id' => $group->group_id)); } else { -- cgit v1.2.3-54-g00ecf From a6a056026d645154e7172b47a046d7ba91d74d65 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Thu, 4 Mar 2010 17:33:56 +0000 Subject: Dropping the earlier PubSubHubbub plugin; OStatus plugin is taking that portion over (with both internal and external hub options for user and group feeds). Todo: add support for other feeds to OStatus PuSH hub implementation. --- plugins/PubSubHubBub/PubSubHubBubPlugin.php | 285 ---------------------------- plugins/PubSubHubBub/publisher.php | 86 --------- 2 files changed, 371 deletions(-) delete mode 100644 plugins/PubSubHubBub/PubSubHubBubPlugin.php delete mode 100644 plugins/PubSubHubBub/publisher.php diff --git a/plugins/PubSubHubBub/PubSubHubBubPlugin.php b/plugins/PubSubHubBub/PubSubHubBubPlugin.php deleted file mode 100644 index a880dc866..000000000 --- a/plugins/PubSubHubBub/PubSubHubBubPlugin.php +++ /dev/null @@ -1,285 +0,0 @@ -. - * - * @category Plugin - * @package StatusNet - * @author Craig Andrews - * @copyright 2009 Craig Andrews http://candrews.integralblue.com - * @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); -} - -define('DEFAULT_HUB', 'http://pubsubhubbub.appspot.com'); - -require_once INSTALLDIR.'/plugins/PubSubHubBub/publisher.php'; - -/** - * Plugin to provide publisher side of PubSubHubBub (PuSH) - * relationship. - * - * PuSH is a real-time or near-real-time protocol for Atom - * and RSS feeds. More information here: - * - * http://code.google.com/p/pubsubhubbub/ - * - * To enable, add the following line to your config.php: - * - * addPlugin('PubSubHubBub'); - * - * This will use the Google default hub. If you'd like to use - * another, try: - * - * addPlugin('PubSubHubBub', - * array('hub' => 'http://yourhub.example.net/')); - * - * @category Plugin - * @package StatusNet - * @author Craig Andrews - * @copyright 2009 Craig Andrews http://candrews.integralblue.com - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 - * @link http://status.net/ - */ - -class PubSubHubBubPlugin extends Plugin -{ - /** - * URL of the hub to advertise and publish to. - */ - - public $hub = DEFAULT_HUB; - - /** - * Default constructor. - */ - - function __construct() - { - parent::__construct(); - } - - /** - * Check if plugin should be active; may be mass-enabled. - * @return boolean - */ - - function enabled() - { - if (common_config('site', 'private')) { - // PuSH relies on public feeds - return false; - } - // @fixme check for being on a private network? - return true; - } - - /** - * Hooks the StartApiAtom event - * - * Adds the necessary bits to advertise PubSubHubBub - * for the Atom feed. - * - * @param Action $action The API action being shown. - * - * @return boolean hook value - */ - - function onStartApiAtom($action) - { - if ($this->enabled()) { - $action->element('link', array('rel' => 'hub', 'href' => $this->hub), null); - } - return true; - } - - /** - * Hooks the StartApiRss event - * - * Adds the necessary bits to advertise PubSubHubBub - * for the RSS 2.0 feeds. - * - * @param Action $action The API action being shown. - * - * @return boolean hook value - */ - - function onStartApiRss($action) - { - if ($this->enabled()) { - $action->element('atom:link', array('rel' => 'hub', - 'href' => $this->hub), - null); - } - return true; - } - - /** - * Hook for a queued notice. - * - * When a notice has been queued, will ping the - * PuSH hub for each Atom and RSS feed in which - * the notice appears. - * - * @param Notice $notice The notice that's been queued - * - * @return boolean hook value - */ - - function onHandleQueuedNotice($notice) - { - if (!$this->enabled()) { - return false; - } - $publisher = new Publisher($this->hub); - - $feeds = array(); - - //public timeline feeds - $feeds[] = common_local_url('ApiTimelinePublic', array('format' => 'rss')); - $feeds[] = common_local_url('ApiTimelinePublic', array('format' => 'atom')); - - //author's own feeds - $user = User::staticGet('id', $notice->profile_id); - - $feeds[] = common_local_url('ApiTimelineUser', - array('id' => $user->nickname, - 'format' => 'rss')); - $feeds[] = common_local_url('ApiTimelineUser', - array('id' => $user->nickname, - 'format' => 'atom')); - - //tag feeds - $tag = new Notice_tag(); - - $tag->notice_id = $notice->id; - if ($tag->find()) { - while ($tag->fetch()) { - $feeds[] = common_local_url('ApiTimelineTag', - array('tag' => $tag->tag, - 'format' => 'rss')); - $feeds[] = common_local_url('ApiTimelineTag', - array('tag' => $tag->tag, - 'format' => 'atom')); - } - } - - //group feeds - $group_inbox = new Group_inbox(); - - $group_inbox->notice_id = $notice->id; - if ($group_inbox->find()) { - while ($group_inbox->fetch()) { - $group = User_group::staticGet('id', $group_inbox->group_id); - - $feeds[] = common_local_url('ApiTimelineGroup', - array('id' => $group->nickname, - 'format' => 'rss')); - $feeds[] = common_local_url('ApiTimelineGroup', - array('id' => $group->nickname, - 'format' => 'atom')); - } - } - - //feed of each user that subscribes to the notice's author - - $ni = $notice->whoGets(); - - foreach (array_keys($ni) as $user_id) { - $user = User::staticGet('id', $user_id); - if (empty($user)) { - continue; - } - $feeds[] = common_local_url('ApiTimelineFriends', - array('id' => $user->nickname, - 'format' => 'rss')); - $feeds[] = common_local_url('ApiTimelineFriends', - array('id' => $user->nickname, - 'format' => 'atom')); - } - - $replies = $notice->getReplies(); - - //feed of user replied to - foreach ($replies as $recipient) { - $user = User::staticGet('id', $recipient); - if (!empty($user)) { - $feeds[] = common_local_url('ApiTimelineMentions', - array('id' => $user->nickname, - 'format' => 'rss')); - $feeds[] = common_local_url('ApiTimelineMentions', - array('id' => $user->nickname, - 'format' => 'atom')); - } - } - $feeds = array_unique($feeds); - - ob_start(); - $ok = $publisher->publish_update($feeds); - $push_last_response = ob_get_clean(); - - if (!$ok) { - common_log(LOG_WARNING, - 'Failure publishing ' . count($feeds) . ' feeds to hub at '. - $this->hub.': '.$push_last_response); - } else { - common_log(LOG_INFO, - 'Published ' . count($feeds) . ' feeds to hub at '. - $this->hub.': '.$push_last_response); - } - - return true; - } - - /** - * Provide version information - * - * Adds this plugin's version data to the global - * version array, for e.g. displaying on the version page. - * - * @param array &$versions array of array of versions - * - * @return boolean hook value - */ - - function onPluginVersion(&$versions) - { - $about = _m('The PubSubHubBub plugin pushes RSS/Atom updates '. - 'to a PubSubHubBub hub.'); - if (!$this->enabled()) { - $about = '' . $about . ' ' . - _m('(inactive on private site)'); - } - $versions[] = array('name' => 'PubSubHubBub', - 'version' => STATUSNET_VERSION, - 'author' => 'Craig Andrews', - 'homepage' => - 'http://status.net/wiki/Plugin:PubSubHubBub', - 'rawdescription' => - $about); - - return true; - } -} diff --git a/plugins/PubSubHubBub/publisher.php b/plugins/PubSubHubBub/publisher.php deleted file mode 100644 index f176a9b8a..000000000 --- a/plugins/PubSubHubBub/publisher.php +++ /dev/null @@ -1,86 +0,0 @@ -hub_url = $hub_url; - } - - // accepts either a single url or an array of urls - public function publish_update($topic_urls, $http_function = false) { - if (!isset($topic_urls)) - throw new Exception('Please specify a topic url'); - - // check that we're working with an array - if (!is_array($topic_urls)) { - $topic_urls = array($topic_urls); - } - - // set the mode to publish - $post_string = "hub.mode=publish"; - // loop through each topic url - foreach ($topic_urls as $topic_url) { - - // lightweight check that we're actually working w/ a valid url - if (!preg_match("|^https?://|i",$topic_url)) - throw new Exception('The specified topic url does not appear to be valid: '.$topic_url); - - // append the topic url parameters - $post_string .= "&hub.url=".urlencode($topic_url); - } - - // make the http post request and return true/false - // easy to over-write to use your own http function - if ($http_function) - return $http_function($this->hub_url,$post_string); - else - return $this->http_post($this->hub_url,$post_string); - } - - // returns any error message from the latest request - public function last_response() { - return $this->last_response; - } - - // default http function that uses curl to post to the hub endpoint - private function http_post($url, $post_string) { - - // add any additional curl options here - $options = array(CURLOPT_URL => $url, - CURLOPT_POST => true, - CURLOPT_POSTFIELDS => $post_string, - CURLOPT_USERAGENT => "PubSubHubbub-Publisher-PHP/1.0"); - - $ch = curl_init(); - curl_setopt_array($ch, $options); - - $response = curl_exec($ch); - $this->last_response = $response; - $info = curl_getinfo($ch); - - curl_close($ch); - - // all good - if ($info['http_code'] == 204) - return true; - return false; - } -} - -?> \ No newline at end of file -- cgit v1.2.3-54-g00ecf From 74dbd37e9af4dabd5c157b78dc331ccfb6d69131 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 4 Mar 2010 12:49:42 -0500 Subject: Bringing aside back because it is needed for Design values. Will hide from CSS instead. --- lib/adminpanelaction.php | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/lib/adminpanelaction.php b/lib/adminpanelaction.php index d1aab3dfc..d43ea7698 100644 --- a/lib/adminpanelaction.php +++ b/lib/adminpanelaction.php @@ -189,16 +189,6 @@ class AdminPanelAction extends Action $this->elementEnd('div'); } - /** - * There is no data for aside, so, we don't output - * - * @return nothing - */ - function showAside() - { - - } - /** * show human-readable instructions for the page, or * a success/failure on save. -- cgit v1.2.3-54-g00ecf From 6b4c3e59fa8f4a2acf18ce5e9bab34656edeae00 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 4 Mar 2010 12:50:29 -0500 Subject: Showing a vertical navigation for admin panels. --- theme/base/css/display.css | 61 ++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 54 insertions(+), 7 deletions(-) diff --git a/theme/base/css/display.css b/theme/base/css/display.css index 01d5dd134..964755832 100644 --- a/theme/base/css/display.css +++ b/theme/base/css/display.css @@ -345,10 +345,14 @@ list-style-type:none; float:left; text-decoration:none; padding:4px 11px; +border-radius-topleft:4px; +border-radius-topright:4px; -moz-border-radius-topleft:4px; -moz-border-radius-topright:4px; -webkit-border-top-left-radius:4px; -webkit-border-top-right-radius:4px; +border-radius-topleft:0; +border-radius-topright:0; border-width:1px; border-style:solid; border-bottom:0; @@ -359,6 +363,56 @@ float:left; width:100%; } +body[id$=adminpanel] #site_nav_local_views { +float:right; +margin-right:18.9%; + +margin-right:189px; +position:relative; +width:14.01%; + +width:141px; +z-index:9; +} +body[id$=adminpanel] #site_nav_local_views li { +width:100%; +margin-right:0; +margin-bottom:7px; +} +body[id$=adminpanel] #site_nav_local_views a { +display:block; +width:100%; +border-radius-toprleft:0; +-moz-border-radius-topleft:0; +-webkit-border-top-left-radius:0; +border-radius-topright:4px; +-moz-border-radius-topright:4px; +-webkit-border-top-right-radius:4px; +border-radius-bottomright:4px; +-moz-border-radius-bottomright:4px; +-webkit-border-bottom-right-radius:4px; +} +body[id$=adminpanel] #site_nav_local_views li.current { +box-shadow:none; +-moz-box-shadow:none; +-webkit-box-shadow:none; +} + +body[id$=adminpanel] #content { +border-radius-topleft:7px; +border-radius-topright:7px; +-moz-border-radius-topleft:7px; +-moz-border-radius-topright:7px; +-webkit-border-top-left-radius:7px; +-webkit-border-top-right-radius:7px; +border-radius-topright:0; +-moz-border-radius-topright:0; +-webkit-border-top-right-radius:0; +} +body[id$=adminpanel] #aside_primary { +display:none; +} + #site_nav_global_primary dt, #site_nav_global_secondary dt { display:none; @@ -452,13 +506,6 @@ width:100%; float:left; } -#content.admin { -width:95.5%; -} -#content.admin #content_inner { -width:66.3%; -} - #aside_primary { width:27.917%; min-height:259px; -- cgit v1.2.3-54-g00ecf From a3cb285da8fc712caadcc65c9eab9bd98ce79414 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Thu, 4 Mar 2010 09:50:54 -0800 Subject: Add link to http://status.net/wiki/Getting_started on installer success screen. --- install.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.php b/install.php index 32b0447c8..bb53e2b55 100644 --- a/install.php +++ b/install.php @@ -664,7 +664,7 @@ STR; updateStatus("StatusNet has been installed at $link"); updateStatus( - "You can visit your new StatusNet site (login as '$adminNick')." + "DONE! You can visit your new StatusNet site (login as '$adminNick'). If this is your first StatusNet install, you may want to poke around our Getting Started guide." ); } -- cgit v1.2.3-54-g00ecf From 26f78f5777144d4a04c20fedf0b03df5315b3744 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 4 Mar 2010 13:04:22 -0500 Subject: change changelog and version --- README | 262 ++++++++++++++--------------------------------------------------- 1 file changed, 55 insertions(+), 207 deletions(-) diff --git a/README b/README index 75336eb83..caa4a2acd 100644 --- a/README +++ b/README @@ -2,8 +2,8 @@ README ------ -StatusNet 0.9.0 ("Stand") Beta 5 -1 Feb 2010 +StatusNet 0.9.0 ("Stand") +4 Mar 2010 This is the README file for StatusNet (formerly Laconica), the Open Source microblogging platform. It includes installation instructions, @@ -14,21 +14,21 @@ for administrators. Information on using StatusNet can be found in the About ===== -StatusNet (formerly Laconica) is a Free and Open Source microblogging -platform. It helps people in a community, company or group to exchange -short (140 characters, by default) messages over the Web. Users can -choose which people to "follow" and receive only their friends' or -colleagues' status messages. It provides a similar service to sites -like Twitter, Jaiku, Yammer, and Plurk. +StatusNet is a Free and Open Source microblogging platform. It helps +people in a community, company or group to exchange short (140 +characters, by default) messages over the Web. Users can choose which +people to "follow" and receive only their friends' or colleagues' +status messages. It provides a similar service to sites like Twitter, +Google Buzz, or Yammer. With a little work, status messages can be sent to mobile phones, instant messenger programs (GTalk/Jabber), and specially-designed desktop clients that support the Twitter API. -StatusNet supports an open standard called OpenMicroBlogging - that lets users on different Web sites -or in different companies subscribe to each others' notices. It -enables a distributed social network spread all across the Web. +StatusNet supports an open standard called OStatus + that lets users in different networks follow +each other. It enables a distributed social network spread all across +the Web. StatusNet was originally developed for the Open Software Service, Identi.ca . It is shared with you in hope that you @@ -77,203 +77,51 @@ for additional terms. New this version ================ -This is a major feature release since version 0.8.2, released Nov 1 2009. -It is also a security release since 0.9.0beta4 January 27 2010. Beta -users are strongly encouraged to upgrade to deal with a security alert. - -http://status.net/wiki/Security_alert_0000002 +This is a major feature release since version 0.8.3, released Feb 1 +2010. It is the final release version of 0.9.0. Notable changes this version: -- Records of deleted notices are stored without the notice content. -- Much of the optional core featureset has been moved to plugins. -- OpenID support moved from core to a plugin. Helps test the strength of - our plugin architecture and makes it easy to disable this - functionality for e.g. intranet sites. -- Many additional hook events (see EVENTS.txt for details). -- OMB 0.1 support re-implemented using libomb. -- Re-structure database so notices, messages, bios and group - descriptions can be over 140 characters. Limit defined by - site administrator as configuration option; can be unlimited. -- Configuration data now optionally stored in the database, which - overrides any settings in config files. -- Twitter integration re-implemented as a plugin. -- Facebook integration re-implemented as a plugin. -- Role-based authorization framework. Users can have named roles, and - roles can have rights (e.g., to delete notices, change configuration - data, or ban uncooperative users). Default roles 'admin' (for - configuration) and 'moderator' (for community management) added. -- Plugin for PubSubHubBub (PuSH) support. -- Considerable code style cleanup to meet PEAR code standards. -- Made a common library for HTTP-client access which uses available - HTTP libraries where possible. -- Added statuses/home_timeline method to API. -- Hooks for plugins to handle notices offline, either by defining - their own queue handler scripts or to use a default plugin queue - handler script. -- Plugins can now modify the database schema, adding their own tables - or modifying existing ones. -- Groups API. -- Twitter API supports Web caching for some methods. -- Twitter API refactored into one-action-per-method. -- Realtime plugin supports a tear-off window. -- FOAF for groups. -- Moved all JavaScript tags to just before by default, - significantly speeding up apparent page load time. -- Added a Realtime plugin for Orbited server. -- Added a mobile plugin to give a more mobile-phone-friendly layout - when a mobile browser is detected. -- Use CSS sprites for most common icons. -- Fixes for images and buttons on Web output. -- New plugin requires that users validate their email before posting. -- New plugin UserFlag lets users flag other profiles for review. -- Considerably better i18n support. Use TranslateWiki to update - translations. -- Notices and profiles now store location information. -- New plugin, Geonames, for turning location names and lat/long pairs - into structured IDs and vice versa. Architecture reusable for other - systems. -- Better check of license compatibility between site licenses. -- Some improvements in XMPP output. -- Media upload in the API. -- Replies appear in the user's inbox. -- Improved the UI on the bookmarklet. -- StatusNet identities can be used as OpenID identities. -- Script to register a user. -- Script to make someone a group admin. -- Script to make someone a site admin or moderator. -- 'login' command. -- Pluggable authentication. -- LDAP authentication plugin. -- Script for console interaction with the site (!). -- Users don't see group posts from people they've blocked. -- Admin panel interface for changing site configuration. -- Users can be sandboxed (limited contributions) or silenced - (no contributions) by moderators. -- Many changes to make language usage more consistent. -- Sphinx search moved to a plugin. -- GeoURL plugin. -- Profile and group lists support hAtom. -- Massive refactoring of util.js. -- Mapstraction plugin to show maps on inbox and profile pages. -- Play/pause buttons for realtime notices. -- Support for geo microformat. -- Partial support for feed subscriptions, RSSCloud, PubSubHubBub. -- Support for geolocation in browser (Chrome, Firefox). -- Quit trying to negotiate HTML format. Always use text/html. - We lose, and so do Web standards. Boo. -- Better logging of request info. -- Better output for errors in Web interface. -- No longer store .mo files; these need to be generated. -- Minify plugin. -- Events to allow pluginizing logger. -- New framework for plugin localization. -- Gravatar plugin. -- Add support for "repeats" (similar to Twitter's "retweets"). -- Support for repeats in Twitter API. -- Better notification of direct messages. -- New plugin to add "powered by StatusNet" to logo. -- Returnto works for private sites. -- Localisation updates, including new Persian translation. -- CAS authentication plugin -- Get rid of DB_DataObject native cache (big memory leaker) -- setconfig.php script to set configuration variables -- Blacklist plugin, to blacklist URLs and nicknames -- Users can set flag whether they want to share location - both in notice form (for one notice) and profile settings - (any notice) -- notice inboxes moved from normalized notice_inbox table to - denormalized inbox table -- Automatic compression of Memcache -- Memory caching pluginized -- Memcache, XCache, APC and Diskcache plugins -- A script to update user locations -- cache empty query results -- A sample plugin to show best plugin practices -- CacheLog plugin to debug cache accesses -- Require users to login to view attachments on private sites -- Plugin to use Mollom spam detection service -- Plugin for RSSCloud -- Add an array of default plugins -- A version action to give credit to contributors and plugin - developers -- Daemon to read IMAP mailbox instead of using a mailbox script -- Pass session information between SSL and non-SSL server - when SSL set to 'sometimes' -- Major refactoring of queue handlers to manage very - large hosting site (like status.net) -- SubscriptionThrottle plugin to prevent subscription spamming -- Don't enqueue into plugin or SMS queues when disabled (breaks unqueuehandler if SMS queue isn't attached) -- Improve name validation checks on local File references -- fix local file include vulnerability in doc.php -- Reusing fixed selector name for 'processing' in util.js -- Removed hAtom pattern from registration page. -- restructuring of User::registerNew() lost password munging -- Add a script to clear the cache for a given key -- buggy fetch for site owner -- Added missing concat of
    • in Realtime response -- Updated XHR binded events to work better in jQuery 1.4.1. Using .live() for event delegation instead of jQuery.data() and checking to see if an element was previously binded. -- Updated jQuery Form Plugin from v2.17 to v2.36 -- Updated jQuery JavaScript Library from v1.3.2 to v1.4.1 -- move schema.type.php to typeschema.php like other files -- Add Really Simple Discovery (RSD) support -- Add a robots.txt URL to the site root -- error clearing tags for profiles from memcached -- on exceptions, stomp logs the error and reenqueues -- add lat, lon, location and remove closing tag from geocode.php -- Use passed-in lat long in geocode.php -- better handling of null responses from geonames.org -- Globalized form notice data geo values -- Using jQuery chaining in FormNoticeXHR -- Using form object instead of form_id and find(). Slightly faster and easier to read. -- removed describeTable from base class, and fixed it up in pgsql -- getTableDef() mostly working in postgres -- move the schema DDL sql off into seperate files for each db we support -- plugin to limit number of registered users -- add hooks for user registration -- live fast, die young in bash scripts -- for single-user mode, retrieve either site owner or defined nickname -- method to get the site owner -- define a constant for the 'owner' role of a site -- add simple cache getter/setter static functions to Memcached_DataObject -- Adds notice author's name to @title in Realtime response -- Hides .author from XHR response in showstream -- Hides .author from XHR response in showstream -- Fix more fatal errors in queue edge cases -- Don't attempt to resend XMPP messages that can't be broadcast due to the profile being deleted. -- Wrap each bit of distrib queue handler's saving operation in a try/catch; log exceptions but let everything else continue. -- Log exceptions from queuedaemon.php if they're not already caught -- Move sessions settings to its own panel -- Fixes for status_network db object .ini and tag setter script -- Add a script to set tags for sites -- Adjust API authentication to also check for OAuth protocol params in the HTTP Authorization header, as defined in OAuth HTTP Authorization Scheme. -- Last-chance distribution if enqueueing fails -- Manual failover for stomp queues. -- lost config in index.php made all traffic go to master -- "Revert "move RW setup above user get in index.php so remember_me works"" -- Revert "move RW setup above user get in index.php so remember_me works" -- move RW setup above user get in index.php so remember_me works -- hide most DB_DataObject errors -- always set up database_rw, regardless, so cached sessions work -- update mysqltimestamps on insert and update -- additional debugging data for Sessions -- 'Sign in with Twitter' button img -- Update to biz theme -- Remove redundant session token field from form (was already being added by base class). -- 'Sign in with Twitter' button img -- Can now set $config['queue']['stomp_persistent'] = false; to explicitly disable persistence when we queue items -- Showing processing indicator for form_repeat on submit instead of form -- Removed avatar from repeat of username (matches noticelist) -- Removed unused variable assignment for avatar URL and added missing fn -- Don't preemptively close existing DB connections for web views (needed to keep # of conns from going insane on multi-site queue daemons, so just doing for CLI) May, or may not, help with mystery session problems -- dropping the setcookie() call from common_ensure_session() since we're pretty sure it's unnecessary -- append '/' on cookie path for now (may still need some refactoring) -- set session cookie correctly -- Fix for Mapstraction plugin's zoomed map links -- debug log line for control channel sub -- Move faceboookapp.js to the Facebook plugin -- fix for fix for bad realtime JS load -- default 24-hour expiry on Memcached objects where not specified. +- Support for the new distributed status update standard OStatus + , based on PubSubHubbub, Salmon, Webfinger, + and Activity Streams. +- Support for location. Notices are (optionally) marked with lat-long + information, and can be shown on a map. +- No fixed content size. Notice size is configurable, from 1 to + unlimited number of characters. Default is still 140! +- An authorization framework, allowing different levels of users. +- A Web-based administration panel. +- A moderation system that lets site moderators sandbox, silence, + or delete uncooperative users. +- A flag system that lets users flag profiles for moderator review. +- Support for OAuth authentication in the Twitter + API. +- A pluggable authentication system. +- An authentication plugin for LDAP servers. +- Many features that were core in 0.8.x are now plugins, such + as OpenID, Twitter integration, Facebook integration +- A much-improved offline processing system +- In-browser "realtime" updates using a number of realtime + servers (Meteor, Orbited, Cometd) +- A plugin to provide an interface optimized for mobile browsers +- Support for Facebook Connect +- Support for logging in with a Twitter account +- Vastly improved translation with additional languages and + translation in plugins +- Support for all-SSL instances +- Core support for "repeats" (like Twitter's "retweets") +- Pluggable caching system, with plugins for Memcached, + APC, XCache, and a disk-based cache +- Plugin to support RSSCloud +- A framework for adding advertisements to a public site, + and plugins for Google AdSense and OpenX server + +There are also literally thousands of bugs fixed and minor features +added. A full changelog is available at http://status.net/wiki/StatusNet_0.9.0. + +Under the covers, the software has a vastly improved plugin and +extension mechanism that makes writing powerful and flexible additions +to the core functionality much easier. Prerequisites ============= @@ -806,7 +654,7 @@ management, but host it on a public server. Note that this is an experimental feature; total privacy is not guaranteed or ensured. Also, privacy is all-or-nothing for a site; you can't have some accounts or notices private, and others public. -Finally, the interaction of private sites with OpenMicroBlogging is +Finally, the interaction of private sites with OStatus is undefined. Remote users won't be able to subscribe to users on a private site, but users of the private site may be able to subscribe to users on a remote site. (Or not... it's not well tested.) The -- cgit v1.2.3-54-g00ecf From 046e2b7dc726338d2cc3208016469ecd59d4a23e Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 4 Mar 2010 13:17:48 -0500 Subject: change URLs and versions in README --- README | 62 +++++++++++++++----------------------------------------------- 1 file changed, 15 insertions(+), 47 deletions(-) diff --git a/README b/README index caa4a2acd..9d40b8a7b 100644 --- a/README +++ b/README @@ -160,6 +160,8 @@ For some functionality, you will also need the following extensions: - Sphinx Search. A client for the sphinx server, an alternative to MySQL or Postgresql fulltext search. You will also need a Sphinx server to serve the search queries. +- bcmath or gmp. For Salmon signatures (part of OStatus). Needed + if you have OStatus configured. You will almost definitely get 2-3 times better performance from your site if you install a PHP bytecode cache/accelerator. Some well-known @@ -209,6 +211,9 @@ and the URLs are listed here for your convenience. - PEAR Validate is an oEmbed dependency. - PEAR Net_URL2 is an oEmbed dependency. - Console_GetOpt for parsing command-line options. +- libomb. a library for implementing OpenMicroBlogging 0.1, the + predecessor to OStatus. +- HTTP_Request2, a library for making HTTP requests. A design goal of StatusNet is that the basic Web functionality should work on even the most restrictive commercial hosting services. @@ -226,9 +231,9 @@ especially if you've previously installed PHP/MySQL packages. 1. Unpack the tarball you downloaded on your Web server. Usually a command like this will work: - tar zxf statusnet-0.8.2.tar.gz + tar zxf statusnet-0.9.0.tar.gz - ...which will make a statusnet-0.8.2 subdirectory in your current + ...which will make a statusnet-0.9.0 subdirectory in your current directory. (If you don't have shell access on your Web server, you may have to unpack the tarball on your local computer and FTP the files to the server.) @@ -236,7 +241,7 @@ especially if you've previously installed PHP/MySQL packages. 2. Move the tarball to a directory of your choosing in your Web root directory. Usually something like this will work: - mv statusnet-0.8.2 /var/www/mublog + mv statusnet-0.9.0 /var/www/mublog This will make your StatusNet instance available in the mublog path of your server, like "http://example.net/mublog". "microblog" or @@ -545,43 +550,6 @@ our kind of hacky home-grown DB-based queue solution. See the "queues" config section below for how to configure to use STOMP. As of this writing, the software has been tested with ActiveMQ. -Sitemaps --------- - -Sitemap files are a very nice way of telling -search engines and other interested bots what's available on your site -and what's changed recently. You can generate sitemap files for your -StatusNet instance. - -1. Choose your sitemap URL layout. StatusNet creates a number of - sitemap XML files for different parts of your site. You may want to - put these in a sub-directory of your StatusNet directory to avoid - clutter. The sitemap index file tells the search engines and other - bots where to find all the sitemap files; it *must* be in the main - installation directory or higher. Both types of file must be - available through HTTP. - -2. To generate your sitemaps, run the following command on your server: - - php scripts/sitemap.php -f index-file-path -d sitemap-directory -u URL-prefix-for-sitemaps - - Here, index-file-path is the full path to the sitemap index file, - like './sitemapindex.xml'. sitemap-directory is the directory where - you want the sitemaps stored, like './sitemaps/' (make sure the dir - exists). URL-prefix-for-sitemaps is the full URL for the sitemap dir, - typically something like . - -You can use several methods for submitting your sitemap index to -search engines to get your site indexed. One is to add a line like the -following to your robots.txt file: - - Sitemap: /mublog/sitemapindex.xml - -This is a good idea for letting *all* Web spiders know about your -sitemap. You can also submit sitemap files to major search engines -using their respective "Webmaster centres"; see sitemaps.org for links -to these resources. - Themes ------ @@ -689,7 +657,7 @@ with this situation. If you've been using StatusNet 0.7, 0.6, 0.5 or lower, or if you've been tracking the "git" version of the software, you will probably want to upgrade and keep your existing data. There is no automated -upgrade procedure in StatusNet 0.8.2. Try these step-by-step +upgrade procedure in StatusNet 0.9.0. Try these step-by-step instructions; read to the end first before trying them. 0. Download StatusNet and set up all the prerequisites as if you were @@ -710,7 +678,7 @@ instructions; read to the end first before trying them. 5. Once all writing processes to your site are turned off, make a final backup of the Web directory and database. 6. Move your StatusNet directory to a backup spot, like "mublog.bak". -7. Unpack your StatusNet 0.8.2 tarball and move it to "mublog" or +7. Unpack your StatusNet 0.9.0 tarball and move it to "mublog" or wherever your code used to be. 8. Copy the config.php file and avatar directory from your old directory to your new directory. @@ -1510,7 +1478,7 @@ repository (see below), and you get a compilation error ("unexpected T_STRING") in the browser, check to see that you don't have any conflicts in your code. -If you upgraded to StatusNet 0.8.2 without reading the "Notice +If you upgraded to StatusNet 0.9.0 without reading the "Notice inboxes" section above, and all your users' 'Personal' tabs are empty, read the "Notice inboxes" section above. @@ -1565,16 +1533,16 @@ There are several ways to get more information about StatusNet. * The #statusnet IRC channel on freenode.net . * The StatusNet wiki, http://status.net/wiki/ * The StatusNet blog, http://status.net/blog/ -* The StatusNet status update, (!) +* The StatusNet status update, (!) Feedback ======== -* Microblogging messages to http://identi.ca/evan are very welcome. +* Microblogging messages to http://support.status.net/ are very welcome. +* The microblogging group http://identi.ca/group/statusnet is a good + place to discuss the software. * StatusNet's Trac server has a bug tracker for any defects you may find, or ideas for making things better. http://status.net/trac/ -* e-mail to evan@status.net will usually be read and responded to very - quickly, unless the question is really hard. Credits ======= -- cgit v1.2.3-54-g00ecf From f7f7f167d6dae9b6fd83ca722378728e6378018d Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 4 Mar 2010 13:18:41 -0500 Subject: update version number --- lib/common.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/common.php b/lib/common.php index 546f6bbe4..5d53270e3 100644 --- a/lib/common.php +++ b/lib/common.php @@ -22,7 +22,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } //exit with 200 response, if this is checking fancy from the installer if (isset($_REQUEST['p']) && $_REQUEST['p'] == 'check-fancy') { exit; } -define('STATUSNET_VERSION', '0.9.0beta6+bugfix1'); +define('STATUSNET_VERSION', '0.9.0'); define('LACONICA_VERSION', STATUSNET_VERSION); // compatibility define('STATUSNET_CODENAME', 'Stand'); -- cgit v1.2.3-54-g00ecf From 7bd0b8e17ebee9f1b582ac7dd5032562216f9ad0 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Thu, 4 Mar 2010 10:20:10 -0800 Subject: Pull latest .po files from 0.9.x to testing --- locale/ar/LC_MESSAGES/statusnet.po | 955 ++++++++----- locale/arz/LC_MESSAGES/statusnet.po | 871 +++++++----- locale/bg/LC_MESSAGES/statusnet.po | 867 +++++++----- locale/ca/LC_MESSAGES/statusnet.po | 884 +++++++----- locale/cs/LC_MESSAGES/statusnet.po | 855 ++++++----- locale/de/LC_MESSAGES/statusnet.po | 909 +++++++----- locale/el/LC_MESSAGES/statusnet.po | 854 ++++++----- locale/en_GB/LC_MESSAGES/statusnet.po | 1484 ++++++++++---------- locale/es/LC_MESSAGES/statusnet.po | 874 +++++++----- locale/fa/LC_MESSAGES/statusnet.po | 868 +++++++----- locale/fi/LC_MESSAGES/statusnet.po | 866 +++++++----- locale/fr/LC_MESSAGES/statusnet.po | 886 +++++++----- locale/ga/LC_MESSAGES/statusnet.po | 857 ++++++----- locale/he/LC_MESSAGES/statusnet.po | 856 ++++++----- locale/hsb/LC_MESSAGES/statusnet.po | 880 +++++++----- locale/ia/LC_MESSAGES/statusnet.po | 871 +++++++----- locale/is/LC_MESSAGES/statusnet.po | 865 +++++++----- locale/it/LC_MESSAGES/statusnet.po | 887 +++++++----- locale/ja/LC_MESSAGES/statusnet.po | 869 +++++++----- locale/ko/LC_MESSAGES/statusnet.po | 865 +++++++----- locale/mk/LC_MESSAGES/statusnet.po | 884 +++++++----- locale/nb/LC_MESSAGES/statusnet.po | 966 ++++++++----- locale/nl/LC_MESSAGES/statusnet.po | 886 +++++++----- locale/nn/LC_MESSAGES/statusnet.po | 865 +++++++----- locale/pl/LC_MESSAGES/statusnet.po | 894 +++++++----- locale/pt/LC_MESSAGES/statusnet.po | 869 +++++++----- locale/pt_BR/LC_MESSAGES/statusnet.po | 869 +++++++----- locale/ru/LC_MESSAGES/statusnet.po | 888 +++++++----- locale/statusnet.po | 554 +++++--- locale/sv/LC_MESSAGES/statusnet.po | 884 +++++++----- locale/te/LC_MESSAGES/statusnet.po | 888 +++++++----- locale/tr/LC_MESSAGES/statusnet.po | 854 ++++++----- locale/uk/LC_MESSAGES/statusnet.po | 885 +++++++----- locale/vi/LC_MESSAGES/statusnet.po | 855 ++++++----- locale/zh_CN/LC_MESSAGES/statusnet.po | 860 +++++++----- locale/zh_TW/LC_MESSAGES/statusnet.po | 853 ++++++----- plugins/Facebook/locale/Facebook.po | 231 +-- plugins/Gravatar/locale/Gravatar.po | 8 +- plugins/Mapstraction/locale/Mapstraction.po | 22 +- plugins/OStatus/locale/OStatus.po | 22 +- plugins/OpenID/locale/OpenID.po | 320 ++--- .../locale/PoweredByStatusNet.po | 8 +- plugins/Sample/locale/Sample.po | 2 +- plugins/TwitterBridge/locale/TwitterBridge.po | 114 +- 44 files changed, 19755 insertions(+), 12849 deletions(-) diff --git a/locale/ar/LC_MESSAGES/statusnet.po b/locale/ar/LC_MESSAGES/statusnet.po index 26f956329..578f0d250 100644 --- a/locale/ar/LC_MESSAGES/statusnet.po +++ b/locale/ar/LC_MESSAGES/statusnet.po @@ -9,76 +9,83 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:50:01+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:02:06+0000\n" "Language-Team: Arabic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ar\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=6; plural= n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 msgid "Access" msgstr "نفاذ" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 msgid "Site access settings" msgstr "إعدادات الوصول إلى الموقع" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 msgid "Registration" msgstr "تسجيل" -#: actions/accessadminpanel.php:161 -msgid "Private" -msgstr "خاص" - -#: actions/accessadminpanel.php:163 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "أأمنع المستخدمين المجهولين (غير الوالجين) من عرض الموقع؟" +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -msgid "Invite only" -msgstr "بالدعوة فقط" +#, fuzzy +msgctxt "LABEL" +msgid "Private" +msgstr "خاص" -#: actions/accessadminpanel.php:169 +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 msgid "Make registration invitation only." msgstr "" -#: actions/accessadminpanel.php:173 -msgid "Closed" -msgstr "مُغلق" +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 +msgid "Invite only" +msgstr "بالدعوة فقط" -#: actions/accessadminpanel.php:175 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 msgid "Disable new registrations." msgstr "عطّل التسجيل الجديد." -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "أرسل" +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 +msgid "Closed" +msgstr "مُغلق" -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 msgid "Save access settings" msgstr "حفظ إعدادت الوصول" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "أرسل" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page" msgstr "لا صفحة كهذه" -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -92,72 +99,82 @@ msgstr "لا صفحة كهذه" #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "لا مستخدم كهذا." -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s والأصدقاء, الصفحة %2$d" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s والأصدقاء" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 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." msgstr "" -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 msgid "You and friends" msgstr "أنت والأصدقاء" @@ -175,20 +192,20 @@ msgstr "" #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 msgid "API method not found." msgstr "لم يتم العثور على وسيلة API." @@ -220,8 +237,9 @@ msgstr "تعذّر تحديث المستخدم." #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "ليس للمستخدم ملف شخصي." @@ -245,7 +263,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: 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." @@ -355,68 +373,68 @@ msgstr "تعذّر تحديد المستخدم المصدر." msgid "Could not find target user." msgstr "تعذّر إيجاد المستخدم الهدف." -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "" -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "الاسم المستعار مستخدم بالفعل. جرّب اسمًا آخرًا." -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "ليس اسمًا مستعارًا صحيحًا." -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "الصفحة الرئيسية ليست عنونًا صالحًا." -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "الاسم الكامل طويل جدا (الأقصى 255 حرفًا)" -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "" -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "" -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "كنيات كيرة! العدد الأقصى هو %d." -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, php-format msgid "Invalid alias: \"%s\"" msgstr "كنية غير صالحة: \"%s\"" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "" -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "" @@ -427,15 +445,15 @@ msgstr "" msgid "Group not found!" msgstr "لم توجد المجموعة!" -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 msgid "You are already a member of that group." msgstr "" -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "" -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "لم يمكن ضم المستخدم %1$s إلى المجموعة %2$s." @@ -444,7 +462,7 @@ msgstr "لم يمكن ضم المستخدم %1$s إلى المجموعة %2$s." msgid "You are not a member of this group." msgstr "لست عضوًا في هذه المجموعة" -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "لم يمكن إزالة المستخدم %1$s من المجموعة %2$s." @@ -476,7 +494,7 @@ msgstr "حجم غير صالح." #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -519,7 +537,7 @@ msgstr "" #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -542,13 +560,13 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 msgid "Account" msgstr "الحساب" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -630,12 +648,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "" #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "مسار %s الزمني" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -671,7 +689,7 @@ msgstr "كرر إلى %s" msgid "Repeats of %s" msgstr "تكرارات %s" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "الإشعارات الموسومة ب%s" @@ -692,8 +710,7 @@ msgstr "لا مرفق كهذا." #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "لا اسم مستعار." @@ -705,7 +722,7 @@ msgstr "لا حجم." msgid "Invalid size." msgstr "حجم غير صالح." -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "أفتار" @@ -713,7 +730,7 @@ msgstr "أفتار" #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." -msgstr "" +msgstr "بإمكانك رفع أفتارك الشخصي. أقصى حجم للملف هو %s." #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 @@ -722,30 +739,30 @@ msgid "User without matching profile" msgstr "" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "إعدادات الأفتار" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" -msgstr "الأصلي" +msgstr "الأصل" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" -msgstr "عاين" +msgstr "معاينة" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 msgid "Delete" msgstr "احذف" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "ارفع" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "" @@ -753,7 +770,7 @@ msgstr "" msgid "Pick a square area of the image to be your avatar" msgstr "" -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" @@ -785,22 +802,22 @@ msgid "" msgstr "" #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "لا" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 msgid "Do not block this user" msgstr "لا تمنع هذا المستخدم" #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "نعم" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 msgid "Block this user" msgstr "امنع هذا المستخدم" @@ -808,39 +825,43 @@ msgstr "امنع هذا المستخدم" msgid "Failed to save block information." msgstr "فشل حفظ معلومات المنع." -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 msgid "No such group." msgstr "لا مجموعة كهذه." -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, php-format msgid "%s blocked profiles" msgstr "" -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s ملفات ممنوعة, الصفحة %2$d" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." msgstr "" -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 msgid "Unblock user from group" msgstr "ألغ منع المستخدم من المجموعة" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "ألغِ المنع" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 msgid "Unblock this user" msgstr "ألغِ منع هذا المستخدم" @@ -917,14 +938,13 @@ msgstr "أنت لست مالك هذا التطبيق." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "" #: actions/deleteapplication.php:123 actions/deleteapplication.php:147 -#, fuzzy msgid "Delete application" -msgstr "عدّل التطبيق" +msgstr "احذف هذا التطبيق" #: actions/deleteapplication.php:149 msgid "" @@ -934,21 +954,20 @@ msgid "" msgstr "" #: actions/deleteapplication.php:156 -#, fuzzy msgid "Do not delete this application" -msgstr "لا تحذف هذا الإشعار" +msgstr "لا تحذف هذا التطبيق" #: actions/deleteapplication.php:160 -#, fuzzy msgid "Delete this application" -msgstr "احذف هذا الإشعار" +msgstr "احذف هذا التطبيق" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "لست والجًا." @@ -975,7 +994,7 @@ msgstr "أمتأكد من أنك تريد حذف هذا الإشعار؟" msgid "Do not delete this notice" msgstr "لا تحذف هذا الإشعار" -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 msgid "Delete this notice" msgstr "احذف هذا الإشعار" @@ -991,18 +1010,18 @@ msgstr "يمكنك حذف المستخدمين المحليين فقط." msgid "Delete user" msgstr "احذف المستخدم" -#: actions/deleteuser.php:135 +#: 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 "" -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 msgid "Delete this user" msgstr "احذف هذا المستخدم" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "التصميم" @@ -1053,7 +1072,7 @@ msgstr "الخلفية" msgid "" "You can upload a background image for the site. The maximum file size is %1" "$s." -msgstr "" +msgstr "بإمكانك رفع صورة خلفية للموقع. أقصى حجم للملف هو %1$s." #: actions/designadminpanel.php:457 lib/designsettings.php:139 msgid "On" @@ -1103,6 +1122,17 @@ msgstr "استعد التصميمات المبدئية" msgid "Reset back to default" msgstr "ارجع إلى المبدئي" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "أرسل" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "احفظ التصميم" @@ -1116,12 +1146,11 @@ msgid "Add to favorites" msgstr "أضف إلى المفضلات" #: actions/doc.php:158 -#, fuzzy, php-format +#, php-format msgid "No such document \"%s\"" -msgstr "لا مستند كهذا." +msgstr "لا مستند باسم \"%s\"" #: actions/editapplication.php:54 -#, fuzzy msgid "Edit Application" msgstr "عدّل التطبيق" @@ -1195,29 +1224,29 @@ msgstr "عدّل مجموعة %s" msgid "You must be logged in to create a group." msgstr "يجب أن تكون والجًا لتنشئ مجموعة." -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: 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 "يجب أن تكون إداريا لتعدل المجموعة." -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "استخدم هذا النموذج لتعديل المجموعة." -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, php-format msgid "description is too long (max %d chars)." msgstr "" -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 msgid "Could not update group." msgstr "تعذر تحديث المجموعة." -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 msgid "Could not create aliases." msgstr "تعذّر إنشاء الكنى." -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 msgid "Options saved." msgstr "حُفظت الخيارات." @@ -1301,15 +1330,15 @@ msgstr "أرسل لي بريدًا إلكرتونيًا عندما يضيف أح #: actions/emailsettings.php:169 msgid "Send me email when someone sends me a private message." -msgstr "" +msgstr "أرسل لي بريدًا إلكترونيًا عندما يرسل لي أحد رسالة خاصة." #: actions/emailsettings.php:174 msgid "Send me email when someone sends me an \"@-reply\"." -msgstr "أرسل لي بريدًا إلكترونيًا عندما يرسل لي أحدهم \"@-رد\"." +msgstr "أرسل لي بريدًا إلكترونيًا عندما يرسل لي أحد \"@-رد\"." #: actions/emailsettings.php:179 msgid "Allow friends to nudge me and send me an email." -msgstr "" +msgstr "اسمح لأصدقائي بتنبيهي ومراسلتي عبر البريد الإلكتروني." #: actions/emailsettings.php:185 msgid "I want to post notices by email." @@ -1317,7 +1346,7 @@ msgstr "أريد أن أرسل الملاحظات عبر البريد الإلك #: actions/emailsettings.php:191 msgid "Publish a MicroID for my email address." -msgstr "" +msgstr "انشر هوية مصغّرة لعنوان بريدي الإلكتروني." #: actions/emailsettings.php:302 actions/imsettings.php:264 #: actions/othersettings.php:180 actions/smssettings.php:284 @@ -1386,7 +1415,7 @@ msgstr "لا عنوان بريد إلكتروني وارد." #: actions/emailsettings.php:456 actions/emailsettings.php:478 #: actions/smssettings.php:528 actions/smssettings.php:552 msgid "Couldn't update user record." -msgstr "" +msgstr "تعذّر تحديث سجل المستخدم." #: actions/emailsettings.php:459 actions/smssettings.php:531 msgid "Incoming email address removed." @@ -1546,7 +1575,7 @@ msgstr "" msgid "User is not a member of group." msgstr "المستخدم ليس عضوًا في المجموعة." -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 msgid "Block user from group" msgstr "امنع المستخدم من المجموعة" @@ -1578,86 +1607,86 @@ msgstr "لا هوية." msgid "You must be logged in to edit a group." msgstr "يجب أن تلج لتُعدّل المجموعات." -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 msgid "Group design" msgstr "تصميم المجموعة" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." msgstr "" -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 msgid "Couldn't update your design." msgstr "تعذّر تحديث تصميمك." -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 msgid "Design preferences saved." msgstr "" -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "شعار المجموعة" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." -msgstr "" +msgstr "بإمكانك رفع صورة شعار مجموعتك. أقصى حجم للملف هو %s." -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 msgid "User without matching profile." msgstr "المستخدم بدون ملف مطابق." -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "" -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 msgid "Logo updated." msgstr "حُدّث الشعار." -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 msgid "Failed updating logo." msgstr "فشل رفع الشعار." -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "أعضاء مجموعة %s" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, php-format msgid "%1$s group members, page %2$d" msgstr "%1$s أعضاء المجموعة, الصفحة %2$d" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "قائمة بمستخدمي هذه المجموعة." -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "إداري" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "امنع" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 msgid "Make user an admin of the group" msgstr "" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make Admin" msgstr "" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "اجعل هذا المستخدم إداريًا" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "" @@ -1815,16 +1844,16 @@ msgstr "هذه ليست هويتك في جابر." #: actions/inbox.php:59 #, php-format msgid "Inbox for %1$s - page %2$d" -msgstr "" +msgstr "صندوق %1$s الوارد - صفحة %2$d" #: actions/inbox.php:62 #, php-format msgid "Inbox for %s" -msgstr "" +msgstr "صندوق %s الوارد" #: actions/inbox.php:115 msgid "This is your inbox, which lists your incoming private messages." -msgstr "" +msgstr "هذا صندوق بريدك الوارد، والذي يسرد رسائلك الخاصة الواردة." #: actions/invite.php:39 msgid "Invites have been disabled." @@ -1875,7 +1904,7 @@ msgstr "" #: actions/invite.php:162 msgid "" "Use this form to invite your friends and colleagues to use this service." -msgstr "" +msgstr "استخدم هذا النموذج لدعوة أصدقائك وزملائك لاستخدام هذه الخدمة." #: actions/invite.php:187 msgid "Email addresses" @@ -1893,16 +1922,19 @@ msgstr "رسالة شخصية" msgid "Optionally add a personal message to the invitation." msgstr "" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" msgstr "أرسل" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "" -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -1937,7 +1969,12 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "يجب أن تلج لتنضم إلى مجموعة." -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "لا اسم مستعار." + +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s انضم للمجموعة %2$s" @@ -1946,11 +1983,11 @@ msgstr "%1$s انضم للمجموعة %2$s" msgid "You must be logged in to leave a group." msgstr "يجب أن تلج لتغادر مجموعة." -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 msgid "You are not a member of that group." msgstr "لست عضوا في تلك المجموعة." -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s ترك المجموعة %2$s" @@ -1967,8 +2004,7 @@ msgstr "اسم المستخدم أو كلمة السر غير صحيحان." msgid "Error setting user. You are probably not authorized." msgstr "خطأ أثناء ضبط المستخدم. لست مُصرحًا على الأرجح." -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "لُج" @@ -1982,7 +2018,7 @@ msgstr "تذكّرني" #: actions/login.php:237 actions/register.php:480 msgid "Automatically login in the future; not for shared computers!" -msgstr "" +msgstr "لُج تلقائيًا في المستقبل؛ هذا الخيار ليس مُعدًا للحواسيب المشتركة!" #: actions/login.php:247 msgid "Lost or forgotten password?" @@ -1993,6 +2029,7 @@ msgid "" "For security reasons, please re-enter your user name and password before " "changing your settings." msgstr "" +"لأسباب أمنية، من فضلك أعد إدخال اسم مستخدمك وكلمة سرك قبل تغيير إعداداتك." #: actions/login.php:270 #, php-format @@ -2025,7 +2062,6 @@ msgid "No current status" msgstr "لا حالة حالية" #: actions/newapplication.php:52 -#, fuzzy msgid "New Application" msgstr "تطبيق جديد" @@ -2210,8 +2246,8 @@ msgstr "نوع المحتوى " msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "ليس نسق بيانات مدعوم." @@ -2278,20 +2314,20 @@ msgstr "توكن الدخول انتهى." #: actions/outbox.php:58 #, php-format msgid "Outbox for %1$s - page %2$d" -msgstr "" +msgstr "صندوق %1$s الصادر - صفحة %2$d" #: actions/outbox.php:61 #, php-format msgid "Outbox for %s" -msgstr "" +msgstr "صندوق %s الصادر" #: actions/outbox.php:116 msgid "This is your outbox, which lists private messages you have sent." -msgstr "" +msgstr "هذا صندوق بريدك الصادر، والذي يسرد الرسائل الخاصة التي أرسلتها." #: actions/passwordsettings.php:58 msgid "Change password" -msgstr "غيّر كلمة السر" +msgstr "تغيير كلمة السر" #: actions/passwordsettings.php:69 msgid "Change your password." @@ -2311,7 +2347,7 @@ msgstr "كلمة سر جديدة" #: actions/passwordsettings.php:109 msgid "6 or more characters" -msgstr "" +msgstr "6 أحرف أو أكثر" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 #: actions/register.php:433 actions/smssettings.php:134 @@ -2350,7 +2386,7 @@ msgstr "تعذّر حفظ كلمة السر الجديدة." msgid "Password saved." msgstr "حُفظت كلمة السر." -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "المسارات" @@ -2383,7 +2419,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 msgid "Site" msgstr "الموقع" @@ -2548,10 +2583,10 @@ msgstr "معلومات الملف الشخصي" #: actions/profilesettings.php:108 lib/groupeditform.php:154 msgid "1-64 lowercase letters or numbers, no punctuation or spaces" -msgstr "" +msgstr "1-64 حرفًا إنجليزيًا أو رقمًا بدون نقاط أو مسافات" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "الاسم الكامل" @@ -2579,7 +2614,7 @@ msgid "Bio" msgstr "السيرة" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2660,7 +2695,8 @@ msgstr "تعذّر حفظ الملف الشخصي." msgid "Couldn't save tags." msgstr "تعذّر حفظ الوسوم." -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "حُفظت الإعدادات." @@ -2673,45 +2709,45 @@ msgstr "وراء حد الصفحة (%s)" msgid "Could not retrieve public stream." msgstr "" -#: actions/public.php:129 +#: actions/public.php:130 #, php-format msgid "Public timeline, page %d" msgstr "المسار الزمني العام، صفحة %d" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "المسار الزمني العام" -#: actions/public.php:159 +#: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" msgstr "" -#: actions/public.php:163 +#: actions/public.php:164 msgid "Public Stream Feed (RSS 2.0)" msgstr "" -#: actions/public.php:167 +#: actions/public.php:168 msgid "Public Stream Feed (Atom)" msgstr "" -#: actions/public.php:187 +#: 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:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "كن أول من يُرسل!" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2724,7 +2760,7 @@ msgstr "" "الآن](%%action.register%%) لتشارك اشعاراتك مع أصدقائك وعائلتك وزملائك! " "([اقرأ المزيد](%%doc.help%%))" -#: actions/public.php:246 +#: actions/public.php:247 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2895,8 +2931,7 @@ msgstr "عذرا، رمز دعوة غير صالح." msgid "Registration successful" msgstr "نجح التسجيل" -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "سجّل" @@ -3055,7 +3090,7 @@ msgstr "لا يمكنك تكرار ملاحظتك الشخصية." msgid "You already repeated that notice." msgstr "أنت كررت هذه الملاحظة بالفعل." -#: actions/repeat.php:114 lib/noticelist.php:656 +#: actions/repeat.php:114 lib/noticelist.php:674 msgid "Repeated" msgstr "مكرر" @@ -3063,47 +3098,47 @@ msgstr "مكرر" msgid "Repeated!" msgstr "مكرر!" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "الردود على %s" -#: actions/replies.php:127 +#: actions/replies.php:128 #, fuzzy, php-format msgid "Replies to %1$s, page %2$d" msgstr "الردود على %s" -#: actions/replies.php:144 +#: actions/replies.php:145 #, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "" -#: actions/replies.php:151 +#: actions/replies.php:152 #, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "" -#: actions/replies.php:158 +#: actions/replies.php:159 #, php-format msgid "Replies feed for %s (Atom)" msgstr "" -#: actions/replies.php:198 +#: actions/replies.php:199 #, 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 "" -#: actions/replies.php:203 +#: 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:205 +#: actions/replies.php:206 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3128,7 +3163,6 @@ msgid "User is already sandboxed." msgstr "" #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "الجلسات" @@ -3154,7 +3188,7 @@ msgid "Turn on debugging output for sessions." msgstr "مكّن تنقيح مُخرجات الجلسة." #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "اذف إعدادت الموقع" @@ -3184,7 +3218,7 @@ msgstr "المنظمة" msgid "Description" msgstr "الوصف" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "إحصاءات" @@ -3246,28 +3280,28 @@ msgstr "إشعارات %s المُفضلة" msgid "Could not retrieve favorite notices." msgstr "" -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" msgstr "" -#: actions/showfavorites.php:205 +#: 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:207 +#: actions/showfavorites.php:208 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Post something interesting " @@ -3276,7 +3310,7 @@ msgstr "" "%s لم يضف أي إشعارات إلى مفضلته إلى الآن. أرسل شيئًا شيقًا ليضيفه إلى " "مفضلته. :)" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3286,7 +3320,7 @@ msgstr "" "%s لم يضف أي إشعارات إلى مفضلته إلى الآن. لمّ لا [تسجل حسابًا](%%%%action." "register%%%%) وترسل شيئًا شيقًا ليضيفه إلى مفضلته. :)" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "إنها إحدى وسائل مشاركة ما تحب." @@ -3300,67 +3334,67 @@ msgstr "مجموعة %s" msgid "%1$s group, page %2$d" msgstr "%1$s أعضاء المجموعة, الصفحة %2$d" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 msgid "Group profile" msgstr "ملف المجموعة الشخصي" -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "مسار" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 msgid "Note" msgstr "ملاحظة" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "الكنى" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, php-format msgid "FOAF for %s group" msgstr "" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 msgid "Members" msgstr "الأعضاء" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(لا شيء)" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "جميع الأعضاء" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 msgid "Created" msgstr "أنشئ" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3370,7 +3404,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:454 +#: actions/showgroup.php:462 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3379,7 +3413,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:482 +#: actions/showgroup.php:490 msgid "Admins" msgstr "الإداريون" @@ -3696,7 +3730,7 @@ msgstr "" #: actions/smssettings.php:374 msgid "That is the wrong confirmation number." -msgstr "" +msgstr "إن رقم التأكيد هذا خاطئ." #: actions/smssettings.php:405 msgid "That is not your phone number." @@ -3719,7 +3753,7 @@ msgstr "" #: actions/smssettings.php:498 msgid "No code entered" -msgstr "" +msgstr "لم تدخل رمزًا" #: actions/subedit.php:70 msgid "You are not subscribed to that profile." @@ -3732,10 +3766,9 @@ msgstr "تعذّر حفظ الاشتراك." #: actions/subscribe.php:77 msgid "This action only accepts POST requests." -msgstr "" +msgstr "هذا الإجراء يقبل طلبات POST فقط." #: actions/subscribe.php:107 -#, fuzzy msgid "No such profile." msgstr "لا ملف كهذا." @@ -3826,22 +3859,22 @@ msgstr "جابر" msgid "SMS" msgstr "رسائل قصيرة" -#: actions/tag.php:68 +#: actions/tag.php:69 #, fuzzy, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "الإشعارات الموسومة ب%s" -#: actions/tag.php:86 +#: actions/tag.php:87 #, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "" -#: actions/tag.php:92 +#: actions/tag.php:93 #, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "" -#: actions/tag.php:98 +#: actions/tag.php:99 #, php-format msgid "Notice feed for tag %s (Atom)" msgstr "" @@ -3891,7 +3924,7 @@ msgstr "" msgid "No such tag." msgstr "لا وسم كهذا." -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "" @@ -3921,70 +3954,72 @@ msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +#, fuzzy +msgctxt "TITLE" msgid "User" msgstr "المستخدم" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "" -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "رسالة ترحيب غير صالحة. أقصى طول هو 255 حرف." -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "" -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "الملف الشخصي" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "حد السيرة" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "" -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 msgid "New users" msgstr "مستخدمون جدد" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "ترحيب المستخدمين الجدد" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "نص الترحيب بالمستخدمين الجدد (255 حرفًا كحد أقصى)." -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 msgid "Default subscription" msgstr "الاشتراك المبدئي" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 msgid "Automatically subscribe new users to this user." msgstr "أشرك المستخدمين الجدد بهذا المستخدم تلقائيًا." -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 msgid "Invitations" msgstr "الدعوات" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 msgid "Invitations enabled" msgstr "الدعوات مُفعلة" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "" @@ -4089,7 +4124,7 @@ msgstr "تصميم الملف الشخصي" msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." -msgstr "" +msgstr "خصّص أسلوب عرض ملفك بصورة خلفية ومخطط ألوان من اختيارك." #: actions/userdesignsettings.php:282 msgid "Enjoy your hotdog!" @@ -4107,7 +4142,7 @@ msgstr "ابحث عن المزيد من المجموعات" #: actions/usergroups.php:153 #, php-format msgid "%s is not a member of any group." -msgstr "" +msgstr "%s ليس عضوًا في أي مجموعة." #: actions/usergroups.php:158 #, php-format @@ -4125,10 +4160,12 @@ msgid "" "This site is powered by %1$s version %2$s, Copyright 2008-2010 StatusNet, " "Inc. and contributors." msgstr "" +"هذا الموقع يشغله %1$s النسخة %2$s، حقوق النشر 2008-2010 StatusNet, Inc " +"ومساهموها." #: actions/version.php:161 msgid "Contributors" -msgstr "" +msgstr "المساهمون" #: actions/version.php:168 msgid "" @@ -4155,9 +4192,9 @@ msgstr "" #: actions/version.php:189 msgid "Plugins" -msgstr "ملحقات" +msgstr "الملحقات" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 msgid "Version" msgstr "النسخة" @@ -4194,6 +4231,10 @@ msgstr "ليس جزءا من المجموعة." msgid "Group leave failed." msgstr "ترك المجموعة فشل." +#: classes/Local_group.php:41 +msgid "Could not update local group." +msgstr "تعذر تحديث المجموعة المحلية." + #: classes/Login_token.php:76 #, php-format msgid "Could not create login token for %s" @@ -4211,44 +4252,44 @@ msgstr "تعذّر إدراج الرسالة." msgid "Could not update message with new URI." msgstr "" -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "" -#: classes/Notice.php:222 +#: classes/Notice.php:239 msgid "Problem saving notice. Too long." msgstr "مشكلة في حفظ الإشعار. طويل جدًا." -#: classes/Notice.php:226 +#: classes/Notice.php:243 msgid "Problem saving notice. Unknown user." msgstr "مشكلة في حفظ الإشعار. مستخدم غير معروف." -#: classes/Notice.php:231 +#: classes/Notice.php:248 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:237 +#: classes/Notice.php:254 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:243 +#: classes/Notice.php:260 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "مشكلة أثناء حفظ الإشعار." -#: classes/Notice.php:882 +#: classes/Notice.php:911 #, fuzzy msgid "Problem saving group inbox." msgstr "مشكلة أثناء حفظ الإشعار." -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, php-format msgid "RT @%1$s %2$s" msgstr "آر تي @%1$s %2$s" @@ -4277,19 +4318,29 @@ msgstr "لم يمكن حذف اشتراك ذاتي." msgid "Couldn't delete subscription." msgstr "تعذّر حذف الاشتراك." -#: classes/User.php:372 +#: classes/User.php:373 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "أهلا بكم في %1$s يا @%2$s!" -#: classes/User_group.php:423 +#: classes/User_group.php:462 msgid "Could not create group." msgstr "تعذّر إنشاء المجموعة." -#: classes/User_group.php:452 +#: classes/User_group.php:471 +#, fuzzy +msgid "Could not set group URI." +msgstr "تعذّر ضبط عضوية المجموعة." + +#: classes/User_group.php:492 msgid "Could not set group membership." msgstr "تعذّر ضبط عضوية المجموعة." +#: classes/User_group.php:506 +#, fuzzy +msgid "Could not save local group info." +msgstr "تعذّر حفظ الاشتراك." + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "غيّر إعدادات ملفك الشخصي" @@ -4331,120 +4382,190 @@ msgstr "صفحة غير مُعنونة" msgid "Primary site navigation" msgstr "" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "الرئيسية" - -#: lib/action.php:439 +#, fuzzy +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "الملف الشخصي ومسار الأصدقاء الزمني" -#: lib/action.php:441 -msgid "Change your email, avatar, password, profile" -msgstr "" +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "شخصية" +#. TRANS: Tooltip for main menu option "Account" #: lib/action.php:444 -msgid "Connect" -msgstr "اتصل" +#, fuzzy +msgctxt "TOOLTIP" +msgid "Change your email, avatar, password, profile" +msgstr "غير كلمة سرّك" -#: lib/action.php:444 +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "الحساب" + +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 +#, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" -msgstr "" +msgstr "اتصالات" -#: lib/action.php:448 +#: lib/action.php:453 +#, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "اتصل" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "غيّر ضبط الموقع" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" -msgstr "ادعُ" +#: lib/action.php:460 +#, fuzzy +msgctxt "MENU" +msgid "Admin" +msgstr "إداري" -#: lib/action.php:453 lib/subgroupnav.php:106 -#, php-format +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 +#, fuzzy, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" -msgstr "" +msgstr "استخدم هذا النموذج لدعوة أصدقائك وزملائك لاستخدام هذه الخدمة." -#: lib/action.php:458 -msgid "Logout" -msgstr "اخرج" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "ادعُ" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +#, fuzzy +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "اخرج من الموقع" -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "اخرج" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 +#, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "أنشئ حسابًا" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "سجّل" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +#, fuzzy +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "لُج إلى الموقع" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "مساعدة" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "لُج" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 +#, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "ساعدني!" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "ابحث" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "مساعدة" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +#, fuzzy +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "ابحث عن أشخاص أو نص" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "ابحث" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 msgid "Site notice" msgstr "إشعار الموقع" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "المشاهدات المحلية" -#: lib/action.php:625 +#: lib/action.php:656 msgid "Page notice" msgstr "إشعار الصفحة" -#: lib/action.php:727 +#: lib/action.php:758 msgid "Secondary site navigation" msgstr "" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "مساعدة" + +#: lib/action.php:765 msgid "About" msgstr "عن" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "الأسئلة المكررة" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "الشروط" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "خصوصية" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "المصدر" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "اتصل" -#: lib/action.php:751 +#: lib/action.php:782 msgid "Badge" -msgstr "" +msgstr "الجسر" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "رخصة برنامج StatusNet" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4453,12 +4574,12 @@ msgstr "" "**%%site.name%%** خدمة تدوين مصغر يقدمها لك [%%site.broughtby%%](%%site." "broughtbyurl%%). " -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "" -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4469,108 +4590,159 @@ msgstr "" "المتوفر تحت [رخصة غنو أفيرو العمومية](http://www.fsf.org/licensing/licenses/" "agpl-3.0.html)." -#: lib/action.php:801 +#: lib/action.php:832 msgid "Site content license" msgstr "رخصة محتوى الموقع" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "" -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "الرخصة." -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "" -#: lib/action.php:1141 +#: lib/action.php:1172 msgid "After" msgstr "بعد" -#: lib/action.php:1149 +#: lib/action.php:1180 msgid "Before" msgstr "قبل" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." msgstr "" -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 msgid "Changes to that panel are not allowed." msgstr "التغييرات لهذه اللوحة غير مسموح بها." -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 msgid "showForm() not implemented." msgstr "" -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 msgid "saveSettings() not implemented." msgstr "" -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 msgid "Unable to delete design setting." msgstr "تعذّر حذف إعدادات التصميم." -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 msgid "Basic site configuration" msgstr "ضبط الموقع الأساسي" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "الموقع" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 msgid "Design configuration" msgstr "ضبط التصميم" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "التصميم" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 #, fuzzy msgid "User configuration" msgstr "ضبط المسارات" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 #, fuzzy +msgctxt "MENU" +msgid "User" +msgstr "المستخدم" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 msgid "Access configuration" -msgstr "ضبط التصميم" +msgstr "ضبط الحساب" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "نفاذ" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 msgid "Paths configuration" msgstr "ضبط المسارات" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 #, fuzzy +msgctxt "MENU" +msgid "Paths" +msgstr "المسارات" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 msgid "Sessions configuration" -msgstr "ضبط التصميم" +msgstr "ضبط الجلسات" + +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "الجلسات" -#: lib/apiauth.php:95 +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4660,11 +4832,11 @@ msgstr "" msgid "Tags for this attachment" msgstr "وسوم هذا المرفق" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 msgid "Password changing failed" msgstr "تغيير كلمة السر فشل" -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 msgid "Password changing is not allowed" msgstr "تغيير كلمة السر غير مسموح به" @@ -4952,19 +5124,19 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:148 msgid "No configuration file found. " msgstr "" -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:152 msgid "Go to the installer." msgstr "اذهب إلى المُثبّت." @@ -5150,23 +5322,23 @@ msgstr "" msgid "Not an image or corrupt file." msgstr "" -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "" -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "" -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "نوع ملف غير معروف" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "ميجابايت" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "كيلوبايت" @@ -5469,6 +5641,12 @@ msgstr "إلى" msgid "Available characters" msgstr "المحارف المتوفرة" +#: lib/messageform.php:178 lib/noticeform.php:236 +#, fuzzy +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "أرسل" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "أرسل إشعارًا" @@ -5525,23 +5703,23 @@ msgstr "غ" msgid "at" msgstr "في" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 msgid "in context" msgstr "في السياق" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 msgid "Repeated by" msgstr "مكرر بواسطة" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 msgid "Reply to this notice" msgstr "رُد على هذا الإشعار" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 msgid "Reply" msgstr "رُد" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 msgid "Notice repeated" msgstr "الإشعار مكرر" @@ -5589,6 +5767,10 @@ msgstr "الردود" msgid "Favorites" msgstr "المفضلات" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "المستخدم" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "صندوق الوارد" @@ -5612,7 +5794,7 @@ msgstr "وسوم في إشعارات %s" #: lib/plugin.php:114 msgid "Unknown" -msgstr "غير معروف" +msgstr "غير معروفة" #: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 msgid "Subscriptions" @@ -5678,7 +5860,7 @@ msgstr "أأكرّر هذا الإشعار؟ّ" msgid "Repeat this notice" msgstr "كرّر هذا الإشعار" -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "" @@ -5698,6 +5880,10 @@ msgstr "ابحث في الموقع" msgid "Keyword(s)" msgstr "الكلمات المفتاحية" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "ابحث" + #: lib/searchaction.php:162 msgid "Search help" msgstr "ابحث في المساعدة" @@ -5749,6 +5935,15 @@ msgstr "الأشخاص المشتركون ب%s" msgid "Groups %s is a member of" msgstr "المجموعات التي %s عضو فيها" +#: 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" @@ -5819,47 +6014,47 @@ msgstr "رسالة" msgid "Moderate" msgstr "" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "قبل لحظات قليلة" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "قبل دقيقة تقريبًا" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "قبل ساعة تقريبًا" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "قبل يوم تقريبا" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "قبل شهر تقريبًا" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "قبل سنة تقريبًا" diff --git a/locale/arz/LC_MESSAGES/statusnet.po b/locale/arz/LC_MESSAGES/statusnet.po index cd8640753..3ce1fbc4e 100644 --- a/locale/arz/LC_MESSAGES/statusnet.po +++ b/locale/arz/LC_MESSAGES/statusnet.po @@ -10,79 +10,86 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:50:08+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:02:09+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 (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: arz\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=6; plural= n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 msgid "Access" msgstr "نفاذ" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 #, fuzzy msgid "Site access settings" msgstr "اذف إعدادت الموقع" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 #, fuzzy msgid "Registration" msgstr "سجّل" -#: actions/accessadminpanel.php:161 -msgid "Private" -msgstr "خاص" - -#: actions/accessadminpanel.php:163 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "أأمنع المستخدمين المجهولين (غير الوالجين) من عرض الموقع؟" +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -msgid "Invite only" -msgstr "بالدعوه فقط" +#, fuzzy +msgctxt "LABEL" +msgid "Private" +msgstr "خاص" -#: actions/accessadminpanel.php:169 +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 msgid "Make registration invitation only." msgstr "" -#: actions/accessadminpanel.php:173 -msgid "Closed" -msgstr "مُغلق" +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 +msgid "Invite only" +msgstr "بالدعوه فقط" -#: actions/accessadminpanel.php:175 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 msgid "Disable new registrations." msgstr "عطّل التسجيل الجديد." -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "أرسل" +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 +msgid "Closed" +msgstr "مُغلق" -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 #, fuzzy msgid "Save access settings" msgstr "اذف إعدادت الموقع" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "أرسل" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page" msgstr "لا صفحه كهذه" -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -96,72 +103,82 @@ msgstr "لا صفحه كهذه" #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "لا مستخدم كهذا." -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s و الصحاب, صفحه %2$d" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s والأصدقاء" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 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." msgstr "" -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 msgid "You and friends" msgstr "أنت والأصدقاء" @@ -179,20 +196,20 @@ msgstr "" #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 msgid "API method not found." msgstr "الـ API method مش موجوده." @@ -224,8 +241,9 @@ msgstr "تعذّر تحديث المستخدم." #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "ليس للمستخدم ملف شخصى." @@ -249,7 +267,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: 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." @@ -359,68 +377,68 @@ msgstr "" msgid "Could not find target user." msgstr "تعذّر إيجاد المستخدم الهدف." -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "" -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "" -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "ليس اسمًا مستعارًا صحيحًا." -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "الصفحه الرئيسيه ليست عنونًا صالحًا." -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "الاسم الكامل طويل جدا (الأقصى 255 حرفًا)" -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "" -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "" -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "" -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, php-format msgid "Invalid alias: \"%s\"" msgstr "كنيه غير صالحة: \"%s\"" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "" -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "" @@ -431,15 +449,15 @@ msgstr "" msgid "Group not found!" msgstr "لم توجد المجموعة!" -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 msgid "You are already a member of that group." msgstr "" -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "" -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "ما نفعش يضم %1$s للجروپ %2$s." @@ -448,7 +466,7 @@ msgstr "ما نفعش يضم %1$s للجروپ %2$s." msgid "You are not a member of this group." msgstr "" -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "ما نفعش يتشال اليوزر %1$s من الجروپ %2$s." @@ -480,7 +498,7 @@ msgstr "حجم غير صالح." #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -523,7 +541,7 @@ msgstr "" #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -546,13 +564,13 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 msgid "Account" msgstr "الحساب" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -634,12 +652,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "" #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "مسار %s الزمني" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -675,7 +693,7 @@ msgstr "كرر إلى %s" msgid "Repeats of %s" msgstr "تكرارات %s" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "الإشعارات الموسومه ب%s" @@ -696,8 +714,7 @@ msgstr "لا مرفق كهذا." #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "لا اسم مستعار." @@ -709,7 +726,7 @@ msgstr "لا حجم." msgid "Invalid size." msgstr "حجم غير صالح." -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "أفتار" @@ -726,30 +743,30 @@ msgid "User without matching profile" msgstr "" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "إعدادات الأفتار" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "الأصلي" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "عاين" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 msgid "Delete" msgstr "احذف" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "ارفع" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "" @@ -757,7 +774,7 @@ msgstr "" msgid "Pick a square area of the image to be your avatar" msgstr "" -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" @@ -789,22 +806,22 @@ msgid "" msgstr "" #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "لا" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 msgid "Do not block this user" msgstr "لا تمنع هذا المستخدم" #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "نعم" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 msgid "Block this user" msgstr "امنع هذا المستخدم" @@ -812,39 +829,43 @@ msgstr "امنع هذا المستخدم" msgid "Failed to save block information." msgstr "فشل حفظ معلومات المنع." -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 msgid "No such group." msgstr "لا مجموعه كهذه." -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, php-format msgid "%s blocked profiles" msgstr "" -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s فايلات معمول ليها بلوك, الصفحه %2$d" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." msgstr "" -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 msgid "Unblock user from group" msgstr "ألغ منع المستخدم من المجموعة" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "ألغِ المنع" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 msgid "Unblock this user" msgstr "ألغِ منع هذا المستخدم" @@ -921,7 +942,7 @@ msgstr "انت مش بتملك الapplication دى." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "" @@ -947,12 +968,13 @@ msgstr "لا تحذف هذا الإشعار" msgid "Delete this application" msgstr "احذف هذا الإشعار" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "لست والجًا." @@ -979,7 +1001,7 @@ msgstr "أمتأكد من أنك تريد حذف هذا الإشعار؟" msgid "Do not delete this notice" msgstr "لا تحذف هذا الإشعار" -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 msgid "Delete this notice" msgstr "احذف هذا الإشعار" @@ -995,18 +1017,18 @@ msgstr "يمكنك حذف المستخدمين المحليين فقط." msgid "Delete user" msgstr "احذف المستخدم" -#: actions/deleteuser.php:135 +#: 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 "" -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 msgid "Delete this user" msgstr "احذف هذا المستخدم" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "التصميم" @@ -1107,6 +1129,17 @@ msgstr "استعد التصميمات المبدئية" msgid "Reset back to default" msgstr "ارجع إلى المبدئي" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "أرسل" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "احفظ التصميم" @@ -1199,29 +1232,29 @@ msgstr "عدّل مجموعه %s" msgid "You must be logged in to create a group." msgstr "يجب أن تكون والجًا لتنشئ مجموعه." -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: 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 "لازم تكون ادارى علشان تعدّل الجروپ." -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "استخدم هذا النموذج لتعديل المجموعه." -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, php-format msgid "description is too long (max %d chars)." msgstr "" -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 msgid "Could not update group." msgstr "تعذر تحديث المجموعه." -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 msgid "Could not create aliases." msgstr "تعذّر إنشاء الكنى." -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 msgid "Options saved." msgstr "حُفظت الخيارات." @@ -1550,7 +1583,7 @@ msgstr "" msgid "User is not a member of group." msgstr "المستخدم ليس عضوًا فى المجموعه." -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 msgid "Block user from group" msgstr "امنع المستخدم من المجموعة" @@ -1582,86 +1615,86 @@ msgstr "لا هويه." msgid "You must be logged in to edit a group." msgstr "يجب أن تلج لتُعدّل المجموعات." -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 msgid "Group design" msgstr "تصميم المجموعة" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." msgstr "" -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 msgid "Couldn't update your design." msgstr "تعذّر تحديث تصميمك." -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 msgid "Design preferences saved." msgstr "" -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "شعار المجموعة" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "" -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 msgid "User without matching profile." msgstr "يوزر من-غير پروفايل زيّه." -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "" -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 msgid "Logo updated." msgstr "حُدّث الشعار." -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 msgid "Failed updating logo." msgstr "فشل رفع الشعار." -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "أعضاء مجموعه %s" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, php-format msgid "%1$s group members, page %2$d" msgstr "%1$s اعضاء الجروپ, صفحه %2$d" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "قائمه بمستخدمى هذه المجموعه." -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "إداري" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "امنع" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 msgid "Make user an admin of the group" msgstr "" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make Admin" msgstr "" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "اجعل هذا المستخدم إداريًا" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "" @@ -1897,16 +1930,19 @@ msgstr "رساله شخصية" msgid "Optionally add a personal message to the invitation." msgstr "" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" msgstr "أرسل" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "" -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -1941,7 +1977,12 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "" -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "لا اسم مستعار." + +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s دخل جروپ %2$s" @@ -1950,11 +1991,11 @@ msgstr "%1$s دخل جروپ %2$s" msgid "You must be logged in to leave a group." msgstr "" -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 msgid "You are not a member of that group." msgstr "لست عضوا فى تلك المجموعه." -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s ساب جروپ %2$s" @@ -1971,8 +2012,7 @@ msgstr "اسم المستخدم أو كلمه السر غير صحيحان." msgid "Error setting user. You are probably not authorized." msgstr "خطأ أثناء ضبط المستخدم. لست مُصرحًا على الأرجح." -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "لُج" @@ -2212,8 +2252,8 @@ msgstr "نوع المحتوى " msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr " مش نظام بيانات مدعوم." @@ -2352,7 +2392,7 @@ msgstr "تعذّر حفظ كلمه السر الجديده." msgid "Password saved." msgstr "حُفظت كلمه السر." -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "المسارات" @@ -2385,7 +2425,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 msgid "Site" msgstr "الموقع" @@ -2553,7 +2592,7 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "الاسم الكامل" @@ -2581,7 +2620,7 @@ msgid "Bio" msgstr "السيرة" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2661,7 +2700,8 @@ msgstr "تعذّر حفظ الملف الشخصى." msgid "Couldn't save tags." msgstr "تعذّر حفظ الوسوم." -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "حُفظت الإعدادات." @@ -2674,45 +2714,45 @@ msgstr "وراء حد الصفحه (%s)" msgid "Could not retrieve public stream." msgstr "" -#: actions/public.php:129 +#: actions/public.php:130 #, php-format msgid "Public timeline, page %d" msgstr "المسار الزمنى العام، صفحه %d" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "المسار الزمنى العام" -#: actions/public.php:159 +#: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" msgstr "" -#: actions/public.php:163 +#: actions/public.php:164 msgid "Public Stream Feed (RSS 2.0)" msgstr "" -#: actions/public.php:167 +#: actions/public.php:168 msgid "Public Stream Feed (Atom)" msgstr "" -#: actions/public.php:187 +#: 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:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "كن أول من يُرسل!" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2725,7 +2765,7 @@ msgstr "" "الآن](%%action.register%%) لتشارك اشعاراتك مع أصدقائك وعائلتك وزملائك! " "([اقرأ المزيد](%%doc.help%%))" -#: actions/public.php:246 +#: actions/public.php:247 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2896,8 +2936,7 @@ msgstr "عذرا، رمز دعوه غير صالح." msgid "Registration successful" msgstr "نجح التسجيل" -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "سجّل" @@ -3056,7 +3095,7 @@ msgstr "ما ينفعش تكرر الملاحظه بتاعتك." msgid "You already repeated that notice." msgstr "انت عيدت الملاحظه دى فعلا." -#: actions/repeat.php:114 lib/noticelist.php:656 +#: actions/repeat.php:114 lib/noticelist.php:674 msgid "Repeated" msgstr "مكرر" @@ -3064,47 +3103,47 @@ msgstr "مكرر" msgid "Repeated!" msgstr "مكرر!" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "الردود على %s" -#: actions/replies.php:127 +#: actions/replies.php:128 #, fuzzy, php-format msgid "Replies to %1$s, page %2$d" msgstr "الردود على %s" -#: actions/replies.php:144 +#: actions/replies.php:145 #, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "" -#: actions/replies.php:151 +#: actions/replies.php:152 #, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "" -#: actions/replies.php:158 +#: actions/replies.php:159 #, php-format msgid "Replies feed for %s (Atom)" msgstr "" -#: actions/replies.php:198 +#: actions/replies.php:199 #, 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 "" -#: actions/replies.php:203 +#: 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:205 +#: actions/replies.php:206 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3129,7 +3168,6 @@ msgid "User is already sandboxed." msgstr "" #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "الجلسات" @@ -3155,7 +3193,7 @@ msgid "Turn on debugging output for sessions." msgstr "مكّن تنقيح مُخرجات الجلسه." #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "اذف إعدادت الموقع" @@ -3185,7 +3223,7 @@ msgstr "المنظمه" msgid "Description" msgstr "الوصف" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "إحصاءات" @@ -3247,28 +3285,28 @@ msgstr "إشعارات %s المُفضلة" msgid "Could not retrieve favorite notices." msgstr "" -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" msgstr "" -#: actions/showfavorites.php:205 +#: 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:207 +#: actions/showfavorites.php:208 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Post something interesting " @@ -3277,7 +3315,7 @@ msgstr "" "%s لم يضف أى إشعارات إلى مفضلته إلى الآن. أرسل شيئًا شيقًا ليضيفه إلى " "مفضلته. :)" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3287,7 +3325,7 @@ msgstr "" "%s لم يضف أى إشعارات إلى مفضلته إلى الآن. لمّ لا [تسجل حسابًا](%%%%action." "register%%%%) وترسل شيئًا شيقًا ليضيفه إلى مفضلته. :)" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "إنها إحدى وسائل مشاركه ما تحب." @@ -3301,67 +3339,67 @@ msgstr "مجموعه %s" msgid "%1$s group, page %2$d" msgstr "%1$s أعضاء المجموعة, الصفحه %2$d" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 msgid "Group profile" msgstr "ملف المجموعه الشخصي" -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "مسار" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 msgid "Note" msgstr "ملاحظة" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "الكنى" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, php-format msgid "FOAF for %s group" msgstr "" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 msgid "Members" msgstr "الأعضاء" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(لا شيء)" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "جميع الأعضاء" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 msgid "Created" msgstr "أنشئ" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3371,7 +3409,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:454 +#: actions/showgroup.php:462 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3380,7 +3418,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:482 +#: actions/showgroup.php:490 msgid "Admins" msgstr "الإداريون" @@ -3827,22 +3865,22 @@ msgstr "جابر" msgid "SMS" msgstr "رسائل قصيرة" -#: actions/tag.php:68 +#: actions/tag.php:69 #, fuzzy, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "الإشعارات الموسومه ب%s" -#: actions/tag.php:86 +#: actions/tag.php:87 #, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "" -#: actions/tag.php:92 +#: actions/tag.php:93 #, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "" -#: actions/tag.php:98 +#: actions/tag.php:99 #, php-format msgid "Notice feed for tag %s (Atom)" msgstr "" @@ -3892,7 +3930,7 @@ msgstr "" msgid "No such tag." msgstr "لا وسم كهذا." -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "" @@ -3922,70 +3960,72 @@ msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +#, fuzzy +msgctxt "TITLE" msgid "User" msgstr "المستخدم" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "" -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "رساله ترحيب غير صالحه. أقصى طول هو 255 حرف." -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "" -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "الملف الشخصي" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "حد السيرة" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "" -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 msgid "New users" msgstr "مستخدمون جدد" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "ترحيب المستخدمين الجدد" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "نص الترحيب بالمستخدمين الجدد (255 حرفًا كحد أقصى)." -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 msgid "Default subscription" msgstr "الاشتراك المبدئي" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 msgid "Automatically subscribe new users to this user." msgstr "أشرك المستخدمين الجدد بهذا المستخدم تلقائيًا." -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 msgid "Invitations" msgstr "الدعوات" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 msgid "Invitations enabled" msgstr "الدعوات مُفعلة" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "" @@ -4158,7 +4198,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 msgid "Version" msgstr "النسخه" @@ -4195,6 +4235,11 @@ msgstr "مش جزء من الجروپ." msgid "Group leave failed." msgstr "الخروج من الجروپ فشل." +#: classes/Local_group.php:41 +#, fuzzy +msgid "Could not update local group." +msgstr "تعذر تحديث المجموعه." + #: classes/Login_token.php:76 #, php-format msgid "Could not create login token for %s" @@ -4212,44 +4257,44 @@ msgstr "تعذّر إدراج الرساله." msgid "Could not update message with new URI." msgstr "" -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "" -#: classes/Notice.php:222 +#: classes/Notice.php:239 msgid "Problem saving notice. Too long." msgstr "مشكله فى حفظ الإشعار. طويل جدًا." -#: classes/Notice.php:226 +#: classes/Notice.php:243 msgid "Problem saving notice. Unknown user." msgstr "مشكله فى حفظ الإشعار. مستخدم غير معروف." -#: classes/Notice.php:231 +#: classes/Notice.php:248 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:237 +#: classes/Notice.php:254 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:243 +#: classes/Notice.php:260 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "مشكله أثناء حفظ الإشعار." -#: classes/Notice.php:882 +#: classes/Notice.php:911 #, fuzzy msgid "Problem saving group inbox." msgstr "مشكله أثناء حفظ الإشعار." -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, php-format msgid "RT @%1$s %2$s" msgstr "آر تى @%1$s %2$s" @@ -4278,19 +4323,29 @@ msgstr "ما نفعش يمسح الاشتراك الشخصى." msgid "Couldn't delete subscription." msgstr "تعذّر حذف الاشتراك." -#: classes/User.php:372 +#: classes/User.php:373 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "أهلا بكم فى %1$s يا @%2$s!" -#: classes/User_group.php:423 +#: classes/User_group.php:462 msgid "Could not create group." msgstr "تعذّر إنشاء المجموعه." -#: classes/User_group.php:452 +#: classes/User_group.php:471 +#, fuzzy +msgid "Could not set group URI." +msgstr "تعذّر ضبط عضويه المجموعه." + +#: classes/User_group.php:492 msgid "Could not set group membership." msgstr "تعذّر ضبط عضويه المجموعه." +#: classes/User_group.php:506 +#, fuzzy +msgid "Could not save local group info." +msgstr "تعذّر حفظ الاشتراك." + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "غيّر إعدادات ملفك الشخصي" @@ -4332,120 +4387,190 @@ msgstr "صفحه غير مُعنونة" msgid "Primary site navigation" msgstr "" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "الرئيسية" - -#: lib/action.php:439 +#, fuzzy +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "الملف الشخصى ومسار الأصدقاء الزمني" -#: lib/action.php:441 -msgid "Change your email, avatar, password, profile" -msgstr "" +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "شخصية" +#. TRANS: Tooltip for main menu option "Account" #: lib/action.php:444 -msgid "Connect" -msgstr "اتصل" +#, fuzzy +msgctxt "TOOLTIP" +msgid "Change your email, avatar, password, profile" +msgstr "غير كلمه سرّك" -#: lib/action.php:444 +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "الحساب" + +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 +#, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" -msgstr "" +msgstr "كونيكشونات (Connections)" + +#: lib/action.php:453 +#, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "اتصل" -#: lib/action.php:448 +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "غيّر ضبط الموقع" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" -msgstr "ادعُ" +#: lib/action.php:460 +#, fuzzy +msgctxt "MENU" +msgid "Admin" +msgstr "إداري" -#: lib/action.php:453 lib/subgroupnav.php:106 +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 #, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "" -#: lib/action.php:458 -msgid "Logout" -msgstr "اخرج" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "ادعُ" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +#, fuzzy +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "اخرج من الموقع" -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "اخرج" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 +#, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "أنشئ حسابًا" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "سجّل" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +#, fuzzy +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "لُج إلى الموقع" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "مساعدة" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "لُج" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 +#, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "ساعدني!" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "ابحث" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "مساعدة" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +#, fuzzy +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "ابحث عن أشخاص أو نص" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "ابحث" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 msgid "Site notice" msgstr "إشعار الموقع" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "المشاهدات المحلية" -#: lib/action.php:625 +#: lib/action.php:656 msgid "Page notice" msgstr "إشعار الصفحة" -#: lib/action.php:727 +#: lib/action.php:758 msgid "Secondary site navigation" msgstr "" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "مساعدة" + +#: lib/action.php:765 msgid "About" msgstr "عن" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "الأسئله المكررة" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "الشروط" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "خصوصية" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "المصدر" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "اتصل" -#: lib/action.php:751 +#: lib/action.php:782 msgid "Badge" msgstr "" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4454,12 +4579,12 @@ msgstr "" "**%%site.name%%** خدمه تدوين مصغر يقدمها لك [%%site.broughtby%%](%%site." "broughtbyurl%%). " -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "" -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4470,108 +4595,161 @@ msgstr "" "المتوفر تحت [رخصه غنو أفيرو العمومية](http://www.fsf.org/licensing/licenses/" "agpl-3.0.html)." -#: lib/action.php:801 +#: lib/action.php:832 msgid "Site content license" msgstr "رخصه محتوى الموقع" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "" -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "الرخصه." -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "" -#: lib/action.php:1141 +#: lib/action.php:1172 msgid "After" msgstr "بعد" -#: lib/action.php:1149 +#: lib/action.php:1180 msgid "Before" msgstr "قبل" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." msgstr "" -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 msgid "Changes to that panel are not allowed." msgstr "التغييرات مش مسموحه للـ لوحه دى." -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 msgid "showForm() not implemented." msgstr "" -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 msgid "saveSettings() not implemented." msgstr "" -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 msgid "Unable to delete design setting." msgstr "تعذّر حذف إعدادات التصميم." -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 msgid "Basic site configuration" msgstr "ضبط الموقع الأساسي" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "الموقع" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 msgid "Design configuration" msgstr "ضبط التصميم" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "التصميم" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 #, fuzzy msgid "User configuration" msgstr "ضبط المسارات" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +#, fuzzy +msgctxt "MENU" +msgid "User" +msgstr "المستخدم" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 #, fuzzy msgid "Access configuration" msgstr "ضبط التصميم" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "نفاذ" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 msgid "Paths configuration" msgstr "ضبط المسارات" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +#, fuzzy +msgctxt "MENU" +msgid "Paths" +msgstr "المسارات" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 #, fuzzy msgid "Sessions configuration" msgstr "ضبط التصميم" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "الجلسات" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4661,11 +4839,11 @@ msgstr "" msgid "Tags for this attachment" msgstr "وسوم هذا المرفق" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 msgid "Password changing failed" msgstr "تغيير الپاسوورد فشل" -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 msgid "Password changing is not allowed" msgstr "تغيير الپاسوورد مش مسموح" @@ -4953,19 +5131,19 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:148 msgid "No configuration file found. " msgstr "" -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:152 msgid "Go to the installer." msgstr "اذهب إلى المُثبّت." @@ -5151,23 +5329,23 @@ msgstr "" msgid "Not an image or corrupt file." msgstr "" -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "" -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "" -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "نوع ملف غير معروف" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "ميجابايت" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "كيلوبايت" @@ -5460,6 +5638,12 @@ msgstr "إلى" msgid "Available characters" msgstr "المحارف المتوفرة" +#: lib/messageform.php:178 lib/noticeform.php:236 +#, fuzzy +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "أرسل" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "أرسل إشعارًا" @@ -5516,23 +5700,23 @@ msgstr "غ" msgid "at" msgstr "في" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 msgid "in context" msgstr "فى السياق" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 msgid "Repeated by" msgstr "متكرر من" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 msgid "Reply to this notice" msgstr "رُد على هذا الإشعار" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 msgid "Reply" msgstr "رُد" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 msgid "Notice repeated" msgstr "الإشعار مكرر" @@ -5580,6 +5764,10 @@ msgstr "الردود" msgid "Favorites" msgstr "المفضلات" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "المستخدم" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "صندوق الوارد" @@ -5669,7 +5857,7 @@ msgstr "كرر هذا الإشعار؟" msgid "Repeat this notice" msgstr "كرر هذا الإشعار" -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "" @@ -5689,6 +5877,10 @@ msgstr "ابحث فى الموقع" msgid "Keyword(s)" msgstr "الكلمات المفتاحية" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "ابحث" + #: lib/searchaction.php:162 msgid "Search help" msgstr "ابحث فى المساعدة" @@ -5740,6 +5932,15 @@ msgstr "الأشخاص المشتركون ب%s" msgid "Groups %s is a member of" msgstr "المجموعات التى %s عضو فيها" +#: 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" @@ -5810,47 +6011,47 @@ msgstr "رسالة" msgid "Moderate" msgstr "" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "قبل لحظات قليلة" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "قبل دقيقه تقريبًا" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "قبل ساعه تقريبًا" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "قبل يوم تقريبا" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "قبل شهر تقريبًا" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "قبل سنه تقريبًا" diff --git a/locale/bg/LC_MESSAGES/statusnet.po b/locale/bg/LC_MESSAGES/statusnet.po index 3cb121628..abf1998d8 100644 --- a/locale/bg/LC_MESSAGES/statusnet.po +++ b/locale/bg/LC_MESSAGES/statusnet.po @@ -9,75 +9,82 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:50:11+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:02:12+0000\n" "Language-Team: Bulgarian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: bg\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 msgid "Access" msgstr "Достъп" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 msgid "Site access settings" msgstr "Настройки за достъп до сайта" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 msgid "Registration" msgstr "Регистриране" -#: actions/accessadminpanel.php:161 -msgid "Private" -msgstr "Частен" - -#: actions/accessadminpanel.php:163 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "" +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -msgid "Invite only" -msgstr "Само с покани" +#, fuzzy +msgctxt "LABEL" +msgid "Private" +msgstr "Частен" -#: actions/accessadminpanel.php:169 +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 msgid "Make registration invitation only." msgstr "Новите регистрации да са само с покани." -#: actions/accessadminpanel.php:173 -msgid "Closed" -msgstr "Затворен" +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 +msgid "Invite only" +msgstr "Само с покани" -#: actions/accessadminpanel.php:175 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 msgid "Disable new registrations." msgstr "Изключване на новите регистрации." -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "Запазване" +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 +msgid "Closed" +msgstr "Затворен" -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 msgid "Save access settings" msgstr "Запазване настройките за достъп" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "Запазване" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page" msgstr "Няма такака страница." -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -91,72 +98,82 @@ msgstr "Няма такака страница." #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "Няма такъв потребител" -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s и приятели, страница %2$d" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s и приятели" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Емисия с приятелите на %s (RSS 1.0)" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Емисия с приятелите на %s (RSS 2.0)" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Емисия с приятелите на %s (Atom)" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 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." msgstr "" -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 msgid "You and friends" msgstr "Вие и приятелите" @@ -174,20 +191,20 @@ msgstr "Бележки от %1$s и приятели в %2$s." #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 msgid "API method not found." msgstr "Не е открит методът в API." @@ -219,8 +236,9 @@ msgstr "Грешка при обновяване на потребителя." #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "Потребителят няма профил." @@ -244,7 +262,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 #, fuzzy @@ -362,7 +380,7 @@ msgstr "Грешка при изтегляне на общия поток" msgid "Could not find target user." msgstr "Целевият потребител не беше открит." -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." @@ -370,62 +388,62 @@ msgstr "" "Псевдонимът може да съдържа само малки букви, числа и никакво разстояние " "между тях." -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Опитайте друг псевдоним, този вече е зает." -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Неправилен псевдоним." -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Адресът на личната страница не е правилен URL." -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Пълното име е твърде дълго (макс. 255 знака)" -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "Описанието е твърде дълго (до %d символа)." -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Името на местоположението е твърде дълго (макс. 255 знака)." -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "" -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Неправилен псевдоним: \"%s\"" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Псевдонимът \"%s\" вече е зает. Опитайте друг." -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "" @@ -436,15 +454,15 @@ msgstr "" msgid "Group not found!" msgstr "Групата не е открита." -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 msgid "You are already a member of that group." msgstr "Вече членувате в тази група." -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "" -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, fuzzy, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Грешка при проследяване — потребителят не е намерен." @@ -453,7 +471,7 @@ msgstr "Грешка при проследяване — потребителя msgid "You are not a member of this group." msgstr "Не членувате в тази група." -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, fuzzy, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Грешка при проследяване — потребителят не е намерен." @@ -485,7 +503,7 @@ msgstr "Неправилен размер." #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -529,7 +547,7 @@ msgstr "" #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -552,13 +570,13 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 msgid "Account" msgstr "Сметка" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -641,12 +659,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%s бележки отбелязани като любими от %s / %s." #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "Поток на %s" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -682,7 +700,7 @@ msgstr "Повторено за %s" msgid "Repeats of %s" msgstr "Повторения на %s" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Бележки с етикет %s" @@ -704,8 +722,7 @@ msgstr "Няма такъв документ." #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "Няма псевдоним." @@ -717,7 +734,7 @@ msgstr "Няма размер." msgid "Invalid size." msgstr "Неправилен размер." -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Аватар" @@ -735,30 +752,30 @@ msgid "User without matching profile" msgstr "Потребител без съответстващ профил" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Настройки за аватар" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Оригинал" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Преглед" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 msgid "Delete" msgstr "Изтриване" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "Качване" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "Изрязване" @@ -766,7 +783,7 @@ msgstr "Изрязване" msgid "Pick a square area of the image to be your avatar" msgstr "Изберете квадратна област от изображението за аватар" -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" @@ -798,22 +815,22 @@ msgid "" msgstr "" #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "Не" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 msgid "Do not block this user" msgstr "Да не се блокира този потребител" #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Да" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 msgid "Block this user" msgstr "Блокиране на потребителя" @@ -821,40 +838,44 @@ msgstr "Блокиране на потребителя" msgid "Failed to save block information." msgstr "Грешка при записване данните за блокирането." -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 msgid "No such group." msgstr "Няма такава група" -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, php-format msgid "%s blocked profiles" msgstr "Блокирани за %s" -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, fuzzy, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "Блокирани за %s, страница %d" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 #, fuzzy msgid "A list of the users blocked from joining this group." msgstr "Списък с потребителите в тази група." -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 msgid "Unblock user from group" msgstr "Разблокиране на потребителя от групата" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "Разблокиране" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 msgid "Unblock this user" msgstr "Разблокиране на този потребител" @@ -933,7 +954,7 @@ msgstr "Не членувате в тази група." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "Имаше проблем със сесията ви в сайта." @@ -959,12 +980,13 @@ msgstr "Да не се изтрива бележката" msgid "Delete this application" msgstr "Изтриване на бележката" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Не сте влезли в системата." @@ -991,7 +1013,7 @@ msgstr "Наистина ли искате да изтриете тази бел msgid "Do not delete this notice" msgstr "Да не се изтрива бележката" -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 msgid "Delete this notice" msgstr "Изтриване на бележката" @@ -1007,18 +1029,18 @@ msgstr "Може да изтривате само локални потреби msgid "Delete user" msgstr "Изтриване на потребител" -#: actions/deleteuser.php:135 +#: 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 "" -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 msgid "Delete this user" msgstr "Изтриване на този потребител" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "" @@ -1124,6 +1146,17 @@ msgstr "" msgid "Reset back to default" msgstr "" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "Запазване" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "" @@ -1226,31 +1259,31 @@ msgstr "Редактиране на групата %s" msgid "You must be logged in to create a group." msgstr "За да създавате група, трябва да сте влезли." -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: actions/editgroup.php:107 actions/editgroup.php:172 +#: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 #, fuzzy msgid "You must be an admin to edit the group." msgstr "За да редактирате групата, трябва да сте й администратор." -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "" -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, php-format msgid "description is too long (max %d chars)." msgstr "Описанието е твърде дълго (до %d символа)." -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 msgid "Could not update group." msgstr "Грешка при обновяване на групата." -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 #, fuzzy msgid "Could not create aliases." msgstr "Грешка при отбелязване като любима." -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 msgid "Options saved." msgstr "Настройките са запазени." @@ -1591,7 +1624,7 @@ msgstr "Потребителят вече е блокиран за групат msgid "User is not a member of group." msgstr "Потребителят не членува в групата." -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 #, fuzzy msgid "Block user from group" msgstr "Блокиране на потребителя" @@ -1626,92 +1659,92 @@ msgstr "Липсва ID." msgid "You must be logged in to edit a group." msgstr "За да редактирате група, трябва да сте влезли." -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 #, fuzzy msgid "Group design" msgstr "Групи" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." msgstr "" -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 #, fuzzy msgid "Couldn't update your design." msgstr "Грешка при обновяване на потребителя." -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 #, fuzzy msgid "Design preferences saved." msgstr "Настройките са запазени." -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "Лого на групата" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, fuzzy, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "Може да качите лого за групата ви." -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 #, fuzzy msgid "User without matching profile." msgstr "Потребител без съответстващ профил" -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 #, fuzzy msgid "Pick a square area of the image to be the logo." msgstr "Изберете квадратна област от изображението за аватар" -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 msgid "Logo updated." msgstr "Лотого е обновено." -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 msgid "Failed updating logo." msgstr "Неуспешно обновяване на логото." -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "Членове на групата %s" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, fuzzy, php-format msgid "%1$s group members, page %2$d" msgstr "Членове на групата %s, страница %d" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "Списък с потребителите в тази група." -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "Настройки" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "Блокиране" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 #, fuzzy msgid "Make user an admin of the group" msgstr "За да редактирате групата, трябва да сте й администратор." -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make Admin" msgstr "" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, fuzzy, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Бележки от %1$s в %2$s." @@ -1966,16 +1999,19 @@ msgstr "Лично съобщение" msgid "Optionally add a personal message to the invitation." msgstr "Може да добавите и лично съобщение към поканата." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" msgstr "Прати" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s ви кани да ползвате заедно %2$s" -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2036,7 +2072,12 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "За да се присъедините към група, трябва да сте влезли." -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "Няма псевдоним." + +#: actions/joingroup.php:141 #, fuzzy, php-format msgid "%1$s joined group %2$s" msgstr "%s се присъедини към групата %s" @@ -2045,11 +2086,11 @@ msgstr "%s се присъедини към групата %s" msgid "You must be logged in to leave a group." msgstr "За напуснете група, трябва да сте влезли." -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 msgid "You are not a member of that group." msgstr "Не членувате в тази група." -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s напусна групата %2$s" @@ -2067,8 +2108,7 @@ msgstr "Грешно име или парола." msgid "Error setting user. You are probably not authorized." msgstr "Забранено." -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "Вход" @@ -2322,8 +2362,8 @@ msgstr "вид съдържание " msgid "Only " msgstr "Само " -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "Неподдържан формат на данните" @@ -2469,7 +2509,7 @@ msgstr "Грешка при запазване на новата парола." msgid "Password saved." msgstr "Паролата е записана." -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "Пътища" @@ -2502,7 +2542,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 msgid "Site" msgstr "Сайт" @@ -2672,7 +2711,7 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "От 1 до 64 малки букви или цифри, без пунктоация и интервали" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "Пълно име" @@ -2700,7 +2739,7 @@ msgid "Bio" msgstr "За мен" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2783,7 +2822,8 @@ msgstr "Грешка при запазване на профила." msgid "Couldn't save tags." msgstr "Грешка при запазване етикетите." -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "Настройките са запазени." @@ -2796,45 +2836,45 @@ msgstr "" msgid "Could not retrieve public stream." msgstr "Грешка при изтегляне на общия поток" -#: actions/public.php:129 +#: actions/public.php:130 #, php-format msgid "Public timeline, page %d" msgstr "Общ поток, страница %d" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "Общ поток" -#: actions/public.php:159 +#: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" msgstr "Емисия на общия поток (RSS 1.0)" -#: actions/public.php:163 +#: actions/public.php:164 msgid "Public Stream Feed (RSS 2.0)" msgstr "Емисия на общия поток (RSS 2.0)" -#: actions/public.php:167 +#: actions/public.php:168 msgid "Public Stream Feed (Atom)" msgstr "Емисия на общия поток (Atom)" -#: actions/public.php:187 +#: 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:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2843,7 +2883,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:246 +#: actions/public.php:247 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3016,8 +3056,7 @@ msgstr "Грешка в кода за потвърждение." msgid "Registration successful" msgstr "Записването е успешно." -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "Регистриране" @@ -3201,7 +3240,7 @@ msgstr "Не можете да повтаряте собствена бележ msgid "You already repeated that notice." msgstr "Вече сте повторили тази бележка." -#: actions/repeat.php:114 lib/noticelist.php:656 +#: actions/repeat.php:114 lib/noticelist.php:674 msgid "Repeated" msgstr "Повторено" @@ -3209,47 +3248,47 @@ msgstr "Повторено" msgid "Repeated!" msgstr "Повторено!" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "Отговори на %s" -#: actions/replies.php:127 +#: actions/replies.php:128 #, fuzzy, php-format msgid "Replies to %1$s, page %2$d" msgstr "Отговори до %1$s в %2$s!" -#: actions/replies.php:144 +#: actions/replies.php:145 #, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "Емисия с отговори на %s (RSS 1.0)" -#: actions/replies.php:151 +#: actions/replies.php:152 #, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "Емисия с отговори на %s (RSS 2.0)" -#: actions/replies.php:158 +#: actions/replies.php:159 #, php-format msgid "Replies feed for %s (Atom)" msgstr "Емисия с отговори на %s (Atom)" -#: actions/replies.php:198 +#: actions/replies.php:199 #, 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 "" -#: actions/replies.php:203 +#: 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:205 +#: actions/replies.php:206 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3276,7 +3315,6 @@ msgid "User is already sandboxed." msgstr "Потребителят ви е блокирал." #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "Сесии" @@ -3302,7 +3340,7 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Запазване настройките на сайта" @@ -3334,7 +3372,7 @@ msgstr "Организация" msgid "Description" msgstr "Описание" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Статистики" @@ -3397,35 +3435,35 @@ msgstr "Любими бележки на %1$s, страница %2$d" msgid "Could not retrieve favorite notices." msgstr "Грешка при изтегляне на любимите бележки" -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "Емисия с приятелите на %s" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "Емисия с приятелите на %s" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" msgstr "Емисия с приятелите на %s" -#: actions/showfavorites.php:205 +#: 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:207 +#: 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 :)" msgstr "" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3433,7 +3471,7 @@ msgid "" "would add to their favorites :)" msgstr "" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "Така можете да споделите какво харесвате." @@ -3447,67 +3485,67 @@ msgstr "Група %s" msgid "%1$s group, page %2$d" msgstr "Членове на групата %s, страница %d" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 msgid "Group profile" msgstr "Профил на групата" -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "URL" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 msgid "Note" msgstr "Бележка" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "Псевдоними" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Емисия с бележки на %s" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Емисия с бележки на %s" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "Емисия с бележки на %s" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, php-format msgid "FOAF for %s group" msgstr "Изходяща кутия за %s" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 msgid "Members" msgstr "Членове" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "Всички членове" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 msgid "Created" msgstr "Създадена на" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3517,7 +3555,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:454 +#: actions/showgroup.php:462 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3526,7 +3564,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:482 +#: actions/showgroup.php:490 msgid "Admins" msgstr "Администратори" @@ -3987,22 +4025,22 @@ msgstr "Jabber" msgid "SMS" msgstr "SMS" -#: actions/tag.php:68 +#: actions/tag.php:69 #, fuzzy, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "Бележки с етикет %s, страница %d" -#: actions/tag.php:86 +#: actions/tag.php:87 #, fuzzy, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "Емисия с бележки на %s" -#: actions/tag.php:92 +#: actions/tag.php:93 #, fuzzy, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "Емисия с бележки на %s" -#: actions/tag.php:98 +#: actions/tag.php:99 #, fuzzy, php-format msgid "Notice feed for tag %s (Atom)" msgstr "Емисия с бележки на %s" @@ -4054,7 +4092,7 @@ msgstr "" msgid "No such tag." msgstr "Няма такъв етикет." -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "Методът в API все още се разработва." @@ -4087,74 +4125,76 @@ msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +#, fuzzy +msgctxt "TITLE" msgid "User" msgstr "Потребител" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "" -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "" -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "" -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "Профил" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "" -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 msgid "New users" msgstr "Нови потребители" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "" -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 #, fuzzy msgid "Default subscription" msgstr "Всички абонаменти" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 #, fuzzy msgid "Automatically subscribe new users to this user." msgstr "" "Автоматично абониране за всеки, който се абонира за мен (подходящо за " "ботове)." -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 msgid "Invitations" msgstr "Покани" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 msgid "Invitations enabled" msgstr "Поканите са включени" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "" @@ -4338,7 +4378,7 @@ msgstr "" msgid "Plugins" msgstr "Приставки" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 msgid "Version" msgstr "Версия" @@ -4378,6 +4418,11 @@ msgstr "Грешка при обновяване на групата." msgid "Group leave failed." msgstr "Профил на групата" +#: classes/Local_group.php:41 +#, fuzzy +msgid "Could not update local group." +msgstr "Грешка при обновяване на групата." + #: classes/Login_token.php:76 #, fuzzy, php-format msgid "Could not create login token for %s" @@ -4396,28 +4441,28 @@ msgstr "Грешка при вмъкване на съобщението." msgid "Could not update message with new URI." msgstr "Грешка при обновяване на бележката с нов URL-адрес." -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "" -#: classes/Notice.php:222 +#: classes/Notice.php:239 #, fuzzy msgid "Problem saving notice. Too long." msgstr "Проблем при записване на бележката." -#: classes/Notice.php:226 +#: classes/Notice.php:243 msgid "Problem saving notice. Unknown user." msgstr "Грешка при записване на бележката. Непознат потребител." -#: classes/Notice.php:231 +#: classes/Notice.php:248 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "Твърде много бележки за кратко време. Спрете, поемете дъх и публикувайте " "отново след няколко минути." -#: classes/Notice.php:237 +#: classes/Notice.php:254 #, fuzzy msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " @@ -4426,20 +4471,20 @@ msgstr "" "Твърде много бележки за кратко време. Спрете, поемете дъх и публикувайте " "отново след няколко минути." -#: classes/Notice.php:243 +#: classes/Notice.php:260 msgid "You are banned from posting notices on this site." msgstr "Забранено ви е да публикувате бележки в този сайт." -#: classes/Notice.php:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "Проблем при записване на бележката." -#: classes/Notice.php:882 +#: classes/Notice.php:911 #, fuzzy msgid "Problem saving group inbox." msgstr "Проблем при записване на бележката." -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4471,20 +4516,30 @@ msgstr "Грешка при изтриване на абонамента." msgid "Couldn't delete subscription." msgstr "Грешка при изтриване на абонамента." -#: classes/User.php:372 +#: classes/User.php:373 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Добре дошли в %1$s, @%2$s!" -#: classes/User_group.php:423 +#: classes/User_group.php:462 msgid "Could not create group." msgstr "Грешка при създаване на групата." -#: classes/User_group.php:452 +#: classes/User_group.php:471 +#, fuzzy +msgid "Could not set group URI." +msgstr "Грешка при създаване на нов абонамент." + +#: classes/User_group.php:492 #, fuzzy msgid "Could not set group membership." msgstr "Грешка при създаване на нов абонамент." +#: classes/User_group.php:506 +#, fuzzy +msgid "Could not save local group info." +msgstr "Грешка при създаване на нов абонамент." + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "Промяна настройките на профила" @@ -4527,124 +4582,192 @@ msgstr "Неозаглавена страница" msgid "Primary site navigation" msgstr "" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "Начало" - -#: lib/action.php:439 +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:441 +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "Лично" + +#. TRANS: Tooltip for main menu option "Account" +#: lib/action.php:444 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Промяна на поща, аватар, парола, профил" -#: lib/action.php:444 -msgid "Connect" -msgstr "Свързване" +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "Сметка" -#: lib/action.php:444 +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 +#, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Свързване към услуги" -#: lib/action.php:448 +#: lib/action.php:453 +#, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "Свързване" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Промяна настройките на сайта" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" -msgstr "Покани" +#: lib/action.php:460 +#, fuzzy +msgctxt "MENU" +msgid "Admin" +msgstr "Настройки" -#: lib/action.php:453 lib/subgroupnav.php:106 -#, php-format +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 +#, fuzzy, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Поканете приятели и колеги да се присъединят към вас в %s" -#: lib/action.php:458 -msgid "Logout" -msgstr "Изход" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "Покани" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +#, fuzzy +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Излизане от сайта" -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "Изход" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 +#, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "Създаване на нова сметка" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "Регистриране" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +#, fuzzy +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Влизане в сайта" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "Помощ" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "Вход" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 #, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "Помощ" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "Търсене" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "Помощ" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +#, fuzzy +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Търсене за хора или бележки" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "Търсене" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 #, fuzzy msgid "Site notice" msgstr "Нова бележка" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "" -#: lib/action.php:625 +#: lib/action.php:656 #, fuzzy msgid "Page notice" msgstr "Нова бележка" -#: lib/action.php:727 +#: lib/action.php:758 #, fuzzy msgid "Secondary site navigation" msgstr "Абонаменти" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "Помощ" + +#: lib/action.php:765 msgid "About" msgstr "Относно" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "Въпроси" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "Условия" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "Поверителност" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "Изходен код" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "Контакт" -#: lib/action.php:751 +#: lib/action.php:782 msgid "Badge" msgstr "Табелка" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "Лиценз на програмата StatusNet" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4653,12 +4776,12 @@ msgstr "" "**%%site.name%%** е услуга за микроблогване, предоставена ви от [%%site." "broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** е услуга за микроблогване. " -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4669,112 +4792,165 @@ msgstr "" "достъпна под [GNU Affero General Public License](http://www.fsf.org/" "licensing/licenses/agpl-3.0.html)." -#: lib/action.php:801 +#: lib/action.php:832 msgid "Site content license" msgstr "Лиценз на съдържанието" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "Всички " -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "лиценз." -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "Страниране" -#: lib/action.php:1141 +#: lib/action.php:1172 msgid "After" msgstr "След" -#: lib/action.php:1149 +#: lib/action.php:1180 msgid "Before" msgstr "Преди" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." msgstr "Не можете да променяте този сайт." -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 #, fuzzy msgid "Changes to that panel are not allowed." msgstr "Записването не е позволено." -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 #, fuzzy msgid "showForm() not implemented." msgstr "Командата все още не се поддържа." -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 #, fuzzy msgid "saveSettings() not implemented." msgstr "Командата все още не се поддържа." -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 #, fuzzy msgid "Unable to delete design setting." msgstr "Грешка при записване настройките за Twitter" -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 msgid "Basic site configuration" msgstr "Основна настройка на сайта" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "Сайт" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 msgid "Design configuration" msgstr "Настройка на оформлението" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "Версия" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 #, fuzzy msgid "User configuration" msgstr "Настройка на пътищата" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +#, fuzzy +msgctxt "MENU" +msgid "User" +msgstr "Потребител" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 #, fuzzy msgid "Access configuration" msgstr "Настройка на оформлението" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "Достъп" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 msgid "Paths configuration" msgstr "Настройка на пътищата" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +#, fuzzy +msgctxt "MENU" +msgid "Paths" +msgstr "Пътища" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 #, fuzzy msgid "Sessions configuration" msgstr "Настройка на оформлението" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "Сесии" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4869,12 +5045,12 @@ msgstr "" msgid "Tags for this attachment" msgstr "" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 #, fuzzy msgid "Password changing failed" msgstr "Паролата е записана." -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 #, fuzzy msgid "Password changing is not allowed" msgstr "Паролата е записана." @@ -5153,19 +5329,19 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:148 msgid "No configuration file found. " msgstr "Не е открит файл с настройки. " -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:152 #, fuzzy msgid "Go to the installer." msgstr "Влизане в сайта" @@ -5357,24 +5533,24 @@ msgstr "Системна грешка при качване на файл." msgid "Not an image or corrupt file." msgstr "Файлът не е изображение или е повреден." -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "Форматът на файла с изображението не се поддържа." -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 #, fuzzy msgid "Lost our file." msgstr "Няма такава бележка." -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "Неподдържан вид файл" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "MB" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "kB" @@ -5678,6 +5854,12 @@ msgstr "До" msgid "Available characters" msgstr "Налични знаци" +#: lib/messageform.php:178 lib/noticeform.php:236 +#, fuzzy +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "Прати" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Изпращане на бележка" @@ -5736,23 +5918,23 @@ msgstr "З" msgid "at" msgstr "" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 msgid "in context" msgstr "в контекст" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 msgid "Repeated by" msgstr "Повторено от" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 msgid "Reply to this notice" msgstr "Отговаряне на тази бележка" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 msgid "Reply" msgstr "Отговор" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 msgid "Notice repeated" msgstr "Бележката е повторена." @@ -5801,6 +5983,10 @@ msgstr "Отговори" msgid "Favorites" msgstr "Любими" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "Потребител" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Входящи" @@ -5893,7 +6079,7 @@ msgstr "Повтаряне на тази бележка" msgid "Repeat this notice" msgstr "Повтаряне на тази бележка" -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "" @@ -5916,6 +6102,10 @@ msgstr "Търсене" msgid "Keyword(s)" msgstr "Ключови думи" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "Търсене" + #: lib/searchaction.php:162 #, fuzzy msgid "Search help" @@ -5968,6 +6158,15 @@ msgstr "Абонирани за %s" msgid "Groups %s is a member of" msgstr "Групи, в които участва %s" +#: lib/subgroupnav.php:105 +msgid "Invite" +msgstr "Покани" + +#: lib/subgroupnav.php:106 +#, php-format +msgid "Invite friends and colleagues to join you on %s" +msgstr "Поканете приятели и колеги да се присъединят към вас в %s" + #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 msgid "People Tagcloud as self-tagged" @@ -6040,47 +6239,47 @@ msgstr "Съобщение" msgid "Moderate" msgstr "" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "преди няколко секунди" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "преди около минута" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "преди около %d минути" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "преди около час" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "преди около %d часа" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "преди около ден" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "преди около %d дни" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "преди около месец" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "преди около %d месеца" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "преди около година" diff --git a/locale/ca/LC_MESSAGES/statusnet.po b/locale/ca/LC_MESSAGES/statusnet.po index d94ad8431..8b12f44a9 100644 --- a/locale/ca/LC_MESSAGES/statusnet.po +++ b/locale/ca/LC_MESSAGES/statusnet.po @@ -10,80 +10,87 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:50:15+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:02:15+0000\n" "Language-Team: Catalan\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ca\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 msgid "Access" msgstr "Accés" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 #, fuzzy msgid "Site access settings" msgstr "Desa els paràmetres del lloc" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 #, fuzzy msgid "Registration" msgstr "Registre" -#: actions/accessadminpanel.php:161 -msgid "Private" -msgstr "Privat" - -#: actions/accessadminpanel.php:163 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "" "Voleu prohibir als usuaris anònims (que no han iniciat cap sessió) " "visualitzar el lloc?" +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -msgid "Invite only" -msgstr "Només invitació" +#, fuzzy +msgctxt "LABEL" +msgid "Private" +msgstr "Privat" -#: actions/accessadminpanel.php:169 +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 msgid "Make registration invitation only." msgstr "Fes que el registre sigui només amb invitacions." -#: actions/accessadminpanel.php:173 -msgid "Closed" -msgstr "Tancat" +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 +msgid "Invite only" +msgstr "Només invitació" -#: actions/accessadminpanel.php:175 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 msgid "Disable new registrations." msgstr "Inhabilita els nous registres." -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "Guardar" +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 +msgid "Closed" +msgstr "Tancat" -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 #, fuzzy msgid "Save access settings" msgstr "Desa els paràmetres del lloc" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "Guardar" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page" msgstr "No existeix la pàgina." -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -97,45 +104,53 @@ msgstr "No existeix la pàgina." #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "No existeix aquest usuari." -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, fuzzy, php-format msgid "%1$s and friends, page %2$d" msgstr "%s perfils blocats, pàgina %d" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s i amics" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Canal dels amics de %s (RSS 1.0)" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Canal dels amics de %s (RSS 2.0)" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Canal dels amics de %s (Atom)" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." @@ -143,28 +158,30 @@ msgstr "" "Aquesta és la línia temporal de %s i amics, però ningú hi ha enviat res " "encara." -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 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." msgstr "" -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 msgid "You and friends" msgstr "Un mateix i amics" @@ -182,20 +199,20 @@ msgstr "Actualitzacions de %1$s i amics a %2$s!" #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "No s'ha trobat el mètode API!" @@ -229,8 +246,9 @@ msgstr "No s'ha pogut actualitzar l'usuari." #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "L'usuari no té perfil." @@ -255,7 +273,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 #, fuzzy @@ -376,7 +394,7 @@ msgstr "No s'ha pogut determinar l'usuari d'origen." msgid "Could not find target user." msgstr "No es pot trobar cap estatus." -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." @@ -384,62 +402,62 @@ msgstr "" "El sobrenom ha de tenir només lletres minúscules i números i no pot tenir " "espais." -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Aquest sobrenom ja existeix. Prova un altre. " -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Sobrenom no vàlid." -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "La pàgina personal no és un URL vàlid." -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "El teu nom és massa llarg (màx. 255 caràcters)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "La descripció és massa llarga (màx. %d caràcters)." -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "La ubicació és massa llarga (màx. 255 caràcters)." -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "Hi ha massa àlies! Màxim %d." -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, php-format msgid "Invalid alias: \"%s\"" msgstr "L'àlies no és vàlid «%s»" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "L'àlies «%s» ja està en ús. Proveu-ne un altre." -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "L'àlies no pot ser el mateix que el sobrenom." @@ -450,15 +468,15 @@ msgstr "L'àlies no pot ser el mateix que el sobrenom." msgid "Group not found!" msgstr "No s'ha trobat el grup!" -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 msgid "You are already a member of that group." msgstr "Ja sou membre del grup." -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "L'administrador us ha blocat del grup." -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, fuzzy, php-format msgid "Could not join user %1$s to group %2$s." msgstr "No s'ha pogut afegir l'usuari %s al grup %s." @@ -467,7 +485,7 @@ msgstr "No s'ha pogut afegir l'usuari %s al grup %s." msgid "You are not a member of this group." msgstr "No sou un membre del grup." -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, fuzzy, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "No s'ha pogut suprimir l'usuari %s del grup %s." @@ -499,7 +517,7 @@ msgstr "Mida invàlida." #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -545,7 +563,7 @@ msgstr "" #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -568,13 +586,13 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 msgid "Account" msgstr "Compte" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -660,12 +678,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%s actualitzacions favorites per %s / %s." #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "%s línia temporal" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -701,7 +719,7 @@ msgstr "Respostes a %s" msgid "Repeats of %s" msgstr "Repeticions de %s" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Aviso etiquetats amb %s" @@ -722,8 +740,7 @@ msgstr "No existeix l'adjunció." #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "Cap sobrenom." @@ -735,7 +752,7 @@ msgstr "Cap mida." msgid "Invalid size." msgstr "Mida invàlida." -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Avatar" @@ -753,30 +770,30 @@ msgid "User without matching profile" msgstr "Usuari sense perfil coincident" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Configuració de l'avatar" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Original" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Vista prèvia" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 msgid "Delete" msgstr "Suprimeix" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "Puja" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "Retalla" @@ -786,7 +803,7 @@ msgstr "" "Selecciona un quadrat de l'àrea de la imatge que vols que sigui el teu " "avatar." -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "S'ha perdut el nostre fitxer de dades." @@ -818,22 +835,22 @@ msgid "" msgstr "" #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "No" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 msgid "Do not block this user" msgstr "No bloquis l'usuari" #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Sí" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 msgid "Block this user" msgstr "Bloquejar aquest usuari" @@ -841,40 +858,44 @@ msgstr "Bloquejar aquest usuari" msgid "Failed to save block information." msgstr "Error al guardar la informació del block." -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 msgid "No such group." msgstr "No s'ha trobat el grup." -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, php-format msgid "%s blocked profiles" msgstr "%s perfils blocats" -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, fuzzy, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%s perfils blocats, pàgina %d" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 #, fuzzy msgid "A list of the users blocked from joining this group." msgstr "La llista dels usuaris d'aquest grup." -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 msgid "Unblock user from group" msgstr "Desbloca l'usuari del grup" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "Desbloca" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 msgid "Unblock this user" msgstr "Desbloca l'usuari" @@ -953,7 +974,7 @@ msgstr "No sou un membre del grup." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "Ha ocorregut algun problema amb la teva sessió." @@ -979,12 +1000,13 @@ msgstr "No es pot esborrar la notificació." msgid "Delete this application" msgstr "Eliminar aquesta nota" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "No heu iniciat una sessió." @@ -1015,7 +1037,7 @@ msgstr "N'estàs segur que vols eliminar aquesta notificació?" msgid "Do not delete this notice" msgstr "No es pot esborrar la notificació." -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 msgid "Delete this notice" msgstr "Eliminar aquesta nota" @@ -1032,18 +1054,18 @@ msgstr "No pots eliminar l'estatus d'un altre usuari." msgid "Delete user" msgstr "Suprimeix l'usuari" -#: actions/deleteuser.php:135 +#: 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 "" -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 msgid "Delete this user" msgstr "Suprimeix l'usuari" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "Disseny" @@ -1144,6 +1166,17 @@ msgstr "" msgid "Reset back to default" msgstr "" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "Guardar" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "Desa el disseny" @@ -1246,30 +1279,30 @@ msgstr "Editar el grup %s" msgid "You must be logged in to create a group." msgstr "Has d'haver entrat per crear un grup." -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: actions/editgroup.php:107 actions/editgroup.php:172 +#: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 #, fuzzy msgid "You must be an admin to edit the group." msgstr "Has de ser admin per editar aquest grup" -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "Utilitza aquest formulari per editar el grup." -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, php-format msgid "description is too long (max %d chars)." msgstr "la descripció és massa llarga (màx. %d caràcters)." -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 msgid "Could not update group." msgstr "No s'ha pogut actualitzar el grup." -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 msgid "Could not create aliases." msgstr "No s'han pogut crear els àlies." -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 msgid "Options saved." msgstr "Configuració guardada." @@ -1613,7 +1646,7 @@ msgstr "Un usuari t'ha bloquejat." msgid "User is not a member of group." msgstr "L'usuari no és membre del grup." -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 msgid "Block user from group" msgstr "Bloca l'usuari del grup" @@ -1648,11 +1681,11 @@ msgstr "No ID" msgid "You must be logged in to edit a group." msgstr "Heu d'iniciar una sessió per editar un grup." -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 msgid "Group design" msgstr "Disseny de grup" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." @@ -1660,77 +1693,77 @@ msgstr "" "Personalitzeu l'aspecte del vostre grup amb una imatge de fons i una paleta " "de colors de la vostra elecció." -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 msgid "Couldn't update your design." msgstr "No s'ha pogut actualitzar el vostre disseny." -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 msgid "Design preferences saved." msgstr "S'han desat les preferències de disseny." -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "Logo del grup" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, fuzzy, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "Pots pujar una imatge de logo per al grup." -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 #, fuzzy msgid "User without matching profile." msgstr "Usuari sense perfil coincident" -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Trieu una àrea quadrada de la imatge perquè en sigui el logotip." -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 msgid "Logo updated." msgstr "Logo actualitzat." -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 msgid "Failed updating logo." msgstr "Error en actualitzar logo." -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "%s membre/s en el grup" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, fuzzy, php-format msgid "%1$s group members, page %2$d" msgstr "%s membre/s en el grup, pàgina %d" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "La llista dels usuaris d'aquest grup." -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "Admin" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "Bloca" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 msgid "Make user an admin of the group" msgstr "Fes l'usuari un administrador del grup" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make Admin" msgstr "Fes-lo administrador" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "Fes l'usuari administrador" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Actualitzacions dels membres de %1$s el %2$s!" @@ -1989,16 +2022,19 @@ msgstr "Missatge personal" msgid "Optionally add a personal message to the invitation." msgstr "Opcionalment pots afegir un missatge a la invitació." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" msgstr "Envia" -#: actions/invite.php:226 +#: actions/invite.php:227 #, fuzzy, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s t'ha convidat us ha convidat a unir-te al grup %2$s" -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2059,7 +2095,12 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Has d'haver entrat per participar en un grup." -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "Cap sobrenom." + +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s s'ha unit al grup %2$s" @@ -2068,11 +2109,11 @@ msgstr "%1$s s'ha unit al grup %2$s" msgid "You must be logged in to leave a group." msgstr "Has d'haver entrat per a poder marxar d'un grup." -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 msgid "You are not a member of that group." msgstr "No ets membre d'aquest grup." -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, fuzzy, php-format msgid "%1$s left group %2$s" msgstr "%s ha abandonat el grup %s" @@ -2090,8 +2131,7 @@ msgstr "Nom d'usuari o contrasenya incorrectes." msgid "Error setting user. You are probably not authorized." msgstr "No autoritzat." -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "Inici de sessió" @@ -2213,9 +2253,9 @@ msgid "Message sent" msgstr "S'ha enviat el missatge" #: actions/newmessage.php:185 -#, fuzzy, php-format +#, php-format msgid "Direct message to %s sent." -msgstr "Missatge directe per a %s enviat" +msgstr "S'ha enviat un missatge directe a %s." #: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" @@ -2293,9 +2333,8 @@ msgid "You must be logged in to list your applications." msgstr "Heu d'iniciar una sessió per editar un grup." #: actions/oauthappssettings.php:74 -#, fuzzy msgid "OAuth applications" -msgstr "Altres opcions" +msgstr "Aplicacions OAuth" #: actions/oauthappssettings.php:85 msgid "Applications you have registered" @@ -2315,9 +2354,8 @@ msgid "You have allowed the following applications to access you account." msgstr "" #: actions/oauthconnectionssettings.php:175 -#, fuzzy msgid "You are not a user of that application." -msgstr "No ets membre d'aquest grup." +msgstr "No sou usuari de l'aplicació." #: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " @@ -2349,8 +2387,8 @@ msgstr "tipus de contingut " msgid "Only " msgstr "Només " -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "Format de data no suportat." @@ -2363,9 +2401,8 @@ msgid "Notice Search" msgstr "Cerca de notificacions" #: actions/othersettings.php:60 -#, fuzzy msgid "Other settings" -msgstr "Altres configuracions" +msgstr "Altres paràmetres" #: actions/othersettings.php:71 msgid "Manage various other options." @@ -2397,9 +2434,8 @@ msgstr "" "El servei d'auto-escurçament d'URL és massa llarga (màx. 50 caràcters)." #: actions/otp.php:69 -#, fuzzy msgid "No user ID specified." -msgstr "No s'ha especificat cap grup." +msgstr "No s'ha especificat cap ID d'usuari." #: actions/otp.php:83 #, fuzzy @@ -2498,7 +2534,7 @@ msgstr "No es pot guardar la nova contrasenya." msgid "Password saved." msgstr "Contrasenya guardada." -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "Camins" @@ -2531,7 +2567,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 msgid "Site" msgstr "Lloc" @@ -2706,7 +2741,7 @@ msgstr "" "1-64 lletres en minúscula o números, sense signes de puntuació o espais" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "Nom complet" @@ -2735,7 +2770,7 @@ msgid "Bio" msgstr "Biografia" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2819,7 +2854,8 @@ msgstr "No s'ha pogut guardar el perfil." msgid "Couldn't save tags." msgstr "No s'han pogut guardar les etiquetes." -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "Configuració guardada." @@ -2832,28 +2868,28 @@ msgstr "Més enllà del límit de la pàgina (%s)" msgid "Could not retrieve public stream." msgstr "No s'ha pogut recuperar la conversa pública." -#: actions/public.php:129 +#: actions/public.php:130 #, php-format msgid "Public timeline, page %d" msgstr "Línia temporal pública, pàgina %d" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "Línia temporal pública" -#: actions/public.php:159 +#: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" msgstr "Flux de canal públic (RSS 1.0)" -#: actions/public.php:163 +#: actions/public.php:164 msgid "Public Stream Feed (RSS 2.0)" msgstr "Flux de canal públic (RSS 2.0)" -#: actions/public.php:167 +#: actions/public.php:168 msgid "Public Stream Feed (Atom)" msgstr "Flux de canal públic (Atom)" -#: actions/public.php:187 +#: actions/public.php:188 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " @@ -2862,11 +2898,11 @@ msgstr "" "Aquesta és la línia temporal pública de %%site.name%%, però ningú no hi ha " "enviat res encara." -#: actions/public.php:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "Sigueu el primer en escriure-hi!" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" @@ -2874,7 +2910,7 @@ msgstr "" "Per què no [registreu un compte](%%action.register%%) i sou el primer en " "escriure-hi!" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2883,7 +2919,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:246 +#: actions/public.php:247 #, fuzzy, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3060,8 +3096,7 @@ msgstr "El codi d'invitació no és vàlid." msgid "Registration successful" msgstr "Registre satisfactori" -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "Registre" @@ -3252,7 +3287,7 @@ msgstr "No pots registrar-te si no estàs d'acord amb la llicència." msgid "You already repeated that notice." msgstr "Ja heu blocat l'usuari." -#: actions/repeat.php:114 lib/noticelist.php:656 +#: actions/repeat.php:114 lib/noticelist.php:674 msgid "Repeated" msgstr "Repetit" @@ -3260,33 +3295,33 @@ msgstr "Repetit" msgid "Repeated!" msgstr "Repetit!" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "Respostes a %s" -#: actions/replies.php:127 +#: actions/replies.php:128 #, fuzzy, php-format msgid "Replies to %1$s, page %2$d" msgstr "Respostes a %1$s el %2$s!" -#: actions/replies.php:144 +#: actions/replies.php:145 #, fuzzy, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "Feed d'avisos de %s" -#: actions/replies.php:151 +#: actions/replies.php:152 #, fuzzy, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "Feed d'avisos de %s" -#: actions/replies.php:158 +#: actions/replies.php:159 #, php-format msgid "Replies feed for %s (Atom)" msgstr "Feed d'avisos de %s" -#: actions/replies.php:198 +#: actions/replies.php:199 #, fuzzy, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " @@ -3295,14 +3330,14 @@ msgstr "" "Aquesta és la línia temporal de %s i amics, però ningú hi ha enviat res " "encara." -#: actions/replies.php:203 +#: 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:205 +#: actions/replies.php:206 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3330,7 +3365,6 @@ msgid "User is already sandboxed." msgstr "Un usuari t'ha bloquejat." #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "Sessions" @@ -3356,7 +3390,7 @@ msgid "Turn on debugging output for sessions." msgstr "Activa la sortida de depuració per a les sessions." #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Desa els paràmetres del lloc" @@ -3389,7 +3423,7 @@ msgstr "Paginació" msgid "Description" msgstr "Descripció" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Estadístiques" @@ -3452,35 +3486,35 @@ msgstr "%s's notes favorites" msgid "Could not retrieve favorite notices." msgstr "No s'han pogut recuperar els avisos preferits." -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "Feed per a amics de %s" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "Feed per a amics de %s" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" msgstr "Feed per a amics de %s" -#: actions/showfavorites.php:205 +#: 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:207 +#: 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 :)" msgstr "" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3488,7 +3522,7 @@ msgid "" "would add to their favorites :)" msgstr "" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "És una forma de compartir allò que us agrada." @@ -3502,67 +3536,67 @@ msgstr "%s grup" msgid "%1$s group, page %2$d" msgstr "%s membre/s en el grup, pàgina %d" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 msgid "Group profile" msgstr "Perfil del grup" -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "URL" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 msgid "Note" msgstr "Avisos" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "Àlies" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "Accions del grup" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Feed d'avisos del grup %s" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Feed d'avisos del grup %s" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "Feed d'avisos del grup %s" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, php-format msgid "FOAF for %s group" msgstr "Safata de sortida per %s" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 msgid "Members" msgstr "Membres" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Cap)" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "Tots els membres" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 msgid "Created" msgstr "S'ha creat" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3572,7 +3606,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:454 +#: actions/showgroup.php:462 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3583,7 +3617,7 @@ msgstr "" "**%s** és un grup d'usuaris a %%%%site.name%%%%, un servei de [microblogging]" "(http://ca.wikipedia.org/wiki/Microblogging)" -#: actions/showgroup.php:482 +#: actions/showgroup.php:490 msgid "Admins" msgstr "Administradors" @@ -4054,22 +4088,22 @@ msgstr "Jabber" msgid "SMS" msgstr "SMS" -#: actions/tag.php:68 +#: actions/tag.php:69 #, fuzzy, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "Usuaris que s'han etiquetat %s - pàgina %d" -#: actions/tag.php:86 +#: actions/tag.php:87 #, fuzzy, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "Feed d'avisos de %s" -#: actions/tag.php:92 +#: actions/tag.php:93 #, fuzzy, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "Feed d'avisos de %s" -#: actions/tag.php:98 +#: actions/tag.php:99 #, fuzzy, php-format msgid "Notice feed for tag %s (Atom)" msgstr "Feed d'avisos de %s" @@ -4126,7 +4160,7 @@ msgstr "" msgid "No such tag." msgstr "No existeix aquesta etiqueta." -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "Mètode API en construcció." @@ -4157,70 +4191,72 @@ msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +#, fuzzy +msgctxt "TITLE" msgid "User" msgstr "Usuari" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "" -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "" -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "" -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "Perfil" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "Límit de la biografia" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "Límit màxim de la biografia d'un perfil (en caràcters)." -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 msgid "New users" msgstr "Usuaris nous" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "Benvinguda als usuaris nous" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "" -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 msgid "Default subscription" msgstr "Subscripció per defecte" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 msgid "Automatically subscribe new users to this user." msgstr "Subscriviu automàticament els usuaris nous a aquest usuari." -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 msgid "Invitations" msgstr "Invitacions" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 msgid "Invitations enabled" msgstr "S'han habilitat les invitacions" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "" @@ -4406,7 +4442,7 @@ msgstr "" msgid "Plugins" msgstr "Connectors" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 #, fuzzy msgid "Version" msgstr "Sessions" @@ -4448,6 +4484,11 @@ msgstr "No s'ha pogut actualitzar el grup." msgid "Group leave failed." msgstr "Perfil del grup" +#: classes/Local_group.php:41 +#, fuzzy +msgid "Could not update local group." +msgstr "No s'ha pogut actualitzar el grup." + #: classes/Login_token.php:76 #, fuzzy, php-format msgid "Could not create login token for %s" @@ -4465,28 +4506,28 @@ msgstr "No s'ha pogut inserir el missatge." msgid "Could not update message with new URI." msgstr "No s'ha pogut inserir el missatge amb la nova URI." -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "Hashtag de l'error de la base de dades:%s" -#: classes/Notice.php:222 +#: classes/Notice.php:239 #, fuzzy msgid "Problem saving notice. Too long." msgstr "Problema en guardar l'avís." -#: classes/Notice.php:226 +#: classes/Notice.php:243 msgid "Problem saving notice. Unknown user." msgstr "Problema al guardar la notificació. Usuari desconegut." -#: classes/Notice.php:231 +#: classes/Notice.php:248 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "Masses notificacions massa ràpid; pren un respir i publica de nou en uns " "minuts." -#: classes/Notice.php:237 +#: classes/Notice.php:254 #, fuzzy msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " @@ -4495,20 +4536,20 @@ msgstr "" "Masses notificacions massa ràpid; pren un respir i publica de nou en uns " "minuts." -#: classes/Notice.php:243 +#: classes/Notice.php:260 msgid "You are banned from posting notices on this site." msgstr "Ha estat bandejat de publicar notificacions en aquest lloc." -#: classes/Notice.php:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "Problema en guardar l'avís." -#: classes/Notice.php:882 +#: classes/Notice.php:911 #, fuzzy msgid "Problem saving group inbox." msgstr "Problema en guardar l'avís." -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4539,19 +4580,29 @@ msgstr "No s'ha pogut eliminar la subscripció." msgid "Couldn't delete subscription." msgstr "No s'ha pogut eliminar la subscripció." -#: classes/User.php:372 +#: classes/User.php:373 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Us donem la benvinguda a %1$s, @%2$s!" -#: classes/User_group.php:423 +#: classes/User_group.php:462 msgid "Could not create group." msgstr "No s'ha pogut crear el grup." -#: classes/User_group.php:452 +#: classes/User_group.php:471 +#, fuzzy +msgid "Could not set group URI." +msgstr "No s'ha pogut establir la pertinença d'aquest grup." + +#: classes/User_group.php:492 msgid "Could not set group membership." msgstr "No s'ha pogut establir la pertinença d'aquest grup." +#: classes/User_group.php:506 +#, fuzzy +msgid "Could not save local group info." +msgstr "No s'ha pogut guardar la subscripció." + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "Canvieu els paràmetres del vostre perfil" @@ -4594,121 +4645,190 @@ msgstr "Pàgina sense titol" msgid "Primary site navigation" msgstr "Navegació primària del lloc" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "Inici" - -#: lib/action.php:439 +#, fuzzy +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Perfil personal i línia temporal dels amics" -#: lib/action.php:441 +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "Personal" + +#. TRANS: Tooltip for main menu option "Account" +#: lib/action.php:444 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Canviar correu electrònic, avatar, contrasenya, perfil" -#: lib/action.php:444 -msgid "Connect" -msgstr "Connexió" +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "Compte" -#: lib/action.php:444 +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 #, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" msgstr "No s'ha pogut redirigir al servidor: %s" -#: lib/action.php:448 +#: lib/action.php:453 +#, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "Connexió" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Canvia la configuració del lloc" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" -msgstr "Convida" +#: lib/action.php:460 +#, fuzzy +msgctxt "MENU" +msgid "Admin" +msgstr "Admin" -#: lib/action.php:453 lib/subgroupnav.php:106 -#, php-format +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 +#, fuzzy, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Convidar amics i companys perquè participin a %s" -#: lib/action.php:458 -msgid "Logout" -msgstr "Finalitza la sessió" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "Convida" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +#, fuzzy +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Finalitza la sessió del lloc" -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "Finalitza la sessió" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 +#, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "Crea un compte" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "Registre" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +#, fuzzy +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Inicia una sessió al lloc" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "Ajuda" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "Inici de sessió" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 +#, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "Ajuda'm" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "Cerca" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "Ajuda" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +#, fuzzy +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Cerca gent o text" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "Cerca" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 msgid "Site notice" msgstr "Avís del lloc" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "Vistes locals" -#: lib/action.php:625 +#: lib/action.php:656 msgid "Page notice" msgstr "Notificació pàgina" -#: lib/action.php:727 +#: lib/action.php:758 msgid "Secondary site navigation" msgstr "Navegació del lloc secundària" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "Ajuda" + +#: lib/action.php:765 msgid "About" msgstr "Quant a" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "Preguntes més freqüents" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "Privadesa" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "Font" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "Contacte" -#: lib/action.php:751 +#: lib/action.php:782 msgid "Badge" msgstr "Insígnia" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "Llicència del programari StatusNet" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4717,12 +4837,12 @@ msgstr "" "**%%site.name%%** és un servei de microblogging de [%%site.broughtby%%**](%%" "site.broughtbyurl%%)." -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** és un servei de microblogging." -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4733,112 +4853,165 @@ msgstr "" "%s, disponible sota la [GNU Affero General Public License](http://www.fsf." "org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:801 +#: lib/action.php:832 msgid "Site content license" msgstr "Llicència de contingut del lloc" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "Tot " -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "llicència." -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "Paginació" -#: lib/action.php:1141 +#: lib/action.php:1172 msgid "After" msgstr "Posteriors" -#: lib/action.php:1149 +#: lib/action.php:1180 msgid "Before" msgstr "Anteriors" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." msgstr "No podeu fer canvis al lloc." -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 #, fuzzy msgid "Changes to that panel are not allowed." msgstr "Registre no permès." -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 #, fuzzy msgid "showForm() not implemented." msgstr "Comanda encara no implementada." -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 #, fuzzy msgid "saveSettings() not implemented." msgstr "Comanda encara no implementada." -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 #, fuzzy msgid "Unable to delete design setting." msgstr "No s'ha pogut guardar la teva configuració de Twitter!" -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 msgid "Basic site configuration" msgstr "Configuració bàsica del lloc" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "Lloc" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 msgid "Design configuration" msgstr "Configuració del disseny" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "Disseny" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 #, fuzzy msgid "User configuration" msgstr "Configuració dels camins" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +#, fuzzy +msgctxt "MENU" +msgid "User" +msgstr "Usuari" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 #, fuzzy msgid "Access configuration" msgstr "Configuració del disseny" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "Accés" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 msgid "Paths configuration" msgstr "Configuració dels camins" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +#, fuzzy +msgctxt "MENU" +msgid "Paths" +msgstr "Camins" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 #, fuzzy msgid "Sessions configuration" msgstr "Configuració del disseny" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "Sessions" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4933,11 +5106,11 @@ msgstr "" msgid "Tags for this attachment" msgstr "Etiquetes de l'adjunció" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 msgid "Password changing failed" msgstr "El canvi de contrasenya ha fallat" -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 #, fuzzy msgid "Password changing is not allowed" msgstr "Contrasenya canviada." @@ -5217,19 +5390,19 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:148 msgid "No configuration file found. " msgstr "No s'ha trobat cap fitxer de configuració. " -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "Podeu voler executar l'instal·lador per a corregir-ho." -#: lib/common.php:140 +#: lib/common.php:152 msgid "Go to the installer." msgstr "Vés a l'instal·lador." @@ -5417,23 +5590,23 @@ msgstr "Error del sistema en pujar el fitxer." msgid "Not an image or corrupt file." msgstr "No és una imatge o és un fitxer corrupte." -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "Format d'imatge no suportat." -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Hem perdut el nostre arxiu." -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "Tipus de fitxer desconegut" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "MB" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "kB" @@ -5743,6 +5916,12 @@ msgstr "A" msgid "Available characters" msgstr "Caràcters disponibles" +#: lib/messageform.php:178 lib/noticeform.php:236 +#, fuzzy +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "Envia" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Enviar notificació" @@ -5802,23 +5981,23 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 msgid "in context" msgstr "en context" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 msgid "Repeated by" msgstr "Repetit per" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 msgid "Reply to this notice" msgstr "respondre a aquesta nota" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 msgid "Reply" msgstr "Respon" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 #, fuzzy msgid "Notice repeated" msgstr "Notificació publicada" @@ -5868,6 +6047,10 @@ msgstr "Respostes" msgid "Favorites" msgstr "Preferits" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "Usuari" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Safata d'entrada" @@ -5960,7 +6143,7 @@ msgstr "Repeteix l'avís" msgid "Repeat this notice" msgstr "Repeteix l'avís" -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "" @@ -5982,6 +6165,10 @@ msgstr "Cerca al lloc" msgid "Keyword(s)" msgstr "Paraules clau" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "Cerca" + #: lib/searchaction.php:162 msgid "Search help" msgstr "Ajuda de la cerca" @@ -6033,6 +6220,15 @@ msgstr "Persones subscrites a %s" msgid "Groups %s is a member of" msgstr "%s grups són membres de" +#: lib/subgroupnav.php:105 +msgid "Invite" +msgstr "Convida" + +#: lib/subgroupnav.php:106 +#, php-format +msgid "Invite friends and colleagues to join you on %s" +msgstr "Convidar amics i companys perquè participin a %s" + #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 msgid "People Tagcloud as self-tagged" @@ -6104,47 +6300,47 @@ msgstr "Missatge" msgid "Moderate" msgstr "Modera" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "fa pocs segons" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "fa un minut" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "fa %d minuts" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "fa una hora" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "fa %d hores" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "fa un dia" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "fa %d dies" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "fa un mes" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "fa %d mesos" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "fa un any" diff --git a/locale/cs/LC_MESSAGES/statusnet.po b/locale/cs/LC_MESSAGES/statusnet.po index dd51424e6..9137d3708 100644 --- a/locale/cs/LC_MESSAGES/statusnet.po +++ b/locale/cs/LC_MESSAGES/statusnet.po @@ -9,82 +9,88 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:50:18+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:02:27+0000\n" "Language-Team: Czech\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: cs\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n< =4) ? 1 : 2 ;\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 #, fuzzy msgid "Access" msgstr "Přijmout" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 #, fuzzy msgid "Site access settings" msgstr "Nastavení" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 #, fuzzy msgid "Registration" msgstr "Registrovat" -#: actions/accessadminpanel.php:161 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 +msgid "Prohibit anonymous users (not logged in) from viewing site?" +msgstr "" + +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. +#: actions/accessadminpanel.php:167 #, fuzzy +msgctxt "LABEL" msgid "Private" msgstr "Soukromí" -#: actions/accessadminpanel.php:163 -msgid "Prohibit anonymous users (not logged in) from viewing site?" +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 +msgid "Make registration invitation only." msgstr "" -#: actions/accessadminpanel.php:167 +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 msgid "Invite only" msgstr "" -#: actions/accessadminpanel.php:169 -msgid "Make registration invitation only." +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 +msgid "Disable new registrations." msgstr "" -#: actions/accessadminpanel.php:173 +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 #, fuzzy msgid "Closed" msgstr "Žádný takový uživatel." -#: actions/accessadminpanel.php:175 -msgid "Disable new registrations." -msgstr "" - -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "Uložit" - -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 #, fuzzy msgid "Save access settings" msgstr "Nastavení" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "Uložit" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 #, fuzzy msgid "No such page" msgstr "Žádné takové oznámení." -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -98,72 +104,82 @@ msgstr "Žádné takové oznámení." #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "Žádný takový uživatel." -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, fuzzy, php-format msgid "%1$s and friends, page %2$d" msgstr "%s a přátelé" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s a přátelé" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, fuzzy, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Feed přítel uživatele: %s" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, fuzzy, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Feed přítel uživatele: %s" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, fuzzy, php-format msgid "Feed for friends of %s (Atom)" msgstr "Feed přítel uživatele: %s" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 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." msgstr "" -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 #, fuzzy msgid "You and friends" msgstr "%s a přátelé" @@ -182,20 +198,20 @@ msgstr "" #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "Potvrzující kód nebyl nalezen" @@ -229,8 +245,9 @@ msgstr "Nelze aktualizovat uživatele" #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "Uživatel nemá profil." @@ -255,7 +272,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: 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." @@ -372,68 +389,68 @@ msgstr "Nelze aktualizovat uživatele" msgid "Could not find target user." msgstr "Nelze aktualizovat uživatele" -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "Přezdívka může obsahovat pouze malá písmena a čísla bez mezer" -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Přezdívku již někdo používá. Zkuste jinou" -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Není platnou přezdívkou." -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Stránka není platnou URL." -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Jméno je moc dlouhé (maximální délka je 255 znaků)" -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, fuzzy, php-format msgid "Description is too long (max %d chars)." msgstr "Text je příliš dlouhý (maximální délka je 140 zanků)" -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Umístění příliš dlouhé (maximálně 255 znaků)" -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "" -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, fuzzy, php-format msgid "Invalid alias: \"%s\"" msgstr "Neplatná adresa '%s'" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, fuzzy, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Přezdívku již někdo používá. Zkuste jinou" -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "" @@ -445,16 +462,16 @@ msgstr "" msgid "Group not found!" msgstr "Žádný požadavek nebyl nalezen!" -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 #, fuzzy msgid "You are already a member of that group." msgstr "Již jste přihlášen" -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "" -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, fuzzy, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Nelze přesměrovat na server: %s" @@ -464,7 +481,7 @@ msgstr "Nelze přesměrovat na server: %s" msgid "You are not a member of this group." msgstr "Neodeslal jste nám profil" -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, fuzzy, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Nelze vytvořit OpenID z: %s" @@ -496,7 +513,7 @@ msgstr "Neplatná velikost" #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -540,7 +557,7 @@ msgstr "" #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -563,14 +580,14 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 #, fuzzy msgid "Account" msgstr "O nás" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -657,12 +674,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "Mikroblog od %s" #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -698,7 +715,7 @@ msgstr "Odpovědi na %s" msgid "Repeats of %s" msgstr "Odpovědi na %s" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "" @@ -721,8 +738,7 @@ msgstr "Žádný takový dokument." #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "Žádná přezdívka." @@ -734,7 +750,7 @@ msgstr "Žádná velikost" msgid "Invalid size." msgstr "Neplatná velikost" -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Obrázek" @@ -751,31 +767,31 @@ msgid "User without matching profile" msgstr "" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 #, fuzzy msgid "Avatar settings" msgstr "Nastavení" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 msgid "Delete" msgstr "Odstranit" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "Upload" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "" @@ -783,7 +799,7 @@ msgstr "" msgid "Pick a square area of the image to be your avatar" msgstr "" -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" @@ -817,23 +833,23 @@ msgid "" msgstr "" #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "Ne" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 #, fuzzy msgid "Do not block this user" msgstr "Žádný takový uživatel." #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Ano" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 msgid "Block this user" msgstr "Zablokovat tohoto uživatele" @@ -841,41 +857,45 @@ msgstr "Zablokovat tohoto uživatele" msgid "Failed to save block information." msgstr "" -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 #, fuzzy msgid "No such group." msgstr "Žádné takové oznámení." -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, fuzzy, php-format msgid "%s blocked profiles" msgstr "Uživatel nemá profil." -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, fuzzy, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%s a přátelé" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." msgstr "" -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 #, fuzzy msgid "Unblock user from group" msgstr "Žádný takový uživatel." -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 #, fuzzy msgid "Unblock this user" msgstr "Žádný takový uživatel." @@ -956,7 +976,7 @@ msgstr "Neodeslal jste nám profil" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "" @@ -982,12 +1002,13 @@ msgstr "Žádné takové oznámení." msgid "Delete this application" msgstr "Odstranit toto oznámení" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Nepřihlášen" @@ -1015,7 +1036,7 @@ msgstr "" msgid "Do not delete this notice" msgstr "Žádné takové oznámení." -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 msgid "Delete this notice" msgstr "Odstranit toto oznámení" @@ -1033,18 +1054,18 @@ msgstr "Můžete použít místní odebírání." msgid "Delete user" msgstr "" -#: actions/deleteuser.php:135 +#: 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 "" -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 msgid "Delete this user" msgstr "Odstranit tohoto uživatele" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "Vzhled" @@ -1151,6 +1172,17 @@ msgstr "" msgid "Reset back to default" msgstr "" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "Uložit" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "" @@ -1250,31 +1282,31 @@ msgstr "Upravit %s skupinu" msgid "You must be logged in to create a group." msgstr "" -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: 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 "" -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "" -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, fuzzy, php-format msgid "description is too long (max %d chars)." msgstr "Text je příliš dlouhý (maximální délka je 140 zanků)" -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 #, fuzzy msgid "Could not update group." msgstr "Nelze aktualizovat uživatele" -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 #, fuzzy msgid "Could not create aliases." msgstr "Nelze uložin informace o obrázku" -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 msgid "Options saved." msgstr "Nastavení uloženo." @@ -1618,7 +1650,7 @@ msgstr "Uživatel nemá profil." msgid "User is not a member of group." msgstr "Neodeslal jste nám profil" -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 #, fuzzy msgid "Block user from group" msgstr "Žádný takový uživatel." @@ -1654,91 +1686,91 @@ msgstr "Žádné id" msgid "You must be logged in to edit a group." msgstr "" -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 msgid "Group design" msgstr "" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." msgstr "" -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 #, fuzzy msgid "Couldn't update your design." msgstr "Nelze aktualizovat uživatele" -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 #, fuzzy msgid "Design preferences saved." msgstr "Nastavení uloženo" -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "Logo skupiny" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "" -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 #, fuzzy msgid "User without matching profile." msgstr "Uživatel nemá profil." -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "" -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 #, fuzzy msgid "Logo updated." msgstr "Obrázek nahrán" -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 #, fuzzy msgid "Failed updating logo." msgstr "Nahrávání obrázku selhalo." -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, php-format msgid "%1$s group members, page %2$d" msgstr "" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "" -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 msgid "Make user an admin of the group" msgstr "" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make Admin" msgstr "" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, fuzzy, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Mikroblog od %s" @@ -1992,16 +2024,19 @@ msgstr "" msgid "Optionally add a personal message to the invitation." msgstr "" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" msgstr "Odeslat" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "" -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2036,7 +2071,12 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "" -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "Žádná přezdívka." + +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "" @@ -2045,12 +2085,12 @@ msgstr "" msgid "You must be logged in to leave a group." msgstr "" -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 #, fuzzy msgid "You are not a member of that group." msgstr "Neodeslal jste nám profil" -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, fuzzy, php-format msgid "%1$s left group %2$s" msgstr "%1 statusů na %2" @@ -2068,8 +2108,7 @@ msgstr "Neplatné jméno nebo heslo" msgid "Error setting user. You are probably not authorized." msgstr "Neautorizován." -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "Přihlásit" @@ -2318,8 +2357,8 @@ msgstr "Připojit" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "" @@ -2467,7 +2506,7 @@ msgstr "Nelze uložit nové heslo" msgid "Password saved." msgstr "Heslo uloženo" -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "" @@ -2500,7 +2539,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 msgid "Site" msgstr "" @@ -2683,7 +2721,7 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 znaků nebo čísel, bez teček, čárek a mezer" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "Celé jméno" @@ -2711,7 +2749,7 @@ msgid "Bio" msgstr "O mě" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2793,7 +2831,8 @@ msgstr "Nelze uložit profil" msgid "Couldn't save tags." msgstr "Nelze uložit profil" -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "Nastavení uloženo" @@ -2806,48 +2845,48 @@ msgstr "" msgid "Could not retrieve public stream." msgstr "" -#: actions/public.php:129 +#: actions/public.php:130 #, fuzzy, php-format msgid "Public timeline, page %d" msgstr "Veřejné zprávy" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "Veřejné zprávy" -#: actions/public.php:159 +#: actions/public.php:160 #, fuzzy msgid "Public Stream Feed (RSS 1.0)" msgstr "Veřejný Stream Feed" -#: actions/public.php:163 +#: actions/public.php:164 #, fuzzy msgid "Public Stream Feed (RSS 2.0)" msgstr "Veřejný Stream Feed" -#: actions/public.php:167 +#: actions/public.php:168 #, fuzzy msgid "Public Stream Feed (Atom)" msgstr "Veřejný Stream Feed" -#: actions/public.php:187 +#: 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:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2856,7 +2895,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:246 +#: actions/public.php:247 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3029,8 +3068,7 @@ msgstr "Chyba v ověřovacím kódu" msgid "Registration successful" msgstr "Registrace úspěšná" -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "Registrovat" @@ -3201,7 +3239,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:656 +#: actions/repeat.php:114 lib/noticelist.php:674 #, fuzzy msgid "Repeated" msgstr "Vytvořit" @@ -3211,47 +3249,47 @@ msgstr "Vytvořit" msgid "Repeated!" msgstr "Vytvořit" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "Odpovědi na %s" -#: actions/replies.php:127 +#: actions/replies.php:128 #, fuzzy, php-format msgid "Replies to %1$s, page %2$d" msgstr "Odpovědi na %s" -#: actions/replies.php:144 +#: actions/replies.php:145 #, fuzzy, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "Feed sdělení pro %s" -#: actions/replies.php:151 +#: actions/replies.php:152 #, fuzzy, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "Feed sdělení pro %s" -#: actions/replies.php:158 +#: actions/replies.php:159 #, fuzzy, php-format msgid "Replies feed for %s (Atom)" msgstr "Feed sdělení pro %s" -#: actions/replies.php:198 +#: actions/replies.php:199 #, 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 "" -#: actions/replies.php:203 +#: 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:205 +#: actions/replies.php:206 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3279,7 +3317,6 @@ msgid "User is already sandboxed." msgstr "Uživatel nemá profil." #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "" @@ -3304,7 +3341,7 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 #, fuzzy msgid "Save site settings" msgstr "Nastavení" @@ -3339,7 +3376,7 @@ msgstr "Umístění" msgid "Description" msgstr "Odběry" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Statistiky" @@ -3400,35 +3437,35 @@ msgstr "%s a přátelé" msgid "Could not retrieve favorite notices." msgstr "" -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, fuzzy, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "Feed přítel uživatele: %s" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, fuzzy, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "Feed přítel uživatele: %s" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, fuzzy, php-format msgid "Feed for favorites of %s (Atom)" msgstr "Feed přítel uživatele: %s" -#: actions/showfavorites.php:205 +#: 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:207 +#: 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 :)" msgstr "" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3436,7 +3473,7 @@ msgid "" "would add to their favorites :)" msgstr "" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "" @@ -3450,70 +3487,70 @@ msgstr "" msgid "%1$s group, page %2$d" msgstr "Všechny odběry" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 #, fuzzy msgid "Group profile" msgstr "Žádné takové oznámení." -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 msgid "Note" msgstr "Poznámka" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Feed sdělení pro %s" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Feed sdělení pro %s" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "Feed sdělení pro %s" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, fuzzy, php-format msgid "FOAF for %s group" msgstr "Feed sdělení pro %s" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 #, fuzzy msgid "Members" msgstr "Členem od" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 #, fuzzy msgid "Created" msgstr "Vytvořit" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3523,7 +3560,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:454 +#: actions/showgroup.php:462 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3532,7 +3569,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:482 +#: actions/showgroup.php:490 msgid "Admins" msgstr "" @@ -3994,22 +4031,22 @@ msgstr "Žádné Jabber ID." msgid "SMS" msgstr "" -#: actions/tag.php:68 +#: actions/tag.php:69 #, fuzzy, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "Mikroblog od %s" -#: actions/tag.php:86 +#: actions/tag.php:87 #, fuzzy, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "Feed sdělení pro %s" -#: actions/tag.php:92 +#: actions/tag.php:93 #, fuzzy, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "Feed sdělení pro %s" -#: actions/tag.php:98 +#: actions/tag.php:99 #, fuzzy, php-format msgid "Notice feed for tag %s (Atom)" msgstr "Feed sdělení pro %s" @@ -4063,7 +4100,7 @@ msgstr "" msgid "No such tag." msgstr "Žádné takové oznámení." -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "" @@ -4098,73 +4135,74 @@ msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +msgctxt "TITLE" msgid "User" msgstr "" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "" -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "" -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "" -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "Profil" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "" -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 msgid "New users" msgstr "" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "" -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 #, fuzzy msgid "Default subscription" msgstr "Všechny odběry" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 #, fuzzy msgid "Automatically subscribe new users to this user." msgstr "Odběr autorizován" -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 #, fuzzy msgid "Invitations" msgstr "Umístění" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 msgid "Invitations enabled" msgstr "" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "" @@ -4351,7 +4389,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 #, fuzzy msgid "Version" msgstr "Osobní" @@ -4392,6 +4430,11 @@ msgstr "Nelze aktualizovat uživatele" msgid "Group leave failed." msgstr "Žádné takové oznámení." +#: classes/Local_group.php:41 +#, fuzzy +msgid "Could not update local group." +msgstr "Nelze aktualizovat uživatele" + #: classes/Login_token.php:76 #, fuzzy, php-format msgid "Could not create login token for %s" @@ -4409,46 +4452,46 @@ msgstr "" msgid "Could not update message with new URI." msgstr "" -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "" -#: classes/Notice.php:222 +#: classes/Notice.php:239 #, fuzzy msgid "Problem saving notice. Too long." msgstr "Problém při ukládání sdělení" -#: classes/Notice.php:226 +#: classes/Notice.php:243 #, fuzzy msgid "Problem saving notice. Unknown user." msgstr "Problém při ukládání sdělení" -#: classes/Notice.php:231 +#: classes/Notice.php:248 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:237 +#: classes/Notice.php:254 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:243 +#: classes/Notice.php:260 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "Problém při ukládání sdělení" -#: classes/Notice.php:882 +#: classes/Notice.php:911 #, fuzzy msgid "Problem saving group inbox." msgstr "Problém při ukládání sdělení" -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4480,21 +4523,31 @@ msgstr "Nelze smazat odebírání" msgid "Couldn't delete subscription." msgstr "Nelze smazat odebírání" -#: classes/User.php:372 +#: classes/User.php:373 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:423 +#: classes/User_group.php:462 #, fuzzy msgid "Could not create group." msgstr "Nelze uložin informace o obrázku" -#: classes/User_group.php:452 +#: classes/User_group.php:471 +#, fuzzy +msgid "Could not set group URI." +msgstr "Nelze vytvořit odebírat" + +#: classes/User_group.php:492 #, fuzzy msgid "Could not set group membership." msgstr "Nelze vytvořit odebírat" +#: classes/User_group.php:506 +#, fuzzy +msgid "Could not save local group info." +msgstr "Nelze vytvořit odebírat" + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "" @@ -4538,126 +4591,188 @@ msgstr "" msgid "Primary site navigation" msgstr "" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "Domů" - -#: lib/action.php:439 +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:441 -msgid "Change your email, avatar, password, profile" -msgstr "" +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "Osobní" +#. TRANS: Tooltip for main menu option "Account" #: lib/action.php:444 -msgid "Connect" -msgstr "Připojit" +#, fuzzy +msgctxt "TOOLTIP" +msgid "Change your email, avatar, password, profile" +msgstr "Změnit heslo" -#: lib/action.php:444 +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "O nás" + +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 #, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Nelze přesměrovat na server: %s" -#: lib/action.php:448 +#: lib/action.php:453 #, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "Připojit" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Odběry" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" +#: lib/action.php:460 +msgctxt "MENU" +msgid "Admin" msgstr "" -#: lib/action.php:453 lib/subgroupnav.php:106 +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 #, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "" -#: lib/action.php:458 -msgid "Logout" -msgstr "Odhlásit" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "Neplatná velikost" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "" -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "Odhlásit" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 #, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "Vytvořit nový účet" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "Registrovat" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "Nápověda" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "Přihlásit" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 +#, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "Pomoci mi!" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "Hledat" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "Nápověda" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "Hledat" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 #, fuzzy msgid "Site notice" msgstr "Nové sdělení" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "" -#: lib/action.php:625 +#: lib/action.php:656 #, fuzzy msgid "Page notice" msgstr "Nové sdělení" -#: lib/action.php:727 +#: lib/action.php:758 #, fuzzy msgid "Secondary site navigation" msgstr "Odběry" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "Nápověda" + +#: lib/action.php:765 msgid "About" msgstr "O nás" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "FAQ" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "Soukromí" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "Zdroj" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "Kontakt" -#: lib/action.php:751 +#: lib/action.php:782 msgid "Badge" msgstr "" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4666,12 +4781,12 @@ msgstr "" "**%%site.name%%** je služba microblogů, kterou pro vás poskytuje [%%site." "broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** je služba mikroblogů." -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4682,114 +4797,165 @@ msgstr "" "dostupná pod [GNU Affero General Public License](http://www.fsf.org/" "licensing/licenses/agpl-3.0.html)." -#: lib/action.php:801 +#: lib/action.php:832 #, fuzzy msgid "Site content license" msgstr "Nové sdělení" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "" -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "" -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "" -#: lib/action.php:1141 +#: lib/action.php:1172 #, fuzzy msgid "After" msgstr "« Novější" -#: lib/action.php:1149 +#: lib/action.php:1180 #, fuzzy msgid "Before" msgstr "Starší »" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." msgstr "" -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 msgid "Changes to that panel are not allowed." msgstr "" -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 msgid "showForm() not implemented." msgstr "" -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 msgid "saveSettings() not implemented." msgstr "" -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 msgid "Unable to delete design setting." msgstr "" -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 #, fuzzy msgid "Basic site configuration" msgstr "Potvrzení emailové adresy" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "Nové sdělení" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 #, fuzzy msgid "Design configuration" msgstr "Potvrzení emailové adresy" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "Vzhled" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 #, fuzzy msgid "User configuration" msgstr "Potvrzení emailové adresy" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +msgctxt "MENU" +msgid "User" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 #, fuzzy msgid "Access configuration" msgstr "Potvrzení emailové adresy" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "Přijmout" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 #, fuzzy msgid "Paths configuration" msgstr "Potvrzení emailové adresy" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +msgctxt "MENU" +msgid "Paths" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 #, fuzzy msgid "Sessions configuration" msgstr "Potvrzení emailové adresy" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "Osobní" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4884,12 +5050,12 @@ msgstr "" msgid "Tags for this attachment" msgstr "" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 #, fuzzy msgid "Password changing failed" msgstr "Heslo uloženo" -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 #, fuzzy msgid "Password changing is not allowed" msgstr "Heslo uloženo" @@ -5176,20 +5342,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:148 #, fuzzy msgid "No configuration file found. " msgstr "Žádný potvrzující kód." -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:152 msgid "Go to the installer." msgstr "" @@ -5383,24 +5549,24 @@ msgstr "Chyba systému při nahrávání souboru" msgid "Not an image or corrupt file." msgstr "Není obrázkem, nebo jde o poškozený soubor." -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "Nepodporovaný formát obrázku." -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 #, fuzzy msgid "Lost our file." msgstr "Žádné takové oznámení." -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "" @@ -5705,6 +5871,12 @@ msgstr "" msgid "Available characters" msgstr "6 a více znaků" +#: lib/messageform.php:178 lib/noticeform.php:236 +#, fuzzy +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "Odeslat" + #: lib/noticeform.php:160 #, fuzzy msgid "Send a notice" @@ -5764,26 +5936,26 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 #, fuzzy msgid "in context" msgstr "Žádný obsah!" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 #, fuzzy msgid "Repeated by" msgstr "Vytvořit" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 #, fuzzy msgid "Reply" msgstr "odpověď" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 #, fuzzy msgid "Notice repeated" msgstr "Sdělení" @@ -5833,6 +6005,10 @@ msgstr "Odpovědi" msgid "Favorites" msgstr "Oblíbené" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "" @@ -5926,7 +6102,7 @@ msgstr "Odstranit toto oznámení" msgid "Repeat this notice" msgstr "Odstranit toto oznámení" -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "" @@ -5948,6 +6124,10 @@ msgstr "Hledat" msgid "Keyword(s)" msgstr "" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "Hledat" + #: lib/searchaction.php:162 #, fuzzy msgid "Search help" @@ -6002,6 +6182,15 @@ msgstr "Vzdálený odběr" 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" @@ -6075,47 +6264,47 @@ msgstr "Zpráva" msgid "Moderate" msgstr "" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "před pár sekundami" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "asi před minutou" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "asi před %d minutami" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "asi před hodinou" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "asi před %d hodinami" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "asi přede dnem" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "před %d dny" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "asi před měsícem" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "asi před %d mesíci" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "asi před rokem" diff --git a/locale/de/LC_MESSAGES/statusnet.po b/locale/de/LC_MESSAGES/statusnet.po index 053187a86..a00ec2611 100644 --- a/locale/de/LC_MESSAGES/statusnet.po +++ b/locale/de/LC_MESSAGES/statusnet.po @@ -4,6 +4,7 @@ # Author@translatewiki.net: Lutzgh # Author@translatewiki.net: March # Author@translatewiki.net: McDutchie +# Author@translatewiki.net: Michi # Author@translatewiki.net: Pill # Author@translatewiki.net: Umherirrender # -- @@ -13,76 +14,83 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:50:21+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:02:31+0000\n" "Language-Team: German\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 msgid "Access" msgstr "Zugang" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 msgid "Site access settings" msgstr "Zugangseinstellungen speichern" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 msgid "Registration" msgstr "Registrieren" -#: actions/accessadminpanel.php:161 -msgid "Private" -msgstr "Privat" - -#: actions/accessadminpanel.php:163 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "" "Anonymen (nicht eingeloggten) Nutzern das Betrachten der Seite verbieten?" +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -msgid "Invite only" -msgstr "Nur auf Einladung" +#, fuzzy +msgctxt "LABEL" +msgid "Private" +msgstr "Privat" -#: actions/accessadminpanel.php:169 +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 msgid "Make registration invitation only." msgstr "Registrierung nur bei vorheriger Einladung erlauben." -#: actions/accessadminpanel.php:173 -msgid "Closed" -msgstr "Geschlossen" +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 +msgid "Invite only" +msgstr "Nur auf Einladung" -#: actions/accessadminpanel.php:175 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 msgid "Disable new registrations." msgstr "Neuregistrierungen deaktivieren." -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "Speichern" +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 +msgid "Closed" +msgstr "Geschlossen" -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 msgid "Save access settings" msgstr "Zugangs-Einstellungen speichern" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "Speichern" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page" msgstr "Seite nicht vorhanden" -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -96,45 +104,53 @@ msgstr "Seite nicht vorhanden" #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "Unbekannter Benutzer." -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s und Freunde, Seite% 2$d" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s und Freunde" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Feed der Freunde von %s (RSS 1.0)" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Feed der Freunde von %s (RSS 2.0)" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Feed der Freunde von %s (Atom)" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." @@ -142,7 +158,7 @@ msgstr "" "Dies ist die Zeitleiste für %s und Freunde aber bisher hat niemand etwas " "gepostet." -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -151,7 +167,8 @@ msgstr "" "Abonniere doch mehr Leute, [tritt einer Gruppe bei](%%action.groups%%) oder " "poste selber etwas." -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, fuzzy, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " @@ -161,7 +178,7 @@ msgstr "" "posten](%%%%action.newnotice%%%%?status_textarea=%s) um seine Aufmerksamkeit " "zu erregen." -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -171,7 +188,8 @@ msgstr "" "gibst %s dann einen Stups oder postest ihm etwas, um seine Aufmerksamkeit zu " "erregen?" -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 msgid "You and friends" msgstr "Du und Freunde" @@ -189,20 +207,20 @@ msgstr "Aktualisierungen von %1$s und Freunden auf %2$s!" #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 msgid "API method not found." msgstr "API-Methode nicht gefunden." @@ -234,8 +252,9 @@ msgstr "Konnte Benutzerdaten nicht aktualisieren." #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "Benutzer hat kein Profil." @@ -259,7 +278,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: 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." @@ -372,7 +391,7 @@ msgstr "Konnte öffentlichen Stream nicht abrufen." msgid "Could not find target user." msgstr "Konnte keine Statusmeldungen finden." -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." @@ -380,63 +399,63 @@ msgstr "" "Der Nutzername darf nur aus Kleinbuchstaben und Ziffern bestehen. " "Leerzeichen sind nicht erlaubt." -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Nutzername wird bereits verwendet. Suche dir einen anderen aus." -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Ungültiger Nutzername." -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "" "Homepage ist keine gültige URL. URL’s müssen ein Präfix wie http enthalten." -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Der vollständige Name ist zu lang (maximal 255 Zeichen)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "Die Beschreibung ist zu lang (max. %d Zeichen)." -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Der eingegebene Aufenthaltsort ist zu lang (maximal 255 Zeichen)." -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "Zu viele Pseudonyme! Maximale Anzahl ist %d." -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Ungültiger Tag: „%s“" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Nutzername „%s“ wird bereits verwendet. Suche dir einen anderen aus." -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "Alias kann nicht das gleiche wie der Spitznamen sein." @@ -447,15 +466,15 @@ msgstr "Alias kann nicht das gleiche wie der Spitznamen sein." msgid "Group not found!" msgstr "Gruppe nicht gefunden!" -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 msgid "You are already a member of that group." msgstr "Du bist bereits Mitglied dieser Gruppe" -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "Der Admin dieser Gruppe hat dich gesperrt." -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Konnte Benutzer %s nicht der Gruppe %s hinzufügen." @@ -464,7 +483,7 @@ msgstr "Konnte Benutzer %s nicht der Gruppe %s hinzufügen." msgid "You are not a member of this group." msgstr "Du bist kein Mitglied dieser Gruppe." -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Konnte Benutzer %1$s nicht aus der Gruppe %2$s entfernen." @@ -496,7 +515,7 @@ msgstr "Ungültige Größe." #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -539,7 +558,7 @@ msgstr "" #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -562,13 +581,13 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 msgid "Account" msgstr "Konto" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -654,12 +673,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%s Aktualisierung in den Favoriten von %s / %s." #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "%s Zeitleiste" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -695,7 +714,7 @@ msgstr "Antworten an %s" msgid "Repeats of %s" msgstr "Antworten an %s" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Nachrichten, die mit %s getagt sind" @@ -716,8 +735,7 @@ msgstr "Kein solcher Anhang." #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "Kein Nutzername." @@ -729,7 +747,7 @@ msgstr "Keine Größe." msgid "Invalid size." msgstr "Ungültige Größe." -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Avatar" @@ -747,30 +765,30 @@ msgid "User without matching profile" msgstr "Benutzer ohne passendes Profil" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Avatar-Einstellungen" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Original" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Vorschau" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 msgid "Delete" msgstr "Löschen" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "Hochladen" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "Zuschneiden" @@ -779,7 +797,7 @@ msgid "Pick a square area of the image to be your avatar" msgstr "" "Wähle eine quadratische Fläche aus dem Bild, um dein Avatar zu speichern" -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Daten verloren." @@ -811,22 +829,22 @@ msgid "" msgstr "" #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "Nein" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 msgid "Do not block this user" msgstr "Diesen Benutzer freigeben" #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Ja" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 msgid "Block this user" msgstr "Diesen Benutzer blockieren" @@ -834,39 +852,43 @@ msgstr "Diesen Benutzer blockieren" msgid "Failed to save block information." msgstr "Konnte Blockierungsdaten nicht speichern." -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 msgid "No such group." msgstr "Keine derartige Gruppe." -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, php-format msgid "%s blocked profiles" msgstr "%s blockierte Benutzerprofile" -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, fuzzy, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%s blockierte Benutzerprofile, Seite %d" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." msgstr "Liste der blockierten Benutzer in dieser Gruppe." -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 msgid "Unblock user from group" msgstr "Sperrung des Nutzers für die Gruppe aufheben." -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "Freigeben" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 msgid "Unblock this user" msgstr "Diesen Benutzer freigeben" @@ -945,7 +967,7 @@ msgstr "Du bist kein Mitglied dieser Gruppe." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "Es gab ein Problem mit deinem Sessiontoken." @@ -971,12 +993,13 @@ msgstr "Diese Nachricht nicht löschen" msgid "Delete this application" msgstr "Nachricht löschen" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Nicht angemeldet." @@ -1005,7 +1028,7 @@ msgstr "Bist du sicher, dass du diese Nachricht löschen möchtest?" msgid "Do not delete this notice" msgstr "Diese Nachricht nicht löschen" -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 msgid "Delete this notice" msgstr "Nachricht löschen" @@ -1021,18 +1044,18 @@ msgstr "Du kannst nur lokale Benutzer löschen." msgid "Delete user" msgstr "Benutzer löschen" -#: actions/deleteuser.php:135 +#: 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 "" -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 msgid "Delete this user" msgstr "Diesen Benutzer löschen" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "" @@ -1135,6 +1158,17 @@ msgstr "Standard-Design wiederherstellen" msgid "Reset back to default" msgstr "Standard wiederherstellen" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "Speichern" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "Design speichern" @@ -1153,68 +1187,58 @@ msgid "No such document \"%s\"" msgstr "Unbekanntes Dokument." #: actions/editapplication.php:54 -#, fuzzy msgid "Edit Application" -msgstr "Sonstige Optionen" +msgstr "Anwendung bearbeiten" #: actions/editapplication.php:66 -#, fuzzy msgid "You must be logged in to edit an application." -msgstr "Du musst angemeldet sein, um eine Gruppe zu bearbeiten." +msgstr "Du musst angemeldet sein, um eine Anwendung zu bearbeiten." #: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 #: actions/showapplication.php:87 -#, fuzzy msgid "No such application." -msgstr "Unbekannte Nachricht." +msgstr "Anwendung nicht bekannt." #: actions/editapplication.php:161 -#, fuzzy msgid "Use this form to edit your application." -msgstr "Benutze dieses Formular, um die Gruppe zu bearbeiten." +msgstr "Benutze dieses Formular, um die Anwendung zu bearbeiten." #: actions/editapplication.php:177 actions/newapplication.php:159 -#, fuzzy msgid "Name is required." -msgstr "Gleiches Passwort wie zuvor. Pflichteingabe." +msgstr "Name ist erforderlich." #: actions/editapplication.php:180 actions/newapplication.php:165 -#, fuzzy msgid "Name is too long (max 255 chars)." -msgstr "Der vollständige Name ist zu lang (maximal 255 Zeichen)." +msgstr "Der Name ist zu lang (maximal 255 Zeichen)." #: actions/editapplication.php:183 actions/newapplication.php:162 -#, fuzzy msgid "Name already in use. Try another one." -msgstr "Nutzername wird bereits verwendet. Suche dir einen anderen aus." +msgstr "Der Name wird bereits verwendet. Suche dir einen anderen aus." #: actions/editapplication.php:186 actions/newapplication.php:168 -#, fuzzy msgid "Description is required." -msgstr "Beschreibung" +msgstr "Beschreibung ist erforderlich." #: actions/editapplication.php:194 msgid "Source URL is too long." -msgstr "" +msgstr "Homepage ist zu lang." #: actions/editapplication.php:200 actions/newapplication.php:185 -#, fuzzy msgid "Source URL is not valid." msgstr "" "Homepage ist keine gültige URL. URL’s müssen ein Präfix wie http enthalten." #: actions/editapplication.php:203 actions/newapplication.php:188 msgid "Organization is required." -msgstr "" +msgstr "Organisation ist erforderlich. (Pflichtangabe)" #: actions/editapplication.php:206 actions/newapplication.php:191 -#, fuzzy msgid "Organization is too long (max 255 chars)." -msgstr "Der eingegebene Aufenthaltsort ist zu lang (maximal 255 Zeichen)." +msgstr "Die angegebene Organisation ist zu lang (maximal 255 Zeichen)." #: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." -msgstr "" +msgstr "Homepage der Organisation ist erforderlich (Pflichtangabe)." #: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." @@ -1238,35 +1262,34 @@ msgstr "Gruppe %s bearbeiten" msgid "You must be logged in to create a group." msgstr "Du musst angemeldet sein, um eine Gruppe zu erstellen." -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: actions/editgroup.php:107 actions/editgroup.php:172 +#: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 #, fuzzy msgid "You must be an admin to edit the group." msgstr "Du musst ein Administrator sein, um die Gruppe zu bearbeiten" -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "Benutze dieses Formular, um die Gruppe zu bearbeiten." -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, php-format msgid "description is too long (max %d chars)." msgstr "Die Beschreibung ist zu lang (max. %d Zeichen)." -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 msgid "Could not update group." msgstr "Konnte Gruppe nicht aktualisieren." -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 msgid "Could not create aliases." msgstr "Konnte keinen Favoriten erstellen." -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 msgid "Options saved." msgstr "Einstellungen gespeichert." #: actions/emailsettings.php:60 -#, fuzzy msgid "Email settings" msgstr "E-Mail-Einstellungen" @@ -1305,9 +1328,8 @@ msgid "Cancel" msgstr "Abbrechen" #: actions/emailsettings.php:121 -#, fuzzy msgid "Email address" -msgstr "E-Mail-Adressen" +msgstr "E-Mail-Adresse" #: actions/emailsettings.php:123 msgid "Email address, like \"UserName@example.org\"" @@ -1601,7 +1623,7 @@ msgstr "Dieser Nutzer ist bereits von der Gruppe gesperrt" msgid "User is not a member of group." msgstr "Nutzer ist kein Mitglied dieser Gruppe." -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 msgid "Block user from group" msgstr "Benutzerzugang zu der Gruppe blockieren" @@ -1634,30 +1656,30 @@ msgstr "Keine ID" msgid "You must be logged in to edit a group." msgstr "Du musst angemeldet sein, um eine Gruppe zu bearbeiten." -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 msgid "Group design" msgstr "Gruppen-Design" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." msgstr "" -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 msgid "Couldn't update your design." msgstr "Konnte dein Design nicht aktualisieren." -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 msgid "Design preferences saved." msgstr "Design-Einstellungen gespeichert." -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "Gruppen-Logo" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." @@ -1665,58 +1687,58 @@ msgstr "" "Du kannst ein Logo für Deine Gruppe hochladen. Die maximale Dateigröße ist %" "s." -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 #, fuzzy msgid "User without matching profile." msgstr "Benutzer ohne passendes Profil" -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Wähle eine quadratische Fläche aus dem Bild, um das Logo zu speichern." -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 msgid "Logo updated." msgstr "Logo aktualisiert." -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 msgid "Failed updating logo." msgstr "Aktualisierung des Logos fehlgeschlagen." -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "%s Gruppen-Mitglieder" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, fuzzy, php-format msgid "%1$s group members, page %2$d" msgstr "%s Gruppen-Mitglieder, Seite %d" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "Liste der Benutzer in dieser Gruppe." -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "Admin" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "Blockieren" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 msgid "Make user an admin of the group" msgstr "Benutzer zu einem Admin dieser Gruppe ernennen" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make Admin" msgstr "Zum Admin ernennen" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "Diesen Benutzer zu einem Admin ernennen" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Aktualisierungen von %1$s auf %2$s!" @@ -1984,16 +2006,19 @@ msgstr "" "Wenn du möchtest kannst du zu der Einladung eine persönliche Nachricht " "anfügen." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" msgstr "Senden" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s hat Dich eingeladen, auch bei %2$s mitzumachen." -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2053,7 +2078,12 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Du musst angemeldet sein, um Mitglied einer Gruppe zu werden." -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "Kein Nutzername." + +#: actions/joingroup.php:141 #, fuzzy, php-format msgid "%1$s joined group %2$s" msgstr "%s ist der Gruppe %s beigetreten" @@ -2062,11 +2092,11 @@ msgstr "%s ist der Gruppe %s beigetreten" msgid "You must be logged in to leave a group." msgstr "Du musst angemeldet sein, um aus einer Gruppe auszutreten." -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 msgid "You are not a member of that group." msgstr "Du bist kein Mitglied dieser Gruppe." -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, fuzzy, php-format msgid "%1$s left group %2$s" msgstr "%s hat die Gruppe %s verlassen" @@ -2084,8 +2114,7 @@ msgid "Error setting user. You are probably not authorized." msgstr "" "Fehler beim setzen des Benutzers. Du bist vermutlich nicht autorisiert." -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "Anmelden" @@ -2285,9 +2314,8 @@ msgid "You must be logged in to list your applications." msgstr "Du musst angemeldet sein, um eine Gruppe zu bearbeiten." #: actions/oauthappssettings.php:74 -#, fuzzy msgid "OAuth applications" -msgstr "Sonstige Optionen" +msgstr "OAuth-Anwendungen" #: actions/oauthappssettings.php:85 msgid "Applications you have registered" @@ -2341,8 +2369,8 @@ msgstr "Content-Typ " msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "Kein unterstütztes Datenformat." @@ -2486,7 +2514,7 @@ msgstr "Konnte neues Passwort nicht speichern" msgid "Password saved." msgstr "Passwort gespeichert." -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "" @@ -2519,7 +2547,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "Ungültiger SSL-Server. Die maximale Länge ist 255 Zeichen." #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 msgid "Site" msgstr "Seite" @@ -2694,7 +2721,7 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 Kleinbuchstaben oder Ziffern, keine Sonder- oder Leerzeichen" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "Vollständiger Name" @@ -2723,7 +2750,7 @@ msgid "Bio" msgstr "Biografie" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2807,7 +2834,8 @@ msgstr "Konnte Profil nicht speichern." msgid "Couldn't save tags." msgstr "Konnte Tags nicht speichern." -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "Einstellungen gespeichert." @@ -2820,28 +2848,28 @@ msgstr "Jenseits des Seitenlimits (%s)" msgid "Could not retrieve public stream." msgstr "Konnte öffentlichen Stream nicht abrufen." -#: actions/public.php:129 +#: actions/public.php:130 #, php-format msgid "Public timeline, page %d" msgstr "Öffentliche Zeitleiste, Seite %d" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "Öffentliche Zeitleiste" -#: actions/public.php:159 +#: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" msgstr "Feed des öffentlichen Streams (RSS 1.0)" -#: actions/public.php:163 +#: actions/public.php:164 msgid "Public Stream Feed (RSS 2.0)" msgstr "Feed des öffentlichen Streams (RSS 2.0)" -#: actions/public.php:167 +#: actions/public.php:168 msgid "Public Stream Feed (Atom)" msgstr "Feed des öffentlichen Streams (Atom)" -#: actions/public.php:187 +#: actions/public.php:188 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " @@ -2850,17 +2878,17 @@ msgstr "" "Dies ist die öffentliche Zeitlinie von %%site.name%% es wurde allerdings " "noch nichts gepostet." -#: actions/public.php:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "Sei der erste der etwas schreibt!" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2869,7 +2897,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:246 +#: actions/public.php:247 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3045,8 +3073,7 @@ msgstr "Entschuldigung, ungültiger Bestätigungscode." msgid "Registration successful" msgstr "Registrierung erfolgreich" -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "Registrieren" @@ -3235,7 +3262,7 @@ msgstr "Du kannst deine eigene Nachricht nicht wiederholen." msgid "You already repeated that notice." msgstr "Du hast diesen Benutzer bereits blockiert." -#: actions/repeat.php:114 lib/noticelist.php:656 +#: actions/repeat.php:114 lib/noticelist.php:674 #, fuzzy msgid "Repeated" msgstr "Erstellt" @@ -3245,33 +3272,33 @@ msgstr "Erstellt" msgid "Repeated!" msgstr "Erstellt" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "Antworten an %s" -#: actions/replies.php:127 +#: actions/replies.php:128 #, php-format msgid "Replies to %1$s, page %2$d" msgstr "Antworten an %1$s, Seite %2$d" -#: actions/replies.php:144 +#: actions/replies.php:145 #, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "Feed der Antworten an %s (RSS 1.0)" -#: actions/replies.php:151 +#: actions/replies.php:152 #, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "Feed der Antworten an %s (RSS 2.0)" -#: actions/replies.php:158 +#: actions/replies.php:159 #, php-format msgid "Replies feed for %s (Atom)" msgstr "Feed der Nachrichten von %s (Atom)" -#: actions/replies.php:198 +#: actions/replies.php:199 #, fuzzy, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " @@ -3280,14 +3307,14 @@ msgstr "" "Dies ist die Zeitleiste für %s und Freunde aber bisher hat niemand etwas " "gepostet." -#: actions/replies.php:203 +#: 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:205 +#: actions/replies.php:206 #, fuzzy, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3317,7 +3344,6 @@ msgid "User is already sandboxed." msgstr "Dieser Benutzer hat dich blockiert." #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "" @@ -3343,7 +3369,7 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Site-Einstellungen speichern" @@ -3376,7 +3402,7 @@ msgstr "Seitenerstellung" msgid "Description" msgstr "Beschreibung" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Statistiken" @@ -3439,35 +3465,35 @@ msgstr "%ss favorisierte Nachrichten" msgid "Could not retrieve favorite notices." msgstr "Konnte Favoriten nicht abrufen." -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "Feed der Freunde von %s (RSS 1.0)" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "Feed der Freunde von %s (RSS 2.0)" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" msgstr "Feed der Freunde von %s (Atom)" -#: actions/showfavorites.php:205 +#: 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:207 +#: 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 :)" msgstr "" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3475,7 +3501,7 @@ msgid "" "would add to their favorites :)" msgstr "" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "Dies ist ein Weg Dinge zu teilen die dir gefallen." @@ -3489,67 +3515,67 @@ msgstr "%s Gruppe" msgid "%1$s group, page %2$d" msgstr "%s Gruppen-Mitglieder, Seite %d" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 msgid "Group profile" msgstr "Gruppenprofil" -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "URL" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 msgid "Note" msgstr "Nachricht" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "Gruppenaktionen" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Nachrichtenfeed der Gruppe %s (RSS 1.0)" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Nachrichtenfeed der Gruppe %s (RSS 2.0)" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Nachrichtenfeed der Gruppe %s (Atom)" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, php-format msgid "FOAF for %s group" msgstr "Postausgang von %s" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 msgid "Members" msgstr "Mitglieder" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Kein)" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "Alle Mitglieder" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 msgid "Created" msgstr "Erstellt" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3559,7 +3585,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:454 +#: actions/showgroup.php:462 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3572,7 +3598,7 @@ msgstr "" "Freien Software [StatusNet](http://status.net/). Seine Mitglieder erstellen " "kurze Nachrichten über Ihr Leben und Interessen. " -#: actions/showgroup.php:482 +#: actions/showgroup.php:490 msgid "Admins" msgstr "Administratoren" @@ -4045,22 +4071,22 @@ msgstr "Jabber" msgid "SMS" msgstr "SMS" -#: actions/tag.php:68 +#: actions/tag.php:69 #, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "Mit %1$s gekennzeichnete Nachrichten, Seite %2$d" -#: actions/tag.php:86 +#: actions/tag.php:87 #, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "Nachrichten Feed für Tag %s (RSS 1.0)" -#: actions/tag.php:92 +#: actions/tag.php:93 #, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "Nachrichten Feed für Tag %s (RSS 2.0)" -#: actions/tag.php:98 +#: actions/tag.php:99 #, php-format msgid "Notice feed for tag %s (Atom)" msgstr "Nachrichten Feed für Tag %s (Atom)" @@ -4117,7 +4143,7 @@ msgstr "" msgid "No such tag." msgstr "Tag nicht vorhanden." -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "API-Methode im Aufbau." @@ -4150,70 +4176,72 @@ msgstr "" "Die Nachrichtenlizenz '%s' ist nicht kompatibel mit der Lizenz der Seite '%" "s'." -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +#, fuzzy +msgctxt "TITLE" msgid "User" msgstr "Benutzer" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "Nutzer Einstellungen dieser StatusNet Seite." -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "Das Zeichenlimit der Biografie muss numerisch sein!" -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "Willkommens-Nachricht ungültig. Maximale Länge sind 255 Zeichen." -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "" -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "Profil" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "" -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 msgid "New users" msgstr "Neue Nutzer" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "Willkommens-Nachricht für neue Nutzer (maximal 255 Zeichen)." -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 msgid "Default subscription" msgstr "Standard Abonnement" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 msgid "Automatically subscribe new users to this user." msgstr "Neue Nutzer abonnieren automatisch diesen Nutzer" -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 msgid "Invitations" msgstr "Einladungen" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 msgid "Invitations enabled" msgstr "Einladungen aktivieren" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "Ist es Nutzern erlaubt neue Nutzer einzuladen." @@ -4398,7 +4426,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 #, fuzzy msgid "Version" msgstr "Eigene" @@ -4440,6 +4468,11 @@ msgstr "Konnte Gruppe nicht aktualisieren." msgid "Group leave failed." msgstr "Gruppenprofil" +#: classes/Local_group.php:41 +#, fuzzy +msgid "Could not update local group." +msgstr "Konnte Gruppe nicht aktualisieren." + #: classes/Login_token.php:76 #, fuzzy, php-format msgid "Could not create login token for %s" @@ -4458,27 +4491,27 @@ msgstr "Konnte Nachricht nicht einfügen." msgid "Could not update message with new URI." msgstr "Konnte Nachricht nicht mit neuer URI versehen." -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "Datenbankfehler beim Einfügen des Hashtags: %s" -#: classes/Notice.php:222 +#: classes/Notice.php:239 msgid "Problem saving notice. Too long." msgstr "Problem bei Speichern der Nachricht. Sie ist zu lang." -#: classes/Notice.php:226 +#: classes/Notice.php:243 msgid "Problem saving notice. Unknown user." msgstr "Problem bei Speichern der Nachricht. Unbekannter Benutzer." -#: classes/Notice.php:231 +#: classes/Notice.php:248 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:237 +#: classes/Notice.php:254 #, fuzzy msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " @@ -4487,21 +4520,21 @@ msgstr "" "Zu schnell zu viele Nachrichten; atme kurz durch und schicke sie erneut in " "ein paar Minuten ab." -#: classes/Notice.php:243 +#: classes/Notice.php:260 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:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "Problem bei Speichern der Nachricht." -#: classes/Notice.php:882 +#: classes/Notice.php:911 #, fuzzy msgid "Problem saving group inbox." msgstr "Problem bei Speichern der Nachricht." -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4532,19 +4565,29 @@ msgstr "Konnte Abonnement nicht löschen." msgid "Couldn't delete subscription." msgstr "Konnte Abonnement nicht löschen." -#: classes/User.php:372 +#: classes/User.php:373 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Herzlich willkommen bei %1$s, @%2$s!" -#: classes/User_group.php:423 +#: classes/User_group.php:462 msgid "Could not create group." msgstr "Konnte Gruppe nicht erstellen." -#: classes/User_group.php:452 +#: classes/User_group.php:471 +#, fuzzy +msgid "Could not set group URI." +msgstr "Konnte Gruppenmitgliedschaft nicht setzen." + +#: classes/User_group.php:492 msgid "Could not set group membership." msgstr "Konnte Gruppenmitgliedschaft nicht setzen." +#: classes/User_group.php:506 +#, fuzzy +msgid "Could not save local group info." +msgstr "Konnte Abonnement nicht erstellen." + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "Ändern der Profileinstellungen" @@ -4587,123 +4630,191 @@ msgstr "Seite ohne Titel" msgid "Primary site navigation" msgstr "Hauptnavigation" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "Startseite" - -#: lib/action.php:439 +#, fuzzy +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Persönliches Profil und Freundes-Zeitleiste" -#: lib/action.php:441 +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "Eigene" + +#. TRANS: Tooltip for main menu option "Account" +#: lib/action.php:444 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Ändere deine E-Mail, dein Avatar, Passwort, Profil" -#: lib/action.php:444 -msgid "Connect" -msgstr "Verbinden" +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "Konto" -#: lib/action.php:444 +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 #, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Konnte nicht zum Server umleiten: %s" -#: lib/action.php:448 +#: lib/action.php:453 #, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "Verbinden" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Hauptnavigation" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" -msgstr "Einladen" +#: lib/action.php:460 +#, fuzzy +msgctxt "MENU" +msgid "Admin" +msgstr "Admin" -#: lib/action.php:453 lib/subgroupnav.php:106 -#, php-format +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 +#, fuzzy, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Lade Freunde und Kollegen ein dir auf %s zu folgen" -#: lib/action.php:458 -msgid "Logout" -msgstr "Abmelden" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "Einladen" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +#, fuzzy +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Von der Seite abmelden" -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "Abmelden" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 +#, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "Neues Konto erstellen" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "Registrieren" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +#, fuzzy +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Auf der Seite anmelden" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "Hilfe" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "Anmelden" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 +#, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "Hilf mir!" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "Suchen" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "Hilfe" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +#, fuzzy +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Suche nach Leuten oder Text" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "Suchen" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 msgid "Site notice" msgstr "Seitennachricht" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "Lokale Ansichten" -#: lib/action.php:625 +#: lib/action.php:656 msgid "Page notice" msgstr "Neue Nachricht" -#: lib/action.php:727 +#: lib/action.php:758 msgid "Secondary site navigation" msgstr "Unternavigation" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "Hilfe" + +#: lib/action.php:765 msgid "About" msgstr "Über" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "FAQ" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "AGB" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "Privatsphäre" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "Quellcode" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "Kontakt" -#: lib/action.php:751 +#: lib/action.php:782 #, fuzzy msgid "Badge" msgstr "Stups" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "StatusNet-Software-Lizenz" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4712,12 +4823,12 @@ msgstr "" "**%%site.name%%** ist ein Microbloggingdienst von [%%site.broughtby%%](%%" "site.broughtbyurl%%)." -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** ist ein Microbloggingdienst." -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4728,114 +4839,167 @@ msgstr "" "(Version %s) betrieben, die unter der [GNU Affero General Public License]" "(http://www.fsf.org/licensing/licenses/agpl-3.0.html) erhältlich ist." -#: lib/action.php:801 +#: lib/action.php:832 msgid "Site content license" msgstr "StatusNet-Software-Lizenz" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:827 +#: lib/action.php:858 #, fuzzy msgid "All " msgstr "Alle " -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "Lizenz." -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "Seitenerstellung" -#: lib/action.php:1141 +#: lib/action.php:1172 msgid "After" msgstr "Später" -#: lib/action.php:1149 +#: lib/action.php:1180 msgid "Before" msgstr "Vorher" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 #, fuzzy msgid "You cannot make changes to this site." msgstr "Du kannst diesem Benutzer keine Nachricht schicken." -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 #, fuzzy msgid "Changes to that panel are not allowed." msgstr "Registrierung nicht gestattet" -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 msgid "showForm() not implemented." msgstr "showForm() noch nicht implementiert." -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 msgid "saveSettings() not implemented." msgstr "saveSettings() noch nicht implementiert." -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 msgid "Unable to delete design setting." msgstr "Konnte die Design Einstellungen nicht löschen." -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 #, fuzzy msgid "Basic site configuration" msgstr "Bestätigung der E-Mail-Adresse" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "Seite" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 #, fuzzy msgid "Design configuration" msgstr "SMS-Konfiguration" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "Eigene" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 #, fuzzy msgid "User configuration" msgstr "SMS-Konfiguration" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +#, fuzzy +msgctxt "MENU" +msgid "User" +msgstr "Benutzer" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 #, fuzzy msgid "Access configuration" msgstr "SMS-Konfiguration" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "Zugang" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 #, fuzzy msgid "Paths configuration" msgstr "SMS-Konfiguration" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +#, fuzzy +msgctxt "MENU" +msgid "Paths" +msgstr "Pfad" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 #, fuzzy msgid "Sessions configuration" msgstr "SMS-Konfiguration" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "Eigene" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4930,12 +5094,12 @@ msgstr "Nachrichten in denen dieser Anhang erscheint" msgid "Tags for this attachment" msgstr "Tags für diesen Anhang" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 #, fuzzy msgid "Password changing failed" msgstr "Passwort geändert" -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 #, fuzzy msgid "Password changing is not allowed" msgstr "Passwort geändert" @@ -5210,19 +5374,19 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:148 msgid "No configuration file found. " msgstr "Keine Konfigurationsdatei gefunden." -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "Ich habe an folgenden Stellen nach Konfigurationsdateien gesucht: " -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:152 #, fuzzy msgid "Go to the installer." msgstr "Auf der Seite anmelden" @@ -5419,23 +5583,23 @@ msgstr "Systemfehler beim hochladen der Datei." msgid "Not an image or corrupt file." msgstr "Kein Bild oder defekte Datei." -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "Bildformat wird nicht unterstützt." -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Daten verloren." -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "Unbekannter Dateityp" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "MB" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "kB" @@ -5795,6 +5959,12 @@ msgstr "An" msgid "Available characters" msgstr "Verfügbare Zeichen" +#: lib/messageform.php:178 lib/noticeform.php:236 +#, fuzzy +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "Senden" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Nachricht senden" @@ -5851,23 +6021,23 @@ msgstr "W" msgid "at" msgstr "" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 msgid "in context" msgstr "im Zusammenhang" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 msgid "Repeated by" msgstr "Wiederholt von" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 msgid "Reply to this notice" msgstr "Auf diese Nachricht antworten" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 msgid "Reply" msgstr "Antworten" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 msgid "Notice repeated" msgstr "Nachricht wiederholt" @@ -5916,6 +6086,10 @@ msgstr "Antworten" msgid "Favorites" msgstr "Favoriten" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "Benutzer" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Posteingang" @@ -6007,7 +6181,7 @@ msgstr "Diese Nachricht wiederholen?" msgid "Repeat this notice" msgstr "Diese Nachricht wiederholen" -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "" @@ -6027,6 +6201,10 @@ msgstr "Site durchsuchen" msgid "Keyword(s)" msgstr "" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "Suchen" + #: lib/searchaction.php:162 #, fuzzy msgid "Search help" @@ -6079,6 +6257,15 @@ msgstr "Leute, die %s abonniert haben" msgid "Groups %s is a member of" msgstr "Gruppen in denen %s Mitglied ist" +#: lib/subgroupnav.php:105 +msgid "Invite" +msgstr "Einladen" + +#: lib/subgroupnav.php:106 +#, php-format +msgid "Invite friends and colleagues to join you on %s" +msgstr "Lade Freunde und Kollegen ein dir auf %s zu folgen" + #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 msgid "People Tagcloud as self-tagged" @@ -6149,47 +6336,47 @@ msgstr "Nachricht" msgid "Moderate" msgstr "Moderieren" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "vor wenigen Sekunden" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "vor einer Minute" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "vor %d Minuten" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "vor einer Stunde" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "vor %d Stunden" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "vor einem Tag" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "vor %d Tagen" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "vor einem Monat" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "vor %d Monaten" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "vor einem Jahr" diff --git a/locale/el/LC_MESSAGES/statusnet.po b/locale/el/LC_MESSAGES/statusnet.po index 6ff718d45..ed9ab7803 100644 --- a/locale/el/LC_MESSAGES/statusnet.po +++ b/locale/el/LC_MESSAGES/statusnet.po @@ -9,78 +9,84 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:50:24+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:02:33+0000\n" "Language-Team: Greek\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: el\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 msgid "Access" msgstr "Πρόσβαση" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 #, fuzzy msgid "Site access settings" msgstr "Ρυθμίσεις OpenID" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 #, fuzzy msgid "Registration" msgstr "Περιγραφή" -#: actions/accessadminpanel.php:161 -msgid "Private" -msgstr "" - -#: actions/accessadminpanel.php:163 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "" +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -msgid "Invite only" +msgctxt "LABEL" +msgid "Private" msgstr "" -#: actions/accessadminpanel.php:169 +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 msgid "Make registration invitation only." msgstr "" -#: actions/accessadminpanel.php:173 -msgid "Closed" +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 +msgid "Invite only" msgstr "" -#: actions/accessadminpanel.php:175 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 msgid "Disable new registrations." msgstr "" -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 +msgid "Closed" msgstr "" -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 #, fuzzy msgid "Save access settings" msgstr "Ρυθμίσεις OpenID" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "Αποχώρηση" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page" msgstr "Δεν υπάρχει τέτοια σελίδα" -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -94,72 +100,82 @@ msgstr "Δεν υπάρχει τέτοια σελίδα" #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "Κανένας τέτοιος χρήστης." -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, fuzzy, php-format msgid "%1$s and friends, page %2$d" msgstr "%s και οι φίλοι του/της" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s και οι φίλοι του/της" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Ροή φίλων του/της %s (RSS 1.0)" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Ροή φίλων του/της %s (RSS 2.0)" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Ροή φίλων του/της %s (Atom)" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 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." msgstr "" -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 msgid "You and friends" msgstr "Εσείς και οι φίλοι σας" @@ -177,20 +193,20 @@ msgstr "" #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "Η μέθοδος του ΑΡΙ δε βρέθηκε!" @@ -224,8 +240,9 @@ msgstr "Απέτυχε η ενημέρωση του χρήστη." #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "" @@ -250,7 +267,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: 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." @@ -366,68 +383,68 @@ msgstr "Απέτυχε η ενημέρωση του χρήστη." msgid "Could not find target user." msgstr "Απέτυχε η εύρεση οποιασδήποτε κατάστασης." -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "Το ψευδώνυμο πρέπει να έχει μόνο πεζούς χαρακτήρες και χωρίς κενά." -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Το ψευδώνυμο είναι ήδη σε χρήση. Δοκιμάστε κάποιο άλλο." -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "" -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Η αρχική σελίδα δεν είναι έγκυρο URL." -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Το ονοματεπώνυμο είναι πολύ μεγάλο (μέγιστο 255 χαρακτ.)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "Η περιγραφή είναι πολύ μεγάλη (μέγιστο %d χαρακτ.)." -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Η τοποθεσία είναι πολύ μεγάλη (μέγιστο 255 χαρακτ.)." -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "" -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, php-format msgid "Invalid alias: \"%s\"" msgstr "" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, fuzzy, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Το ψευδώνυμο είναι ήδη σε χρήση. Δοκιμάστε κάποιο άλλο." -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "" @@ -438,15 +455,15 @@ msgstr "" msgid "Group not found!" msgstr "Η ομάδα δεν βρέθηκε!" -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 msgid "You are already a member of that group." msgstr "" -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "" -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, fuzzy, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Αδύνατη η αποθήκευση των νέων πληροφοριών του προφίλ" @@ -455,7 +472,7 @@ msgstr "Αδύνατη η αποθήκευση των νέων πληροφορ msgid "You are not a member of this group." msgstr "" -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, fuzzy, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Αδύνατη η αποθήκευση του προφίλ." @@ -487,7 +504,7 @@ msgstr "Μήνυμα" #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -530,7 +547,7 @@ msgstr "" #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -553,13 +570,13 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 msgid "Account" msgstr "Λογαριασμός" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -643,12 +660,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "" #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "χρονοδιάγραμμα του χρήστη %s" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -684,7 +701,7 @@ msgstr "" msgid "Repeats of %s" msgstr "" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "" @@ -705,8 +722,7 @@ msgstr "" #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "" @@ -718,7 +734,7 @@ msgstr "" msgid "Invalid size." msgstr "" -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "" @@ -735,30 +751,30 @@ msgid "User without matching profile" msgstr "" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Ρυθμίσεις του άβαταρ" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 msgid "Delete" msgstr "Διαγραφή" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "" @@ -766,7 +782,7 @@ msgstr "" msgid "Pick a square area of the image to be your avatar" msgstr "" -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" @@ -800,23 +816,23 @@ msgid "" msgstr "" #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "Όχι" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 #, fuzzy msgid "Do not block this user" msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Ναι" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 msgid "Block this user" msgstr "" @@ -824,40 +840,44 @@ msgstr "" msgid "Failed to save block information." msgstr "" -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 #, fuzzy msgid "No such group." msgstr "Αδύνατη η αποθήκευση του προφίλ." -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, fuzzy, php-format msgid "%s blocked profiles" msgstr "Αδύνατη η αποθήκευση του προφίλ." -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, fuzzy, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%s και οι φίλοι του/της" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." msgstr "" -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 msgid "Unblock user from group" msgstr "" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 msgid "Unblock this user" msgstr "" @@ -936,7 +956,7 @@ msgstr "Ομάδες με τα περισσότερα μέλη" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "" @@ -962,12 +982,13 @@ msgstr "Αδυναμία διαγραφής αυτού του μηνύματος msgid "Delete this application" msgstr "Περιγράψτε την ομάδα ή το θέμα" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "" @@ -996,7 +1017,7 @@ msgstr "Είσαι σίγουρος ότι θες να διαγράψεις αυ msgid "Do not delete this notice" msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 msgid "Delete this notice" msgstr "" @@ -1013,18 +1034,18 @@ msgstr "" msgid "Delete user" msgstr "Διαγραφή χρήστη" -#: actions/deleteuser.php:135 +#: 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 "" -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 msgid "Delete this user" msgstr "Διαγράψτε αυτόν τον χρήστη" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "" @@ -1128,6 +1149,17 @@ msgstr "" msgid "Reset back to default" msgstr "" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "" @@ -1227,31 +1259,31 @@ msgstr "" msgid "You must be logged in to create a group." msgstr "" -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: 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 "" -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "" -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, fuzzy, php-format msgid "description is too long (max %d chars)." msgstr "Το βιογραφικό είναι πολύ μεγάλο (μέγιστο 140 χαρακτ.)." -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 #, fuzzy msgid "Could not update group." msgstr "Αδύνατη η αποθήκευση του προφίλ." -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 #, fuzzy msgid "Could not create aliases." msgstr "Αδύνατη η αποθήκευση του προφίλ." -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 msgid "Options saved." msgstr "" @@ -1593,7 +1625,7 @@ msgstr "" msgid "User is not a member of group." msgstr "" -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 msgid "Block user from group" msgstr "" @@ -1625,90 +1657,90 @@ msgstr "" msgid "You must be logged in to edit a group." msgstr "" -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 msgid "Group design" msgstr "" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." msgstr "" -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 #, fuzzy msgid "Couldn't update your design." msgstr "Απέτυχε η ενημέρωση του χρήστη." -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 #, fuzzy msgid "Design preferences saved." msgstr "Οι προτιμήσεις αποθηκεύτηκαν" -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "" -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 msgid "User without matching profile." msgstr "" -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "" -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 #, fuzzy msgid "Logo updated." msgstr "Αποσύνδεση" -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 msgid "Failed updating logo." msgstr "" -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, php-format msgid "%1$s group members, page %2$d" msgstr "" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "" -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "Διαχειριστής" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 msgid "Make user an admin of the group" msgstr "" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 #, fuzzy msgid "Make Admin" msgstr "Διαχειριστής" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "" @@ -1953,16 +1985,18 @@ msgstr "" msgid "Optionally add a personal message to the invitation." msgstr "" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +msgctxt "BUTTON" msgid "Send" msgstr "" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "" -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -1997,7 +2031,12 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "" -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "Μήνυμα" + +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "" @@ -2006,11 +2045,11 @@ msgstr "" msgid "You must be logged in to leave a group." msgstr "" -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 msgid "You are not a member of that group." msgstr "" -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "" @@ -2027,8 +2066,7 @@ msgstr "Λάθος όνομα χρήστη ή κωδικός" msgid "Error setting user. You are probably not authorized." msgstr "" -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "Σύνδεση" @@ -2276,8 +2314,8 @@ msgstr "Σύνδεση" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "" @@ -2423,7 +2461,7 @@ msgstr "Αδύνατη η αποθήκευση του νέου κωδικού" msgid "Password saved." msgstr "Ο κωδικός αποθηκεύτηκε." -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "" @@ -2456,7 +2494,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 msgid "Site" msgstr "" @@ -2631,7 +2668,7 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 μικρά γράμματα ή αριθμοί, χωρίς σημεία στίξης ή κενά" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "Ονοματεπώνυμο" @@ -2660,7 +2697,7 @@ msgid "Bio" msgstr "Βιογραφικό" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2745,7 +2782,8 @@ msgstr "Απέτυχε η αποθήκευση του προφίλ." msgid "Couldn't save tags." msgstr "Αδύνατη η αποθήκευση του προφίλ." -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "" @@ -2758,46 +2796,46 @@ msgstr "" msgid "Could not retrieve public stream." msgstr "" -#: actions/public.php:129 +#: actions/public.php:130 #, php-format msgid "Public timeline, page %d" msgstr "" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "" -#: actions/public.php:159 +#: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" msgstr "" -#: actions/public.php:163 +#: actions/public.php:164 msgid "Public Stream Feed (RSS 2.0)" msgstr "" -#: actions/public.php:167 +#: actions/public.php:168 #, fuzzy msgid "Public Stream Feed (Atom)" msgstr "Δημόσια ροή %s" -#: actions/public.php:187 +#: 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:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2806,7 +2844,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:246 +#: actions/public.php:247 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2977,8 +3015,7 @@ msgstr "" msgid "Registration successful" msgstr "" -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "" @@ -3161,7 +3198,7 @@ msgstr "" msgid "You already repeated that notice." msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." -#: actions/repeat.php:114 lib/noticelist.php:656 +#: actions/repeat.php:114 lib/noticelist.php:674 #, fuzzy msgid "Repeated" msgstr "Δημιουργία" @@ -3171,47 +3208,47 @@ msgstr "Δημιουργία" msgid "Repeated!" msgstr "Δημιουργία" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "" -#: actions/replies.php:127 +#: actions/replies.php:128 #, php-format msgid "Replies to %1$s, page %2$d" msgstr "" -#: actions/replies.php:144 +#: actions/replies.php:145 #, fuzzy, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "Ροή φίλων του/της %s" -#: actions/replies.php:151 +#: actions/replies.php:152 #, fuzzy, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "Ροή φίλων του/της %s" -#: actions/replies.php:158 +#: actions/replies.php:159 #, fuzzy, php-format msgid "Replies feed for %s (Atom)" msgstr "Ροή φίλων του/της %s" -#: actions/replies.php:198 +#: actions/replies.php:199 #, 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 "" -#: actions/replies.php:203 +#: 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:205 +#: actions/replies.php:206 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3237,7 +3274,6 @@ msgid "User is already sandboxed." msgstr "" #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "" @@ -3262,7 +3298,7 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 #, fuzzy msgid "Save site settings" msgstr "Ρυθμίσεις OpenID" @@ -3295,7 +3331,7 @@ msgstr "Προσκλήσεις" msgid "Description" msgstr "Περιγραφή" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "" @@ -3357,35 +3393,35 @@ msgstr "%s και οι φίλοι του/της" msgid "Could not retrieve favorite notices." msgstr "" -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, fuzzy, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "Ροή φίλων του/της %s" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, fuzzy, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "Ροή φίλων του/της %s" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, fuzzy, php-format msgid "Feed for favorites of %s (Atom)" msgstr "Ροή φίλων του/της %s" -#: actions/showfavorites.php:205 +#: 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:207 +#: 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 :)" msgstr "" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3393,7 +3429,7 @@ msgid "" "would add to their favorites :)" msgstr "" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "" @@ -3407,68 +3443,68 @@ msgstr "" msgid "%1$s group, page %2$d" msgstr "Αδύνατη η αποθήκευση των νέων πληροφοριών του προφίλ" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 #, fuzzy msgid "Group profile" msgstr "Αδύνατη η αποθήκευση του προφίλ." -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 msgid "Note" msgstr "" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, fuzzy, php-format msgid "FOAF for %s group" msgstr "Αδύνατη η αποθήκευση του προφίλ." -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 msgid "Members" msgstr "Μέλη" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 msgid "Created" msgstr "Δημιουργημένος" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3478,7 +3514,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:454 +#: actions/showgroup.php:462 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3487,7 +3523,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:482 +#: actions/showgroup.php:490 msgid "Admins" msgstr "Διαχειριστές" @@ -3944,22 +3980,22 @@ msgstr "" msgid "SMS" msgstr "" -#: actions/tag.php:68 +#: actions/tag.php:69 #, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "" -#: actions/tag.php:86 +#: actions/tag.php:87 #, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "" -#: actions/tag.php:92 +#: actions/tag.php:93 #, fuzzy, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "Ροή φίλων του/της %s" -#: actions/tag.php:98 +#: actions/tag.php:99 #, php-format msgid "Notice feed for tag %s (Atom)" msgstr "" @@ -4010,7 +4046,7 @@ msgstr "" msgid "No such tag." msgstr "" -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "Η μέθοδος του ΑΡΙ είναι υπό κατασκευή." @@ -4041,74 +4077,75 @@ msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +msgctxt "TITLE" msgid "User" msgstr "" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "" -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "" -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "" -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "" -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 msgid "New users" msgstr "Νέοι χρήστες" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "" -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 #, fuzzy msgid "Default subscription" msgstr "Όλες οι συνδρομές" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 #, fuzzy msgid "Automatically subscribe new users to this user." msgstr "" "Αυτόματα γίνε συνδρομητής σε όσους γίνονται συνδρομητές σε μένα (χρήση " "κυρίως από λογισμικό και όχι ανθρώπους)" -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 msgid "Invitations" msgstr "Προσκλήσεις" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 msgid "Invitations enabled" msgstr "" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "" @@ -4282,7 +4319,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 #, fuzzy msgid "Version" msgstr "Προσωπικά" @@ -4323,6 +4360,11 @@ msgstr "Αδύνατη η αποθήκευση του προφίλ." msgid "Group leave failed." msgstr "Αδύνατη η αποθήκευση του προφίλ." +#: classes/Local_group.php:41 +#, fuzzy +msgid "Could not update local group." +msgstr "Αδύνατη η αποθήκευση του προφίλ." + #: classes/Login_token.php:76 #, fuzzy, php-format msgid "Could not create login token for %s" @@ -4340,43 +4382,43 @@ msgstr "" msgid "Could not update message with new URI." msgstr "" -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "Σφάλμα στη βάση δεδομένων κατά την εισαγωγή hashtag: %s" -#: classes/Notice.php:222 +#: classes/Notice.php:239 msgid "Problem saving notice. Too long." msgstr "" -#: classes/Notice.php:226 +#: classes/Notice.php:243 msgid "Problem saving notice. Unknown user." msgstr "" -#: classes/Notice.php:231 +#: classes/Notice.php:248 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:237 +#: classes/Notice.php:254 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:243 +#: classes/Notice.php:260 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "" -#: classes/Notice.php:882 +#: classes/Notice.php:911 msgid "Problem saving group inbox." msgstr "" -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4407,20 +4449,30 @@ msgstr "Απέτυχε η διαγραφή συνδρομής." msgid "Couldn't delete subscription." msgstr "Απέτυχε η διαγραφή συνδρομής." -#: classes/User.php:372 +#: classes/User.php:373 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:423 +#: classes/User_group.php:462 msgid "Could not create group." msgstr "Δεν ήταν δυνατή η δημιουργία ομάδας." -#: classes/User_group.php:452 +#: classes/User_group.php:471 +#, fuzzy +msgid "Could not set group URI." +msgstr "Αδύνατη η αποθήκευση των νέων πληροφοριών του προφίλ" + +#: classes/User_group.php:492 #, fuzzy msgid "Could not set group membership." msgstr "Αδύνατη η αποθήκευση των νέων πληροφοριών του προφίλ" +#: classes/User_group.php:506 +#, fuzzy +msgid "Could not save local group info." +msgstr "Αδύνατη η αποθήκευση των νέων πληροφοριών του προφίλ" + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "Αλλάξτε τις ρυθμίσεις του προφίλ σας" @@ -4462,121 +4514,185 @@ msgstr "" msgid "Primary site navigation" msgstr "" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "Αρχή" - -#: lib/action.php:439 +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:441 -msgid "Change your email, avatar, password, profile" -msgstr "" +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "Προσωπικά" +#. TRANS: Tooltip for main menu option "Account" #: lib/action.php:444 -msgid "Connect" -msgstr "Σύνδεση" +#, fuzzy +msgctxt "TOOLTIP" +msgid "Change your email, avatar, password, profile" +msgstr "Αλλάξτε τον κωδικό σας" -#: lib/action.php:444 +#: lib/action.php:447 #, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "Λογαριασμός" + +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 +#, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Αδυναμία ανακατεύθηνσης στο διακομιστή: %s" -#: lib/action.php:448 +#: lib/action.php:453 +#, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "Σύνδεση" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" -msgstr "" +msgstr "Επιβεβαίωση διεύθυνσης email" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" -msgstr "" +#: lib/action.php:460 +#, fuzzy +msgctxt "MENU" +msgid "Admin" +msgstr "Διαχειριστής" -#: lib/action.php:453 lib/subgroupnav.php:106 -#, php-format +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 +#, fuzzy, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Προσκάλεσε φίλους και συναδέλφους σου να γίνουν μέλη στο %s" -#: lib/action.php:458 -msgid "Logout" -msgstr "Αποσύνδεση" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "Μήνυμα" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "" -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "Αποσύνδεση" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 +#, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "Δημιουργία ενός λογαριασμού" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "Περιγραφή" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "Βοήθεια" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "Σύνδεση" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 +#, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "Βοηθήστε με!" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "Βοήθεια" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "" -#: lib/action.php:493 +#: lib/action.php:502 +msgctxt "MENU" +msgid "Search" +msgstr "" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 msgid "Site notice" msgstr "" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "" -#: lib/action.php:625 +#: lib/action.php:656 msgid "Page notice" msgstr "" -#: lib/action.php:727 +#: lib/action.php:758 msgid "Secondary site navigation" msgstr "" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "Βοήθεια" + +#: lib/action.php:765 msgid "About" msgstr "Περί" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "Συχνές ερωτήσεις" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "Επικοινωνία" -#: lib/action.php:751 +#: lib/action.php:782 msgid "Badge" msgstr "" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "" -#: lib/action.php:782 +#: lib/action.php:813 #, fuzzy, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4585,13 +4701,13 @@ msgstr "" "To **%%site.name%%** είναι μία υπηρεσία microblogging (μικρο-ιστολογίου) που " "έφερε κοντά σας το [%%site.broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:784 +#: lib/action.php:815 #, fuzzy, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "" "Το **%%site.name%%** είναι μία υπηρεσία microblogging (μικρο-ιστολογίου). " -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4599,111 +4715,161 @@ msgid "" "org/licensing/licenses/agpl-3.0.html)." msgstr "" -#: lib/action.php:801 +#: lib/action.php:832 msgid "Site content license" msgstr "" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "" -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "" -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "" -#: lib/action.php:1141 +#: lib/action.php:1172 msgid "After" msgstr "" -#: lib/action.php:1149 +#: lib/action.php:1180 msgid "Before" msgstr "" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." msgstr "" -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 msgid "Changes to that panel are not allowed." msgstr "" -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 msgid "showForm() not implemented." msgstr "" -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 msgid "saveSettings() not implemented." msgstr "" -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 msgid "Unable to delete design setting." msgstr "" -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 #, fuzzy msgid "Basic site configuration" msgstr "Επιβεβαίωση διεύθυνσης email" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +msgctxt "MENU" +msgid "Site" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 #, fuzzy msgid "Design configuration" msgstr "Επιβεβαίωση διεύθυνσης email" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "Προσωπικά" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 #, fuzzy msgid "User configuration" msgstr "Επιβεβαίωση διεύθυνσης email" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +msgctxt "MENU" +msgid "User" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 #, fuzzy msgid "Access configuration" msgstr "Επιβεβαίωση διεύθυνσης email" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "Πρόσβαση" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 #, fuzzy msgid "Paths configuration" msgstr "Επιβεβαίωση διεύθυνσης email" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +msgctxt "MENU" +msgid "Paths" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 #, fuzzy msgid "Sessions configuration" msgstr "Επιβεβαίωση διεύθυνσης email" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "Προσωπικά" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4794,12 +4960,12 @@ msgstr "" msgid "Tags for this attachment" msgstr "" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 #, fuzzy msgid "Password changing failed" msgstr "Ο κωδικός αποθηκεύτηκε." -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 #, fuzzy msgid "Password changing is not allowed" msgstr "Ο κωδικός αποθηκεύτηκε." @@ -5078,20 +5244,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:148 #, fuzzy msgid "No configuration file found. " msgstr "Ο κωδικός επιβεβαίωσης δεν βρέθηκε." -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:152 msgid "Go to the installer." msgstr "" @@ -5279,24 +5445,24 @@ msgstr "" msgid "Not an image or corrupt file." msgstr "" -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "" -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 #, fuzzy msgid "Lost our file." msgstr "Αδύνατη η αποθήκευση του προφίλ." -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "" @@ -5592,6 +5758,11 @@ msgstr "" 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 "" @@ -5650,23 +5821,23 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 msgid "in context" msgstr "" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 msgid "Repeated by" msgstr "Επαναλαμβάνεται από" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 msgid "Reply" msgstr "" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 #, fuzzy msgid "Notice repeated" msgstr "Ρυθμίσεις OpenID" @@ -5716,6 +5887,10 @@ msgstr "" msgid "Favorites" msgstr "" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "" @@ -5807,7 +5982,7 @@ msgstr "Αδυναμία διαγραφής αυτού του μηνύματος msgid "Repeat this notice" msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "" @@ -5828,6 +6003,10 @@ msgstr "" msgid "Keyword(s)" msgstr "" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "" + #: lib/searchaction.php:162 msgid "Search help" msgstr "" @@ -5880,6 +6059,15 @@ msgstr "" 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 "Προσκάλεσε φίλους και συναδέλφους σου να γίνουν μέλη στο %s" + #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 msgid "People Tagcloud as self-tagged" @@ -5952,47 +6140,47 @@ msgstr "Μήνυμα" msgid "Moderate" msgstr "" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "" diff --git a/locale/en_GB/LC_MESSAGES/statusnet.po b/locale/en_GB/LC_MESSAGES/statusnet.po index 98e7790f2..d0ba439ba 100644 --- a/locale/en_GB/LC_MESSAGES/statusnet.po +++ b/locale/en_GB/LC_MESSAGES/statusnet.po @@ -2,7 +2,6 @@ # # Author@translatewiki.net: Bruce89 # Author@translatewiki.net: CiaranG -# Author@translatewiki.net: Lockal # -- # This file is distributed under the same license as the StatusNet package. # @@ -10,75 +9,82 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:50:27+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:02:36+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 (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: en-gb\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 msgid "Access" msgstr "Access" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 msgid "Site access settings" msgstr "Site access settings" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 msgid "Registration" msgstr "Registration" -#: actions/accessadminpanel.php:161 -msgid "Private" -msgstr "Private" - -#: actions/accessadminpanel.php:163 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "Prohibit anonymous users (not logged in) from viewing site?" +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -msgid "Invite only" -msgstr "Invite only" +#, fuzzy +msgctxt "LABEL" +msgid "Private" +msgstr "Private" -#: actions/accessadminpanel.php:169 +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 msgid "Make registration invitation only." msgstr "Make registration invitation only." -#: actions/accessadminpanel.php:173 -msgid "Closed" -msgstr "Closed" +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 +msgid "Invite only" +msgstr "Invite only" -#: actions/accessadminpanel.php:175 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 msgid "Disable new registrations." msgstr "Disable new registrations." -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "Save" +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 +msgid "Closed" +msgstr "Closed" -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 msgid "Save access settings" msgstr "Save access settings" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "Save" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page" msgstr "No such page" -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -92,52 +98,60 @@ msgstr "No such page" #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "No such user." -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s and friends, page %2$d" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s and friends" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Feed for friends of %s (RSS 1.0)" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Feed for friends of %s (RSS 2.0)" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Feed for friends of %s (Atom)" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" "This is the timeline for %s and friends but no one has posted anything yet." -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -146,7 +160,8 @@ msgstr "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " @@ -155,7 +170,7 @@ msgstr "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -164,7 +179,8 @@ msgstr "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " "post a notice to his or her attention." -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 msgid "You and friends" msgstr "You and friends" @@ -182,20 +198,20 @@ msgstr "Updates from %1$s and friends on %2$s!" #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 msgid "API method not found." msgstr "API method not found." @@ -230,8 +246,9 @@ msgstr "Couldn't update user." #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "User has no profile." @@ -258,7 +275,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: 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." @@ -368,68 +385,68 @@ msgstr "Could not determine source user." msgid "Could not find target user." msgstr "Could not find target user." -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "Nickname must have only lowercase letters and numbers, and no spaces." -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Nickname already in use. Try another one." -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Not a valid nickname." -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Homepage is not a valid URL." -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Full name is too long (max 255 chars)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "Description is too long (max %d chars)" -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Location is too long (max 255 chars)." -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "Too many aliases! Maximum %d." -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Invalid alias: \"%s\"" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Alias \"%s\" already in use. Try another one." -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "Alias can't be the same as nickname." @@ -440,15 +457,15 @@ msgstr "Alias can't be the same as nickname." msgid "Group not found!" msgstr "Group not found!" -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 msgid "You are already a member of that group." msgstr "You are already a member of that group." -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "You have been blocked from that group by the admin." -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Could not join user %1$s to group %2$s." @@ -457,7 +474,7 @@ msgstr "Could not join user %1$s to group %2$s." msgid "You are not a member of this group." msgstr "You are not a member of this group." -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Could not remove user %1$s to group %2$s." @@ -488,7 +505,7 @@ msgstr "Invalid token." #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -531,7 +548,7 @@ msgstr "The request token %s has been denied and revoked." #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -557,13 +574,13 @@ msgstr "" "the ability to %3$s your %4$s account data. You should only " "give access to your %4$s account to third parties you trust." -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 msgid "Account" msgstr "Account" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -645,12 +662,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s updates favourited by %2$s / %2$s." #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "%s timeline" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -686,7 +703,7 @@ msgstr "Repeated to %s" msgid "Repeats of %s" msgstr "Repeats of %s" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Notices tagged with %s" @@ -707,8 +724,7 @@ msgstr "No such attachment." #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "No nickname." @@ -720,7 +736,7 @@ msgstr "No size." msgid "Invalid size." msgstr "Invalid size." -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Avatar" @@ -737,30 +753,30 @@ msgid "User without matching profile" msgstr "User without matching profile" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Avatar settings" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Original" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Preview" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 msgid "Delete" msgstr "Delete" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "Upload" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "Crop" @@ -768,7 +784,7 @@ msgstr "Crop" msgid "Pick a square area of the image to be your avatar" msgstr "Pick a square area of the image to be your avatar" -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Lost our file data." @@ -803,22 +819,22 @@ msgstr "" "will not be notified of any @-replies from them." #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "No" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 msgid "Do not block this user" msgstr "Do not block this user" #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Yes" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 msgid "Block this user" msgstr "Block this user" @@ -826,39 +842,43 @@ msgstr "Block this user" msgid "Failed to save block information." msgstr "Failed to save block information." -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 msgid "No such group." msgstr "No such group." -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, php-format msgid "%s blocked profiles" msgstr "%s blocked profiles" -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s blocked profiles, page %2$d" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." msgstr "A list of the users blocked from joining this group." -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 msgid "Unblock user from group" msgstr "Unblock user from group" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "Unblock" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 msgid "Unblock this user" msgstr "Unblock this user" @@ -933,7 +953,7 @@ msgstr "You are not the owner of this application." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "There was a problem with your session token." @@ -959,12 +979,13 @@ msgstr "Do not delete this application" msgid "Delete this application" msgstr "Delete this application" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Not logged in." @@ -993,7 +1014,7 @@ msgstr "Are you sure you want to delete this notice?" msgid "Do not delete this notice" msgstr "Do not delete this notice" -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 msgid "Delete this notice" msgstr "Delete this notice" @@ -1009,7 +1030,7 @@ msgstr "You can only delete local users." msgid "Delete user" msgstr "Delete user" -#: actions/deleteuser.php:135 +#: 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." @@ -1017,12 +1038,12 @@ msgstr "" "Are you sure you want to delete this user? This will clear all data about " "the user from the database, without a backup." -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 msgid "Delete this user" msgstr "Delete this user" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "Design" @@ -1125,6 +1146,17 @@ msgstr "Restore default designs" msgid "Reset back to default" msgstr "Reset back to default" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "Save" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "Save design" @@ -1216,29 +1248,29 @@ msgstr "Edit %s group" msgid "You must be logged in to create a group." msgstr "You must be logged in to create a group." -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: 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 "You must be an admin to edit the group." -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "Use this form to edit the group." -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, php-format msgid "description is too long (max %d chars)." msgstr "description is too long (max %d chars)." -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 msgid "Could not update group." msgstr "Could not update group." -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 msgid "Could not create aliases." msgstr "Could not create aliases" -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 msgid "Options saved." msgstr "Options saved." @@ -1532,23 +1564,20 @@ msgid "Could not convert request token to access token." msgstr "Couldn't convert request tokens to access tokens." #: actions/finishremotesubscribe.php:118 -#, fuzzy msgid "Remote service uses unknown version of OMB protocol." -msgstr "Unknown version of OMB protocol." +msgstr "Remote service uses unknown version of OMB protocol." #: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306 msgid "Error updating remote profile" msgstr "Error updating remote profile." #: actions/getfile.php:79 -#, fuzzy msgid "No such file." -msgstr "No such notice." +msgstr "No such file." #: actions/getfile.php:83 -#, fuzzy msgid "Cannot read file." -msgstr "Lost our file." +msgstr "Cannot read file." #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 @@ -1564,9 +1593,8 @@ msgstr "No profile with that ID." #: actions/groupblock.php:81 actions/groupunblock.php:81 #: actions/makeadmin.php:81 -#, fuzzy msgid "No group specified." -msgstr "No profile specified." +msgstr "No group specified." #: actions/groupblock.php:91 msgid "Only an admin can block group members." @@ -1580,10 +1608,9 @@ msgstr "User is already blocked from group." msgid "User is not a member of group." msgstr "User is not a member of group." -#: actions/groupblock.php:136 actions/groupmembers.php:316 -#, fuzzy +#: actions/groupblock.php:136 actions/groupmembers.php:323 msgid "Block user from group" -msgstr "Block user" +msgstr "Block user from group" #: actions/groupblock.php:162 #, php-format @@ -1609,21 +1636,18 @@ msgid "Database error blocking user from group." msgstr "Database error blocking user from group." #: actions/groupbyid.php:74 actions/userbyid.php:70 -#, fuzzy msgid "No ID." -msgstr "No ID" +msgstr "No ID." #: actions/groupdesignsettings.php:68 -#, fuzzy msgid "You must be logged in to edit a group." -msgstr "You must be logged in to create a group." +msgstr "You must be logged in to edit a group." -#: actions/groupdesignsettings.php:141 -#, fuzzy +#: actions/groupdesignsettings.php:144 msgid "Group design" -msgstr "Groups" +msgstr "Group design" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." @@ -1631,85 +1655,80 @@ msgstr "" "Customise the way your group looks with a background image and a colour " "palette of your choice." -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 -#, fuzzy msgid "Couldn't update your design." -msgstr "Couldn't update user." +msgstr "Couldn't update your design." -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 -#, fuzzy +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 msgid "Design preferences saved." -msgstr "Sync preferences saved." +msgstr "Design preferences saved." -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "Group logo" -#: actions/grouplogo.php:150 -#, fuzzy, php-format +#: actions/grouplogo.php:153 +#, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." -msgstr "You can upload a logo image for your group." +msgstr "" +"You can upload a logo image for your group. The maximum file size is %s." -#: actions/grouplogo.php:178 -#, fuzzy +#: actions/grouplogo.php:181 msgid "User without matching profile." -msgstr "User without matching profile" +msgstr "User without matching profile." -#: actions/grouplogo.php:362 -#, fuzzy +#: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." -msgstr "Pick a square area of the image to be your avatar" +msgstr "Pick a square area of the image to be the logo." -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 msgid "Logo updated." msgstr "Logo updated." -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 msgid "Failed updating logo." msgstr "Failed updating logo." -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "%s group members" -#: actions/groupmembers.php:96 -#, fuzzy, php-format +#: actions/groupmembers.php:103 +#, php-format msgid "%1$s group members, page %2$d" -msgstr "%s group members, page %d" +msgstr "%1$s group members, page %2$d" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "A list of the users in this group." -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "Admin" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "Block" -#: actions/groupmembers.php:443 -#, fuzzy +#: actions/groupmembers.php:450 msgid "Make user an admin of the group" -msgstr "You must be an admin to edit the group" +msgstr "Make user an admin of the group" -#: actions/groupmembers.php:475 -#, fuzzy +#: actions/groupmembers.php:482 msgid "Make Admin" -msgstr "Admin" +msgstr "Make admin" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" -msgstr "" +msgstr "Make this user an admin" -#: actions/grouprss.php:133 -#, fuzzy, php-format +#: actions/grouprss.php:140 +#, php-format msgid "Updates from members of %1$s on %2$s!" -msgstr "Updates from %1$s on %2$s!" +msgstr "Updates from members of %1$s on %2$s!" #: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 @@ -1741,12 +1760,12 @@ msgid "Create a new group" msgstr "Create a new group" #: actions/groupsearch.php:52 -#, fuzzy, php-format +#, 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 "" -"Search for people on %%site.name%% by their name, location, or interests. " +"Search for groups on %%site.name%% by their name, location, or description. " "Separate the terms by spaces; they must be 3 characters or more." #: actions/groupsearch.php:58 @@ -1755,9 +1774,8 @@ msgstr "Group search" #: actions/groupsearch.php:79 actions/noticesearch.php:117 #: actions/peoplesearch.php:83 -#, fuzzy msgid "No results." -msgstr "No results" +msgstr "No results." #: actions/groupsearch.php:82 #, php-format @@ -1786,9 +1804,8 @@ msgid "Error removing the block." msgstr "Error removing the block." #: actions/imsettings.php:59 -#, fuzzy msgid "IM settings" -msgstr "I.M. Settings" +msgstr "IM settings" #: actions/imsettings.php:70 #, php-format @@ -1880,9 +1897,9 @@ msgid "That is not your Jabber ID." msgstr "That is not your Jabber ID." #: actions/inbox.php:59 -#, fuzzy, php-format +#, php-format msgid "Inbox for %1$s - page %2$d" -msgstr "Inbox for %s" +msgstr "Inbox for %1$s - page %2$d" #: actions/inbox.php:62 #, php-format @@ -1964,16 +1981,19 @@ msgstr "Personal message" msgid "Optionally add a personal message to the invitation." msgstr "Optionally add a personal message to the invitation." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" msgstr "Send" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s has invited you to join them on %2$s" -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2034,23 +2054,27 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "You must be logged in to join a group." -#: actions/joingroup.php:131 -#, fuzzy, php-format +#: actions/joingroup.php:88 actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "No nickname or ID." + +#: actions/joingroup.php:141 +#, php-format msgid "%1$s joined group %2$s" -msgstr "%s joined group %s" +msgstr "%1$s joined group %2$s" #: actions/leavegroup.php:60 msgid "You must be logged in to leave a group." msgstr "You must be logged in to leave a group." -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 msgid "You are not a member of that group." msgstr "You are not a member of that group." -#: actions/leavegroup.php:127 -#, fuzzy, php-format +#: actions/leavegroup.php:137 +#, php-format msgid "%1$s left group %2$s" -msgstr "%s left group %s" +msgstr "%1$s left group %2$s" #: actions/login.php:80 actions/otp.php:62 actions/register.php:137 msgid "Already logged in." @@ -2064,8 +2088,7 @@ msgstr "Incorrect username or password." msgid "Error setting user. You are probably not authorized." msgstr "Error setting user. You are probably not authorised." -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "Login" @@ -2107,47 +2130,43 @@ msgid "Only an admin can make another user an admin." msgstr "" #: actions/makeadmin.php:96 -#, fuzzy, php-format +#, php-format msgid "%1$s is already an admin for group \"%2$s\"." -msgstr "User is already blocked from group." +msgstr "%1$s is already an admin for group \"%2$s\"." #: actions/makeadmin.php:133 -#, fuzzy, php-format +#, php-format msgid "Can't get membership record for %1$s in group %2$s." -msgstr "Could not remove user %s to group %s" +msgstr "Can't get membership record for %1$s in group %2$s." #: actions/makeadmin.php:146 -#, fuzzy, php-format +#, php-format msgid "Can't make %1$s an admin for group %2$s." -msgstr "You must be an admin to edit the group" +msgstr "Can't make %1$s an admin for group %2$s." #: actions/microsummary.php:69 msgid "No current status" msgstr "No current status" #: actions/newapplication.php:52 -#, fuzzy msgid "New Application" -msgstr "No such notice." +msgstr "New Application" #: actions/newapplication.php:64 -#, fuzzy msgid "You must be logged in to register an application." -msgstr "You must be logged in to create a group." +msgstr "You must be logged in to register an application." #: actions/newapplication.php:143 -#, fuzzy msgid "Use this form to register a new application." -msgstr "Use this form to create a new group." +msgstr "Use this form to register a new application." #: actions/newapplication.php:176 msgid "Source URL is required." -msgstr "" +msgstr "Source URL is required." #: actions/newapplication.php:258 actions/newapplication.php:267 -#, fuzzy msgid "Could not create application." -msgstr "Could not create aliases" +msgstr "Could not create application." #: actions/newgroup.php:53 msgid "New group" @@ -2185,9 +2204,9 @@ msgid "Message sent" msgstr "Message sent" #: actions/newmessage.php:185 -#, fuzzy, php-format +#, php-format msgid "Direct message to %s sent." -msgstr "Direct message to %s sent" +msgstr "Could not create application." #: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" @@ -2215,9 +2234,9 @@ msgid "Text search" msgstr "Text search" #: actions/noticesearch.php:91 -#, fuzzy, php-format +#, php-format msgid "Search results for \"%1$s\" on %2$s" -msgstr "Search results for \"%s\" on %s" +msgstr "Search results for \"%1$s\" on %2$s" #: actions/noticesearch.php:121 #, php-format @@ -2225,6 +2244,8 @@ msgid "" "Be the first to [post on this topic](%%%%action.newnotice%%%%?" "status_textarea=%s)!" msgstr "" +"Be the first to [post on this topic](%%%%action.newnotice%%%%?" +"status_textarea=%s)!" #: actions/noticesearch.php:124 #, php-format @@ -2260,14 +2281,12 @@ msgid "Nudge sent!" msgstr "Nudge sent!" #: actions/oauthappssettings.php:59 -#, fuzzy msgid "You must be logged in to list your applications." -msgstr "You must be logged in to create a group." +msgstr "You must be logged in to list your applications." #: actions/oauthappssettings.php:74 -#, fuzzy msgid "OAuth applications" -msgstr "Other options" +msgstr "OAuth applications" #: actions/oauthappssettings.php:85 msgid "Applications you have registered" @@ -2287,9 +2306,8 @@ msgid "You have allowed the following applications to access you account." msgstr "" #: actions/oauthconnectionssettings.php:175 -#, fuzzy msgid "You are not a user of that application." -msgstr "You are not a member of that group." +msgstr "You are not a user of that application." #: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " @@ -2314,16 +2332,15 @@ msgid "%1$s's status on %2$s" msgstr "%1$s's status on %2$s" #: actions/oembed.php:157 -#, fuzzy msgid "content type " -msgstr "Connect" +msgstr "content type " #: actions/oembed.php:160 msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "Not a supported data format." @@ -2336,9 +2353,8 @@ msgid "Notice Search" msgstr "Notice Search" #: actions/othersettings.php:60 -#, fuzzy msgid "Other settings" -msgstr "Other Settings" +msgstr "Other settings" #: actions/othersettings.php:71 msgid "Manage various other options." @@ -2357,9 +2373,8 @@ msgid "Automatic shortening service to use." msgstr "Automatic shortening service to use." #: actions/othersettings.php:122 -#, fuzzy msgid "View profile designs" -msgstr "Profile settings" +msgstr "View profile designs" #: actions/othersettings.php:123 msgid "Show or hide profile designs." @@ -2370,34 +2385,29 @@ msgid "URL shortening service is too long (max 50 chars)." msgstr "URL shortening service is too long (max 50 chars)." #: actions/otp.php:69 -#, fuzzy msgid "No user ID specified." -msgstr "No profile specified." +msgstr "No user ID specified." #: actions/otp.php:83 -#, fuzzy msgid "No login token specified." -msgstr "No profile specified." +msgstr "No login token specified." #: actions/otp.php:90 -#, fuzzy msgid "No login token requested." -msgstr "No profile id in request." +msgstr "No login token requested." #: actions/otp.php:95 -#, fuzzy msgid "Invalid login token specified." -msgstr "Invalid notice content" +msgstr "Invalid login token specified." #: actions/otp.php:104 -#, fuzzy msgid "Login token expired." -msgstr "Login to site" +msgstr "Login token expired." #: actions/outbox.php:58 -#, fuzzy, php-format +#, php-format msgid "Outbox for %1$s - page %2$d" -msgstr "Outbox for %s" +msgstr "Outbox for %1$s - page %2$d" #: actions/outbox.php:61 #, php-format @@ -2469,7 +2479,7 @@ msgstr "Can't save new password." msgid "Password saved." msgstr "Password saved." -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "" @@ -2502,10 +2512,8 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 -#, fuzzy msgid "Site" -msgstr "Invite" +msgstr "Site" #: actions/pathsadminpanel.php:238 msgid "Server" @@ -2556,24 +2564,20 @@ msgid "Theme directory" msgstr "" #: actions/pathsadminpanel.php:279 -#, fuzzy msgid "Avatars" -msgstr "Avatar" +msgstr "Avatars" #: actions/pathsadminpanel.php:284 -#, fuzzy msgid "Avatar server" -msgstr "Avatar settings" +msgstr "Avatar server" #: actions/pathsadminpanel.php:288 -#, fuzzy msgid "Avatar path" -msgstr "Avatar updated." +msgstr "Avatar path" #: actions/pathsadminpanel.php:292 -#, fuzzy msgid "Avatar directory" -msgstr "Avatar updated." +msgstr "Avatar directory" #: actions/pathsadminpanel.php:301 msgid "Backgrounds" @@ -2616,9 +2620,8 @@ msgid "When to use SSL" msgstr "" #: actions/pathsadminpanel.php:335 -#, fuzzy msgid "SSL server" -msgstr "Server" +msgstr "SSL server" #: actions/pathsadminpanel.php:336 msgid "Server to direct SSL requests to" @@ -2647,9 +2650,9 @@ msgid "Not a valid people tag: %s" msgstr "Not a valid people tag: %s" #: actions/peopletag.php:144 -#, fuzzy, php-format +#, php-format msgid "Users self-tagged with %1$s - page %2$d" -msgstr "Users self-tagged with %s - page %d" +msgstr "Users self-tagged with %1$s - page %2$d" #: actions/postnotice.php:84 msgid "Invalid notice content" @@ -2679,7 +2682,7 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 lowercase letters or numbers, no punctuation or spaces" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "Full name" @@ -2707,7 +2710,7 @@ msgid "Bio" msgstr "Bio" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2778,9 +2781,8 @@ msgid "Couldn't update user for autosubscribe." msgstr "Couldn't update user for autosubscribe." #: actions/profilesettings.php:363 -#, fuzzy msgid "Couldn't save location prefs." -msgstr "Couldn't save tags." +msgstr "Couldn't save location prefs." #: actions/profilesettings.php:375 msgid "Couldn't save profile." @@ -2790,7 +2792,8 @@ msgstr "Couldn't save profile." msgid "Couldn't save tags." msgstr "Couldn't save tags." -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "Settings saved." @@ -2803,48 +2806,45 @@ msgstr "" msgid "Could not retrieve public stream." msgstr "Could not retrieve public stream." -#: actions/public.php:129 +#: actions/public.php:130 #, php-format msgid "Public timeline, page %d" msgstr "Public timeline, page %d" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "Public timeline" -#: actions/public.php:159 -#, fuzzy +#: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" -msgstr "Public Stream Feed" +msgstr "Public Stream Feed (RSS 1.0)" -#: actions/public.php:163 -#, fuzzy +#: actions/public.php:164 msgid "Public Stream Feed (RSS 2.0)" -msgstr "Public Stream Feed" +msgstr "Public Stream Feed (RSS 2.0)" -#: actions/public.php:167 -#, fuzzy +#: actions/public.php:168 msgid "Public Stream Feed (Atom)" -msgstr "Public Stream Feed" +msgstr "Public Stream Feed (Atom)" -#: actions/public.php:187 +#: 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:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2857,7 +2857,7 @@ msgstr "" "tool. [Join now](%%action.register%%) to share notices about yourself with " "friends, family, and colleagues! ([Read more](%%doc.help%%))" -#: actions/public.php:246 +#: actions/public.php:247 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3026,16 +3026,14 @@ msgid "Sorry, only invited people can register." msgstr "Sorry, only invited people can register." #: actions/register.php:92 -#, fuzzy msgid "Sorry, invalid invitation code." -msgstr "Error with confirmation code." +msgstr "Sorry, invalid invitation code." #: actions/register.php:112 msgid "Registration successful" msgstr "Registration successful" -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "Register" @@ -3095,12 +3093,11 @@ msgid "Creative Commons Attribution 3.0" msgstr "" #: actions/register.php:497 -#, fuzzy msgid "" " except this private data: password, email address, IM address, and phone " "number." msgstr "" -" except this private data: password, e-mail address, IM address, phone " +" except this private data: password, email address, IM address, and phone " "number." #: actions/register.php:538 @@ -3160,9 +3157,8 @@ msgid "Remote subscribe" msgstr "Remote subscribe" #: actions/remotesubscribe.php:124 -#, fuzzy msgid "Subscribe to a remote user" -msgstr "Subscribe to this user" +msgstr "Subscribe to a remote user" #: actions/remotesubscribe.php:129 msgid "User nickname" @@ -3190,98 +3186,91 @@ msgid "Invalid profile URL (bad format)" msgstr "Invalid profile URL (bad format)" #: actions/remotesubscribe.php:168 -#, fuzzy msgid "Not a valid profile URL (no YADIS document or invalid XRDS defined)." -msgstr "Not a valid profile URL (no YADIS document)." +msgstr "Not a valid profile URL (no YADIS document or invalid XRDS defined)." #: actions/remotesubscribe.php:176 -#, fuzzy msgid "That’s a local profile! Login to subscribe." -msgstr "That's a local profile! Login to subscribe." +msgstr "That’s a local profile! Login to subscribe." #: actions/remotesubscribe.php:183 -#, fuzzy msgid "Couldn’t get a request token." -msgstr "Couldn't get a request token." +msgstr "Couldn’t get a request token." #: actions/repeat.php:57 -#, fuzzy msgid "Only logged-in users can repeat notices." -msgstr "Only the user can read their own mailboxes." +msgstr "Only logged-in users can repeat notices." #: actions/repeat.php:64 actions/repeat.php:71 -#, fuzzy msgid "No notice specified." -msgstr "No profile specified." +msgstr "No notice specified." #: actions/repeat.php:76 msgid "You can't repeat your own notice." msgstr "You can't repeat your own notice." #: actions/repeat.php:90 -#, fuzzy msgid "You already repeated that notice." -msgstr "You have already blocked this user." +msgstr "You already repeated that notice." -#: actions/repeat.php:114 lib/noticelist.php:656 -#, fuzzy +#: actions/repeat.php:114 lib/noticelist.php:674 msgid "Repeated" -msgstr "Created" +msgstr "Repeated" #: actions/repeat.php:119 -#, fuzzy msgid "Repeated!" -msgstr "Created" +msgstr "Repeated!" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "Replies to %s" -#: actions/replies.php:127 -#, fuzzy, php-format +#: actions/replies.php:128 +#, php-format msgid "Replies to %1$s, page %2$d" -msgstr "Replies to %1$s on %2$s!" +msgstr "Replies to %1$s, page %2$d" -#: actions/replies.php:144 +#: actions/replies.php:145 #, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "Replies feed for %s (RSS 1.0)" -#: actions/replies.php:151 +#: actions/replies.php:152 #, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "Replies feed for %s (RSS 2.0)" -#: actions/replies.php:158 +#: actions/replies.php:159 #, php-format msgid "Replies feed for %s (Atom)" msgstr "Notice feed for %s" -#: actions/replies.php:198 -#, fuzzy, php-format +#: actions/replies.php:199 +#, 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 "" -"This is the timeline for %s and friends but no one has posted anything yet." +"This is the timeline showing replies to %1$s but %2$s hasn't received a " +"notice to his attention yet." -#: actions/replies.php:203 +#: 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:205 -#, fuzzy, php-format +#: 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)." msgstr "" -"You can try to [nudge %s](../%s) from his profile or [post something to his " -"or her attention](%%%%action.newnotice%%%%?status_textarea=%s)." +"You can try to [nudge %1$s](../%2$s) or [post something to his or her " +"attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." #: actions/repliesrss.php:72 #, php-format @@ -3289,9 +3278,8 @@ msgid "Replies to %1$s on %2$s!" msgstr "Replies to %1$s on %2$s!" #: actions/rsd.php:146 actions/version.php:157 -#, fuzzy msgid "StatusNet" -msgstr "Status deleted." +msgstr "StatusNet" #: actions/sandbox.php:65 actions/unsandbox.php:65 msgid "You cannot sandbox users on this site." @@ -3302,14 +3290,12 @@ msgid "User is already sandboxed." msgstr "User is already sandboxed." #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "" #: actions/sessionsadminpanel.php:65 -#, fuzzy msgid "Session settings for this StatusNet site." -msgstr "Design settings for this StausNet site." +msgstr "Session settings for this StatusNet site." #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3328,19 +3314,17 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Save site settings" #: actions/showapplication.php:82 -#, fuzzy msgid "You must be logged in to view an application." -msgstr "You must be logged in to leave a group." +msgstr "You must be logged in to view an application." #: actions/showapplication.php:157 -#, fuzzy msgid "Application profile" -msgstr "Notice has no profile" +msgstr "Application profile" #: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" @@ -3348,21 +3332,19 @@ msgstr "" #: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 -#, fuzzy msgid "Name" -msgstr "Nickname" +msgstr "Name" #: actions/showapplication.php:178 lib/applicationeditform.php:222 -#, fuzzy msgid "Organization" -msgstr "Pagination" +msgstr "Organization" #: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 msgid "Description" msgstr "Description" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Statistics" @@ -3411,35 +3393,34 @@ msgid "" msgstr "" #: actions/showapplication.php:309 -#, fuzzy msgid "Are you sure you want to reset your consumer key and secret?" -msgstr "Are you sure you want to delete this notice?" +msgstr "Are you sure you want to reset your consumer key and secret?" #: actions/showfavorites.php:79 -#, fuzzy, php-format +#, php-format msgid "%1$s's favorite notices, page %2$d" -msgstr "%s's favourite notices" +msgstr "%1$s's favorite notices, page %2$d" #: actions/showfavorites.php:132 msgid "Could not retrieve favorite notices." msgstr "Could not retrieve favourite notices." -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "Feed for friends of %s" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "Feed for friends of %s" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" msgstr "Feed for friends of %s" -#: actions/showfavorites.php:205 +#: 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." @@ -3447,7 +3428,7 @@ msgstr "" "You haven't chosen any favourite notices yet. Click the fave button on " "notices you like to bookmark them for later or shed a spotlight on them." -#: actions/showfavorites.php:207 +#: actions/showfavorites.php:208 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Post something interesting " @@ -3456,7 +3437,7 @@ msgstr "" "%s hasn't added any notices to his favourites yet. Post something " "interesting they would add to their favourites :)" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3467,7 +3448,7 @@ msgstr "" "account](%%%%action.register%%%%) and then post something interesting they " "would add to their favourites :)" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "" @@ -3477,71 +3458,71 @@ msgid "%s group" msgstr "%s group" #: actions/showgroup.php:84 -#, fuzzy, php-format +#, php-format msgid "%1$s group, page %2$d" -msgstr "%s group members, page %d" +msgstr "%1$s group, page %2$d" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 msgid "Group profile" msgstr "Group profile" -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "URL" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 msgid "Note" msgstr "Note" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "Group actions" -#: actions/showgroup.php:328 -#, fuzzy, php-format +#: actions/showgroup.php:336 +#, php-format msgid "Notice feed for %s group (RSS 1.0)" -msgstr "Notice feed for %s group" +msgstr "Notice feed for %s group (RSS 1.0)" -#: actions/showgroup.php:334 -#, fuzzy, php-format +#: actions/showgroup.php:342 +#, php-format msgid "Notice feed for %s group (RSS 2.0)" -msgstr "Notice feed for %s group" +msgstr "Notice feed for %s group (RSS 2.0)" -#: actions/showgroup.php:340 -#, fuzzy, php-format +#: actions/showgroup.php:348 +#, php-format msgid "Notice feed for %s group (Atom)" -msgstr "Notice feed for %s group" +msgstr "Notice feed for %s group (Atom)" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, php-format msgid "FOAF for %s group" msgstr "Outbox for %s" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 msgid "Members" msgstr "Members" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(None)" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "All members" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 msgid "Created" msgstr "Created" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3556,8 +3537,8 @@ 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:454 -#, fuzzy, php-format +#: actions/showgroup.php:462 +#, 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 " @@ -3565,12 +3546,13 @@ msgid "" "their life and interests. " msgstr "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." -"wikipedia.org/wiki/Micro-blogging) service " +"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. " -#: actions/showgroup.php:482 -#, fuzzy +#: actions/showgroup.php:490 msgid "Admins" -msgstr "Admin" +msgstr "Admins" #: actions/showmessage.php:81 msgid "No such message." @@ -3600,29 +3582,29 @@ msgid " tagged %s" msgstr " tagged %s" #: actions/showstream.php:79 -#, fuzzy, php-format +#, php-format msgid "%1$s, page %2$d" -msgstr "%1$s and friends, page %2$d" +msgstr "%1$s, page %2$d" #: actions/showstream.php:122 -#, fuzzy, php-format +#, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" -msgstr "Notice feed for %s tagged %s (RSS 1.0)" +msgstr "Notice feed for %1$s tagged %2$s (RSS 1.0)" #: actions/showstream.php:129 -#, fuzzy, php-format +#, php-format msgid "Notice feed for %s (RSS 1.0)" -msgstr "Notice feed for %s" +msgstr "Notice feed for %s (RSS 1.0)" #: actions/showstream.php:136 -#, fuzzy, php-format +#, php-format msgid "Notice feed for %s (RSS 2.0)" -msgstr "Notice feed for %s" +msgstr "Notice feed for %s (RSS 2.0)" #: actions/showstream.php:143 -#, fuzzy, php-format +#, php-format msgid "Notice feed for %s (Atom)" -msgstr "Notice feed for %s" +msgstr "Notice feed for %s (Atom)" #: actions/showstream.php:148 #, php-format @@ -3630,10 +3612,9 @@ msgid "FOAF for %s" msgstr "FOAF for %s" #: actions/showstream.php:200 -#, fuzzy, php-format +#, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." -msgstr "" -"This is the timeline for %s and friends but no one has posted anything yet." +msgstr "This is the timeline for %1$s but %2$s hasn't posted anything yet." #: actions/showstream.php:205 msgid "" @@ -3642,13 +3623,13 @@ msgid "" msgstr "" #: actions/showstream.php:207 -#, fuzzy, php-format +#, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" "action.newnotice%%%%?status_textarea=%2$s)." msgstr "" -"You can try to [nudge %s](../%s) from his profile or [post something to his " -"or her attention](%%%%action.newnotice%%%%?status_textarea=%s)." +"You can try to nudge %1$s or [post something to his or her attention](%%%%" +"action.newnotice%%%%?status_textarea=%2$s)." #: actions/showstream.php:243 #, php-format @@ -3671,19 +3652,17 @@ msgstr "" "[StatusNet](http://status.net/) tool. " #: actions/showstream.php:305 -#, fuzzy, php-format +#, php-format msgid "Repeat of %s" -msgstr "Replies to %s" +msgstr "Repeat of %s" #: actions/silence.php:65 actions/unsilence.php:65 -#, fuzzy msgid "You cannot silence users on this site." -msgstr "You can't send a message to this user." +msgstr "You cannot silence users on this site." #: actions/silence.php:72 -#, fuzzy msgid "User is already silenced." -msgstr "User is already blocked from group." +msgstr "User is already silenced." #: actions/siteadminpanel.php:69 msgid "Basic settings for this StatusNet site." @@ -3694,9 +3673,8 @@ msgid "Site name must have non-zero length." msgstr "" #: actions/siteadminpanel.php:140 -#, fuzzy msgid "You must have a valid contact email address." -msgstr "Not a valid e-mail address." +msgstr "You must have a valid contact email address." #: actions/siteadminpanel.php:158 #, php-format @@ -3756,9 +3734,8 @@ msgid "Contact email address for your site" msgstr "Contact e-mail address for your site" #: actions/siteadminpanel.php:263 -#, fuzzy msgid "Local" -msgstr "Local views" +msgstr "Local" #: actions/siteadminpanel.php:274 msgid "Default timezone" @@ -3829,9 +3806,8 @@ msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" #: actions/smssettings.php:58 -#, fuzzy msgid "SMS settings" -msgstr "SMS Settings" +msgstr "SMS settings" #: actions/smssettings.php:69 #, php-format @@ -3860,16 +3836,14 @@ msgid "Enter the code you received on your phone." msgstr "Enter the code you received on your phone." #: actions/smssettings.php:138 -#, fuzzy msgid "SMS phone number" -msgstr "SMS Phone number" +msgstr "SMS phone number" #: actions/smssettings.php:140 msgid "Phone number, no punctuation or spaces, with area code" msgstr "Phone number, no punctuation or spaces, with area code" #: actions/smssettings.php:174 -#, fuzzy msgid "" "Send me notices through SMS; I understand I may incur exorbitant charges " "from my carrier." @@ -3882,7 +3856,6 @@ msgid "No phone number." msgstr "No phone number." #: actions/smssettings.php:311 -#, fuzzy msgid "No carrier selected." msgstr "No carrier selected." @@ -3895,13 +3868,12 @@ msgid "That phone number already belongs to another user." msgstr "That phone number already belongs to another user." #: actions/smssettings.php:347 -#, fuzzy 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 "" -"A confirmation code was sent to the phone number you added. Check your inbox " -"(and spam box!) for the code and instructions on how to use it." +"A confirmation code was sent to the phone number you added. Check your phone " +"for the code and instructions on how to use it." #: actions/smssettings.php:374 msgid "That is the wrong confirmation number." @@ -3912,23 +3884,21 @@ msgid "That is not your phone number." msgstr "That is not your phone number." #: actions/smssettings.php:465 -#, fuzzy msgid "Mobile carrier" msgstr "Mobile carrier" #: actions/smssettings.php:469 -#, fuzzy msgid "Select a carrier" msgstr "Select a carrier" #: actions/smssettings.php:476 -#, fuzzy, php-format +#, 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 "" -"Mobile carrier for your phone. If you know a carrier that accepts SMS over e-" -"mail but isn't listed here, send e-mail to let us know at %s." +"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." #: actions/smssettings.php:498 msgid "No code entered" @@ -3948,14 +3918,12 @@ msgid "This action only accepts POST requests." msgstr "" #: actions/subscribe.php:107 -#, fuzzy msgid "No such profile." -msgstr "No such notice." +msgstr "No such profile." #: actions/subscribe.php:117 -#, fuzzy msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." -msgstr "You are not subscribed to that profile." +msgstr "You cannot subscribe to an OMB 0.1 remote profile with this action." #: actions/subscribe.php:145 msgid "Subscribed" @@ -3967,9 +3935,9 @@ msgid "%s subscribers" msgstr "%s subscribers" #: actions/subscribers.php:52 -#, fuzzy, php-format +#, php-format msgid "%1$s subscribers, page %2$d" -msgstr "%s subscribers, page %d" +msgstr "%1$s subscribers, page %2$d" #: actions/subscribers.php:63 msgid "These are the people who listen to your notices." @@ -4004,9 +3972,9 @@ msgid "%s subscriptions" msgstr "%s subscriptions" #: actions/subscriptions.php:54 -#, fuzzy, php-format +#, php-format msgid "%1$s subscriptions, page %2$d" -msgstr "%s subscriptions, page %d" +msgstr "%1$s subscriptions, page %2$d" #: actions/subscriptions.php:65 msgid "These are the people whose notices you listen to." @@ -4040,30 +4008,29 @@ msgstr "Jabber" msgid "SMS" msgstr "SMS" -#: actions/tag.php:68 -#, fuzzy, php-format +#: actions/tag.php:69 +#, php-format msgid "Notices tagged with %1$s, page %2$d" -msgstr "Users self-tagged with %s - page %d" +msgstr "Notices tagged with %1$s, page %2$d" -#: actions/tag.php:86 -#, fuzzy, php-format +#: actions/tag.php:87 +#, php-format msgid "Notice feed for tag %s (RSS 1.0)" -msgstr "Notice feed for %s" +msgstr "Notice feed for tag %s (RSS 1.0)" -#: actions/tag.php:92 -#, fuzzy, php-format +#: actions/tag.php:93 +#, php-format msgid "Notice feed for tag %s (RSS 2.0)" -msgstr "Notice feed for %s" +msgstr "Notice feed for tag %s (RSS 2.0)" -#: actions/tag.php:98 -#, fuzzy, php-format +#: actions/tag.php:99 +#, php-format msgid "Notice feed for tag %s (Atom)" -msgstr "Notice feed for %s" +msgstr "Notice feed for tag %s (Atom)" #: actions/tagother.php:39 -#, fuzzy msgid "No ID argument." -msgstr "No id argument." +msgstr "No ID argument." #: actions/tagother.php:65 #, php-format @@ -4109,24 +4076,21 @@ msgstr "Use this form to add tags to your subscribers or subscriptions." msgid "No such tag." msgstr "No such tag." -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "API method under construction." #: actions/unblock.php:59 -#, fuzzy msgid "You haven't blocked that user." -msgstr "You have already blocked this user." +msgstr "You haven't blocked that user." #: actions/unsandbox.php:72 -#, fuzzy msgid "User is not sandboxed." -msgstr "User has blocked you." +msgstr "User is not sandboxed." #: actions/unsilence.php:72 -#, fuzzy msgid "User is not silenced." -msgstr "User has no profile." +msgstr "User is not silenced." #: actions/unsubscribe.php:77 msgid "No profile id in request." @@ -4137,79 +4101,78 @@ msgid "Unsubscribed" msgstr "Unsubscribed" #: actions/updateprofile.php:62 actions/userauthorization.php:337 -#, fuzzy, php-format +#, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." -msgstr "Notice licence ‘%s’ is not compatible with site licence ‘%s’." +msgstr "" +"Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +#, fuzzy +msgctxt "TITLE" msgid "User" msgstr "User" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "" -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "" -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "" -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "Profile" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "" -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 msgid "New users" msgstr "New users" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "" -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 msgid "Default subscription" msgstr "Default subscription" -#: actions/useradminpanel.php:241 -#, fuzzy +#: actions/useradminpanel.php:242 msgid "Automatically subscribe new users to this user." -msgstr "" -"Automatically subscribe to whoever subscribes to me (best for non-humans)" +msgstr "Automatically subscribe new users to this user." -#: actions/useradminpanel.php:250 -#, fuzzy +#: actions/useradminpanel.php:251 msgid "Invitations" -msgstr "Invitation(s) sent" +msgstr "Invitations" -#: actions/useradminpanel.php:255 -#, fuzzy +#: actions/useradminpanel.php:256 msgid "Invitations enabled" -msgstr "Invitation(s) sent" +msgstr "Invitations enabled" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "" @@ -4218,15 +4181,14 @@ msgid "Authorize subscription" msgstr "Authorise subscription" #: actions/userauthorization.php:110 -#, fuzzy 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 "" "Please check these details to make sure that you want to subscribe to this " -"user's notices. If you didn't just ask to subscribe to someone's notices, " -"click \"Cancel\"." +"user’s notices. If you didn’t just ask to subscribe to someone’s notices, " +"click “Reject”." #: actions/userauthorization.php:196 actions/version.php:165 msgid "License" @@ -4258,14 +4220,13 @@ msgid "Subscription authorized" msgstr "Subscription authorised" #: actions/userauthorization.php:256 -#, fuzzy msgid "" "The subscription has been authorized, but no callback URL was passed. Check " "with the site’s instructions for details on how to authorize the " "subscription. Your subscription token is:" msgstr "" -"The subscription has been authorised, but no callback URL was passed. Check " -"with the site's instructions for details on how to authorise the " +"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:" #: actions/userauthorization.php:266 @@ -4273,14 +4234,13 @@ msgid "Subscription rejected" msgstr "Subscription rejected" #: actions/userauthorization.php:268 -#, fuzzy msgid "" "The subscription has been rejected, but no callback URL was passed. Check " "with the site’s instructions for details on how to fully reject the " "subscription." msgstr "" "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 " +"with the site’s instructions for details on how to fully reject the " "subscription." #: actions/userauthorization.php:303 @@ -4309,19 +4269,18 @@ msgid "Avatar URL ‘%s’ is not valid." msgstr "" #: actions/userauthorization.php:350 -#, fuzzy, php-format +#, php-format msgid "Can’t read avatar URL ‘%s’." -msgstr "Can't read avatar URL '%s'" +msgstr "Can’t read avatar URL ‘%s’." #: actions/userauthorization.php:355 -#, fuzzy, php-format +#, php-format msgid "Wrong image type for avatar URL ‘%s’." -msgstr "Wrong image type for '%s'" +msgstr "Wrong image type for avatar URL ‘%s’." #: actions/userdesignsettings.php:76 lib/designsettings.php:65 -#, fuzzy msgid "Profile design" -msgstr "Profile settings" +msgstr "Profile design" #: actions/userdesignsettings.php:87 lib/designsettings.php:76 msgid "" @@ -4334,19 +4293,18 @@ msgid "Enjoy your hotdog!" msgstr "" #: actions/usergroups.php:64 -#, fuzzy, php-format +#, php-format msgid "%1$s groups, page %2$d" -msgstr "%s group members, page %d" +msgstr "%1$s groups, page %2$d" #: actions/usergroups.php:130 -#, fuzzy msgid "Search for more groups" -msgstr "Search for people or text" +msgstr "Search for more groups" #: actions/usergroups.php:153 -#, fuzzy, php-format +#, php-format msgid "%s is not a member of any group." -msgstr "You are not a member of that group." +msgstr "%s is not a member of any group." #: actions/usergroups.php:158 #, php-format @@ -4354,9 +4312,9 @@ msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" #: actions/version.php:73 -#, fuzzy, php-format +#, php-format msgid "StatusNet %s" -msgstr "Statistics" +msgstr "StatusNet %s" #: actions/version.php:153 #, php-format @@ -4406,10 +4364,9 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:747 -#, fuzzy +#: actions/version.php:196 lib/action.php:778 msgid "Version" -msgstr "Personal" +msgstr "Version" #: actions/version.php:197 msgid "Author(s)" @@ -4433,29 +4390,29 @@ msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" #: classes/Group_member.php:41 -#, fuzzy msgid "Group join failed." -msgstr "Group profile" +msgstr "Group join failed." #: classes/Group_member.php:53 -#, fuzzy msgid "Not part of group." -msgstr "Could not update group." +msgstr "Not part of group." #: classes/Group_member.php:60 -#, fuzzy msgid "Group leave failed." -msgstr "Group profile" +msgstr "Group leave failed." + +#: classes/Local_group.php:41 +msgid "Could not update local group." +msgstr "Could not update local group." #: classes/Login_token.php:76 -#, fuzzy, php-format +#, php-format msgid "Could not create login token for %s" -msgstr "Could not create aliases" +msgstr "Could not create login token for %s" #: classes/Message.php:45 -#, fuzzy msgid "You are banned from sending direct messages." -msgstr "Error sending direct message." +msgstr "You are banned from sending direct messages." #: classes/Message.php:61 msgid "Could not insert message." @@ -4465,51 +4422,49 @@ msgstr "Could not insert message." msgid "Could not update message with new URI." msgstr "Could not update message with new URI." -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "DB error inserting hashtag: %s" -#: classes/Notice.php:222 -#, fuzzy +#: classes/Notice.php:239 msgid "Problem saving notice. Too long." -msgstr "Problem saving notice." +msgstr "Problem saving notice. Too long." -#: classes/Notice.php:226 +#: classes/Notice.php:243 msgid "Problem saving notice. Unknown user." msgstr "Problem saving notice. Unknown user." -#: classes/Notice.php:231 +#: classes/Notice.php:248 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:237 -#, fuzzy +#: classes/Notice.php:254 msgid "" "Too many duplicate messages too quickly; 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." +"Too many duplicate messages too quickly; take a breather and post again in a " +"few minutes." -#: classes/Notice.php:243 +#: classes/Notice.php:260 msgid "You are banned from posting notices on this site." msgstr "You are banned from posting notices on this site." -#: classes/Notice.php:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "Problem saving notice." -#: classes/Notice.php:882 -#, fuzzy +#: classes/Notice.php:911 msgid "Problem saving group inbox." -msgstr "Problem saving notice." +msgstr "Problem saving group inbox." -#: classes/Notice.php:1407 -#, fuzzy, php-format +#: classes/Notice.php:1442 +#, php-format msgid "RT @%1$s %2$s" -msgstr "%1$s (%2$s)" +msgstr "RT @%1$s %2$s" #: classes/Subscription.php:66 lib/oauthstore.php:465 msgid "You have been banned from subscribing." @@ -4529,27 +4484,34 @@ msgid "Not subscribed!" msgstr "Not subscribed!" #: classes/Subscription.php:163 -#, fuzzy msgid "Couldn't delete self-subscription." -msgstr "Couldn't delete subscription." +msgstr "Couldn't delete self-subscription." #: classes/Subscription.php:179 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "Couldn't delete subscription." -#: classes/User.php:372 +#: classes/User.php:373 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Welcome to %1$s, @%2$s!" -#: classes/User_group.php:423 +#: classes/User_group.php:462 msgid "Could not create group." msgstr "Could not create group." -#: classes/User_group.php:452 +#: classes/User_group.php:471 +msgid "Could not set group URI." +msgstr "Could not set group URI." + +#: classes/User_group.php:492 msgid "Could not set group membership." msgstr "Could not set group membership." +#: classes/User_group.php:506 +msgid "Could not save local group info." +msgstr "Could not save local group info." + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "Change your profile settings" @@ -4579,9 +4541,9 @@ msgid "Other options" msgstr "Other options" #: lib/action.php:144 -#, fuzzy, php-format +#, php-format msgid "%1$s - %2$s" -msgstr "%1$s (%2$s)" +msgstr "%1$s - %2$s" #: lib/action.php:159 msgid "Untitled page" @@ -4591,122 +4553,190 @@ msgstr "Untitled page" msgid "Primary site navigation" msgstr "Primary site navigation" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "Home" - -#: lib/action.php:439 +#, fuzzy +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Personal profile and friends timeline" -#: lib/action.php:441 +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "Personal" + +#. TRANS: Tooltip for main menu option "Account" +#: lib/action.php:444 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Change your e-mail, avatar, password, profile" -#: lib/action.php:444 -msgid "Connect" -msgstr "Connect" +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "Account" -#: lib/action.php:444 +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 #, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" -msgstr "Could not redirect to server: %s" +msgstr "Connect to services" + +#: lib/action.php:453 +#, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "Connect" -#: lib/action.php:448 +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 #, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" -msgstr "Primary site navigation" +msgstr "Change site configuration" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" -msgstr "Invite" +#: lib/action.php:460 +#, fuzzy +msgctxt "MENU" +msgid "Admin" +msgstr "Admin" -#: lib/action.php:453 lib/subgroupnav.php:106 -#, php-format +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 +#, fuzzy, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Invite friends and colleagues to join you on %s" -#: lib/action.php:458 -msgid "Logout" -msgstr "Logout" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "Invite" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +#, fuzzy +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Logout from the site" -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "Logout" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 +#, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "Create an account" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "Register" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +#, fuzzy +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Login to the site" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "Help" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "Login" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 +#, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "Help me!" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "Search" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "Help" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +#, fuzzy +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Search for people or text" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "Search" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 msgid "Site notice" msgstr "Site notice" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "Local views" -#: lib/action.php:625 +#: lib/action.php:656 msgid "Page notice" msgstr "Page notice" -#: lib/action.php:727 +#: lib/action.php:758 msgid "Secondary site navigation" msgstr "Secondary site navigation" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "Help" + +#: lib/action.php:765 msgid "About" msgstr "About" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "F.A.Q." -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "Privacy" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "Source" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "Contact" -#: lib/action.php:751 +#: lib/action.php:782 msgid "Badge" msgstr "Badge" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "StatusNet software licence" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4715,12 +4745,12 @@ msgstr "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%)." -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** is a microblogging service." -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4731,115 +4761,157 @@ msgstr "" "s, available under the [GNU Affero General Public Licence](http://www.fsf." "org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:801 +#: lib/action.php:832 msgid "Site content license" msgstr "Site content license" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "All " -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "licence." -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "Pagination" -#: lib/action.php:1141 +#: lib/action.php:1172 msgid "After" msgstr "After" -#: lib/action.php:1149 +#: lib/action.php:1180 msgid "Before" msgstr "Before" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/adminpanelaction.php:96 -#, fuzzy +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." -msgstr "You can't send a message to this user." +msgstr "You cannot make changes to this site." -#: lib/adminpanelaction.php:107 -#, fuzzy +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 msgid "Changes to that panel are not allowed." -msgstr "Registration not allowed." +msgstr "Changes to that panel are not allowed." -#: lib/adminpanelaction.php:206 -#, fuzzy +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 msgid "showForm() not implemented." -msgstr "Command not yet implemented." +msgstr "showForm() not implemented." -#: lib/adminpanelaction.php:235 -#, fuzzy +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 msgid "saveSettings() not implemented." -msgstr "Command not yet implemented." +msgstr "saveSettings() not implemented." -#: lib/adminpanelaction.php:258 -#, fuzzy +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 msgid "Unable to delete design setting." -msgstr "Unable to save your design settings!" +msgstr "Unable to delete design setting." -#: lib/adminpanelaction.php:312 -#, fuzzy +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 msgid "Basic site configuration" -msgstr "E-mail address confirmation" +msgstr "Basic site configuration" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "Site" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 msgid "Design configuration" msgstr "Design configuration" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 #, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "Design" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 msgid "User configuration" -msgstr "SMS confirmation" +msgstr "User configuration" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 #, fuzzy +msgctxt "MENU" +msgid "User" +msgstr "User" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 msgid "Access configuration" -msgstr "Design configuration" +msgstr "Access configuration" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 #, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "Access" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 msgid "Paths configuration" -msgstr "SMS confirmation" +msgstr "Paths configuration" -#: lib/adminpanelaction.php:337 -#, fuzzy +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +msgctxt "MENU" +msgid "Paths" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 msgid "Sessions configuration" -msgstr "Design configuration" +msgstr "Sessions configuration" + +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "Version" -#: lib/apiauth.php:95 +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4853,24 +4925,21 @@ msgid "Icon for this application" msgstr "" #: lib/applicationeditform.php:204 -#, fuzzy, php-format +#, php-format msgid "Describe your application in %d characters" -msgstr "Describe the group or topic in %d characters" +msgstr "Describe your application in %d characters" #: lib/applicationeditform.php:207 -#, fuzzy msgid "Describe your application" -msgstr "Describe the group or topic" +msgstr "Describe your application" #: lib/applicationeditform.php:216 -#, fuzzy msgid "Source URL" -msgstr "Source" +msgstr "Source URL" #: lib/applicationeditform.php:218 -#, fuzzy msgid "URL of the homepage of this application" -msgstr "URL of the homepage or blog of the group or topic" +msgstr "URL of the homepage of this application" #: lib/applicationeditform.php:224 msgid "Organization responsible for this application" @@ -4909,9 +4978,8 @@ msgid "Default access for this application: read-only, or read-write" msgstr "" #: lib/applicationlist.php:154 -#, fuzzy msgid "Revoke" -msgstr "Remove" +msgstr "Revoke" #: lib/attachmentlist.php:87 msgid "Attachments" @@ -4922,9 +4990,8 @@ msgid "Author" msgstr "" #: lib/attachmentlist.php:278 -#, fuzzy msgid "Provider" -msgstr "Profile" +msgstr "Provider" #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" @@ -4934,15 +5001,13 @@ msgstr "" msgid "Tags for this attachment" msgstr "" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 -#, fuzzy +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 msgid "Password changing failed" -msgstr "Password change" +msgstr "Password changing failed" -#: lib/authenticationplugin.php:233 -#, fuzzy +#: lib/authenticationplugin.php:235 msgid "Password changing is not allowed" -msgstr "Password change" +msgstr "Password changing is not allowed" #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" @@ -4983,9 +5048,8 @@ msgid "" msgstr "" #: lib/command.php:152 lib/command.php:390 lib/command.php:451 -#, fuzzy msgid "Notice with that id does not exist" -msgstr "No profile with that id." +msgstr "Notice with that id does not exist" #: lib/command.php:168 lib/command.php:406 lib/command.php:467 #: lib/command.php:523 @@ -5063,14 +5127,13 @@ msgid "Already repeated that notice" msgstr "Already repeated that notice." #: lib/command.php:426 -#, fuzzy, php-format +#, php-format msgid "Notice from %s repeated" -msgstr "Notice posted" +msgstr "Notice from %s repeated" #: lib/command.php:428 -#, fuzzy msgid "Error repeating notice." -msgstr "Error saving notice." +msgstr "Error repeating notice." #: lib/command.php:482 #, php-format @@ -5138,14 +5201,13 @@ msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" #: lib/command.php:692 -#, fuzzy, php-format +#, php-format msgid "Unsubscribed %s" -msgstr "Unsubscribed from %s" +msgstr "Unsubscribed %s" #: lib/command.php:709 -#, fuzzy msgid "You are not subscribed to anyone." -msgstr "You are not subscribed to that profile." +msgstr "You are not subscribed to anyone." #: lib/command.php:711 msgid "You are subscribed to this person:" @@ -5154,9 +5216,8 @@ msgstr[0] "You are already subscribed to these users:" msgstr[1] "You are already subscribed to these users:" #: lib/command.php:731 -#, fuzzy msgid "No one is subscribed to you." -msgstr "Could not subscribe other to you." +msgstr "No one is subscribed to you." #: lib/command.php:733 msgid "This person is subscribed to you:" @@ -5165,9 +5226,8 @@ msgstr[0] "Could not subscribe other to you." msgstr[1] "Could not subscribe other to you." #: lib/command.php:753 -#, fuzzy msgid "You are not a member of any groups." -msgstr "You are not a member of that group." +msgstr "You are not a member of any groups." #: lib/command.php:755 msgid "You are a member of this group:" @@ -5217,19 +5277,19 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:148 msgid "No configuration file found. " msgstr "No configuration file found" -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:152 msgid "Go to the installer." msgstr "Go to the installer." @@ -5246,9 +5306,8 @@ msgid "Updates by SMS" msgstr "Updates by SMS" #: lib/connectsettingsaction.php:120 -#, fuzzy msgid "Connections" -msgstr "Connect" +msgstr "Connections" #: lib/connectsettingsaction.php:121 msgid "Authorized connected applications" @@ -5259,15 +5318,14 @@ msgid "Database error" msgstr "" #: lib/designsettings.php:105 -#, fuzzy msgid "Upload file" -msgstr "Upload" +msgstr "Upload file" #: lib/designsettings.php:109 -#, fuzzy msgid "" "You can upload your personal background image. The maximum file size is 2MB." -msgstr "You can upload your personal avatar. The maximum file size is %s." +msgstr "" +"You can upload your personal background image. The maximum file size is 2MB." #: lib/designsettings.php:418 msgid "Design defaults restored." @@ -5419,23 +5477,23 @@ msgstr "System error uploading file." msgid "Not an image or corrupt file." msgstr "Not an image or corrupt file." -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "Unsupported image file format." -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Lost our file." -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "Unknown file type" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "" @@ -5517,11 +5575,9 @@ msgstr "" "Change your email address or notification options at %8$s\n" #: lib/mail.php:258 -#, fuzzy, php-format +#, php-format msgid "Bio: %s" -msgstr "" -"Bio: %s\n" -"\n" +msgstr "Bio: %s" #: lib/mail.php:286 #, php-format @@ -5660,7 +5716,6 @@ msgid "" msgstr "" #: lib/mailbox.php:227 lib/noticelist.php:482 -#, fuzzy msgid "from" msgstr "from" @@ -5681,9 +5736,9 @@ msgid "Sorry, no incoming email allowed." msgstr "Sorry, no incoming e-mail allowed." #: lib/mailhandler.php:228 -#, fuzzy, php-format +#, php-format msgid "Unsupported message type: %s" -msgstr "Unsupported image file format." +msgstr "Unsupported message type: %s" #: lib/mediafile.php:98 lib/mediafile.php:123 msgid "There was a database error while saving your file. Please try again." @@ -5724,9 +5779,8 @@ msgid "File could not be moved to destination directory." msgstr "" #: lib/mediafile.php:201 lib/mediafile.php:237 -#, fuzzy msgid "Could not determine file's MIME type." -msgstr "Could not retrieve public stream." +msgstr "Could not determine file's MIME type." #: lib/mediafile.php:270 #, php-format @@ -5750,6 +5804,11 @@ msgstr "To" msgid "Available characters" msgstr "Available characters" +#: lib/messageform.php:178 lib/noticeform.php:236 +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "Send" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Send a notice" @@ -5768,14 +5827,12 @@ msgid "Attach a file" msgstr "" #: lib/noticeform.php:212 -#, fuzzy msgid "Share my location" -msgstr "Couldn't save tags." +msgstr "Share my location" #: lib/noticeform.php:215 -#, fuzzy msgid "Do not share my location" -msgstr "Couldn't save tags." +msgstr "Do not share my location" #: lib/noticeform.php:216 msgid "" @@ -5789,9 +5846,8 @@ msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" #: lib/noticelist.php:430 -#, fuzzy msgid "N" -msgstr "No" +msgstr "N" #: lib/noticelist.php:430 msgid "S" @@ -5809,27 +5865,25 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 msgid "in context" msgstr "in context" -#: lib/noticelist.php:583 -#, fuzzy +#: lib/noticelist.php:601 msgid "Repeated by" -msgstr "Created" +msgstr "Repeated by" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 msgid "Reply to this notice" msgstr "Reply to this notice" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 msgid "Reply" msgstr "Reply" -#: lib/noticelist.php:655 -#, fuzzy +#: lib/noticelist.php:673 msgid "Notice repeated" -msgstr "Notice deleted." +msgstr "Notice repeated" #: lib/nudgeform.php:116 msgid "Nudge this user" @@ -5875,6 +5929,10 @@ msgstr "Replies" msgid "Favorites" msgstr "Favourites" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "User" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Inbox" @@ -5897,9 +5955,8 @@ msgid "Tags in %s's notices" msgstr "Tags in %s's notices" #: lib/plugin.php:114 -#, fuzzy msgid "Unknown" -msgstr "Unknown action" +msgstr "Unknown" #: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 msgid "Subscriptions" @@ -5930,9 +5987,8 @@ msgid "All groups" msgstr "All groups" #: lib/profileformaction.php:123 -#, fuzzy msgid "No return-to arguments." -msgstr "No id argument." +msgstr "No return-to arguments." #: lib/profileformaction.php:137 msgid "Unimplemented method." @@ -5959,16 +6015,14 @@ msgid "Popular" msgstr "Popular" #: lib/repeatform.php:107 -#, fuzzy msgid "Repeat this notice?" -msgstr "Reply to this notice" +msgstr "Repeat this notice?" #: lib/repeatform.php:132 -#, fuzzy msgid "Repeat this notice" -msgstr "Reply to this notice" +msgstr "Repeat this notice" -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "" @@ -5981,14 +6035,17 @@ msgid "Sandbox this user" msgstr "Sandbox this user" #: lib/searchaction.php:120 -#, fuzzy msgid "Search site" -msgstr "Search" +msgstr "Search site" #: lib/searchaction.php:126 msgid "Keyword(s)" msgstr "" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "Search" + #: lib/searchaction.php:162 msgid "Search help" msgstr "Search help" @@ -6040,6 +6097,15 @@ msgstr "People subscribed to %s" msgid "Groups %s is a member of" msgstr "Groups %s is a member of" +#: lib/subgroupnav.php:105 +msgid "Invite" +msgstr "Invite" + +#: lib/subgroupnav.php:106 +#, php-format +msgid "Invite friends and colleagues to join you on %s" +msgstr "Invite friends and colleagues to join you on %s" + #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 msgid "People Tagcloud as self-tagged" @@ -6110,47 +6176,47 @@ msgstr "Message" msgid "Moderate" msgstr "" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "a few seconds ago" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "about a minute ago" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "about %d minutes ago" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "about an hour ago" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "about %d hours ago" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "about a day ago" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "about %d days ago" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "about a month ago" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "about %d months ago" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "about a year ago" @@ -6165,6 +6231,6 @@ msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "%s is not a valid colour! Use 3 or 6 hex chars." #: lib/xmppmanager.php:402 -#, fuzzy, php-format +#, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." -msgstr "Message too long - maximum is %d characters, you sent %d" +msgstr "Message too long - maximum is %1$d characters, you sent %2$d." diff --git a/locale/es/LC_MESSAGES/statusnet.po b/locale/es/LC_MESSAGES/statusnet.po index b5e0469b6..fe861905d 100644 --- a/locale/es/LC_MESSAGES/statusnet.po +++ b/locale/es/LC_MESSAGES/statusnet.po @@ -3,6 +3,7 @@ # Author@translatewiki.net: Brion # Author@translatewiki.net: Crazymadlover # Author@translatewiki.net: McDutchie +# Author@translatewiki.net: PerroVerd # Author@translatewiki.net: Peter17 # Author@translatewiki.net: Translationista # -- @@ -12,75 +13,82 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:50:30+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:02:39+0000\n" "Language-Team: Spanish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: es\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 msgid "Access" msgstr "Acceder" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 msgid "Site access settings" msgstr "Configuración de acceso de la web" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 msgid "Registration" msgstr "Registro" -#: actions/accessadminpanel.php:161 -msgid "Private" -msgstr "Privado" - -#: actions/accessadminpanel.php:163 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "¿Prohibir a los usuarios anónimos (no conectados) ver el sitio?" +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -msgid "Invite only" -msgstr "Invitar sólo" +#, fuzzy +msgctxt "LABEL" +msgid "Private" +msgstr "Privado" -#: actions/accessadminpanel.php:169 +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 msgid "Make registration invitation only." msgstr "Haz que el registro sea sólo con invitaciones." -#: actions/accessadminpanel.php:173 -msgid "Closed" -msgstr "Cerrado" +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 +msgid "Invite only" +msgstr "Invitar sólo" -#: actions/accessadminpanel.php:175 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 msgid "Disable new registrations." msgstr "Inhabilitar nuevos registros." -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "Guardar" +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 +msgid "Closed" +msgstr "Cerrado" -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 msgid "Save access settings" msgstr "Guardar la configuración de acceso" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "Guardar" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page" msgstr "No existe tal página" -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -94,45 +102,53 @@ msgstr "No existe tal página" #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "No existe ese usuario." -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s y amigos, página %2$d" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s y amigos" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Feed de los amigos de %s (RSS 1.0)" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Feed de los amigos de %s (RSS 2.0)" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Feed de los amigos de %s (Atom)" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." @@ -140,7 +156,7 @@ msgstr "" "Esta es la línea temporal de %s y amistades, pero nadie ha publicado nada " "todavía." -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -149,7 +165,8 @@ msgstr "" "Esta es la línea temporal de %s y amistades, pero nadie ha publicado nada " "todavía." -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " @@ -158,7 +175,7 @@ msgstr "" "Trata de suscribirte a más personas, [unirte a un grupo] (%%action.groups%%) " "o publicar algo." -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -167,7 +184,8 @@ msgstr "" "Puede intentar [guiñar a %1$s](../%2$s) desde su perfil o [publicar algo a " "su atención ](%%%%action.newnotice%%%%?status_textarea=%3$s)." -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 msgid "You and friends" msgstr "Tú y amigos" @@ -185,20 +203,20 @@ msgstr "¡Actualizaciones de %1$s y amigos en %2$s!" #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 msgid "API method not found." msgstr "Método de API no encontrado." @@ -232,8 +250,9 @@ msgstr "No se pudo actualizar el usuario." #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "El usuario no tiene un perfil." @@ -259,7 +278,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: 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." @@ -369,7 +388,7 @@ msgstr "No se pudo determinar el usuario fuente." msgid "Could not find target user." msgstr "No se pudo encontrar ningún usuario de destino." -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." @@ -377,62 +396,62 @@ msgstr "" "El usuario debe tener solamente letras minúsculas y números y no puede tener " "espacios." -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "El usuario ya existe. Prueba con otro." -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Usuario inválido" -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "La página de inicio no es un URL válido." -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Tu nombre es demasiado largo (max. 255 carac.)" -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "La descripción es demasiado larga (máx. %d caracteres)." -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "La ubicación es demasiado larga (máx. 255 caracteres)." -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "¡Muchos seudónimos! El máximo es %d." -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Alias inválido: \"%s\"" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "El alias \"%s\" ya está en uso. Intenta usar otro." -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "El alias no puede ser el mismo que el usuario." @@ -443,15 +462,15 @@ msgstr "El alias no puede ser el mismo que el usuario." msgid "Group not found!" msgstr "¡No se ha encontrado el grupo!" -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 msgid "You are already a member of that group." msgstr "Ya eres miembro de ese grupo" -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "Has sido bloqueado de ese grupo por el administrador." -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "No se pudo unir el usuario %s al grupo %s" @@ -460,7 +479,7 @@ msgstr "No se pudo unir el usuario %s al grupo %s" msgid "You are not a member of this group." msgstr "No eres miembro de este grupo." -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "No se pudo eliminar al usuario %1$s del grupo %2$s." @@ -491,7 +510,7 @@ msgstr "Token inválido." #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -537,7 +556,7 @@ msgstr "El token de solicitud %2 ha sido denegado y revocado." #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -563,13 +582,13 @@ msgstr "" "permiso para %3$s la información de tu cuenta %4$s. Sólo " "debes dar acceso a tu cuenta %4$s a terceras partes en las que confíes." -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 msgid "Account" msgstr "Cuenta" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -653,12 +672,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s actualizaciones favoritas de %2$s / %2$s." #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "línea temporal de %s" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -694,7 +713,7 @@ msgstr "Repetido a %s" msgid "Repeats of %s" msgstr "Repeticiones de %s" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Avisos marcados con %s" @@ -715,8 +734,7 @@ msgstr "No existe tal archivo adjunto." #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "Ningún apodo." @@ -728,7 +746,7 @@ msgstr "Ningún tamaño." msgid "Invalid size." msgstr "Tamaño inválido." -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Avatar" @@ -745,30 +763,30 @@ msgid "User without matching profile" msgstr "Usuario sin perfil equivalente" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Configuración de Avatar" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Original" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Vista previa" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 msgid "Delete" msgstr "Borrar" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "Cargar" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "Cortar" @@ -776,7 +794,7 @@ msgstr "Cortar" msgid "Pick a square area of the image to be your avatar" msgstr "Elige un área cuadrada de la imagen para que sea tu avatar" -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Se perdió nuestros datos de archivo." @@ -811,22 +829,22 @@ msgstr "" "te notificará de ninguna de sus respuestas @." #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "No" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 msgid "Do not block this user" msgstr "No bloquear a este usuario" #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Sí" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 msgid "Block this user" msgstr "Bloquear este usuario." @@ -834,40 +852,44 @@ msgstr "Bloquear este usuario." msgid "Failed to save block information." msgstr "No se guardó información de bloqueo." -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 msgid "No such group." msgstr "No existe ese grupo." -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, php-format msgid "%s blocked profiles" msgstr "%s perfiles bloqueados" -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s perfiles bloqueados, página %2$d" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." msgstr "" "Una lista de los usuarios que han sido bloqueados para unirse a este grupo." -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 msgid "Unblock user from group" msgstr "Desbloquear usuario de grupo" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "Desbloquear" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 msgid "Unblock this user" msgstr "Desbloquear este usuario" @@ -942,7 +964,7 @@ msgstr "No eres el propietario de esta aplicación." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "Hubo problemas con tu clave de sesión." @@ -968,12 +990,13 @@ msgstr "No eliminar esta aplicación" msgid "Delete this application" msgstr "Borrar esta aplicación" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "No conectado." @@ -1002,7 +1025,7 @@ msgstr "¿Estás seguro de que quieres eliminar este aviso?" msgid "Do not delete this notice" msgstr "No eliminar este mensaje" -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 msgid "Delete this notice" msgstr "Borrar este aviso" @@ -1018,7 +1041,7 @@ msgstr "Sólo puedes eliminar usuarios locales." msgid "Delete user" msgstr "Borrar usuario" -#: actions/deleteuser.php:135 +#: 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." @@ -1026,12 +1049,12 @@ msgstr "" "¿Realmente deseas eliminar este usuario? Esto borrará de la base de datos " "todos los datos sobre el usuario, sin dejar una copia de seguridad." -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 msgid "Delete this user" msgstr "Borrar este usuario" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "Diseño" @@ -1134,6 +1157,17 @@ msgstr "Restaurar los diseños predeterminados" msgid "Reset back to default" msgstr "Volver a los valores predeterminados" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "Guardar" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "Guardar el diseño" @@ -1225,29 +1259,29 @@ msgstr "Editar grupo %s" msgid "You must be logged in to create a group." msgstr "Debes estar conectado para crear un grupo" -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: 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 "Para editar el grupo debes ser administrador." -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "Usa este formulario para editar el grupo." -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, php-format msgid "description is too long (max %d chars)." msgstr "La descripción es muy larga (máx. %d caracteres)." -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 msgid "Could not update group." msgstr "No se pudo actualizar el grupo." -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 msgid "Could not create aliases." msgstr "No fue posible crear alias." -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 msgid "Options saved." msgstr "Se guardó Opciones." @@ -1590,7 +1624,7 @@ msgstr "Usuario ya está bloqueado del grupo." msgid "User is not a member of group." msgstr "Usuario no es miembro del grupo" -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 msgid "Block user from group" msgstr "Bloquear usuario de grupo" @@ -1627,11 +1661,11 @@ msgstr "Sin ID." msgid "You must be logged in to edit a group." msgstr "Debes estar conectado para editar un grupo." -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 msgid "Group design" msgstr "Diseño de grupo" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." @@ -1639,20 +1673,20 @@ msgstr "" "Personaliza el aspecto de tu grupo con una imagen de fondo y la paleta de " "colores que prefieras." -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 msgid "Couldn't update your design." msgstr "No fue posible actualizar tu diseño." -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 msgid "Design preferences saved." msgstr "Preferencias de diseño guardadas." -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "Logo de grupo" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." @@ -1660,57 +1694,57 @@ msgstr "" "Puedes subir una imagen de logo para tu grupo. El tamaño máximo del archivo " "debe ser %s." -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 msgid "User without matching profile." msgstr "Usuario sin perfil coincidente." -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Elige un área cuadrada de la imagen para que sea tu logo." -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 msgid "Logo updated." msgstr "Logo actualizado." -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 msgid "Failed updating logo." msgstr "Error al actualizar el logo." -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "Miembros del grupo %s" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, php-format msgid "%1$s group members, page %2$d" msgstr "%1$s miembros de grupo, página %2$d" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "Lista de los usuarios en este grupo." -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "Admin" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "Bloquear" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 msgid "Make user an admin of the group" msgstr "Convertir al usuario en administrador del grupo" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make Admin" msgstr "Convertir en administrador" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "Convertir a este usuario en administrador" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "¡Actualizaciones de miembros de %1$s en %2$s!" @@ -1974,16 +2008,19 @@ msgstr "Mensaje Personal" msgid "Optionally add a personal message to the invitation." msgstr "Opcionalmente añada un mensaje personalizado a su invitación." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" msgstr "Enviar" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s te ha invitado a que te unas con el/ellos en %2$s" -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2044,7 +2081,12 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Debes estar conectado para unirte a un grupo." -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "Ningún apodo." + +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s se ha unido al grupo %2$" @@ -2053,11 +2095,11 @@ msgstr "%1$s se ha unido al grupo %2$" msgid "You must be logged in to leave a group." msgstr "Debes estar conectado para dejar un grupo." -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 msgid "You are not a member of that group." msgstr "No eres miembro de este grupo." -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s ha dejado el grupo %2$s" @@ -2074,8 +2116,7 @@ msgstr "Nombre de usuario o contraseña incorrectos." msgid "Error setting user. You are probably not authorized." msgstr "Error al configurar el usuario. Posiblemente no tengas autorización." -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "Inicio de sesión" @@ -2333,8 +2374,8 @@ msgstr "tipo de contenido " msgid "Only " msgstr "Sólo " -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "No es un formato de dato soportado" @@ -2474,9 +2515,9 @@ msgstr "No se puede guardar la nueva contraseña." msgid "Password saved." msgstr "Se guardó Contraseña." -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" -msgstr "" +msgstr "Rutas" #: actions/pathsadminpanel.php:70 msgid "Path and server settings for this StatusNet site." @@ -2507,7 +2548,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "Servidor SSL no válido. La longitud máxima es de 255 caracteres." #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 msgid "Site" msgstr "Sitio" @@ -2521,7 +2561,7 @@ msgstr "" #: actions/pathsadminpanel.php:242 msgid "Path" -msgstr "" +msgstr "Ruta" #: actions/pathsadminpanel.php:242 #, fuzzy @@ -2683,7 +2723,7 @@ msgstr "" "1-64 letras en minúscula o números, sin signos de puntuación o espacios" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "Nombre completo" @@ -2711,7 +2751,7 @@ msgid "Bio" msgstr "Biografía" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2793,7 +2833,8 @@ msgstr "No se pudo guardar el perfil." msgid "Couldn't save tags." msgstr "No se pudo guardar las etiquetas." -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "Se guardó configuración." @@ -2806,31 +2847,31 @@ msgstr "Más allá del límite de páginas (%s)" msgid "Could not retrieve public stream." msgstr "No se pudo acceder a corriente pública." -#: actions/public.php:129 +#: actions/public.php:130 #, php-format msgid "Public timeline, page %d" msgstr "Línea temporal pública, página %d" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "Línea temporal pública" -#: actions/public.php:159 +#: actions/public.php:160 #, fuzzy msgid "Public Stream Feed (RSS 1.0)" msgstr "Feed del flujo público" -#: actions/public.php:163 +#: actions/public.php:164 #, fuzzy msgid "Public Stream Feed (RSS 2.0)" msgstr "Feed del flujo público" -#: actions/public.php:167 +#: actions/public.php:168 #, fuzzy msgid "Public Stream Feed (Atom)" msgstr "Feed del flujo público" -#: actions/public.php:187 +#: actions/public.php:188 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " @@ -2839,17 +2880,17 @@ msgstr "" "Esta es la línea temporal pública de %%site.name%%, pero aún no se ha " "publicado nada." -#: actions/public.php:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "¡Sé la primera persona en publicar algo!" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2858,7 +2899,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:246 +#: actions/public.php:247 #, fuzzy, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3039,8 +3080,7 @@ msgstr "El código de invitación no es válido." msgid "Registration successful" msgstr "Registro exitoso." -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "Registrarse" @@ -3226,7 +3266,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:656 +#: actions/repeat.php:114 lib/noticelist.php:674 msgid "Repeated" msgstr "Repetido" @@ -3234,47 +3274,47 @@ msgstr "Repetido" msgid "Repeated!" msgstr "¡Repetido!" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "Respuestas a %s" -#: actions/replies.php:127 +#: actions/replies.php:128 #, php-format msgid "Replies to %1$s, page %2$d" msgstr "Respuestas a %1$s, página %2$d" -#: actions/replies.php:144 +#: actions/replies.php:145 #, fuzzy, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "Feed de avisos de %s" -#: actions/replies.php:151 +#: actions/replies.php:152 #, fuzzy, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "Feed de avisos de %s" -#: actions/replies.php:158 +#: actions/replies.php:159 #, php-format msgid "Replies feed for %s (Atom)" msgstr "Feed de avisos de %s" -#: actions/replies.php:198 +#: actions/replies.php:199 #, 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 "" -#: actions/replies.php:203 +#: 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:205 +#: actions/replies.php:206 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3301,7 +3341,6 @@ msgid "User is already sandboxed." msgstr "El usuario te ha bloqueado." #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "Sesiones" @@ -3326,7 +3365,7 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Guardar la configuración del sitio" @@ -3357,7 +3396,7 @@ msgstr "Organización" msgid "Description" msgstr "Descripción" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Estadísticas" @@ -3419,35 +3458,35 @@ msgstr "Avisos favoritos de %s" msgid "Could not retrieve favorite notices." msgstr "No se pudo recibir avisos favoritos." -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "Feed de los amigos de %s" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "Feed de los amigos de %s" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" msgstr "Feed de los amigos de %s" -#: actions/showfavorites.php:205 +#: 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:207 +#: 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 :)" msgstr "" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3455,7 +3494,7 @@ msgid "" "would add to their favorites :)" msgstr "" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "" @@ -3469,68 +3508,68 @@ msgstr "Grupo %s" msgid "%1$s group, page %2$d" msgstr "Miembros del grupo %s, página %d" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 msgid "Group profile" msgstr "Perfil del grupo" -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "URL" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 msgid "Note" msgstr "Nota" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "Alias" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "Acciones del grupo" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Feed de avisos de grupo %s" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Feed de avisos de grupo %s" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "Feed de avisos de grupo %s" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, php-format msgid "FOAF for %s group" msgstr "Bandeja de salida para %s" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 #, fuzzy msgid "Members" msgstr "Miembros" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Ninguno)" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "Todos los miembros" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 msgid "Created" msgstr "Creado" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3540,7 +3579,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:454 +#: actions/showgroup.php:462 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3551,7 +3590,7 @@ msgstr "" "**%s** es un grupo de usuarios en %%%%site.name%%%%, un servicio [micro-" "blogging](http://en.wikipedia.org/wiki/Micro-blogging) " -#: actions/showgroup.php:482 +#: actions/showgroup.php:490 msgid "Admins" msgstr "Administradores" @@ -4017,22 +4056,22 @@ msgstr "Jabber" msgid "SMS" msgstr "SMS" -#: actions/tag.php:68 +#: actions/tag.php:69 #, fuzzy, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "Usuarios auto marcados con %s - página %d" -#: actions/tag.php:86 +#: actions/tag.php:87 #, fuzzy, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "Feed de avisos de %s" -#: actions/tag.php:92 +#: actions/tag.php:93 #, fuzzy, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "Feed de avisos de %s" -#: actions/tag.php:98 +#: actions/tag.php:99 #, fuzzy, php-format msgid "Notice feed for tag %s (Atom)" msgstr "Feed de avisos de %s" @@ -4087,7 +4126,7 @@ msgstr "" msgid "No such tag." msgstr "No existe ese tag." -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "Método API en construcción." @@ -4119,70 +4158,72 @@ msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +#, fuzzy +msgctxt "TITLE" msgid "User" msgstr "Usuario" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "Configuración de usuarios en este sitio StatusNet." -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "Límite para la bio inválido: Debe ser numérico." -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "Texto de bienvenida inválido. La longitud máx. es de 255 caracteres." -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "Suscripción predeterminada inválida : '%1$s' no es un usuario" -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "Perfil" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "Límite de la bio" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "Longitud máxima de bio de perfil en caracteres." -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 msgid "New users" msgstr "Nuevos usuarios" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "Bienvenida a nuevos usuarios" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "Texto de bienvenida para nuevos usuarios (máx. 255 caracteres)." -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 msgid "Default subscription" msgstr "Suscripción predeterminada" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 msgid "Automatically subscribe new users to this user." msgstr "Suscribir automáticamente nuevos usuarios a este usuario." -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 msgid "Invitations" msgstr "Invitaciones" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 msgid "Invitations enabled" msgstr "Invitaciones habilitadas" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "" @@ -4368,7 +4409,7 @@ msgstr "" msgid "Plugins" msgstr "Complementos" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 #, fuzzy msgid "Version" msgstr "Sesiones" @@ -4408,6 +4449,11 @@ msgstr "No es parte del grupo." msgid "Group leave failed." msgstr "Perfil de grupo" +#: classes/Local_group.php:41 +#, fuzzy +msgid "Could not update local group." +msgstr "No se pudo actualizar el grupo." + #: classes/Login_token.php:76 #, fuzzy, php-format msgid "Could not create login token for %s" @@ -4425,27 +4471,27 @@ msgstr "No se pudo insertar mensaje." msgid "Could not update message with new URI." msgstr "No se pudo actualizar mensaje con nuevo URI." -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "Error de la BD al insertar la etiqueta clave: %s" -#: classes/Notice.php:222 +#: classes/Notice.php:239 msgid "Problem saving notice. Too long." msgstr "Ha habido un problema al guardar el mensaje. Es muy largo." -#: classes/Notice.php:226 +#: classes/Notice.php:243 msgid "Problem saving notice. Unknown user." msgstr "Ha habido un problema al guardar el mensaje. Usuario desconocido." -#: classes/Notice.php:231 +#: classes/Notice.php:248 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:237 +#: classes/Notice.php:254 #, fuzzy msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " @@ -4454,20 +4500,20 @@ msgstr "" "Demasiados avisos demasiado rápido; para y publicar nuevamente en unos " "minutos." -#: classes/Notice.php:243 +#: classes/Notice.php:260 msgid "You are banned from posting notices on this site." msgstr "Tienes prohibido publicar avisos en este sitio." -#: classes/Notice.php:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "Hubo un problema al guardar el aviso." -#: classes/Notice.php:882 +#: classes/Notice.php:911 #, fuzzy msgid "Problem saving group inbox." msgstr "Hubo un problema al guardar el aviso." -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4498,20 +4544,30 @@ msgstr "No se pudo eliminar la suscripción." msgid "Couldn't delete subscription." msgstr "No se pudo eliminar la suscripción." -#: classes/User.php:372 +#: classes/User.php:373 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Bienvenido a %1$s, @%2$s!" -#: classes/User_group.php:423 +#: classes/User_group.php:462 msgid "Could not create group." msgstr "No se pudo crear grupo." -#: classes/User_group.php:452 +#: classes/User_group.php:471 +#, fuzzy +msgid "Could not set group URI." +msgstr "No se pudo configurar miembros de grupo." + +#: classes/User_group.php:492 #, fuzzy msgid "Could not set group membership." msgstr "No se pudo configurar miembros de grupo." +#: classes/User_group.php:506 +#, fuzzy +msgid "Could not save local group info." +msgstr "No se ha podido guardar la suscripción." + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "Cambia tus opciones de perfil" @@ -4553,120 +4609,190 @@ msgstr "Página sin título" msgid "Primary site navigation" msgstr "Navegación de sitio primario" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "Inicio" - -#: lib/action.php:439 +#, fuzzy +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Perfil personal y línea de tiempo de amigos" -#: lib/action.php:441 +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "Personal" + +#. TRANS: Tooltip for main menu option "Account" +#: lib/action.php:444 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Cambia tu correo electrónico, avatar, contraseña, perfil" -#: lib/action.php:444 -msgid "Connect" -msgstr "Conectarse" +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "Cuenta" -#: lib/action.php:444 +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 +#, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Conectar a los servicios" -#: lib/action.php:448 +#: lib/action.php:453 +#, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "Conectarse" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Cambiar la configuración del sitio" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" -msgstr "Invitar" +#: lib/action.php:460 +#, fuzzy +msgctxt "MENU" +msgid "Admin" +msgstr "Admin" -#: lib/action.php:453 lib/subgroupnav.php:106 -#, php-format +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 +#, fuzzy, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Invita a amigos y colegas a unirse a %s" -#: lib/action.php:458 -msgid "Logout" -msgstr "Salir" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "Invitar" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +#, fuzzy +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Salir de sitio" -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "Salir" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 +#, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "Crear una cuenta" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "Registrarse" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +#, fuzzy +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Ingresar a sitio" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "Ayuda" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "Inicio de sesión" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 +#, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "Ayúdame!" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "Buscar" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "Ayuda" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +#, fuzzy +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Buscar personas o texto" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "Buscar" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 msgid "Site notice" msgstr "Aviso de sitio" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "Vistas locales" -#: lib/action.php:625 +#: lib/action.php:656 msgid "Page notice" msgstr "Aviso de página" -#: lib/action.php:727 +#: lib/action.php:758 msgid "Secondary site navigation" msgstr "Navegación de sitio secundario" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "Ayuda" + +#: lib/action.php:765 msgid "About" msgstr "Acerca de" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "Preguntas Frecuentes" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "Privacidad" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "Fuente" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "Ponerse en contacto" -#: lib/action.php:751 +#: lib/action.php:782 msgid "Badge" msgstr "Insignia" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "Licencia de software de StatusNet" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4675,12 +4801,12 @@ msgstr "" "**%%site.name%%** es un servicio de microblogueo de [%%site.broughtby%%**](%%" "site.broughtbyurl%%)." -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** es un servicio de microblogueo." -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4691,112 +4817,165 @@ msgstr "" "disponible bajo la [GNU Affero General Public License](http://www.fsf.org/" "licensing/licenses/agpl-3.0.html)." -#: lib/action.php:801 +#: lib/action.php:832 msgid "Site content license" msgstr "Licencia de contenido del sitio" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Derechos de autor de contenido y datos por los colaboradores. Todos los " "derechos reservados." -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "Todo" -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "Licencia." -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "Paginación" -#: lib/action.php:1141 +#: lib/action.php:1172 msgid "After" msgstr "Después" -#: lib/action.php:1149 +#: lib/action.php:1180 msgid "Before" msgstr "Antes" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." msgstr "No puedes hacer cambios a este sitio." -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 #, fuzzy msgid "Changes to that panel are not allowed." msgstr "Registro de usuario no permitido." -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 #, fuzzy msgid "showForm() not implemented." msgstr "Todavía no se implementa comando." -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 #, fuzzy msgid "saveSettings() not implemented." msgstr "Todavía no se implementa comando." -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 #, fuzzy msgid "Unable to delete design setting." msgstr "¡No se pudo guardar tu configuración de Twitter!" -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 msgid "Basic site configuration" msgstr "Configuración básica del sitio" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "Sitio" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 msgid "Design configuration" msgstr "Configuración del diseño" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "Diseño" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 msgid "User configuration" msgstr "Configuración de usuario" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +#, fuzzy +msgctxt "MENU" +msgid "User" +msgstr "Usuario" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 msgid "Access configuration" msgstr "Configuración de acceso" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "Acceder" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 #, fuzzy msgid "Paths configuration" msgstr "SMS confirmación" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +#, fuzzy +msgctxt "MENU" +msgid "Paths" +msgstr "Rutas" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 msgid "Sessions configuration" msgstr "Configuración de sesiones" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "Sesiones" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4889,11 +5068,11 @@ msgstr "Mensajes donde aparece este adjunto" msgid "Tags for this attachment" msgstr "Etiquetas de este archivo adjunto" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 msgid "Password changing failed" msgstr "El cambio de contraseña ha fallado" -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 #, fuzzy msgid "Password changing is not allowed" msgstr "Cambio de contraseña " @@ -5171,19 +5350,19 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:148 msgid "No configuration file found. " msgstr "Ningún archivo de configuración encontrado. " -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:152 msgid "Go to the installer." msgstr "Ir al instalador." @@ -5375,23 +5554,23 @@ msgstr "Error del sistema al cargar el archivo." msgid "Not an image or corrupt file." msgstr "No es una imagen o es un fichero corrupto." -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "Formato de imagen no soportado." -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Se perdió nuestro archivo." -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "Tipo de archivo desconocido" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "MB" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "kB" @@ -5702,6 +5881,12 @@ msgstr "Para" msgid "Available characters" msgstr "Caracteres disponibles" +#: lib/messageform.php:178 lib/noticeform.php:236 +#, fuzzy +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "Enviar" + #: lib/noticeform.php:160 #, fuzzy msgid "Send a notice" @@ -5761,24 +5946,24 @@ msgstr "" msgid "at" msgstr "en" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 msgid "in context" msgstr "en contexto" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 #, fuzzy msgid "Repeated by" msgstr "Crear" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 msgid "Reply to this notice" msgstr "Responder este aviso." -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 msgid "Reply" msgstr "Responder" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 #, fuzzy msgid "Notice repeated" msgstr "Aviso borrado" @@ -5827,6 +6012,10 @@ msgstr "Respuestas" msgid "Favorites" msgstr "Favoritos" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "Usuario" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Bandeja de Entrada" @@ -5921,7 +6110,7 @@ msgstr "Responder este aviso." msgid "Repeat this notice" msgstr "Responder este aviso." -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "" @@ -5944,6 +6133,10 @@ msgstr "Buscar" msgid "Keyword(s)" msgstr "" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "Buscar" + #: lib/searchaction.php:162 msgid "Search help" msgstr "Buscar ayuda" @@ -5997,6 +6190,15 @@ msgstr "Personas suscritas a %s" msgid "Groups %s is a member of" msgstr "%s es miembro de los grupos" +#: lib/subgroupnav.php:105 +msgid "Invite" +msgstr "Invitar" + +#: lib/subgroupnav.php:106 +#, php-format +msgid "Invite friends and colleagues to join you on %s" +msgstr "Invita a amigos y colegas a unirse a %s" + #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 msgid "People Tagcloud as self-tagged" @@ -6069,47 +6271,47 @@ msgstr "Mensaje" msgid "Moderate" msgstr "Moderar" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "hace unos segundos" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "hace un minuto" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "hace %d minutos" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "hace una hora" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "hace %d horas" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "hace un día" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "hace %d días" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "hace un mes" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "hace %d meses" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "hace un año" diff --git a/locale/fa/LC_MESSAGES/statusnet.po b/locale/fa/LC_MESSAGES/statusnet.po index 600323e43..bb453f582 100644 --- a/locale/fa/LC_MESSAGES/statusnet.po +++ b/locale/fa/LC_MESSAGES/statusnet.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:50:38+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:02:45+0000\n" "Last-Translator: Ahmad Sufi Mahmudi\n" "Language-Team: Persian\n" "MIME-Version: 1.0\n" @@ -20,70 +20,77 @@ msgstr "" "X-Language-Code: fa\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: MediaWiki 1.17alpha (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 msgid "Access" msgstr "دسترسی" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 #, fuzzy msgid "Site access settings" msgstr "تنظیمات دیگر" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 #, fuzzy msgid "Registration" msgstr "ثبت نام" -#: actions/accessadminpanel.php:161 -msgid "Private" -msgstr "خصوصی" - -#: actions/accessadminpanel.php:163 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "" +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -msgid "Invite only" -msgstr "فقط دعوت کردن" +#, fuzzy +msgctxt "LABEL" +msgid "Private" +msgstr "خصوصی" -#: actions/accessadminpanel.php:169 +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 msgid "Make registration invitation only." msgstr "تنها آماده کردن دعوت نامه های ثبت نام." -#: actions/accessadminpanel.php:173 -msgid "Closed" -msgstr "مسدود" +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 +msgid "Invite only" +msgstr "فقط دعوت کردن" -#: actions/accessadminpanel.php:175 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 msgid "Disable new registrations." msgstr "غیر فعال کردن نام نوبسی جدید" -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "ذخیره‌کردن" +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 +msgid "Closed" +msgstr "مسدود" -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 #, fuzzy msgid "Save access settings" msgstr "تنظیمات چهره" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "ذخیره‌کردن" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page" msgstr "چنین صفحه‌ای وجود ندارد" -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -97,51 +104,59 @@ msgstr "چنین صفحه‌ای وجود ندارد" #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "چنین کاربری وجود ندارد." -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, fuzzy, php-format msgid "%1$s and friends, page %2$d" msgstr "%s کاربران مسدود شده، صفحه‌ی %d" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s و دوستان" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "خوراک دوستان %s (RSS 1.0)" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "خوراک دوستان %s (RSS 2.0)" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "خوراک دوستان %s (Atom)" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "این خط‌زمانی %s و دوستانش است، اما هیچ‌یک تاکنون چیزی پست نکرده‌اند." -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -150,7 +165,8 @@ msgstr "" "پیگیری افراد بیش‌تری بشوید [به یک گروه بپیوندید](%%action.groups%%) یا خودتان " "چیزی را ارسال کنید." -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, fuzzy, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " @@ -159,7 +175,7 @@ msgstr "" "اولین کسی باشید که در [این موضوع](%%%%action.newnotice%%%%?status_textarea=%" "s) پیام می‌فرستد." -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -168,7 +184,8 @@ msgstr "" "چرا [ثبت نام](%%%%action.register%%%%) نمی‌کنید و سپس با فرستادن پیام توجه %s " "را جلب کنید." -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 msgid "You and friends" msgstr "شما و دوستان" @@ -186,20 +203,20 @@ msgstr "به روز رسانی از %1$ و دوستان در %2$" #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 msgid "API method not found." msgstr "رابط مورد نظر پیدا نشد." @@ -231,8 +248,9 @@ msgstr "نمی‌توان کاربر را به‌هنگام‌سازی کرد." #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "کاربر هیچ شناس‌نامه‌ای ندارد." @@ -257,7 +275,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: 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." @@ -370,68 +388,68 @@ msgstr "نمی‌توان کاربر منبع را تعیین کرد." msgid "Could not find target user." msgstr "نمی‌توان کاربر هدف را پیدا کرد." -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "لقب باید شامل حروف کوچک و اعداد و بدون فاصله باشد." -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "این لقب در حال حاضر ثبت شده است. لطفا یکی دیگر انتخاب کنید." -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "لقب نا معتبر." -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "برگهٔ آغازین یک نشانی معتبر نیست." -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "نام کامل طولانی است (۲۵۵ حرف در حالت بیشینه(." -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "توصیف بسیار زیاد است (حداکثر %d حرف)." -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "مکان طولانی است (حداکثر ۲۵۵ حرف)" -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "نام‌های مستعار بسیار زیاد هستند! حداکثر %d." -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, php-format msgid "Invalid alias: \"%s\"" msgstr "نام‌مستعار غیر مجاز: «%s»" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "نام‌مستعار «%s» ازپیش گرفته‌شده‌است. یکی دیگر را امتحان کنید." -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "نام و نام مستعار شما نمی تواند یکی باشد ." @@ -442,15 +460,15 @@ msgstr "نام و نام مستعار شما نمی تواند یکی باشد . msgid "Group not found!" msgstr "گروه یافت نشد!" -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 msgid "You are already a member of that group." msgstr "شما از پیش یک عضو این گروه هستید." -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "دسترسی شما به گروه توسط مدیر آن محدود شده است." -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, fuzzy, php-format msgid "Could not join user %1$s to group %2$s." msgstr "عضویت %s در گروه %s نا موفق بود." @@ -459,7 +477,7 @@ msgstr "عضویت %s در گروه %s نا موفق بود." msgid "You are not a member of this group." msgstr "شما یک عضو این گروه نیستید." -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, fuzzy, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "خارج شدن %s از گروه %s نا موفق بود" @@ -491,7 +509,7 @@ msgstr "اندازه‌ی نادرست" #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -533,7 +551,7 @@ msgstr "" #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -556,13 +574,13 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 msgid "Account" msgstr "حساب کاربری" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -646,12 +664,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%s به روز رسانی های دوست داشتنی %s / %s" #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "خط زمانی %s" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -687,7 +705,7 @@ msgstr "" msgid "Repeats of %s" msgstr "تکرار %s" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "پیام‌هایی که با %s نشانه گزاری شده اند." @@ -708,8 +726,7 @@ msgstr "چنین پیوستی وجود ندارد." #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "بدون لقب." @@ -721,7 +738,7 @@ msgstr "بدون اندازه." msgid "Invalid size." msgstr "اندازه‌ی نادرست" -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "چهره" @@ -739,30 +756,30 @@ msgid "User without matching profile" msgstr "کاربر بدون مشخصات" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "تنظیمات چهره" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "اصلی" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "پیش‌نمایش" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 msgid "Delete" msgstr "حذف" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "پایین‌گذاری" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "برش" @@ -770,7 +787,7 @@ msgstr "برش" msgid "Pick a square area of the image to be your avatar" msgstr "یک مربع از عکس خود را انتخاب کنید تا چهره‌ی شما باشد." -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "فایل اطلاعات خود را گم کرده ایم." @@ -806,22 +823,22 @@ msgstr "" "نخواهید شد" #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "خیر" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 msgid "Do not block this user" msgstr "کاربر را مسدود نکن" #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "بله" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 msgid "Block this user" msgstr "کاربر را مسدود کن" @@ -829,39 +846,43 @@ msgstr "کاربر را مسدود کن" msgid "Failed to save block information." msgstr "" -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 msgid "No such group." msgstr "چنین گروهی وجود ندارد." -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, php-format msgid "%s blocked profiles" msgstr "%s کاربران مسدود شده" -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, fuzzy, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%s کاربران مسدود شده، صفحه‌ی %d" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." msgstr "فهرستی از افراد مسدود شده در پیوستن به این گروه." -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 msgid "Unblock user from group" msgstr "آزاد کردن کاربر در پیوستن به گروه" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "آزاد سازی" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 msgid "Unblock this user" msgstr "آزاد سازی کاربر" @@ -940,7 +961,7 @@ msgstr "شما یک عضو این گروه نیستید." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "" @@ -969,12 +990,13 @@ msgstr "این پیام را پاک نکن" msgid "Delete this application" msgstr "این پیام را پاک کن" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "شما به سیستم وارد نشده اید." @@ -1003,7 +1025,7 @@ msgstr "آیا اطمینان دارید که می‌خواهید این پیا msgid "Do not delete this notice" msgstr "این پیام را پاک نکن" -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 msgid "Delete this notice" msgstr "این پیام را پاک کن" @@ -1019,7 +1041,7 @@ msgstr "شما فقط می‌توانید کاربران محلی را پاک ک msgid "Delete user" msgstr "حذف کاربر" -#: actions/deleteuser.php:135 +#: 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." @@ -1027,12 +1049,12 @@ msgstr "" "آیا مطمئن هستید که می‌خواهید این کاربر را پاک کنید؟ با این کار تمام اطلاعات " "پاک و بدون برگشت خواهند بود." -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 msgid "Delete this user" msgstr "حذف این کاربر" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "طرح" @@ -1135,6 +1157,17 @@ msgstr "بازگرداندن طرح‌های پیش‌فرض" msgid "Reset back to default" msgstr "برگشت به حالت پیش گزیده" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "ذخیره‌کردن" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "ذخیره‌کردن طرح" @@ -1235,30 +1268,30 @@ msgstr "ویرایش گروه %s" msgid "You must be logged in to create a group." msgstr "برای ساخت یک گروه، باید وارد شده باشید." -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: actions/editgroup.php:107 actions/editgroup.php:172 +#: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 #, fuzzy msgid "You must be an admin to edit the group." msgstr "برای ویرایش گروه، باید یک مدیر باشید." -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "از این روش برای ویرایش گروه استفاده کنید." -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, php-format msgid "description is too long (max %d chars)." msgstr "توصیف بسیار زیاد است (حداکثر %d حرف)." -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 msgid "Could not update group." msgstr "نمی‌توان گروه را به‌هنگام‌سازی کرد." -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 msgid "Could not create aliases." msgstr "نمی‌توان نام‌های مستعار را ساخت." -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 msgid "Options saved." msgstr "گزینه‌ها ذخیره شدند." @@ -1596,7 +1629,7 @@ msgstr "هم اکنون دسترسی کاربر به گروه مسدود شده msgid "User is not a member of group." msgstr "کاربر عضو گروه نیست." -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 msgid "Block user from group" msgstr "دسترسی کاربر به گروه را مسدود کن" @@ -1628,87 +1661,87 @@ msgstr "" msgid "You must be logged in to edit a group." msgstr "برای ویرایش گروه باید وارد شوید." -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 msgid "Group design" msgstr "ظاهر گروه" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." msgstr "ظاهر گروه را تغییر دهید تا شما را راضی کند." -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 msgid "Couldn't update your design." msgstr "نمی‌توان ظاهر را به روز کرد." -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 msgid "Design preferences saved." msgstr "ترجیحات طرح ذخیره شد." -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "نشان گروه" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "شما می‌توانید یک نشان برای گروه خود با بیشینه حجم %s بفرستید." -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 #, fuzzy msgid "User without matching profile." msgstr "کاربر بدون مشخصات" -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "یک ناحیه‌ی مربع از تصویر را انتخاب کنید تا به عنوان نشان باشد." -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 msgid "Logo updated." msgstr "نشان به‌هنگام‌سازی شد." -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 msgid "Failed updating logo." msgstr "اشکال در ارسال نشان." -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "اعضای گروه %s" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, fuzzy, php-format msgid "%1$s group members, page %2$d" msgstr "اعضای گروه %s، صفحهٔ %d" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "یک فهرست از کاربران در این گروه" -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "مدیر" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "بازداشتن" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 msgid "Make user an admin of the group" msgstr "کاربر یک مدیر گروه شود" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make Admin" msgstr "مدیر شود" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "این کاربر یک مدیر شود" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "به روز رسانی کابران %1$s در %2$s" @@ -1967,16 +2000,19 @@ msgstr "پیام خصوصی" msgid "Optionally add a personal message to the invitation." msgstr "اگر دوست دارید می‌توانید یک پیام به همراه دعوت نامه ارسال کنید." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" msgstr "فرستادن" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s شما را دعوت کرده است که در %2$s به آن‌ها بپیوندید." -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2011,7 +2047,12 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "برای پیوستن به یک گروه، باید وارد شده باشید." -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "بدون لقب." + +#: actions/joingroup.php:141 #, fuzzy, php-format msgid "%1$s joined group %2$s" msgstr "ملحق شدن به گروه" @@ -2020,11 +2061,11 @@ msgstr "ملحق شدن به گروه" msgid "You must be logged in to leave a group." msgstr "برای ترک یک گروه، شما باید وارد شده باشید." -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 msgid "You are not a member of that group." msgstr "شما یک کاربر این گروه نیستید." -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, fuzzy, php-format msgid "%1$s left group %2$s" msgstr "%s گروه %s را ترک کرد." @@ -2041,8 +2082,7 @@ msgstr "نام کاربری یا رمز عبور نادرست." msgid "Error setting user. You are probably not authorized." msgstr "خطا در تنظیم کاربر. شما احتمالا اجازه ی این کار را ندارید." -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "ورود" @@ -2300,8 +2340,8 @@ msgstr "نوع محتوا " msgid "Only " msgstr " فقط" -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "یک قالب دادهٔ پشتیبانی‌شده نیست." @@ -2447,7 +2487,7 @@ msgstr "نمی‌توان گذرواژه جدید را ذخیره کرد." msgid "Password saved." msgstr "گذرواژه ذخیره شد." -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "مسیر ها" @@ -2480,7 +2520,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 msgid "Site" msgstr "سایت" @@ -2653,7 +2692,7 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "۱-۶۴ کاراکتر کوچک یا اعداد، بدون نقطه گذاری یا فاصله" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "نام‌کامل" @@ -2681,7 +2720,7 @@ msgid "Bio" msgstr "شرح‌حال" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2761,7 +2800,8 @@ msgstr "نمی‌توان شناسه را ذخیره کرد." msgid "Couldn't save tags." msgstr "نمی‌توان نشان را ذخیره کرد." -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "تنظیمات ذخیره شد." @@ -2774,45 +2814,45 @@ msgstr "" msgid "Could not retrieve public stream." msgstr "" -#: actions/public.php:129 +#: actions/public.php:130 #, php-format msgid "Public timeline, page %d" msgstr "خط زمانی عمومی، صفحه‌ی %d" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "خط زمانی عمومی" -#: actions/public.php:159 +#: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" msgstr "" -#: actions/public.php:163 +#: actions/public.php:164 msgid "Public Stream Feed (RSS 2.0)" msgstr "" -#: actions/public.php:167 +#: actions/public.php:168 msgid "Public Stream Feed (Atom)" msgstr "" -#: actions/public.php:187 +#: 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:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "اولین کسی باشید که پیام می‌فرستد!" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "چرا [ثبت نام](%%action.register%%) نمی‌کنید و اولین پیام را نمی‌فرستید؟" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2821,7 +2861,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:246 +#: actions/public.php:247 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2994,8 +3034,7 @@ msgstr "با عرض تاسف، کد دعوت نا معتبر است." msgid "Registration successful" msgstr "ثبت نام با موفقیت انجام شد." -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "ثبت نام" @@ -3158,7 +3197,7 @@ msgstr "شما نمی توانید آگهی خودتان را تکرار کنی msgid "You already repeated that notice." msgstr "شما قبلا آن آگهی را تکرار کردید." -#: actions/repeat.php:114 lib/noticelist.php:656 +#: actions/repeat.php:114 lib/noticelist.php:674 msgid "Repeated" msgstr "" @@ -3166,47 +3205,47 @@ msgstr "" msgid "Repeated!" msgstr "" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "پاسخ‌های به %s" -#: actions/replies.php:127 +#: actions/replies.php:128 #, fuzzy, php-format msgid "Replies to %1$s, page %2$d" msgstr "پاسخ‌های به %s" -#: actions/replies.php:144 +#: actions/replies.php:145 #, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "خوراک پاسخ‌ها برای %s (RSS 1.0)" -#: actions/replies.php:151 +#: actions/replies.php:152 #, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "خوراک پاسخ‌ها برای %s (RSS 2.0)" -#: actions/replies.php:158 +#: actions/replies.php:159 #, php-format msgid "Replies feed for %s (Atom)" msgstr "خوراک پاسخ‌ها برای %s (Atom)" -#: actions/replies.php:198 +#: 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 his attention yet." msgstr "این خط‌زمانی %s و دوستانش است، اما هیچ‌یک تاکنون چیزی پست نکرده‌اند." -#: actions/replies.php:203 +#: 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:205 +#: actions/replies.php:206 #, fuzzy, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3234,7 +3273,6 @@ msgid "User is already sandboxed." msgstr "" #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "" @@ -3260,7 +3298,7 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "" @@ -3294,7 +3332,7 @@ msgstr "صفحه بندى" msgid "Description" msgstr "" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "آمار" @@ -3357,35 +3395,35 @@ msgstr "دوست داشتنی های %s" msgid "Could not retrieve favorite notices." msgstr "ناتوان در بازیابی آگهی های محبوب." -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" msgstr "" -#: actions/showfavorites.php:205 +#: 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:207 +#: 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 :)" msgstr "" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3393,7 +3431,7 @@ msgid "" "would add to their favorites :)" msgstr "" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "این یک راه است برای به اشتراک گذاشتن آنچه که دوست دارید." @@ -3407,67 +3445,67 @@ msgstr "" msgid "%1$s group, page %2$d" msgstr "اعضای گروه %s، صفحهٔ %d" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 msgid "Group profile" msgstr "" -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 msgid "Note" msgstr "" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "نام های مستعار" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, php-format msgid "FOAF for %s group" msgstr "" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 msgid "Members" msgstr "اعضا" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "هیچ" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "همه ی اعضا" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 msgid "Created" msgstr "ساخته شد" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3477,7 +3515,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:454 +#: actions/showgroup.php:462 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3486,7 +3524,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:482 +#: actions/showgroup.php:490 msgid "Admins" msgstr "" @@ -3945,22 +3983,22 @@ msgstr "" msgid "SMS" msgstr "" -#: actions/tag.php:68 +#: actions/tag.php:69 #, fuzzy, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "کاربران خود برچسب‌گذاری شده با %s - صفحهٔ %d" -#: actions/tag.php:86 +#: actions/tag.php:87 #, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "" -#: actions/tag.php:92 +#: actions/tag.php:93 #, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "" -#: actions/tag.php:98 +#: actions/tag.php:99 #, php-format msgid "Notice feed for tag %s (Atom)" msgstr "" @@ -4010,7 +4048,7 @@ msgstr "" msgid "No such tag." msgstr "" -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "روش API در دست ساخت." @@ -4040,70 +4078,72 @@ msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +#, fuzzy +msgctxt "TITLE" msgid "User" msgstr "کاربر" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "" -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "" -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "" -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "حداکثر طول یک زندگی نامه(در پروفایل) بر حسب کاراکتر." -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 msgid "New users" msgstr "" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "خوشامدگویی کاربر جدید" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "پیام خوشامدگویی برای کاربران جدید( حداکثر 255 کاراکتر)" -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 msgid "Default subscription" msgstr "" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 msgid "Automatically subscribe new users to this user." msgstr "" -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 msgid "Invitations" msgstr "دعوت نامه ها" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 msgid "Invitations enabled" msgstr "دعوت نامه ها فعال شدند" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "خواه به کاربران اجازه ی دعوت کردن کاربران جدید داده شود." @@ -4276,7 +4316,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 #, fuzzy msgid "Version" msgstr "شخصی" @@ -4316,6 +4356,11 @@ msgstr "نمی‌توان گروه را به‌هنگام‌سازی کرد." msgid "Group leave failed." msgstr "" +#: classes/Local_group.php:41 +#, fuzzy +msgid "Could not update local group." +msgstr "نمی‌توان گروه را به‌هنگام‌سازی کرد." + #: classes/Login_token.php:76 #, fuzzy, php-format msgid "Could not create login token for %s" @@ -4333,27 +4378,27 @@ msgstr "پیغام نمی تواند درج گردد" msgid "Could not update message with new URI." msgstr "" -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "" -#: classes/Notice.php:222 +#: classes/Notice.php:239 msgid "Problem saving notice. Too long." msgstr "مشکل در ذخیره کردن پیام. بسیار طولانی." -#: classes/Notice.php:226 +#: classes/Notice.php:243 msgid "Problem saving notice. Unknown user." msgstr "مشکل در ذخیره کردن پیام. کاربر نا شناخته." -#: classes/Notice.php:231 +#: classes/Notice.php:248 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "تعداد خیلی زیاد آگهی و بسیار سریع؛ استراحت کنید و مجددا دقایقی دیگر ارسال " "کنید." -#: classes/Notice.php:237 +#: classes/Notice.php:254 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4361,20 +4406,20 @@ msgstr "" "تعداد زیاد پیام های دو نسخه ای و بسرعت؛ استراحت کنید و دقایقی دیگر مجددا " "ارسال کنید." -#: classes/Notice.php:243 +#: classes/Notice.php:260 msgid "You are banned from posting notices on this site." msgstr "شما از فرستادن پست در این سایت مردود شدید ." -#: classes/Notice.php:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "مشکل در ذخیره کردن آگهی." -#: classes/Notice.php:882 +#: classes/Notice.php:911 #, fuzzy msgid "Problem saving group inbox." msgstr "مشکل در ذخیره کردن آگهی." -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4403,19 +4448,29 @@ msgstr "" msgid "Couldn't delete subscription." msgstr "" -#: classes/User.php:372 +#: classes/User.php:373 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "خوش امدید به %1$s , @%2$s!" -#: classes/User_group.php:423 +#: classes/User_group.php:462 msgid "Could not create group." msgstr "نمیتوان گروه را تشکیل داد" -#: classes/User_group.php:452 +#: classes/User_group.php:471 +#, fuzzy +msgid "Could not set group URI." +msgstr "نمیتوان گروه را تشکیل داد" + +#: classes/User_group.php:492 msgid "Could not set group membership." msgstr "" +#: classes/User_group.php:506 +#, fuzzy +msgid "Could not save local group info." +msgstr "نمی‌توان شناس‌نامه را ذخیره کرد." + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "تنضبمات پروفيلتان را تغیر دهید" @@ -4457,132 +4512,201 @@ msgstr "صفحه ی بدون عنوان" msgid "Primary site navigation" msgstr "" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "خانه" - -#: lib/action.php:439 +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:441 +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "شخصی" + +#. TRANS: Tooltip for main menu option "Account" +#: lib/action.php:444 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "آدرس ایمیل، آواتار، کلمه ی عبور، پروفایل خود را تغییر دهید" -#: lib/action.php:444 -msgid "Connect" -msgstr "وصل‌شدن" +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "حساب کاربری" -#: lib/action.php:444 +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 +#, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" msgstr "متصل شدن به خدمات" -#: lib/action.php:448 +#: lib/action.php:453 +#, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "وصل‌شدن" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "تغییر پیکربندی سایت" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" -msgstr "دعوت‌کردن" +#: lib/action.php:460 +#, fuzzy +msgctxt "MENU" +msgid "Admin" +msgstr "مدیر" -#: lib/action.php:453 lib/subgroupnav.php:106 -#, php-format +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 +#, fuzzy, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr " به شما ملحق شوند %s دوستان و همکاران را دعوت کنید تا در" -#: lib/action.php:458 -msgid "Logout" -msgstr "خروج" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "دعوت‌کردن" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +#, fuzzy +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "خارج شدن از سایت ." -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "خروج" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 +#, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "یک حساب کاربری بسازید" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "ثبت نام" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +#, fuzzy +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "ورود به وب‌گاه" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "کمک" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "ورود" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 +#, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "به من کمک کنید!" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "جست‌وجو" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "کمک" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +#, fuzzy +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "جستجو برای شخص با متن" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "جست‌وجو" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 msgid "Site notice" msgstr "خبر سایت" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "دید محلی" -#: lib/action.php:625 +#: lib/action.php:656 msgid "Page notice" msgstr "خبر صفحه" -#: lib/action.php:727 +#: lib/action.php:758 msgid "Secondary site navigation" msgstr "" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "کمک" + +#: lib/action.php:765 msgid "About" msgstr "دربارهٔ" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "سوال‌های رایج" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "خصوصی" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "منبع" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "تماس" -#: lib/action.php:751 +#: lib/action.php:782 msgid "Badge" msgstr "" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "StatusNet مجوز نرم افزار" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%). " msgstr "" -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "" -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4590,109 +4714,162 @@ msgid "" "org/licensing/licenses/agpl-3.0.html)." msgstr "" -#: lib/action.php:801 +#: lib/action.php:832 msgid "Site content license" msgstr "مجوز محتویات سایت" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "همه " -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "مجوز." -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "صفحه بندى" -#: lib/action.php:1141 +#: lib/action.php:1172 msgid "After" msgstr "بعد از" -#: lib/action.php:1149 +#: lib/action.php:1180 msgid "Before" msgstr "قبل از" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." msgstr "شما نمی توانید در این سایت تغیری ایجاد کنید" -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 #, fuzzy msgid "Changes to that panel are not allowed." msgstr "اجازه‌ی ثبت نام داده نشده است." -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 msgid "showForm() not implemented." msgstr "" -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 msgid "saveSettings() not implemented." msgstr "" -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 msgid "Unable to delete design setting." msgstr "نمی توان تنظیمات طراحی شده را پاک کرد ." -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 msgid "Basic site configuration" msgstr "پیکره بندی اصلی سایت" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "سایت" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 msgid "Design configuration" msgstr "" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "طرح" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 #, fuzzy msgid "User configuration" msgstr "پیکره بندی اصلی سایت" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +#, fuzzy +msgctxt "MENU" +msgid "User" +msgstr "کاربر" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 #, fuzzy msgid "Access configuration" msgstr "پیکره بندی اصلی سایت" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "دسترسی" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 msgid "Paths configuration" msgstr "" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +#, fuzzy +msgctxt "MENU" +msgid "Paths" +msgstr "مسیر ها" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 #, fuzzy msgid "Sessions configuration" msgstr "پیکره بندی اصلی سایت" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "شخصی" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4784,12 +4961,12 @@ msgstr "" msgid "Tags for this attachment" msgstr "" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 #, fuzzy msgid "Password changing failed" msgstr "تغییر گذرواژه" -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 #, fuzzy msgid "Password changing is not allowed" msgstr "تغییر گذرواژه" @@ -5067,19 +5244,19 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:148 msgid "No configuration file found. " msgstr "" -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "شما ممکن است بخواهید نصاب را اجرا کنید تا این را تعمیر کند." -#: lib/common.php:140 +#: lib/common.php:152 msgid "Go to the installer." msgstr "برو به نصاب." @@ -5267,23 +5444,23 @@ msgstr "خطای سیستم ارسال فایل." msgid "Not an image or corrupt file." msgstr "تصویر یا فایل خرابی نیست" -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "فرمت(فایل) عکس پشتیبانی نشده." -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "فایلمان گم شده" -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "نوع فایل پشتیبانی نشده" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "مگابایت" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "کیلوبایت" @@ -5584,6 +5761,12 @@ msgstr "به" msgid "Available characters" msgstr "کاراکترهای موجود" +#: lib/messageform.php:178 lib/noticeform.php:236 +#, fuzzy +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "فرستادن" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "یک آگهی بفرستید" @@ -5642,23 +5825,23 @@ msgstr "" msgid "at" msgstr "در" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 msgid "in context" msgstr "در زمینه" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 msgid "Repeated by" msgstr "تکرار از" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 msgid "Reply to this notice" msgstr "به این آگهی جواب دهید" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 msgid "Reply" msgstr "جواب دادن" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 msgid "Notice repeated" msgstr "آگهی تکرار شد" @@ -5706,6 +5889,10 @@ msgstr "پاسخ ها" msgid "Favorites" msgstr "چیزهای مورد علاقه" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "کاربر" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "صندوق دریافتی" @@ -5796,7 +5983,7 @@ msgstr "به این آگهی جواب دهید" msgid "Repeat this notice" msgstr "" -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "" @@ -5816,6 +6003,10 @@ msgstr "جست‌وجوی وب‌گاه" msgid "Keyword(s)" msgstr "کلمه(های) کلیدی" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "جست‌وجو" + #: lib/searchaction.php:162 msgid "Search help" msgstr "راهنمای جستجو" @@ -5867,6 +6058,15 @@ msgstr "" msgid "Groups %s is a member of" msgstr "هست عضو %s گروه" +#: lib/subgroupnav.php:105 +msgid "Invite" +msgstr "دعوت‌کردن" + +#: lib/subgroupnav.php:106 +#, php-format +msgid "Invite friends and colleagues to join you on %s" +msgstr " به شما ملحق شوند %s دوستان و همکاران را دعوت کنید تا در" + #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 msgid "People Tagcloud as self-tagged" @@ -5937,47 +6137,47 @@ msgstr "پیام" msgid "Moderate" msgstr "" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "چند ثانیه پیش" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "حدود یک دقیقه پیش" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "حدود %d دقیقه پیش" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "حدود یک ساعت پیش" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "حدود %d ساعت پیش" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "حدود یک روز پیش" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "حدود %d روز پیش" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "حدود یک ماه پیش" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "حدود %d ماه پیش" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "حدود یک سال پیش" diff --git a/locale/fi/LC_MESSAGES/statusnet.po b/locale/fi/LC_MESSAGES/statusnet.po index b92edf111..97ab7038b 100644 --- a/locale/fi/LC_MESSAGES/statusnet.po +++ b/locale/fi/LC_MESSAGES/statusnet.po @@ -10,82 +10,88 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:50:33+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:02:42+0000\n" "Language-Team: Finnish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fi\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 #, fuzzy msgid "Access" msgstr "Hyväksy" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 #, fuzzy msgid "Site access settings" msgstr "Profiilikuva-asetukset" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 #, fuzzy msgid "Registration" msgstr "Rekisteröidy" -#: actions/accessadminpanel.php:161 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 +msgid "Prohibit anonymous users (not logged in) from viewing site?" +msgstr "" + +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. +#: actions/accessadminpanel.php:167 #, fuzzy +msgctxt "LABEL" msgid "Private" msgstr "Yksityisyys" -#: actions/accessadminpanel.php:163 -msgid "Prohibit anonymous users (not logged in) from viewing site?" +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 +msgid "Make registration invitation only." msgstr "" -#: actions/accessadminpanel.php:167 +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 #, fuzzy msgid "Invite only" msgstr "Kutsu" -#: actions/accessadminpanel.php:169 -msgid "Make registration invitation only." +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 +msgid "Disable new registrations." msgstr "" -#: actions/accessadminpanel.php:173 +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 #, fuzzy msgid "Closed" msgstr "Estä" -#: actions/accessadminpanel.php:175 -msgid "Disable new registrations." -msgstr "" - -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "Tallenna" - -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 #, fuzzy msgid "Save access settings" msgstr "Profiilikuva-asetukset" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "Tallenna" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page" msgstr "Sivua ei ole." -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -99,45 +105,53 @@ msgstr "Sivua ei ole." #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "Käyttäjää ei ole." -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, fuzzy, php-format msgid "%1$s and friends, page %2$d" msgstr "%s ja kaverit, sivu %d" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s ja kaverit" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Käyttäjän %s kavereiden syöte (RSS 1.0)" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Käyttäjän %s kavereiden syöte (RSS 2.0)" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Käyttäjän %s kavereiden syöte (Atom)" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." @@ -145,7 +159,7 @@ msgstr "" "Tämä on käyttäjän %s ja kavereiden aikajana, mutta kukaan ei ole lähettyänyt " "vielä mitään." -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -154,7 +168,8 @@ msgstr "" "Kokeile useamman käyttäjän tilaamista, [liity ryhmään] (%%action.groups%%) " "tai lähetä päivitys itse." -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, fuzzy, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " @@ -163,14 +178,15 @@ msgstr "" "Ole ensimmäinen joka [lähettää päivityksen tästä aiheesta] (%%%%action." "newnotice%%%%?status_textarea=%s)!" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 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." msgstr "" -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 msgid "You and friends" msgstr "Sinä ja kaverit" @@ -188,20 +204,20 @@ msgstr "Käyttäjän %1$s ja kavereiden päivitykset palvelussa %2$s!" #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "API-metodia ei löytynyt!" @@ -235,8 +251,9 @@ msgstr "Ei voitu päivittää käyttäjää." #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "Käyttäjällä ei ole profiilia." @@ -261,7 +278,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 #, fuzzy @@ -380,7 +397,7 @@ msgstr "Julkista päivitysvirtaa ei saatu." msgid "Could not find target user." msgstr "Ei löytynyt yhtään päivitystä." -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." @@ -388,62 +405,62 @@ msgstr "" "Käyttäjätunnuksessa voi olla ainoastaan pieniä kirjaimia ja numeroita ilman " "välilyöntiä." -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Tunnus on jo käytössä. Yritä toista tunnusta." -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Tuo ei ole kelvollinen tunnus." -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Kotisivun verkko-osoite ei ole toimiva." -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Koko nimi on liian pitkä (max 255 merkkiä)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, fuzzy, php-format msgid "Description is too long (max %d chars)." msgstr "kuvaus on liian pitkä (max 140 merkkiä)." -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Kotipaikka on liian pitkä (max 255 merkkiä)." -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "Liikaa aliaksia. Maksimimäärä on %d." -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Virheellinen alias: \"%s\"" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Alias \"%s\" on jo käytössä. Yritä toista aliasta." -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "Alias ei voi olla sama kuin ryhmätunnus." @@ -454,15 +471,15 @@ msgstr "Alias ei voi olla sama kuin ryhmätunnus." msgid "Group not found!" msgstr "Ryhmää ei löytynyt!" -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 msgid "You are already a member of that group." msgstr "Sinä kuulut jo tähän ryhmään." -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "Sinut on estetty osallistumasta tähän ryhmään ylläpitäjän toimesta." -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, fuzzy, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Käyttäjä %s ei voinut liittyä ryhmään %s." @@ -471,7 +488,7 @@ msgstr "Käyttäjä %s ei voinut liittyä ryhmään %s." msgid "You are not a member of this group." msgstr "Sinä et kuulu tähän ryhmään." -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, fuzzy, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Ei voitu poistaa käyttäjää %s ryhmästä %s" @@ -503,7 +520,7 @@ msgstr "Koko ei kelpaa." #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -549,7 +566,7 @@ msgstr "" #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -572,13 +589,13 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 msgid "Account" msgstr "Käyttäjätili" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -664,12 +681,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr " Palvelun %s päivitykset, jotka %s / %s on merkinnyt suosikikseen." #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "%s aikajana" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -706,7 +723,7 @@ msgstr "Vastaukset käyttäjälle %s" msgid "Repeats of %s" msgstr "Vastaukset käyttäjälle %s" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Päivitykset joilla on tagi %s" @@ -727,8 +744,7 @@ msgstr "Liitettä ei ole." #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "Tunnusta ei ole." @@ -740,7 +756,7 @@ msgstr "Kokoa ei ole." msgid "Invalid size." msgstr "Koko ei kelpaa." -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Kuva" @@ -757,30 +773,30 @@ msgid "User without matching profile" msgstr "Käyttäjälle ei löydy profiilia" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Profiilikuva-asetukset" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Alkuperäinen" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Esikatselu" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 msgid "Delete" msgstr "Poista" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "Lataa" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "Rajaa" @@ -788,7 +804,7 @@ msgstr "Rajaa" msgid "Pick a square area of the image to be your avatar" msgstr "Valitse neliön muotoinen alue kuvasta profiilikuvaksi" -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Tiedoston data hävisi." @@ -821,22 +837,22 @@ msgid "" msgstr "" #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "Ei" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 msgid "Do not block this user" msgstr "Älä estä tätä käyttäjää" #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Kyllä" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 msgid "Block this user" msgstr "Estä tämä käyttäjä" @@ -844,39 +860,43 @@ msgstr "Estä tämä käyttäjä" msgid "Failed to save block information." msgstr "Käyttäjän estotiedon tallennus epäonnistui." -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 msgid "No such group." msgstr "Tuota ryhmää ei ole." -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, fuzzy, php-format msgid "%s blocked profiles" msgstr "Käyttäjän profiili" -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, fuzzy, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%s ja kaverit, sivu %d" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." msgstr "Lista käyttäjistä, jotka ovat estetty liittymästä tähän ryhmään." -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 msgid "Unblock user from group" msgstr "Poista käyttäjän esto ryhmästä" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "Poista esto" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 msgid "Unblock this user" msgstr "Poista esto tältä käyttäjältä" @@ -957,7 +977,7 @@ msgstr "Sinä et kuulu tähän ryhmään." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "Istuntoavaimesi kanssa oli ongelma." @@ -983,12 +1003,13 @@ msgstr "Älä poista tätä päivitystä" msgid "Delete this application" msgstr "Poista tämä päivitys" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Et ole kirjautunut sisään." @@ -1017,7 +1038,7 @@ msgstr "Oletko varma että haluat poistaa tämän päivityksen?" msgid "Do not delete this notice" msgstr "Älä poista tätä päivitystä" -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 msgid "Delete this notice" msgstr "Poista tämä päivitys" @@ -1034,19 +1055,19 @@ msgstr "Et voi poistaa toisen käyttäjän päivitystä." msgid "Delete user" msgstr "Poista käyttäjä" -#: actions/deleteuser.php:135 +#: 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 "" -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 #, fuzzy msgid "Delete this user" msgstr "Poista tämä päivitys" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "Ulkoasu" @@ -1154,6 +1175,17 @@ msgstr "" msgid "Reset back to default" msgstr "" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "Tallenna" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "" @@ -1257,30 +1289,30 @@ msgstr "Muokkaa ryhmää %s" msgid "You must be logged in to create a group." msgstr "Sinun pitää olla kirjautunut sisään jotta voit luoda ryhmän." -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: actions/editgroup.php:107 actions/editgroup.php:172 +#: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 #, fuzzy msgid "You must be an admin to edit the group." msgstr "Sinun pitää olla ylläpitäjä, jotta voit muokata ryhmää" -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "Käytä tätä lomaketta muokataksesi ryhmää." -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, php-format msgid "description is too long (max %d chars)." msgstr "kuvaus on liian pitkä (max %d merkkiä)." -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 msgid "Could not update group." msgstr "Ei voitu päivittää ryhmää." -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 msgid "Could not create aliases." msgstr "Ei voitu lisätä aliasta." -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 msgid "Options saved." msgstr "Asetukset tallennettu." @@ -1627,7 +1659,7 @@ msgstr "Käyttäjä on asettanut eston sinulle." msgid "User is not a member of group." msgstr "Käyttäjä ei kuulu tähän ryhmään." -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 msgid "Block user from group" msgstr "Estä käyttäjä ryhmästä" @@ -1661,87 +1693,87 @@ msgid "You must be logged in to edit a group." msgstr "" "Sinun pitää olla kirjautunut sisään, jotta voit muuttaa ryhmän tietoja." -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 msgid "Group design" msgstr "Ryhmän ulkoasu" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." msgstr "" -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 msgid "Couldn't update your design." msgstr "Ei voitu päivittää sinun sivusi ulkoasua." -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 msgid "Design preferences saved." msgstr "Ulkoasuasetukset tallennettu." -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "Ryhmän logo" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "Voit ladata ryhmälle logokuvan. Maksimikoko on %s." -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 #, fuzzy msgid "User without matching profile." msgstr "Käyttäjälle ei löydy profiilia" -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Valitse neliön muotoinen alue kuvasta logokuvaksi" -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 msgid "Logo updated." msgstr "Logo päivitetty." -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 msgid "Failed updating logo." msgstr "Logon päivittäminen epäonnistui." -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "Ryhmän %s jäsenet" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, fuzzy, php-format msgid "%1$s group members, page %2$d" msgstr "Ryhmän %s jäsenet, sivu %d" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "Lista ryhmän käyttäjistä." -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "Ylläpito" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "Estä" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 msgid "Make user an admin of the group" msgstr "Tee tästä käyttäjästä ylläpitäjä" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make Admin" msgstr "Tee ylläpitäjäksi" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "Tee tästä käyttäjästä ylläpitäjä" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Ryhmän %1$s käyttäjien päivitykset palvelussa %2$s!" @@ -2002,16 +2034,19 @@ msgstr "Henkilökohtainen viesti" msgid "Optionally add a personal message to the invitation." msgstr "Voit myös lisätä oman viestisi kutsuun" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" msgstr "Lähetä" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s on kutsunut sinut liittymään palveluun %2$s" -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2071,7 +2106,12 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Sinun pitää olla kirjautunut sisään, jos haluat liittyä ryhmään." -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "Tunnusta ei ole." + +#: actions/joingroup.php:141 #, fuzzy, php-format msgid "%1$s joined group %2$s" msgstr "%s liittyi ryhmään %s" @@ -2080,11 +2120,11 @@ msgstr "%s liittyi ryhmään %s" msgid "You must be logged in to leave a group." msgstr "Sinun pitää olla kirjautunut sisään, jotta voit erota ryhmästä." -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 msgid "You are not a member of that group." msgstr "Sinä et kuulu tähän ryhmään." -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, fuzzy, php-format msgid "%1$s left group %2$s" msgstr "%s erosi ryhmästä %s" @@ -2102,8 +2142,7 @@ msgstr "Väärä käyttäjätunnus tai salasana" msgid "Error setting user. You are probably not authorized." msgstr "Sinulla ei ole valtuutusta tähän." -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "Kirjaudu sisään" @@ -2364,8 +2403,8 @@ msgstr "Yhdistä" msgid "Only " msgstr "Vain " -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "Tuo ei ole tuettu tietomuoto." @@ -2511,7 +2550,7 @@ msgstr "Uutta salasanaa ei voida tallentaa." msgid "Password saved." msgstr "Salasana tallennettu." -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "Polut" @@ -2544,7 +2583,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 #, fuzzy msgid "Site" msgstr "Kutsu" @@ -2732,7 +2770,7 @@ msgstr "" "välilyöntejä" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "Koko nimi" @@ -2760,7 +2798,7 @@ msgid "Bio" msgstr "Tietoja" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2845,7 +2883,8 @@ msgstr "Ei voitu tallentaa profiilia." msgid "Couldn't save tags." msgstr "Tageja ei voitu tallentaa." -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "Asetukset tallennettu." @@ -2858,45 +2897,45 @@ msgstr "" msgid "Could not retrieve public stream." msgstr "Julkista päivitysvirtaa ei saatu." -#: actions/public.php:129 +#: actions/public.php:130 #, php-format msgid "Public timeline, page %d" msgstr "Julkinen aikajana, sivu %d" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "Julkinen aikajana" -#: actions/public.php:159 +#: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" msgstr "Julkinen syöte (RSS 1.0)" -#: actions/public.php:163 +#: actions/public.php:164 msgid "Public Stream Feed (RSS 2.0)" msgstr "Julkisen Aikajanan Syöte (RSS 2.0)" -#: actions/public.php:167 +#: actions/public.php:168 msgid "Public Stream Feed (Atom)" msgstr "Julkinen syöte (Atom)" -#: actions/public.php:187 +#: 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:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "Ole ensimmäinen joka lähettää päivityksen!" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2905,7 +2944,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:246 +#: actions/public.php:247 #, fuzzy, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3082,8 +3121,7 @@ msgstr "Virheellinen kutsukoodin." msgid "Registration successful" msgstr "Rekisteröityminen onnistui" -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "Rekisteröidy" @@ -3278,7 +3316,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:656 +#: actions/repeat.php:114 lib/noticelist.php:674 #, fuzzy msgid "Repeated" msgstr "Luotu" @@ -3288,33 +3326,33 @@ msgstr "Luotu" msgid "Repeated!" msgstr "Luotu" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "Vastaukset käyttäjälle %s" -#: actions/replies.php:127 +#: actions/replies.php:128 #, fuzzy, php-format msgid "Replies to %1$s, page %2$d" msgstr "Viesti käyttäjälle %1$s, %2$s" -#: actions/replies.php:144 +#: actions/replies.php:145 #, fuzzy, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "Päivityksien syöte käyttäjälle %s" -#: actions/replies.php:151 +#: actions/replies.php:152 #, fuzzy, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "Päivityksien syöte käyttäjälle %s" -#: actions/replies.php:158 +#: actions/replies.php:159 #, php-format msgid "Replies feed for %s (Atom)" msgstr "Päivityksien syöte käyttäjälle %s" -#: actions/replies.php:198 +#: actions/replies.php:199 #, fuzzy, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " @@ -3323,14 +3361,14 @@ msgstr "" "Tämä on käyttäjän %s aikajana, mutta %s ei ole lähettänyt vielä yhtään " "päivitystä." -#: actions/replies.php:203 +#: 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:205 +#: actions/replies.php:206 #, fuzzy, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3360,7 +3398,6 @@ msgid "User is already sandboxed." msgstr "Käyttäjä on asettanut eston sinulle." #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "" @@ -3386,7 +3423,7 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 #, fuzzy msgid "Save site settings" msgstr "Profiilikuva-asetukset" @@ -3421,7 +3458,7 @@ msgstr "Sivutus" msgid "Description" msgstr "Kuvaus" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Tilastot" @@ -3483,35 +3520,35 @@ msgstr "Käyttäjän %s suosikkipäivitykset" msgid "Could not retrieve favorite notices." msgstr "Ei saatu haettua suosikkipäivityksiä." -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "Käyttäjän %s kavereiden syöte (RSS 1.0)" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "Käyttäjän %s kavereiden syöte (RSS 2.0)" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" msgstr "Käyttäjän %s kavereiden syöte (Atom)" -#: actions/showfavorites.php:205 +#: 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:207 +#: 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 :)" msgstr "" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3519,7 +3556,7 @@ msgid "" "would add to their favorites :)" msgstr "" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "" @@ -3533,67 +3570,67 @@ msgstr "Ryhmä %s" msgid "%1$s group, page %2$d" msgstr "Ryhmän %s jäsenet, sivu %d" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 msgid "Group profile" msgstr "Ryhmän profiili" -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "URL" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 msgid "Note" msgstr "Huomaa" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "Aliakset" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "Ryhmän toiminnot" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Syöte ryhmän %s päivityksille (RSS 1.0)" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Syöte ryhmän %s päivityksille (RSS 2.0)" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Syöte ryhmän %s päivityksille (Atom)" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, php-format msgid "FOAF for %s group" msgstr "Käyttäjän %s lähetetyt viestit" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 msgid "Members" msgstr "Jäsenet" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Tyhjä)" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "Kaikki jäsenet" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 msgid "Created" msgstr "Luotu" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3603,7 +3640,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:454 +#: actions/showgroup.php:462 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3614,7 +3651,7 @@ msgstr "" "**%s** on ryhmä palvelussa %%%%site.name%%%%, joka on [mikroblogauspalvelu]" "(http://en.wikipedia.org/wiki/Micro-blogging)" -#: actions/showgroup.php:482 +#: actions/showgroup.php:490 msgid "Admins" msgstr "Ylläpitäjät" @@ -4085,22 +4122,22 @@ msgstr "Jabber" msgid "SMS" msgstr "SMS" -#: actions/tag.php:68 +#: actions/tag.php:69 #, fuzzy, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "Käyttäjät joilla henkilötagi %s - sivu %d" -#: actions/tag.php:86 +#: actions/tag.php:87 #, fuzzy, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "Päivityksien syöte käyttäjälle %s" -#: actions/tag.php:92 +#: actions/tag.php:93 #, fuzzy, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "Päivityksien syöte käyttäjälle %s" -#: actions/tag.php:98 +#: actions/tag.php:99 #, fuzzy, php-format msgid "Notice feed for tag %s (Atom)" msgstr "Päivityksien syöte käyttäjälle %s" @@ -4157,7 +4194,7 @@ msgstr "" msgid "No such tag." msgstr "Tuota tagia ei ole." -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "API-metodi on työn alla!" @@ -4190,77 +4227,79 @@ msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +#, fuzzy +msgctxt "TITLE" msgid "User" msgstr "Käyttäjä" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "" -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "" -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "" -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "Profiili" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "" -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 #, fuzzy msgid "New users" msgstr "Kutsu uusia käyttäjiä" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "" -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 #, fuzzy msgid "Default subscription" msgstr "Kaikki tilaukset" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 #, fuzzy msgid "Automatically subscribe new users to this user." msgstr "" "Tilaa automaattisesti kaikki, jotka tilaavat päivitykseni (ei sovi hyvin " "ihmiskäyttäjille)" -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 #, fuzzy msgid "Invitations" msgstr "Kutsu(t) lähetettiin" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 #, fuzzy msgid "Invitations enabled" msgstr "Kutsu(t) lähetettiin" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "" @@ -4446,7 +4485,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 #, fuzzy msgid "Version" msgstr "Omat" @@ -4487,6 +4526,11 @@ msgstr "Ei voitu päivittää ryhmää." msgid "Group leave failed." msgstr "Ryhmän profiili" +#: classes/Local_group.php:41 +#, fuzzy +msgid "Could not update local group." +msgstr "Ei voitu päivittää ryhmää." + #: classes/Login_token.php:76 #, fuzzy, php-format msgid "Could not create login token for %s" @@ -4505,28 +4549,28 @@ msgstr "Viestin tallennus ei onnistunut." msgid "Could not update message with new URI." msgstr "Viestin päivittäminen uudella URI-osoitteella ei onnistunut." -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "Tietokantavirhe tallennettaessa risutagiä: %s" -#: classes/Notice.php:222 +#: classes/Notice.php:239 #, fuzzy msgid "Problem saving notice. Too long." msgstr "Ongelma päivityksen tallentamisessa." -#: classes/Notice.php:226 +#: classes/Notice.php:243 msgid "Problem saving notice. Unknown user." msgstr "Virhe tapahtui päivityksen tallennuksessa. Tuntematon käyttäjä." -#: classes/Notice.php:231 +#: classes/Notice.php:248 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:237 +#: classes/Notice.php:254 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4534,20 +4578,20 @@ 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:243 +#: classes/Notice.php:260 msgid "You are banned from posting notices on this site." msgstr "Päivityksesi tähän palveluun on estetty." -#: classes/Notice.php:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "Ongelma päivityksen tallentamisessa." -#: classes/Notice.php:882 +#: classes/Notice.php:911 #, fuzzy msgid "Problem saving group inbox." msgstr "Ongelma päivityksen tallentamisessa." -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4579,19 +4623,29 @@ msgstr "Ei voitu poistaa tilausta." msgid "Couldn't delete subscription." msgstr "Ei voitu poistaa tilausta." -#: classes/User.php:372 +#: classes/User.php:373 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Viesti käyttäjälle %1$s, %2$s" -#: classes/User_group.php:423 +#: classes/User_group.php:462 msgid "Could not create group." msgstr "Ryhmän luonti ei onnistunut." -#: classes/User_group.php:452 +#: classes/User_group.php:471 +#, fuzzy +msgid "Could not set group URI." +msgstr "Ryhmän jäsenyystietoja ei voitu asettaa." + +#: classes/User_group.php:492 msgid "Could not set group membership." msgstr "Ryhmän jäsenyystietoja ei voitu asettaa." +#: classes/User_group.php:506 +#, fuzzy +msgid "Could not save local group info." +msgstr "Tilausta ei onnistuttu tallentamaan." + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "Vaihda profiiliasetuksesi" @@ -4634,123 +4688,191 @@ msgstr "Nimetön sivu" msgid "Primary site navigation" msgstr "Ensisijainen sivunavigointi" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "Koti" - -#: lib/action.php:439 +#, fuzzy +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Henkilökohtainen profiili ja kavereiden aikajana" -#: lib/action.php:441 +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "Omat" + +#. TRANS: Tooltip for main menu option "Account" +#: lib/action.php:444 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Muuta sähköpostiosoitettasi, kuvaasi, salasanaasi, profiiliasi" -#: lib/action.php:444 -msgid "Connect" -msgstr "Yhdistä" +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "Käyttäjätili" -#: lib/action.php:444 +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 #, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Ei voitu uudelleenohjata palvelimelle: %s" -#: lib/action.php:448 +#: lib/action.php:453 +#, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "Yhdistä" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 #, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Ensisijainen sivunavigointi" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" -msgstr "Kutsu" +#: lib/action.php:460 +#, fuzzy +msgctxt "MENU" +msgid "Admin" +msgstr "Ylläpito" -#: lib/action.php:453 lib/subgroupnav.php:106 -#, php-format +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 +#, fuzzy, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Kutsu kavereita ja työkavereita liittymään palveluun %s" -#: lib/action.php:458 -msgid "Logout" -msgstr "Kirjaudu ulos" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "Kutsu" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +#, fuzzy +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Kirjaudu ulos palvelusta" -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "Kirjaudu ulos" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 +#, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "Luo uusi käyttäjätili" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "Rekisteröidy" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +#, fuzzy +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Kirjaudu sisään palveluun" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "Ohjeet" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "Kirjaudu sisään" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 +#, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "Auta minua!" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "Haku" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "Ohjeet" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +#, fuzzy +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Hae ihmisiä tai tekstiä" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "Haku" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 msgid "Site notice" msgstr "Palvelun ilmoitus" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "Paikalliset näkymät" -#: lib/action.php:625 +#: lib/action.php:656 msgid "Page notice" msgstr "Sivuilmoitus" -#: lib/action.php:727 +#: lib/action.php:758 msgid "Secondary site navigation" msgstr "Toissijainen sivunavigointi" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "Ohjeet" + +#: lib/action.php:765 msgid "About" msgstr "Tietoa" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "UKK" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "Yksityisyys" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "Lähdekoodi" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "Ota yhteyttä" -#: lib/action.php:751 +#: lib/action.php:782 #, fuzzy msgid "Badge" msgstr "Tönäise" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "StatusNet-ohjelmiston lisenssi" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4759,12 +4881,12 @@ msgstr "" "**%%site.name%%** on mikroblogipalvelu, jonka tarjoaa [%%site.broughtby%%](%%" "site.broughtbyurl%%). " -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** on mikroblogipalvelu. " -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4775,117 +4897,170 @@ msgstr "" "versio %s, saatavilla lisenssillä [GNU Affero General Public License](http://" "www.fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:801 +#: lib/action.php:832 #, fuzzy msgid "Site content license" msgstr "StatusNet-ohjelmiston lisenssi" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "Kaikki " -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "lisenssi." -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "Sivutus" -#: lib/action.php:1141 +#: lib/action.php:1172 msgid "After" msgstr "Myöhemmin" -#: lib/action.php:1149 +#: lib/action.php:1180 msgid "Before" msgstr "Aiemmin" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 #, fuzzy msgid "You cannot make changes to this site." msgstr "Et voi lähettää viestiä tälle käyttäjälle." -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 #, fuzzy msgid "Changes to that panel are not allowed." msgstr "Rekisteröityminen ei ole sallittu." -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 #, fuzzy msgid "showForm() not implemented." msgstr "Komentoa ei ole vielä toteutettu." -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 #, fuzzy msgid "saveSettings() not implemented." msgstr "Komentoa ei ole vielä toteutettu." -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 #, fuzzy msgid "Unable to delete design setting." msgstr "Twitter-asetuksia ei voitu tallentaa!" -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 #, fuzzy msgid "Basic site configuration" msgstr "Sähköpostiosoitteen vahvistus" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "Kutsu" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 #, fuzzy msgid "Design configuration" msgstr "SMS vahvistus" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "Ulkoasu" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 #, fuzzy msgid "User configuration" msgstr "SMS vahvistus" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +#, fuzzy +msgctxt "MENU" +msgid "User" +msgstr "Käyttäjä" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 #, fuzzy msgid "Access configuration" msgstr "SMS vahvistus" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "Hyväksy" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 #, fuzzy msgid "Paths configuration" msgstr "SMS vahvistus" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +#, fuzzy +msgctxt "MENU" +msgid "Paths" +msgstr "Polut" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 #, fuzzy msgid "Sessions configuration" msgstr "SMS vahvistus" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "Omat" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4981,12 +5156,12 @@ msgstr "" msgid "Tags for this attachment" msgstr "" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 #, fuzzy msgid "Password changing failed" msgstr "Salasanan vaihto" -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 #, fuzzy msgid "Password changing is not allowed" msgstr "Salasanan vaihto" @@ -5267,20 +5442,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:148 #, fuzzy msgid "No configuration file found. " msgstr "Varmistuskoodia ei ole annettu." -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:152 #, fuzzy msgid "Go to the installer." msgstr "Kirjaudu sisään palveluun" @@ -5475,23 +5650,23 @@ msgstr "Tiedoston lähetyksessä tapahtui järjestelmävirhe." msgid "Not an image or corrupt file." msgstr "Tuo ei ole kelvollinen kuva tai tiedosto on rikkoutunut." -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "Kuvatiedoston formaattia ei ole tuettu." -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Tiedosto hävisi." -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "Tunnistamaton tiedoston tyyppi" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "" @@ -5806,6 +5981,12 @@ msgstr "Vastaanottaja" msgid "Available characters" msgstr "Sallitut merkit" +#: lib/messageform.php:178 lib/noticeform.php:236 +#, fuzzy +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "Lähetä" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Lähetä päivitys" @@ -5865,25 +6046,25 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 #, fuzzy msgid "in context" msgstr "Ei sisältöä!" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 #, fuzzy msgid "Repeated by" msgstr "Luotu" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 msgid "Reply to this notice" msgstr "Vastaa tähän päivitykseen" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 msgid "Reply" msgstr "Vastaus" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 #, fuzzy msgid "Notice repeated" msgstr "Päivitys on poistettu." @@ -5933,6 +6114,10 @@ msgstr "Vastaukset" msgid "Favorites" msgstr "Suosikit" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "Käyttäjä" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Saapuneet" @@ -6027,7 +6212,7 @@ msgstr "Vastaa tähän päivitykseen" msgid "Repeat this notice" msgstr "Vastaa tähän päivitykseen" -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "" @@ -6050,6 +6235,10 @@ msgstr "Haku" msgid "Keyword(s)" msgstr "" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "Haku" + #: lib/searchaction.php:162 #, fuzzy msgid "Search help" @@ -6104,6 +6293,15 @@ msgstr "Ihmiset jotka ovat käyttäjän %s tilaajia" msgid "Groups %s is a member of" msgstr "Ryhmät, joiden jäsen %s on" +#: lib/subgroupnav.php:105 +msgid "Invite" +msgstr "Kutsu" + +#: lib/subgroupnav.php:106 +#, php-format +msgid "Invite friends and colleagues to join you on %s" +msgstr "Kutsu kavereita ja työkavereita liittymään palveluun %s" + #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 msgid "People Tagcloud as self-tagged" @@ -6178,47 +6376,47 @@ msgstr "Viesti" msgid "Moderate" msgstr "" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "muutama sekunti sitten" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "noin minuutti sitten" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "noin %d minuuttia sitten" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "noin tunti sitten" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "noin %d tuntia sitten" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "noin päivä sitten" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "noin %d päivää sitten" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "noin kuukausi sitten" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "noin %d kuukautta sitten" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "noin vuosi sitten" diff --git a/locale/fr/LC_MESSAGES/statusnet.po b/locale/fr/LC_MESSAGES/statusnet.po index cf0cc849b..68e210ff1 100644 --- a/locale/fr/LC_MESSAGES/statusnet.po +++ b/locale/fr/LC_MESSAGES/statusnet.po @@ -14,75 +14,82 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:50:48+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:02:48+0000\n" "Language-Team: French\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 msgid "Access" msgstr "Accès" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 msgid "Site access settings" msgstr "Paramètres d’accès au site" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 msgid "Registration" msgstr "Inscription" -#: actions/accessadminpanel.php:161 -msgid "Private" -msgstr "Privé" - -#: actions/accessadminpanel.php:163 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "Interdire aux utilisateurs anonymes (non connectés) de voir le site ?" +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -msgid "Invite only" -msgstr "Sur invitation uniquement" +#, fuzzy +msgctxt "LABEL" +msgid "Private" +msgstr "Privé" -#: actions/accessadminpanel.php:169 +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 msgid "Make registration invitation only." msgstr "Autoriser l’inscription sur invitation seulement." -#: actions/accessadminpanel.php:173 -msgid "Closed" -msgstr "Fermé" +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 +msgid "Invite only" +msgstr "Sur invitation uniquement" -#: actions/accessadminpanel.php:175 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 msgid "Disable new registrations." msgstr "Désactiver les nouvelles inscriptions." -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "Enregistrer" +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 +msgid "Closed" +msgstr "Fermé" -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 msgid "Save access settings" msgstr "Sauvegarder les paramètres d’accès" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "Enregistrer" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page" msgstr "Page non trouvée" -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -96,45 +103,53 @@ msgstr "Page non trouvée" #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "Utilisateur non trouvé." -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s et ses amis, page %2$d" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s et ses amis" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Flux pour les amis de %s (RSS 1.0)" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Flux pour les amis de %s (RSS 2.0)" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Flux pour les amis de %s (Atom)" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." @@ -142,7 +157,7 @@ msgstr "" "Ceci est le flux pour %s et ses amis mais personne n’a rien posté pour le " "moment." -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -151,7 +166,8 @@ msgstr "" "Essayez de vous abonner à plus d’utilisateurs, de vous [inscrire à un groupe]" "(%%action.groups%%) ou de poster quelque chose vous-même." -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " @@ -161,7 +177,7 @@ msgstr "" "profil ou [poster quelque chose à son intention](%%%%action.newnotice%%%%?" "status_textarea=%3$s)." -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -170,7 +186,8 @@ msgstr "" "Pourquoi ne pas [créer un compte](%%%%action.register%%%%) et ensuite faire " "un clin d’œil à %s ou poster un avis à son intention." -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 msgid "You and friends" msgstr "Vous et vos amis" @@ -188,20 +205,20 @@ msgstr "Statuts de %1$s et ses amis dans %2$s!" #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 msgid "API method not found." msgstr "Méthode API non trouvée !" @@ -235,8 +252,9 @@ msgstr "Impossible de mettre à jour l’utilisateur." #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "Aucun profil ne correspond à cet utilisateur." @@ -262,7 +280,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: 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." @@ -374,7 +392,7 @@ msgstr "Impossible de déterminer l’utilisateur source." msgid "Could not find target user." msgstr "Impossible de trouver l’utilisateur cible." -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." @@ -382,62 +400,62 @@ msgstr "" "Les pseudos ne peuvent contenir que des caractères minuscules et des " "chiffres, sans espaces." -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Pseudo déjà utilisé. Essayez-en un autre." -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Pseudo invalide." -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "L’adresse du site personnel n’est pas un URL valide. " -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Nom complet trop long (maximum de 255 caractères)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "La description est trop longue (%d caractères maximum)." -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Emplacement trop long (maximum de 255 caractères)." -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "Trop d’alias ! Maximum %d." -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Alias invalide : « %s »" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Alias « %s » déjà utilisé. Essayez-en un autre." -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "L’alias ne peut pas être le même que le pseudo." @@ -448,15 +466,15 @@ msgstr "L’alias ne peut pas être le même que le pseudo." msgid "Group not found!" msgstr "Groupe non trouvé !" -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 msgid "You are already a member of that group." msgstr "Vous êtes déjà membre de ce groupe." -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "Vous avez été bloqué de ce groupe par l’administrateur." -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Impossible de joindre l’utilisateur %1$s au groupe %2$s." @@ -465,7 +483,7 @@ msgstr "Impossible de joindre l’utilisateur %1$s au groupe %2$s." msgid "You are not a member of this group." msgstr "Vous n’êtes pas membre de ce groupe." -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Impossible de retirer l’utilisateur %1$s du groupe %2$s." @@ -496,7 +514,7 @@ msgstr "Jeton incorrect." #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -544,7 +562,7 @@ msgstr "Le jeton de connexion %s a été refusé et révoqué." #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -572,13 +590,13 @@ msgstr "" "devriez donner l’accès à votre compte %4$s qu’aux tiers à qui vous faites " "confiance." -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 msgid "Account" msgstr "Compte" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -662,12 +680,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s statuts favoris de %2$s / %2$s." #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "Activité de %s" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -703,7 +721,7 @@ msgstr "Repris pour %s" msgid "Repeats of %s" msgstr "Reprises de %s" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Avis marqués avec %s" @@ -724,8 +742,7 @@ msgstr "Pièce jointe non trouvée." #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "Aucun pseudo." @@ -737,7 +754,7 @@ msgstr "Aucune taille" msgid "Invalid size." msgstr "Taille incorrecte." -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Avatar" @@ -756,30 +773,30 @@ msgid "User without matching profile" msgstr "Utilisateur sans profil correspondant" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Paramètres de l’avatar" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Image originale" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Aperçu" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 msgid "Delete" msgstr "Supprimer" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "Transfert" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "Recadrer" @@ -787,7 +804,7 @@ msgstr "Recadrer" msgid "Pick a square area of the image to be your avatar" msgstr "Sélectionnez une zone de forme carrée pour définir votre avatar" -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Données perdues." @@ -822,22 +839,22 @@ msgstr "" "serez pas informé des @-réponses de sa part." #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "Non" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 msgid "Do not block this user" msgstr "Ne pas bloquer cet utilisateur" #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Oui" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 msgid "Block this user" msgstr "Bloquer cet utilisateur" @@ -845,39 +862,43 @@ msgstr "Bloquer cet utilisateur" msgid "Failed to save block information." msgstr "Impossible d’enregistrer les informations de blocage." -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 msgid "No such group." msgstr "Aucun groupe trouvé." -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, php-format msgid "%s blocked profiles" msgstr "%s profils bloqués" -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s profils bloqués, page %2$d" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." msgstr "Une liste des utilisateurs dont l’inscription à ce groupe est bloquée." -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 msgid "Unblock user from group" msgstr "Débloquer l’utilisateur de ce groupe" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "Débloquer" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 msgid "Unblock this user" msgstr "Débloquer cet utilisateur" @@ -952,7 +973,7 @@ msgstr "Vous n’êtes pas le propriétaire de cette application." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "Un problème est survenu avec votre jeton de session." @@ -978,12 +999,13 @@ msgstr "Ne pas supprimer cette application" msgid "Delete this application" msgstr "Supprimer cette application" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Non connecté." @@ -1012,7 +1034,7 @@ msgstr "Voulez-vous vraiment supprimer cet avis ?" msgid "Do not delete this notice" msgstr "Ne pas supprimer cet avis" -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 msgid "Delete this notice" msgstr "Supprimer cet avis" @@ -1028,7 +1050,7 @@ msgstr "Vous pouvez seulement supprimer les utilisateurs locaux." msgid "Delete user" msgstr "Supprimer l’utilisateur" -#: actions/deleteuser.php:135 +#: 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." @@ -1036,12 +1058,12 @@ msgstr "" "Voulez-vous vraiment supprimer cet utilisateur ? Ceci effacera toutes les " "données à son propos de la base de données, sans sauvegarde." -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 msgid "Delete this user" msgstr "Supprimer cet utilisateur" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "Conception" @@ -1144,6 +1166,17 @@ msgstr "Restaurer les conceptions par défaut" msgid "Reset back to default" msgstr "Revenir aux valeurs par défaut" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "Enregistrer" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "Sauvegarder la conception" @@ -1235,29 +1268,29 @@ msgstr "Modifier le groupe %s" msgid "You must be logged in to create a group." msgstr "Vous devez ouvrir une session pour créer un groupe." -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: 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 "Vous devez être administrateur pour modifier le groupe." -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "Remplissez ce formulaire pour modifier les options du groupe." -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, php-format msgid "description is too long (max %d chars)." msgstr "la description est trop longue (%d caractères maximum)." -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 msgid "Could not update group." msgstr "Impossible de mettre à jour le groupe." -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 msgid "Could not create aliases." msgstr "Impossible de créer les alias." -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 msgid "Options saved." msgstr "Vos options ont été enregistrées." @@ -1598,7 +1631,7 @@ msgstr "Cet utilisateur est déjà bloqué pour le groupe." msgid "User is not a member of group." msgstr "L’utilisateur n’est pas membre du groupe." -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 msgid "Block user from group" msgstr "Bloquer cet utilisateur du groupe" @@ -1634,11 +1667,11 @@ msgstr "Aucun identifiant." msgid "You must be logged in to edit a group." msgstr "Vous devez ouvrir une session pour modifier un groupe." -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 msgid "Group design" msgstr "Conception du groupe" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." @@ -1646,20 +1679,20 @@ msgstr "" "Personnalisez l’apparence de votre groupe avec une image d’arrière plan et " "une palette de couleurs de votre choix" -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 msgid "Couldn't update your design." msgstr "Impossible de mettre à jour votre conception." -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 msgid "Design preferences saved." msgstr "Préférences de conception enregistrées." -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "Logo du groupe" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." @@ -1667,57 +1700,57 @@ msgstr "" "Vous pouvez choisir un logo pour votre groupe. La taille maximale du fichier " "est de %s." -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 msgid "User without matching profile." msgstr "Utilisateur sans profil correspondant." -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Sélectionnez une zone de forme carrée sur l’image qui sera le logo." -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 msgid "Logo updated." msgstr "Logo mis à jour." -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 msgid "Failed updating logo." msgstr "La mise à jour du logo a échoué." -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "Membres du groupe %s" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, php-format msgid "%1$s group members, page %2$d" msgstr "Membres du groupe %1$s - page %2$d" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "Liste des utilisateurs inscrits à ce groupe." -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "Administrer" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "Bloquer" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 msgid "Make user an admin of the group" msgstr "Faire de cet utilisateur un administrateur du groupe" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make Admin" msgstr "Faire un administrateur" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "Faire de cet utilisateur un administrateur" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Mises à jour des membres de %1$s dans %2$s !" @@ -1988,16 +2021,19 @@ msgstr "Message personnel" msgid "Optionally add a personal message to the invitation." msgstr "Ajouter un message personnel à l’invitation (optionnel)." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" msgstr "Envoyer" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s vous invite à vous inscrire sur %2$s" -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2060,7 +2096,11 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Vous devez ouvrir une session pour rejoindre un groupe." -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Aucun pseudo ou ID." + +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s a rejoint le groupe %2$s" @@ -2069,11 +2109,11 @@ msgstr "%1$s a rejoint le groupe %2$s" msgid "You must be logged in to leave a group." msgstr "Vous devez ouvrir une session pour quitter un groupe." -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 msgid "You are not a member of that group." msgstr "Vous n’êtes pas membre de ce groupe." -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s a quitté le groupe %2$s" @@ -2092,8 +2132,7 @@ msgstr "" "Erreur lors de la mise en place de l’utilisateur. Vous n’y êtes probablement " "pas autorisé." -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "Ouvrir une session" @@ -2355,8 +2394,8 @@ msgstr "type de contenu " msgid "Only " msgstr "Seulement " -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "Format de données non supporté." @@ -2496,7 +2535,7 @@ msgstr "Impossible de sauvegarder le nouveau mot de passe." msgid "Password saved." msgstr "Mot de passe enregistré." -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "Chemins" @@ -2529,7 +2568,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "Serveur SSL invalide. La longueur maximale est de 255 caractères." #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 msgid "Site" msgstr "Site" @@ -2704,7 +2742,7 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1 à 64 lettres minuscules ou chiffres, sans ponctuation ni espaces" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "Nom complet" @@ -2732,7 +2770,7 @@ msgid "Bio" msgstr "Bio" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2816,7 +2854,8 @@ msgstr "Impossible d’enregistrer le profil." msgid "Couldn't save tags." msgstr "Impossible d’enregistrer les marques." -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "Préférences enregistrées." @@ -2829,28 +2868,28 @@ msgstr "Au-delà de la limite de page (%s)" msgid "Could not retrieve public stream." msgstr "Impossible de récupérer le flux public." -#: actions/public.php:129 +#: actions/public.php:130 #, php-format msgid "Public timeline, page %d" msgstr "Flux public - page %d" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "Flux public" -#: actions/public.php:159 +#: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" msgstr "Fil du flux public (RSS 1.0)" -#: actions/public.php:163 +#: actions/public.php:164 msgid "Public Stream Feed (RSS 2.0)" msgstr "Fil du flux public (RSS 2.0)" -#: actions/public.php:167 +#: actions/public.php:168 msgid "Public Stream Feed (Atom)" msgstr "Fil du flux public (Atom)" -#: actions/public.php:187 +#: actions/public.php:188 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " @@ -2859,11 +2898,11 @@ msgstr "" "Ceci est la chronologie publique de %%site.name%% mais personne n’a encore " "rien posté." -#: actions/public.php:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "Soyez le premier à poster !" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" @@ -2871,7 +2910,7 @@ msgstr "" "Pourquoi ne pas [créer un compte](%%action.register%%) et être le premier à " "poster !" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2885,7 +2924,7 @@ msgstr "" "vous avec vos amis, famille et collègues ! ([Plus d’informations](%%doc.help%" "%))" -#: actions/public.php:246 +#: actions/public.php:247 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3067,8 +3106,7 @@ msgstr "Désolé, code d’invitation invalide." msgid "Registration successful" msgstr "Compte créé avec succès" -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "Créer un compte" @@ -3256,7 +3294,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:656 +#: actions/repeat.php:114 lib/noticelist.php:674 msgid "Repeated" msgstr "Repris" @@ -3264,33 +3302,33 @@ msgstr "Repris" msgid "Repeated!" msgstr "Repris !" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "Réponses à %s" -#: actions/replies.php:127 +#: actions/replies.php:128 #, php-format msgid "Replies to %1$s, page %2$d" msgstr "Réponses à %1$s, page %2$d" -#: actions/replies.php:144 +#: actions/replies.php:145 #, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "Flux des réponses pour %s (RSS 1.0)" -#: actions/replies.php:151 +#: actions/replies.php:152 #, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "Flux des réponses pour %s (RSS 2.0)" -#: actions/replies.php:158 +#: actions/replies.php:159 #, php-format msgid "Replies feed for %s (Atom)" msgstr "Flux des réponses pour %s (Atom)" -#: actions/replies.php:198 +#: actions/replies.php:199 #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " @@ -3299,7 +3337,7 @@ msgstr "" "Ceci est la chronologie des réponses à %1$s mais %2$s n’a encore reçu aucun " "avis à son intention." -#: actions/replies.php:203 +#: actions/replies.php:204 #, php-format msgid "" "You can engage other users in a conversation, subscribe to more people or " @@ -3309,7 +3347,7 @@ msgstr "" "abonner à plus de personnes ou vous [inscrire à des groupes](%%action.groups%" "%)." -#: actions/replies.php:205 +#: actions/replies.php:206 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3338,7 +3376,6 @@ msgid "User is already sandboxed." msgstr "L’utilisateur est déjà dans le bac à sable." #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "Sessions" @@ -3363,7 +3400,7 @@ msgid "Turn on debugging output for sessions." msgstr "Activer la sortie de déboguage pour les sessions." #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Sauvegarder les paramètres du site" @@ -3393,7 +3430,7 @@ msgstr "Organisation" msgid "Description" msgstr "Description" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Statistiques" @@ -3456,22 +3493,22 @@ msgstr "Avis favoris de %1$s, page %2$d" msgid "Could not retrieve favorite notices." msgstr "Impossible d’afficher les favoris." -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "Flux pour les amis de %s (RSS 1.0)" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "Flux pour les amis de %s (RSS 2.0)" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" msgstr "Flux pour les amis de %s (Atom)" -#: actions/showfavorites.php:205 +#: 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." @@ -3480,7 +3517,7 @@ msgstr "" "favori sur les avis que vous aimez pour les mémoriser à l’avenir ou les " "mettre en lumière." -#: actions/showfavorites.php:207 +#: actions/showfavorites.php:208 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Post something interesting " @@ -3489,7 +3526,7 @@ 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 :)" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3500,7 +3537,7 @@ msgstr "" "un compte](%%%%action.register%%%%), puis poster quelque chose " "d’intéressant, qui serait ajouté à ses favoris :)" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "C’est un moyen de partager ce que vous aimez." @@ -3514,67 +3551,67 @@ msgstr "Groupe %s" msgid "%1$s group, page %2$d" msgstr "Groupe %1$s, page %2$d" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 msgid "Group profile" msgstr "Profil du groupe" -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "URL" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 msgid "Note" msgstr "Note" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "Alias" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "Actions du groupe" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Fil des avis du groupe %s (RSS 1.0)" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Fil des avis du groupe %s (RSS 2.0)" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Fil des avis du groupe %s (Atom)" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, php-format msgid "FOAF for %s group" msgstr "ami d’un ami pour le groupe %s" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 msgid "Members" msgstr "Membres" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(aucun)" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "Tous les membres" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 msgid "Created" msgstr "Créé" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3590,7 +3627,7 @@ msgstr "" "action.register%%%%) pour devenir membre de ce groupe et bien plus ! ([En " "lire plus](%%%%doc.help%%%%))" -#: actions/showgroup.php:454 +#: actions/showgroup.php:462 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3603,7 +3640,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:482 +#: actions/showgroup.php:490 msgid "Admins" msgstr "Administrateurs" @@ -3984,17 +4021,17 @@ msgstr "Impossible d’enregistrer l’abonnement." #: actions/subscribe.php:77 msgid "This action only accepts POST requests." -msgstr "" +msgstr "Cette action n'accepte que les requêtes de type POST." #: actions/subscribe.php:107 -#, fuzzy msgid "No such profile." -msgstr "Fichier non trouvé." +msgstr "Profil non-trouvé." #: actions/subscribe.php:117 -#, fuzzy msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." -msgstr "Vous n’êtes pas abonné(e) à ce profil." +msgstr "" +"Vous ne pouvez pas vous abonner à un profil OMB 0.1 distant par cette " +"action." #: actions/subscribe.php:145 msgid "Subscribed" @@ -4089,22 +4126,22 @@ msgstr "Jabber" msgid "SMS" msgstr "SMS" -#: actions/tag.php:68 +#: actions/tag.php:69 #, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "Avis marqués avec %1$s, page %2$d" -#: actions/tag.php:86 +#: actions/tag.php:87 #, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "Flux des avis pour la marque %s (RSS 1.0)" -#: actions/tag.php:92 +#: actions/tag.php:93 #, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "Flux des avis pour la marque %s (RSS 2.0)" -#: actions/tag.php:98 +#: actions/tag.php:99 #, php-format msgid "Notice feed for tag %s (Atom)" msgstr "Flux des avis pour la marque %s (Atom)" @@ -4159,7 +4196,7 @@ msgstr "" msgid "No such tag." msgstr "Cette marque n’existe pas." -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "Méthode API en construction." @@ -4191,71 +4228,73 @@ msgstr "" "La licence du flux auquel vous êtes abonné(e), « %1$s », n’est pas compatible " "avec la licence du site « %2$s »." -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +#, fuzzy +msgctxt "TITLE" msgid "User" msgstr "Utilisateur" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "Paramètres des utilisateurs pour ce site StatusNet." -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "Limite de bio invalide : doit être numérique." -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "Texte de bienvenue invalide. La taille maximale est de 255 caractères." -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "Abonnement par défaut invalide : « %1$s » n’est pas un utilisateur." -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "Profil" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "Limite de bio" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "Longueur maximale de la bio d’un profil en caractères." -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 msgid "New users" msgstr "Nouveaux utilisateurs" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "Accueil des nouveaux utilisateurs" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "" "Texte de bienvenue pour les nouveaux utilisateurs (maximum 255 caractères)." -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 msgid "Default subscription" msgstr "Abonnements par défaut" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 msgid "Automatically subscribe new users to this user." msgstr "Abonner automatiquement les nouveaux utilisateurs à cet utilisateur." -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 msgid "Invitations" msgstr "Invitations" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 msgid "Invitations enabled" msgstr "Invitations activées" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "" "S’il faut autoriser les utilisateurs à inviter de nouveaux utilisateurs." @@ -4455,7 +4494,7 @@ msgstr "" msgid "Plugins" msgstr "Extensions" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 msgid "Version" msgstr "Version" @@ -4494,6 +4533,10 @@ msgstr "N’appartient pas au groupe." msgid "Group leave failed." msgstr "La désinscription du groupe a échoué." +#: classes/Local_group.php:41 +msgid "Could not update local group." +msgstr "Impossible de mettre à jour le groupe local." + #: classes/Login_token.php:76 #, php-format msgid "Could not create login token for %s" @@ -4511,27 +4554,27 @@ msgstr "Impossible d’insérer le message." msgid "Could not update message with new URI." msgstr "Impossible de mettre à jour le message avec un nouvel URI." -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "Erreur de base de donnée en insérant la marque (hashtag) : %s" -#: classes/Notice.php:222 +#: classes/Notice.php:239 msgid "Problem saving notice. Too long." msgstr "Problème lors de l’enregistrement de l’avis ; trop long." -#: classes/Notice.php:226 +#: classes/Notice.php:243 msgid "Problem saving notice. Unknown user." msgstr "Erreur lors de l’enregistrement de l’avis. Utilisateur inconnu." -#: classes/Notice.php:231 +#: classes/Notice.php:248 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:237 +#: classes/Notice.php:254 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4539,19 +4582,19 @@ msgstr "" "Trop de messages en double trop vite ! Prenez une pause et publiez à nouveau " "dans quelques minutes." -#: classes/Notice.php:243 +#: classes/Notice.php:260 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:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "Problème lors de l’enregistrement de l’avis." -#: classes/Notice.php:882 +#: classes/Notice.php:911 msgid "Problem saving group inbox." msgstr "Problème lors de l’enregistrement de la boîte de réception du groupe." -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4580,19 +4623,28 @@ msgstr "Impossible de supprimer l’abonnement à soi-même." msgid "Couldn't delete subscription." msgstr "Impossible de cesser l’abonnement" -#: classes/User.php:372 +#: classes/User.php:373 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Bienvenue à %1$s, @%2$s !" -#: classes/User_group.php:423 +#: classes/User_group.php:462 msgid "Could not create group." msgstr "Impossible de créer le groupe." -#: classes/User_group.php:452 +#: classes/User_group.php:471 +#, fuzzy +msgid "Could not set group URI." +msgstr "Impossible de définir l'URI du groupe." + +#: classes/User_group.php:492 msgid "Could not set group membership." msgstr "Impossible d’établir l’inscription au groupe." +#: classes/User_group.php:506 +msgid "Could not save local group info." +msgstr "Impossible d’enregistrer les informations du groupe local." + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "Modifier vos paramètres de profil" @@ -4634,120 +4686,190 @@ msgstr "Page sans nom" msgid "Primary site navigation" msgstr "Navigation primaire du site" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "Accueil" - -#: lib/action.php:439 +#, fuzzy +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Profil personnel et flux des amis" -#: lib/action.php:441 +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "Personnel" + +#. TRANS: Tooltip for main menu option "Account" +#: lib/action.php:444 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Modifier votre courriel, avatar, mot de passe, profil" -#: lib/action.php:444 -msgid "Connect" -msgstr "Connecter" +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "Compte" -#: lib/action.php:444 +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 +#, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Se connecter aux services" -#: lib/action.php:448 +#: lib/action.php:453 +#, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "Connecter" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Modifier la configuration du site" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" -msgstr "Inviter" +#: lib/action.php:460 +#, fuzzy +msgctxt "MENU" +msgid "Admin" +msgstr "Administrer" -#: lib/action.php:453 lib/subgroupnav.php:106 -#, php-format +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 +#, fuzzy, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Inviter des amis et collègues à vous rejoindre dans %s" -#: lib/action.php:458 -msgid "Logout" -msgstr "Fermeture de session" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "Inviter" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +#, fuzzy +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Fermer la session" -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "Fermeture de session" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 +#, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "Créer un compte" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "Créer un compte" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +#, fuzzy +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Ouvrir une session" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "Aide" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "Ouvrir une session" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 +#, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "À l’aide !" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "Rechercher" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "Aide" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +#, fuzzy +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Rechercher des personnes ou du texte" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "Rechercher" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 msgid "Site notice" msgstr "Notice du site" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "Vues locales" -#: lib/action.php:625 +#: lib/action.php:656 msgid "Page notice" msgstr "Avis de la page" -#: lib/action.php:727 +#: lib/action.php:758 msgid "Secondary site navigation" msgstr "Navigation secondaire du site" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "Aide" + +#: lib/action.php:765 msgid "About" msgstr "À propos" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "FAQ" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "CGU" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "Confidentialité" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "Source" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "Contact" -#: lib/action.php:751 +#: lib/action.php:782 msgid "Badge" msgstr "Insigne" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "Licence du logiciel StatusNet" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4756,12 +4878,12 @@ msgstr "" "**%%site.name%%** est un service de microblogging qui vous est proposé par " "[%%site.broughtby%%](%%site.broughtbyurl%%)." -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** est un service de micro-blogging." -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4772,111 +4894,164 @@ msgstr "" "version %s, disponible sous la licence [GNU Affero General Public License] " "(http://www.fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:801 +#: lib/action.php:832 msgid "Site content license" msgstr "Licence du contenu du site" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Le contenu et les données de %1$s sont privés et confidentiels." -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" "Le contenu et les données sont sous le droit d’auteur de %1$s. Tous droits " "réservés." -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Le contenu et les données sont sous le droit d’auteur du contributeur. Tous " "droits réservés." -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "Tous " -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "licence." -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "Pagination" -#: lib/action.php:1141 +#: lib/action.php:1172 msgid "After" msgstr "Après" -#: lib/action.php:1149 +#: lib/action.php:1180 msgid "Before" msgstr "Avant" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." -msgstr "" +msgstr "Impossible de gérer le contenu distant pour le moment." -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." -msgstr "" +msgstr "Impossible de gérer le contenu XML embarqué pour le moment." -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." -msgstr "" +msgstr "Impossible de gérer le contenu en Base64 embarqué pour le moment." -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." msgstr "Vous ne pouvez pas faire de modifications sur ce site." -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 msgid "Changes to that panel are not allowed." msgstr "La modification de ce panneau n’est pas autorisée." -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 msgid "showForm() not implemented." msgstr "showForm() n’a pas été implémentée." -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 msgid "saveSettings() not implemented." msgstr "saveSettings() n’a pas été implémentée." -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 msgid "Unable to delete design setting." msgstr "Impossible de supprimer les paramètres de conception." -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 msgid "Basic site configuration" msgstr "Configuration basique du site" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "Site" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 msgid "Design configuration" msgstr "Configuration de la conception" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "Conception" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 msgid "User configuration" msgstr "Configuration utilisateur" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +#, fuzzy +msgctxt "MENU" +msgid "User" +msgstr "Utilisateur" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 msgid "Access configuration" msgstr "Configuration d’accès" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "Accès" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 msgid "Paths configuration" msgstr "Configuration des chemins" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +#, fuzzy +msgctxt "MENU" +msgid "Paths" +msgstr "Chemins" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 msgid "Sessions configuration" msgstr "Configuration des sessions" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "Sessions" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" "La ressource de l’API a besoin de l’accès en lecture et en écriture, mais " "vous n’y avez accès qu’en lecture." -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4970,11 +5145,11 @@ msgstr "Avis sur lesquels cette pièce jointe apparaît." msgid "Tags for this attachment" msgstr "Marques de cette pièce jointe" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 msgid "Password changing failed" msgstr "La modification du mot de passe a échoué" -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 msgid "Password changing is not allowed" msgstr "La modification du mot de passe n’est pas autorisée" @@ -5179,7 +5354,7 @@ msgstr "" "pendant 2 minutes : %s" #: lib/command.php:692 -#, fuzzy, php-format +#, php-format msgid "Unsubscribed %s" msgstr "Désabonné de %s" @@ -5214,7 +5389,6 @@ msgstr[0] "Vous êtes membre de ce groupe :" msgstr[1] "Vous êtes membre de ces groupes :" #: lib/command.php:769 -#, fuzzy msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5267,6 +5441,7 @@ msgstr "" "d - message direct à l’utilisateur\n" "get - obtenir le dernier avis de l’utilisateur\n" "whois - obtenir le profil de l’utilisateur\n" +"lose - forcer un utilisateur à arrêter de vous suivre\n" "fav - ajouter de dernier avis de l’utilisateur comme favori\n" "fav # - ajouter l’avis correspondant à l’identifiant comme " "favori\n" @@ -5294,20 +5469,20 @@ msgstr "" "tracks - pas encore implémenté.\n" "tracking - pas encore implémenté.\n" -#: lib/common.php:136 +#: lib/common.php:148 msgid "No configuration file found. " msgstr "Aucun fichier de configuration n’a été trouvé. " -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "" "J’ai cherché des fichiers de configuration dans les emplacements suivants : " -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "Vous pouvez essayer de lancer l’installeur pour régler ce problème." -#: lib/common.php:140 +#: lib/common.php:152 msgid "Go to the installer." msgstr "Aller au programme d’installation" @@ -5500,23 +5675,23 @@ msgstr "Erreur système lors du transfert du fichier." msgid "Not an image or corrupt file." msgstr "Ceci n’est pas une image, ou c’est un fichier corrompu." -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "Format de fichier d’image non supporté." -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Fichier perdu." -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "Type de fichier inconnu" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "Mo" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "Ko" @@ -5899,6 +6074,12 @@ msgstr "À" msgid "Available characters" msgstr "Caractères restants" +#: lib/messageform.php:178 lib/noticeform.php:236 +#, fuzzy +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "Envoyer" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Envoyer un avis" @@ -5957,23 +6138,23 @@ msgstr "O" msgid "at" msgstr "chez" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 msgid "in context" msgstr "dans le contexte" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 msgid "Repeated by" msgstr "Repris par" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 msgid "Reply to this notice" msgstr "Répondre à cet avis" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 msgid "Reply" msgstr "Répondre" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 msgid "Notice repeated" msgstr "Avis repris" @@ -6021,6 +6202,10 @@ msgstr "Réponses" msgid "Favorites" msgstr "Favoris" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "Utilisateur" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Boîte de réception" @@ -6110,7 +6295,7 @@ msgstr "Reprendre cet avis ?" msgid "Repeat this notice" msgstr "Reprendre cet avis" -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "Aucun utilisateur unique défini pour le mode mono-utilisateur." @@ -6130,6 +6315,10 @@ msgstr "Rechercher sur le site" msgid "Keyword(s)" msgstr "Mot(s) clef(s)" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "Rechercher" + #: lib/searchaction.php:162 msgid "Search help" msgstr "Aide sur la recherche" @@ -6181,6 +6370,15 @@ msgstr "Abonnés de %s" msgid "Groups %s is a member of" msgstr "Groupes de %s" +#: lib/subgroupnav.php:105 +msgid "Invite" +msgstr "Inviter" + +#: lib/subgroupnav.php:106 +#, php-format +msgid "Invite friends and colleagues to join you on %s" +msgstr "Inviter des amis et collègues à vous rejoindre dans %s" + #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 msgid "People Tagcloud as self-tagged" @@ -6251,47 +6449,47 @@ msgstr "Message" msgid "Moderate" msgstr "Modérer" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "il y a quelques secondes" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "il y a 1 minute" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "il y a %d minutes" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "il y a 1 heure" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "il y a %d heures" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "il y a 1 jour" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "il y a %d jours" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "il y a 1 mois" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "il y a %d mois" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "il y a environ 1 an" diff --git a/locale/ga/LC_MESSAGES/statusnet.po b/locale/ga/LC_MESSAGES/statusnet.po index b60553d44..0b62fe337 100644 --- a/locale/ga/LC_MESSAGES/statusnet.po +++ b/locale/ga/LC_MESSAGES/statusnet.po @@ -8,84 +8,90 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:50:51+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:02:51+0000\n" "Language-Team: Irish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ga\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : " "4;\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 #, fuzzy msgid "Access" msgstr "Aceptar" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 #, fuzzy msgid "Site access settings" msgstr "Configuracións de Twitter" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 #, fuzzy msgid "Registration" msgstr "Rexistrar" -#: actions/accessadminpanel.php:161 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 +msgid "Prohibit anonymous users (not logged in) from viewing site?" +msgstr "" + +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. +#: actions/accessadminpanel.php:167 #, fuzzy +msgctxt "LABEL" msgid "Private" msgstr "Privacidade" -#: actions/accessadminpanel.php:163 -msgid "Prohibit anonymous users (not logged in) from viewing site?" +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 +msgid "Make registration invitation only." msgstr "" -#: actions/accessadminpanel.php:167 +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 #, fuzzy msgid "Invite only" msgstr "Invitar" -#: actions/accessadminpanel.php:169 -msgid "Make registration invitation only." +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 +msgid "Disable new registrations." msgstr "" -#: actions/accessadminpanel.php:173 +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 #, fuzzy msgid "Closed" msgstr "Bloquear" -#: actions/accessadminpanel.php:175 -msgid "Disable new registrations." -msgstr "" - -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "Gardar" - -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 #, fuzzy msgid "Save access settings" msgstr "Configuracións de Twitter" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "Gardar" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 #, fuzzy msgid "No such page" msgstr "Non existe a etiqueta." -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -99,72 +105,82 @@ msgstr "Non existe a etiqueta." #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "Ningún usuario." -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, fuzzy, php-format msgid "%1$s and friends, page %2$d" msgstr "%s e amigos" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s e amigos" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, fuzzy, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Fonte para os amigos de %s" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, fuzzy, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Fonte para os amigos de %s" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, fuzzy, php-format msgid "Feed for friends of %s (Atom)" msgstr "Fonte para os amigos de %s" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 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." msgstr "" -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 #, fuzzy msgid "You and friends" msgstr "%s e amigos" @@ -183,20 +199,20 @@ msgstr "Actualizacións dende %1$s e amigos en %2$s!" #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "Método da API non atopado" @@ -230,8 +246,9 @@ msgstr "Non se puido actualizar o usuario." #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "O usuario non ten perfil." @@ -256,7 +273,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 #, fuzzy @@ -379,68 +396,68 @@ msgstr "Non se pudo recuperar a liña de tempo publica." msgid "Could not find target user." msgstr "Non se puido atopar ningún estado" -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "O alcume debe ter só letras minúsculas e números, e sen espazos." -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "O alcume xa está sendo empregado por outro usuario. Tenta con outro." -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Non é un alcume válido." -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "A páxina persoal semella que non é unha URL válida." -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "O nome completo é demasiado longo (max 255 car)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "O teu Bio é demasiado longo (max 140 car.)." -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "A localización é demasiado longa (max 255 car.)." -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "" -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, fuzzy, php-format msgid "Invalid alias: \"%s\"" msgstr "Etiqueta inválida: '%s'" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, fuzzy, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "O alcume xa está sendo empregado por outro usuario. Tenta con outro." -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "" @@ -452,15 +469,15 @@ msgstr "" msgid "Group not found!" msgstr "Método da API non atopado" -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 msgid "You are already a member of that group." msgstr "Xa estas suscrito a estes usuarios:" -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "" -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, fuzzy, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Non podes seguir a este usuario: o Usuario non se atopa." @@ -469,7 +486,7 @@ msgstr "Non podes seguir a este usuario: o Usuario non se atopa." msgid "You are not a member of this group." msgstr "Non estás suscrito a ese perfil" -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, fuzzy, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Non podes seguir a este usuario: o Usuario non se atopa." @@ -501,7 +518,7 @@ msgstr "Tamaño inválido." #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -545,7 +562,7 @@ msgstr "" #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -568,14 +585,14 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 #, fuzzy msgid "Account" msgstr "Sobre" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -663,12 +680,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%s updates favorited by %s / %s." #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "Liña de tempo de %s" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -704,7 +721,7 @@ msgstr "Replies to %s" msgid "Repeats of %s" msgstr "Replies to %s" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Chíos tagueados con %s" @@ -726,8 +743,7 @@ msgstr "Ningún documento." #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "Sen alcume." @@ -739,7 +755,7 @@ msgstr "Sen tamaño." msgid "Invalid size." msgstr "Tamaño inválido." -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Avatar" @@ -756,32 +772,32 @@ msgid "User without matching profile" msgstr "Usuario sen un perfil que coincida." #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 #, fuzzy msgid "Avatar settings" msgstr "Configuracións de Twitter" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 #, fuzzy msgid "Delete" msgstr "eliminar" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "Subir" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "" @@ -789,7 +805,7 @@ msgstr "" msgid "Pick a square area of the image to be your avatar" msgstr "" -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" @@ -826,23 +842,23 @@ msgstr "" "ser notificado de ningunha resposta-@ del." #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "No" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 #, fuzzy msgid "Do not block this user" msgstr "Bloquear usuario" #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Si" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 #, fuzzy msgid "Block this user" msgstr "Bloquear usuario" @@ -851,41 +867,45 @@ msgstr "Bloquear usuario" msgid "Failed to save block information." msgstr "Erro ao gardar información de bloqueo." -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 #, fuzzy msgid "No such group." msgstr "Non existe a etiqueta." -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, php-format msgid "%s blocked profiles" msgstr "" -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, fuzzy, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%s e amigos" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." msgstr "" -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 #, fuzzy msgid "Unblock user from group" msgstr "Desbloqueo de usuario fallido." -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "Desbloquear" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 #, fuzzy msgid "Unblock this user" msgstr "Bloquear usuario" @@ -967,7 +987,7 @@ msgstr "Non estás suscrito a ese perfil" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 #, fuzzy msgid "There was a problem with your session token." msgstr "Houbo un problema co teu token de sesión. Tentao de novo, anda..." @@ -994,12 +1014,13 @@ msgstr "Non se pode eliminar este chíos." msgid "Delete this application" msgstr "Eliminar chío" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Non está logueado." @@ -1030,7 +1051,7 @@ msgstr "Estas seguro que queres eliminar este chío?" msgid "Do not delete this notice" msgstr "Non se pode eliminar este chíos." -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 #, fuzzy msgid "Delete this notice" msgstr "Eliminar chío" @@ -1050,19 +1071,19 @@ msgstr "Non deberías eliminar o estado de outro usuario" msgid "Delete user" msgstr "eliminar" -#: actions/deleteuser.php:135 +#: 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 "" -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 #, fuzzy msgid "Delete this user" msgstr "Eliminar chío" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "" @@ -1172,6 +1193,17 @@ msgstr "" msgid "Reset back to default" msgstr "" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "Gardar" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "" @@ -1277,32 +1309,32 @@ msgstr "" msgid "You must be logged in to create a group." msgstr "Debes estar logueado para invitar a outros usuarios a empregar %s" -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: actions/editgroup.php:107 actions/editgroup.php:172 +#: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 #, fuzzy msgid "You must be an admin to edit the group." msgstr "Debes estar logueado para invitar a outros usuarios a empregar %s" -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "" -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, php-format msgid "description is too long (max %d chars)." msgstr "O teu Bio é demasiado longo (max 140 car.)." -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 #, fuzzy msgid "Could not update group." msgstr "Non se puido actualizar o usuario." -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 #, fuzzy msgid "Could not create aliases." msgstr "Non se puido crear o favorito." -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 #, fuzzy msgid "Options saved." msgstr "Configuracións gardadas." @@ -1653,7 +1685,7 @@ msgstr "O usuario bloqueoute." msgid "User is not a member of group." msgstr "%1s non é unha orixe fiable." -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 #, fuzzy msgid "Block user from group" msgstr "Bloquear usuario" @@ -1691,91 +1723,91 @@ msgstr "Sen id." msgid "You must be logged in to edit a group." msgstr "Debes estar logueado para invitar a outros usuarios a empregar %s" -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 msgid "Group design" msgstr "" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." msgstr "" -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 #, fuzzy msgid "Couldn't update your design." msgstr "Non se puido actualizar o usuario." -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 #, fuzzy msgid "Design preferences saved." msgstr "Preferencias gardadas." -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "" -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 #, fuzzy msgid "User without matching profile." msgstr "Usuario sen un perfil que coincida." -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "" -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 #, fuzzy msgid "Logo updated." msgstr "Avatar actualizado." -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 #, fuzzy msgid "Failed updating logo." msgstr "Acounteceu un fallo ó actualizar o avatar." -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, php-format msgid "%1$s group members, page %2$d" msgstr "" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "" -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "Bloquear" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 msgid "Make user an admin of the group" msgstr "" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make Admin" msgstr "" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, fuzzy, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Actualizacións dende %1$s en %2$s!" @@ -2034,16 +2066,19 @@ msgstr "Mensaxe persoal" msgid "Optionally add a personal message to the invitation." msgstr "Opcionalmente engadir unha mensaxe persoal á invitación." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" msgstr "Enviar" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s invitoute a unirse a él en %2$s." -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2103,7 +2138,12 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Debes estar logueado para invitar a outros usuarios a empregar %s" -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "Sen alcume." + +#: actions/joingroup.php:141 #, fuzzy, php-format msgid "%1$s joined group %2$s" msgstr "%s / Favoritos dende %s" @@ -2113,12 +2153,12 @@ msgstr "%s / Favoritos dende %s" msgid "You must be logged in to leave a group." msgstr "Debes estar logueado para invitar a outros usuarios a empregar %s" -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 #, fuzzy msgid "You are not a member of that group." msgstr "Non estás suscrito a ese perfil" -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, fuzzy, php-format msgid "%1$s left group %2$s" msgstr "%s / Favoritos dende %s" @@ -2136,8 +2176,7 @@ msgstr "Usuario ou contrasinal incorrectos." msgid "Error setting user. You are probably not authorized." msgstr "Non está autorizado." -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "Inicio de sesión" @@ -2395,8 +2434,8 @@ msgstr "Conectar" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "Non é un formato de datos soportado." @@ -2544,7 +2583,7 @@ msgstr "Non se pode gardar a contrasinal." msgid "Password saved." msgstr "Contrasinal gardada." -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "" @@ -2577,7 +2616,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 #, fuzzy msgid "Site" msgstr "Invitar" @@ -2763,7 +2801,7 @@ msgstr "" "De 1 a 64 letras minúsculas ou númeors, nin espazos nin signos de puntuación" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "Nome completo" @@ -2792,7 +2830,7 @@ msgid "Bio" msgstr "Bio" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2877,7 +2915,8 @@ msgstr "Non se puido gardar o perfil." msgid "Couldn't save tags." msgstr "Non se puideron gardar as etiquetas." -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "Configuracións gardadas." @@ -2890,48 +2929,48 @@ msgstr "" msgid "Could not retrieve public stream." msgstr "Non se pudo recuperar a liña de tempo publica." -#: actions/public.php:129 +#: actions/public.php:130 #, fuzzy, php-format msgid "Public timeline, page %d" msgstr "Liña de tempo pública" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "Liña de tempo pública" -#: actions/public.php:159 +#: actions/public.php:160 #, fuzzy msgid "Public Stream Feed (RSS 1.0)" msgstr "Sindicación do Fio Público" -#: actions/public.php:163 +#: actions/public.php:164 #, fuzzy msgid "Public Stream Feed (RSS 2.0)" msgstr "Sindicación do Fio Público" -#: actions/public.php:167 +#: actions/public.php:168 #, fuzzy msgid "Public Stream Feed (Atom)" msgstr "Sindicación do Fio Público" -#: actions/public.php:187 +#: 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:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2944,7 +2983,7 @@ msgstr "" "(http://status.net/). [Únete agora](%%action.register%%) para compartir " "chíos cos teus amigos, colegas e familia! ([Ler mais](%%doc.help%%))" -#: actions/public.php:246 +#: actions/public.php:247 #, fuzzy, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3121,8 +3160,7 @@ msgstr "Acounteceu un erro co código de confirmación." msgid "Registration successful" msgstr "Xa estas rexistrado!!" -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "Rexistrar" @@ -3318,7 +3356,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:656 +#: actions/repeat.php:114 lib/noticelist.php:674 #, fuzzy msgid "Repeated" msgstr "Crear" @@ -3328,47 +3366,47 @@ msgstr "Crear" msgid "Repeated!" msgstr "Crear" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "Replies to %s" -#: actions/replies.php:127 +#: actions/replies.php:128 #, fuzzy, php-format msgid "Replies to %1$s, page %2$d" msgstr "Mensaxe de %1$s en %2$s" -#: actions/replies.php:144 +#: actions/replies.php:145 #, fuzzy, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "Fonte de chíos para %s" -#: actions/replies.php:151 +#: actions/replies.php:152 #, fuzzy, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "Fonte de chíos para %s" -#: actions/replies.php:158 +#: actions/replies.php:159 #, fuzzy, php-format msgid "Replies feed for %s (Atom)" msgstr "Fonte de chíos para %s" -#: actions/replies.php:198 +#: actions/replies.php:199 #, 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 "" -#: actions/replies.php:203 +#: 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:205 +#: actions/replies.php:206 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3396,7 +3434,6 @@ msgid "User is already sandboxed." msgstr "O usuario bloqueoute." #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "" @@ -3421,7 +3458,7 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 #, fuzzy msgid "Save site settings" msgstr "Configuracións de Twitter" @@ -3457,7 +3494,7 @@ msgstr "Invitación(s) enviada(s)." msgid "Description" msgstr "Subscricións" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Estatísticas" @@ -3519,35 +3556,35 @@ msgstr "Chíos favoritos de %s" msgid "Could not retrieve favorite notices." msgstr "Non se pode " -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "Fonte para os amigos de %s" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "Fonte para os amigos de %s" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" msgstr "Fonte para os amigos de %s" -#: actions/showfavorites.php:205 +#: 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:207 +#: 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 :)" msgstr "" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3555,7 +3592,7 @@ msgid "" "would add to their favorites :)" msgstr "" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "" @@ -3569,73 +3606,73 @@ msgstr "" msgid "%1$s group, page %2$d" msgstr "Tódalas subscricións" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 #, fuzzy msgid "Group profile" msgstr "Non existe o perfil." -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 #, fuzzy msgid "Note" msgstr "Chíos" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 #, fuzzy msgid "Group actions" msgstr "Outras opcions" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Fonte de chíos para %s" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Fonte de chíos para %s" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "Fonte de chíos para %s" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, fuzzy, php-format msgid "FOAF for %s group" msgstr "Band. Saída para %s" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 #, fuzzy msgid "Members" msgstr "Membro dende" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 #, fuzzy msgid "(None)" msgstr "(nada)" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 #, fuzzy msgid "Created" msgstr "Crear" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3649,7 +3686,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:454 +#: actions/showgroup.php:462 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3662,7 +3699,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:482 +#: actions/showgroup.php:490 msgid "Admins" msgstr "" @@ -4137,22 +4174,22 @@ msgstr "Jabber." msgid "SMS" msgstr "SMS" -#: actions/tag.php:68 +#: actions/tag.php:69 #, fuzzy, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "Usuarios auto-etiquetados como %s - páxina %d" -#: actions/tag.php:86 +#: actions/tag.php:87 #, fuzzy, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "Fonte de chíos para %s" -#: actions/tag.php:92 +#: actions/tag.php:93 #, fuzzy, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "Fonte de chíos para %s" -#: actions/tag.php:98 +#: actions/tag.php:99 #, fuzzy, php-format msgid "Notice feed for tag %s (Atom)" msgstr "Fonte de chíos para %s" @@ -4211,7 +4248,7 @@ msgstr "" msgid "No such tag." msgstr "Non existe a etiqueta." -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "Método da API en contrución." @@ -4244,77 +4281,79 @@ msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +#, fuzzy +msgctxt "TITLE" msgid "User" msgstr "Usuario" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "" -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "" -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "" -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "Perfil" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "" -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 #, fuzzy msgid "New users" msgstr "Invitar a novos usuarios" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "" -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 #, fuzzy msgid "Default subscription" msgstr "Tódalas subscricións" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 #, fuzzy msgid "Automatically subscribe new users to this user." msgstr "" "Suscribirse automáticamente a calquera que se suscriba a min (o mellor para " "non humáns)" -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 #, fuzzy msgid "Invitations" msgstr "Invitación(s) enviada(s)." -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 #, fuzzy msgid "Invitations enabled" msgstr "Invitación(s) enviada(s)." -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "" @@ -4502,7 +4541,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 #, fuzzy msgid "Version" msgstr "Persoal" @@ -4543,6 +4582,11 @@ msgstr "Non se puido actualizar o usuario." msgid "Group leave failed." msgstr "Non existe o perfil." +#: classes/Local_group.php:41 +#, fuzzy +msgid "Could not update local group." +msgstr "Non se puido actualizar o usuario." + #: classes/Login_token.php:76 #, fuzzy, php-format msgid "Could not create login token for %s" @@ -4561,28 +4605,28 @@ msgstr "Non se pode inserir unha mensaxe." msgid "Could not update message with new URI." msgstr "Non se puido actualizar a mensaxe coa nova URI." -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "Erro ó inserir o hashtag na BD: %s" -#: classes/Notice.php:222 +#: classes/Notice.php:239 #, fuzzy msgid "Problem saving notice. Too long." msgstr "Aconteceu un erro ó gardar o chío." -#: classes/Notice.php:226 +#: classes/Notice.php:243 msgid "Problem saving notice. Unknown user." msgstr "Aconteceu un erro ó gardar o chío. Usuario descoñecido." -#: classes/Notice.php:231 +#: classes/Notice.php:248 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:237 +#: classes/Notice.php:254 #, fuzzy msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " @@ -4591,20 +4635,20 @@ msgstr "" "Demasiados chíos en pouco tempo; tomate un respiro e envíao de novo dentro " "duns minutos." -#: classes/Notice.php:243 +#: classes/Notice.php:260 msgid "You are banned from posting notices on this site." msgstr "Tes restrinxido o envio de chíos neste sitio." -#: classes/Notice.php:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "Aconteceu un erro ó gardar o chío." -#: classes/Notice.php:882 +#: classes/Notice.php:911 #, fuzzy msgid "Problem saving group inbox." msgstr "Aconteceu un erro ó gardar o chío." -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4636,21 +4680,31 @@ msgstr "Non se pode eliminar a subscrición." msgid "Couldn't delete subscription." msgstr "Non se pode eliminar a subscrición." -#: classes/User.php:372 +#: classes/User.php:373 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Mensaxe de %1$s en %2$s" -#: classes/User_group.php:423 +#: classes/User_group.php:462 #, fuzzy msgid "Could not create group." msgstr "Non se puido crear o favorito." -#: classes/User_group.php:452 +#: classes/User_group.php:471 +#, fuzzy +msgid "Could not set group URI." +msgstr "Non se pode gardar a subscrición." + +#: classes/User_group.php:492 #, fuzzy msgid "Could not set group membership." msgstr "Non se pode gardar a subscrición." +#: classes/User_group.php:506 +#, fuzzy +msgid "Could not save local group info." +msgstr "Non se pode gardar a subscrición." + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "Configuración de perfil" @@ -4694,130 +4748,190 @@ msgstr "" msgid "Primary site navigation" msgstr "" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "Persoal" - -#: lib/action.php:439 +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:441 +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "Persoal" + +#. TRANS: Tooltip for main menu option "Account" +#: lib/action.php:444 #, fuzzy +msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Cambiar contrasinal" -#: lib/action.php:444 -msgid "Connect" -msgstr "Conectar" +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "Sobre" -#: lib/action.php:444 +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 #, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Non se pode redireccionar ao servidor: %s" -#: lib/action.php:448 +#: lib/action.php:453 #, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "Conectar" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Navegación de subscricións" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" -msgstr "Invitar" +#: lib/action.php:460 +msgctxt "MENU" +msgid "Admin" +msgstr "" -#: lib/action.php:453 lib/subgroupnav.php:106 +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 #, fuzzy, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "" "Emprega este formulario para invitar ós teus amigos e colegas a empregar " "este servizo." -#: lib/action.php:458 -msgid "Logout" -msgstr "Sair" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "Invitar" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "" -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "Sair" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 #, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "Crear nova conta" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "Rexistrar" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "Axuda" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "Inicio de sesión" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 #, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "Axuda" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "Buscar" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "Axuda" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "Buscar" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 #, fuzzy msgid "Site notice" msgstr "Novo chío" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "" -#: lib/action.php:625 +#: lib/action.php:656 #, fuzzy msgid "Page notice" msgstr "Novo chío" -#: lib/action.php:727 +#: lib/action.php:758 #, fuzzy msgid "Secondary site navigation" msgstr "Navegación de subscricións" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "Axuda" + +#: lib/action.php:765 msgid "About" msgstr "Sobre" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "Preguntas frecuentes" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "Privacidade" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "Fonte" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "Contacto" -#: lib/action.php:751 +#: lib/action.php:782 msgid "Badge" msgstr "" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4826,12 +4940,12 @@ msgstr "" "**%%site.name%%** é un servizo de microbloguexo que che proporciona [%%site." "broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** é un servizo de microbloguexo." -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4842,120 +4956,172 @@ msgstr "" "%s, dispoñible baixo licenza [GNU Affero General Public License](http://www." "fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:801 +#: lib/action.php:832 #, fuzzy msgid "Site content license" msgstr "Atopar no contido dos chíos" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:827 +#: lib/action.php:858 #, fuzzy msgid "All " msgstr "Todos" -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "" -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "" -#: lib/action.php:1141 +#: lib/action.php:1172 #, fuzzy msgid "After" msgstr "« Despois" -#: lib/action.php:1149 +#: lib/action.php:1180 #, fuzzy msgid "Before" msgstr "Antes »" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 #, fuzzy msgid "You cannot make changes to this site." msgstr "Non podes enviar mensaxes a este usurio." -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 #, fuzzy msgid "Changes to that panel are not allowed." msgstr "Non se permite o rexistro neste intre." -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 #, fuzzy msgid "showForm() not implemented." msgstr "Comando non implementado." -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 #, fuzzy msgid "saveSettings() not implemented." msgstr "Comando non implementado." -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 #, fuzzy msgid "Unable to delete design setting." msgstr "Non se puideron gardar os teus axustes de Twitter!" -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 #, fuzzy msgid "Basic site configuration" msgstr "Confirmar correo electrónico" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "Invitar" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 #, fuzzy msgid "Design configuration" msgstr "Confirmación de SMS" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "Persoal" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 #, fuzzy msgid "User configuration" msgstr "Confirmación de SMS" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +#, fuzzy +msgctxt "MENU" +msgid "User" +msgstr "Usuario" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 #, fuzzy msgid "Access configuration" msgstr "Confirmación de SMS" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "Aceptar" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 #, fuzzy msgid "Paths configuration" msgstr "Confirmación de SMS" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +msgctxt "MENU" +msgid "Paths" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 #, fuzzy msgid "Sessions configuration" msgstr "Confirmación de SMS" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "Persoal" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5051,12 +5217,12 @@ msgstr "" msgid "Tags for this attachment" msgstr "" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 #, fuzzy msgid "Password changing failed" msgstr "Contrasinal gardada." -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 #, fuzzy msgid "Password changing is not allowed" msgstr "Contrasinal gardada." @@ -5377,20 +5543,20 @@ msgstr "" "tracks - non implementado por agora.\n" "tracking - non implementado por agora.\n" -#: lib/common.php:136 +#: lib/common.php:148 #, fuzzy msgid "No configuration file found. " msgstr "Sen código de confirmación." -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:152 msgid "Go to the installer." msgstr "" @@ -5587,25 +5753,25 @@ msgstr "Aconteceu un erro no sistema namentras se estaba cargando o ficheiro." msgid "Not an image or corrupt file." msgstr "Non é unha imaxe ou está corrupta." -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "Formato de ficheiro de imaxe non soportado." -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 #, fuzzy msgid "Lost our file." msgstr "Bloqueo de usuario fallido." -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 #, fuzzy msgid "Unknown file type" msgstr "tipo de ficheiro non soportado" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "" @@ -5968,6 +6134,12 @@ msgstr "A" msgid "Available characters" msgstr "6 ou máis caracteres" +#: lib/messageform.php:178 lib/noticeform.php:236 +#, fuzzy +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "Enviar" + #: lib/noticeform.php:160 #, fuzzy msgid "Send a notice" @@ -6028,27 +6200,27 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 #, fuzzy msgid "in context" msgstr "Sen contido!" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 #, fuzzy msgid "Repeated by" msgstr "Crear" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 #, fuzzy msgid "Reply to this notice" msgstr "Non se pode eliminar este chíos." -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 #, fuzzy msgid "Reply" msgstr "contestar" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 #, fuzzy msgid "Notice repeated" msgstr "Chío publicado" @@ -6101,6 +6273,10 @@ msgstr "Respostas" msgid "Favorites" msgstr "Favoritos" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "Usuario" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Band. Entrada" @@ -6198,7 +6374,7 @@ msgstr "Non se pode eliminar este chíos." msgid "Repeat this notice" msgstr "Non se pode eliminar este chíos." -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "" @@ -6221,6 +6397,10 @@ msgstr "Buscar" msgid "Keyword(s)" msgstr "" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "Buscar" + #: lib/searchaction.php:162 #, fuzzy msgid "Search help" @@ -6276,6 +6456,17 @@ msgstr "Suscrito a %s" msgid "Groups %s is a member of" msgstr "" +#: lib/subgroupnav.php:105 +msgid "Invite" +msgstr "Invitar" + +#: lib/subgroupnav.php:106 +#, fuzzy, php-format +msgid "Invite friends and colleagues to join you on %s" +msgstr "" +"Emprega este formulario para invitar ós teus amigos e colegas a empregar " +"este servizo." + #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 msgid "People Tagcloud as self-tagged" @@ -6355,47 +6546,47 @@ msgstr "Nova mensaxe" msgid "Moderate" msgstr "" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "fai uns segundos" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "fai un minuto" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "fai %d minutos" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "fai unha hora" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "fai %d horas" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "fai un día" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "fai %d días" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "fai un mes" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "fai %d meses" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "fai un ano" diff --git a/locale/he/LC_MESSAGES/statusnet.po b/locale/he/LC_MESSAGES/statusnet.po index 424917efb..89fd4dd7a 100644 --- a/locale/he/LC_MESSAGES/statusnet.po +++ b/locale/he/LC_MESSAGES/statusnet.po @@ -7,82 +7,88 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:50:54+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:02:54+0000\n" "Language-Team: Hebrew\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 #, fuzzy msgid "Access" msgstr "קבל" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 #, fuzzy msgid "Site access settings" msgstr "הגדרות" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 #, fuzzy msgid "Registration" msgstr "הירשם" -#: actions/accessadminpanel.php:161 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 +msgid "Prohibit anonymous users (not logged in) from viewing site?" +msgstr "" + +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. +#: actions/accessadminpanel.php:167 #, fuzzy +msgctxt "LABEL" msgid "Private" msgstr "פרטיות" -#: actions/accessadminpanel.php:163 -msgid "Prohibit anonymous users (not logged in) from viewing site?" +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 +msgid "Make registration invitation only." msgstr "" -#: actions/accessadminpanel.php:167 +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 msgid "Invite only" msgstr "" -#: actions/accessadminpanel.php:169 -msgid "Make registration invitation only." +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 +msgid "Disable new registrations." msgstr "" -#: actions/accessadminpanel.php:173 +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 #, fuzzy msgid "Closed" msgstr "אין משתמש כזה." -#: actions/accessadminpanel.php:175 -msgid "Disable new registrations." -msgstr "" - -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "שמור" - -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 #, fuzzy msgid "Save access settings" msgstr "הגדרות" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "שמור" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 #, fuzzy msgid "No such page" msgstr "אין הודעה כזו." -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -96,72 +102,82 @@ msgstr "אין הודעה כזו." #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "אין משתמש כזה." -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, fuzzy, php-format msgid "%1$s and friends, page %2$d" msgstr "%s וחברים" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s וחברים" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, fuzzy, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "הזנות החברים של %s" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, fuzzy, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "הזנות החברים של %s" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, fuzzy, php-format msgid "Feed for friends of %s (Atom)" msgstr "הזנות החברים של %s" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 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." msgstr "" -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 #, fuzzy msgid "You and friends" msgstr "%s וחברים" @@ -180,20 +196,20 @@ msgstr "" #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "קוד האישור לא נמצא." @@ -227,8 +243,9 @@ msgstr "עידכון המשתמש נכשל." #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "למשתמש אין פרופיל." @@ -253,7 +270,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: 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." @@ -370,68 +387,68 @@ msgstr "עידכון המשתמש נכשל." msgid "Could not find target user." msgstr "עידכון המשתמש נכשל." -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "כינוי יכול להכיל רק אותיות אנגליות קטנות ומספרים, וללא רווחים." -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "כינוי זה כבר תפוס. נסה כינוי אחר." -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "שם משתמש לא חוקי." -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "לאתר הבית יש כתובת לא חוקית." -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "השם המלא ארוך מידי (מותרות 255 אותיות בלבד)" -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, fuzzy, php-format msgid "Description is too long (max %d chars)." msgstr "הביוגרפיה ארוכה מידי (לכל היותר 140 אותיות)" -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "שם המיקום ארוך מידי (מותר עד 255 אותיות)." -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "" -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, fuzzy, php-format msgid "Invalid alias: \"%s\"" msgstr "כתובת אתר הבית '%s' אינה חוקית" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, fuzzy, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "כינוי זה כבר תפוס. נסה כינוי אחר." -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "" @@ -443,16 +460,16 @@ msgstr "" msgid "Group not found!" msgstr "לא נמצא" -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 #, fuzzy msgid "You are already a member of that group." msgstr "כבר נכנסת למערכת!" -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "" -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, fuzzy, php-format msgid "Could not join user %1$s to group %2$s." msgstr "נכשלה ההפניה לשרת: %s" @@ -462,7 +479,7 @@ msgstr "נכשלה ההפניה לשרת: %s" msgid "You are not a member of this group." msgstr "לא שלחנו אלינו את הפרופיל הזה" -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, fuzzy, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "נכשלה יצירת OpenID מתוך: %s" @@ -494,7 +511,7 @@ msgstr "גודל לא חוקי." #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -538,7 +555,7 @@ msgstr "" #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -561,14 +578,14 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 #, fuzzy msgid "Account" msgstr "אודות" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -654,12 +671,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "מיקרובלוג מאת %s" #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -695,7 +712,7 @@ msgstr "תגובת עבור %s" msgid "Repeats of %s" msgstr "תגובת עבור %s" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "" @@ -718,8 +735,7 @@ msgstr "אין מסמך כזה." #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "אין כינוי" @@ -731,7 +747,7 @@ msgstr "אין גודל." msgid "Invalid size." msgstr "גודל לא חוקי." -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "תמונה" @@ -748,32 +764,32 @@ msgid "User without matching profile" msgstr "" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 #, fuzzy msgid "Avatar settings" msgstr "הגדרות" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 #, fuzzy msgid "Delete" msgstr "מחק" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "ההעלה" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "" @@ -781,7 +797,7 @@ msgstr "" msgid "Pick a square area of the image to be your avatar" msgstr "" -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" @@ -816,23 +832,23 @@ msgid "" msgstr "" #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "לא" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 #, fuzzy msgid "Do not block this user" msgstr "אין משתמש כזה." #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "כן" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 #, fuzzy msgid "Block this user" msgstr "אין משתמש כזה." @@ -841,41 +857,45 @@ msgstr "אין משתמש כזה." msgid "Failed to save block information." msgstr "" -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 #, fuzzy msgid "No such group." msgstr "אין הודעה כזו." -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, fuzzy, php-format msgid "%s blocked profiles" msgstr "למשתמש אין פרופיל." -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, fuzzy, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%s וחברים" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." msgstr "" -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 #, fuzzy msgid "Unblock user from group" msgstr "אין משתמש כזה." -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 #, fuzzy msgid "Unblock this user" msgstr "אין משתמש כזה." @@ -956,7 +976,7 @@ msgstr "לא שלחנו אלינו את הפרופיל הזה" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "" @@ -982,12 +1002,13 @@ msgstr "אין הודעה כזו." msgid "Delete this application" msgstr "תאר את עצמך ואת נושאי העניין שלך ב-140 אותיות" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "לא מחובר." @@ -1015,7 +1036,7 @@ msgstr "" msgid "Do not delete this notice" msgstr "אין הודעה כזו." -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 msgid "Delete this notice" msgstr "" @@ -1034,19 +1055,19 @@ msgstr "ניתן להשתמש במנוי המקומי!" msgid "Delete user" msgstr "מחק" -#: actions/deleteuser.php:135 +#: 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 "" -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 #, fuzzy msgid "Delete this user" msgstr "אין משתמש כזה." #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "" @@ -1156,6 +1177,17 @@ msgstr "" msgid "Reset back to default" msgstr "" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "שמור" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "" @@ -1256,31 +1288,31 @@ msgstr "" msgid "You must be logged in to create a group." msgstr "" -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: 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 "" -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "" -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, fuzzy, php-format msgid "description is too long (max %d chars)." msgstr "הביוגרפיה ארוכה מידי (לכל היותר 140 אותיות)" -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 #, fuzzy msgid "Could not update group." msgstr "עידכון המשתמש נכשל." -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 #, fuzzy msgid "Could not create aliases." msgstr "שמירת מידע התמונה נכשל" -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 #, fuzzy msgid "Options saved." msgstr "ההגדרות נשמרו." @@ -1625,7 +1657,7 @@ msgstr "למשתמש אין פרופיל." msgid "User is not a member of group." msgstr "לא שלחנו אלינו את הפרופיל הזה" -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 #, fuzzy msgid "Block user from group" msgstr "אין משתמש כזה." @@ -1661,92 +1693,92 @@ msgstr "אין זיהוי." msgid "You must be logged in to edit a group." msgstr "" -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 #, fuzzy msgid "Group design" msgstr "קבוצות" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." msgstr "" -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 #, fuzzy msgid "Couldn't update your design." msgstr "עידכון המשתמש נכשל." -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 #, fuzzy msgid "Design preferences saved." msgstr "העדפות נשמרו." -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "" -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 #, fuzzy msgid "User without matching profile." msgstr "למשתמש אין פרופיל." -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "" -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 #, fuzzy msgid "Logo updated." msgstr "התמונה עודכנה." -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 #, fuzzy msgid "Failed updating logo." msgstr "עדכון התמונה נכשל." -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, php-format msgid "%1$s group members, page %2$d" msgstr "" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "" -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 msgid "Make user an admin of the group" msgstr "" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make Admin" msgstr "" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, fuzzy, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "מיקרובלוג מאת %s" @@ -2000,16 +2032,19 @@ msgstr "" msgid "Optionally add a personal message to the invitation." msgstr "" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" msgstr "שלח" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "" -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2044,7 +2079,12 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "" -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "אין כינוי" + +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "" @@ -2053,12 +2093,12 @@ msgstr "" msgid "You must be logged in to leave a group." msgstr "" -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 #, fuzzy msgid "You are not a member of that group." msgstr "לא שלחנו אלינו את הפרופיל הזה" -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, fuzzy, php-format msgid "%1$s left group %2$s" msgstr "הסטטוס של %1$s ב-%2$s " @@ -2076,8 +2116,7 @@ msgstr "שם משתמש או סיסמה לא נכונים." msgid "Error setting user. You are probably not authorized." msgstr "לא מורשה." -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "היכנס" @@ -2326,8 +2365,8 @@ msgstr "התחבר" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "" @@ -2475,7 +2514,7 @@ msgstr "לא ניתן לשמור את הסיסמה" msgid "Password saved." msgstr "הסיסמה נשמרה." -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "" @@ -2508,7 +2547,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 msgid "Site" msgstr "" @@ -2690,7 +2728,7 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1 עד 64 אותיות אנגליות קטנות או מספרים, ללא סימני פיסוק או רווחים." #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "שם מלא" @@ -2719,7 +2757,7 @@ msgid "Bio" msgstr "ביוגרפיה" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2801,7 +2839,8 @@ msgstr "שמירת הפרופיל נכשלה." msgid "Couldn't save tags." msgstr "שמירת הפרופיל נכשלה." -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "ההגדרות נשמרו." @@ -2814,48 +2853,48 @@ msgstr "" msgid "Could not retrieve public stream." msgstr "" -#: actions/public.php:129 +#: actions/public.php:130 #, fuzzy, php-format msgid "Public timeline, page %d" msgstr "קו זמן ציבורי" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "קו זמן ציבורי" -#: actions/public.php:159 +#: actions/public.php:160 #, fuzzy msgid "Public Stream Feed (RSS 1.0)" msgstr "הזנת זרם הציבורי" -#: actions/public.php:163 +#: actions/public.php:164 #, fuzzy msgid "Public Stream Feed (RSS 2.0)" msgstr "הזנת זרם הציבורי" -#: actions/public.php:167 +#: actions/public.php:168 #, fuzzy msgid "Public Stream Feed (Atom)" msgstr "הזנת זרם הציבורי" -#: actions/public.php:187 +#: 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:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2864,7 +2903,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:246 +#: actions/public.php:247 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3035,8 +3074,7 @@ msgstr "שגיאה באישור הקוד." msgid "Registration successful" msgstr "" -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "הירשם" @@ -3204,7 +3242,7 @@ msgstr "לא ניתן להירשם ללא הסכמה לרשיון" msgid "You already repeated that notice." msgstr "כבר נכנסת למערכת!" -#: actions/repeat.php:114 lib/noticelist.php:656 +#: actions/repeat.php:114 lib/noticelist.php:674 #, fuzzy msgid "Repeated" msgstr "צור" @@ -3214,47 +3252,47 @@ msgstr "צור" msgid "Repeated!" msgstr "צור" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "תגובת עבור %s" -#: actions/replies.php:127 +#: actions/replies.php:128 #, fuzzy, php-format msgid "Replies to %1$s, page %2$d" msgstr "תגובת עבור %s" -#: actions/replies.php:144 +#: actions/replies.php:145 #, fuzzy, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "הזנת הודעות של %s" -#: actions/replies.php:151 +#: actions/replies.php:152 #, fuzzy, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "הזנת הודעות של %s" -#: actions/replies.php:158 +#: actions/replies.php:159 #, fuzzy, php-format msgid "Replies feed for %s (Atom)" msgstr "הזנת הודעות של %s" -#: actions/replies.php:198 +#: actions/replies.php:199 #, 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 "" -#: actions/replies.php:203 +#: 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:205 +#: actions/replies.php:206 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3282,7 +3320,6 @@ msgid "User is already sandboxed." msgstr "למשתמש אין פרופיל." #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "" @@ -3307,7 +3344,7 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 #, fuzzy msgid "Save site settings" msgstr "הגדרות" @@ -3342,7 +3379,7 @@ msgstr "מיקום" msgid "Description" msgstr "הרשמות" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "סטטיסטיקה" @@ -3403,35 +3440,35 @@ msgstr "%s וחברים" msgid "Could not retrieve favorite notices." msgstr "" -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, fuzzy, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "הזנות החברים של %s" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, fuzzy, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "הזנות החברים של %s" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, fuzzy, php-format msgid "Feed for favorites of %s (Atom)" msgstr "הזנות החברים של %s" -#: actions/showfavorites.php:205 +#: 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:207 +#: 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 :)" msgstr "" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3439,7 +3476,7 @@ msgid "" "would add to their favorites :)" msgstr "" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "" @@ -3453,71 +3490,71 @@ msgstr "" msgid "%1$s group, page %2$d" msgstr "כל המנויים" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 #, fuzzy msgid "Group profile" msgstr "אין הודעה כזו." -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 #, fuzzy msgid "Note" msgstr "הודעות" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "הזנת הודעות של %s" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "הזנת הודעות של %s" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "הזנת הודעות של %s" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, fuzzy, php-format msgid "FOAF for %s group" msgstr "הזנת הודעות של %s" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 #, fuzzy msgid "Members" msgstr "חבר מאז" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 #, fuzzy msgid "Created" msgstr "צור" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3527,7 +3564,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:454 +#: actions/showgroup.php:462 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3536,7 +3573,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:482 +#: actions/showgroup.php:490 msgid "Admins" msgstr "" @@ -3995,22 +4032,22 @@ msgstr "אין זיהוי Jabber כזה." msgid "SMS" msgstr "סמס" -#: actions/tag.php:68 +#: actions/tag.php:69 #, fuzzy, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "מיקרובלוג מאת %s" -#: actions/tag.php:86 +#: actions/tag.php:87 #, fuzzy, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "הזנת הודעות של %s" -#: actions/tag.php:92 +#: actions/tag.php:93 #, fuzzy, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "הזנת הודעות של %s" -#: actions/tag.php:98 +#: actions/tag.php:99 #, fuzzy, php-format msgid "Notice feed for tag %s (Atom)" msgstr "הזנת הודעות של %s" @@ -4064,7 +4101,7 @@ msgstr "" msgid "No such tag." msgstr "אין הודעה כזו." -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "" @@ -4099,74 +4136,76 @@ msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +#, fuzzy +msgctxt "TITLE" msgid "User" msgstr "מתשמש" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "" -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "" -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "" -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "פרופיל" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "" -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 #, fuzzy msgid "New users" msgstr "מחק" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "" -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 #, fuzzy msgid "Default subscription" msgstr "כל המנויים" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 #, fuzzy msgid "Automatically subscribe new users to this user." msgstr "ההרשמה אושרה" -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 #, fuzzy msgid "Invitations" msgstr "מיקום" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 msgid "Invitations enabled" msgstr "" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "" @@ -4351,7 +4390,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 #, fuzzy msgid "Version" msgstr "אישי" @@ -4392,6 +4431,11 @@ msgstr "עידכון המשתמש נכשל." msgid "Group leave failed." msgstr "אין הודעה כזו." +#: classes/Local_group.php:41 +#, fuzzy +msgid "Could not update local group." +msgstr "עידכון המשתמש נכשל." + #: classes/Login_token.php:76 #, fuzzy, php-format msgid "Could not create login token for %s" @@ -4409,46 +4453,46 @@ msgstr "" msgid "Could not update message with new URI." msgstr "" -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "" -#: classes/Notice.php:222 +#: classes/Notice.php:239 #, fuzzy msgid "Problem saving notice. Too long." msgstr "בעיה בשמירת ההודעה." -#: classes/Notice.php:226 +#: classes/Notice.php:243 #, fuzzy msgid "Problem saving notice. Unknown user." msgstr "בעיה בשמירת ההודעה." -#: classes/Notice.php:231 +#: classes/Notice.php:248 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:237 +#: classes/Notice.php:254 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:243 +#: classes/Notice.php:260 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "בעיה בשמירת ההודעה." -#: classes/Notice.php:882 +#: classes/Notice.php:911 #, fuzzy msgid "Problem saving group inbox." msgstr "בעיה בשמירת ההודעה." -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4480,21 +4524,31 @@ msgstr "מחיקת המנוי לא הצליחה." msgid "Couldn't delete subscription." msgstr "מחיקת המנוי לא הצליחה." -#: classes/User.php:372 +#: classes/User.php:373 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:423 +#: classes/User_group.php:462 #, fuzzy msgid "Could not create group." msgstr "שמירת מידע התמונה נכשל" -#: classes/User_group.php:452 +#: classes/User_group.php:471 +#, fuzzy +msgid "Could not set group URI." +msgstr "יצירת המנוי נכשלה." + +#: classes/User_group.php:492 #, fuzzy msgid "Could not set group membership." msgstr "יצירת המנוי נכשלה." +#: classes/User_group.php:506 +#, fuzzy +msgid "Could not save local group info." +msgstr "יצירת המנוי נכשלה." + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "" @@ -4538,127 +4592,188 @@ msgstr "" msgid "Primary site navigation" msgstr "" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "בית" - -#: lib/action.php:439 +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:441 -msgid "Change your email, avatar, password, profile" -msgstr "" +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "אישי" +#. TRANS: Tooltip for main menu option "Account" #: lib/action.php:444 -msgid "Connect" -msgstr "התחבר" +#, fuzzy +msgctxt "TOOLTIP" +msgid "Change your email, avatar, password, profile" +msgstr "שנה סיסמה" -#: lib/action.php:444 +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "אודות" + +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 #, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" msgstr "נכשלה ההפניה לשרת: %s" -#: lib/action.php:448 +#: lib/action.php:453 +#, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "התחבר" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 #, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "הרשמות" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" +#: lib/action.php:460 +msgctxt "MENU" +msgid "Admin" msgstr "" -#: lib/action.php:453 lib/subgroupnav.php:106 +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 #, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "" -#: lib/action.php:458 -msgid "Logout" -msgstr "צא" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "גודל לא חוקי." -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "" -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "צא" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 #, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "צור חשבון חדש" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "הירשם" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "עזרה" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "היכנס" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 #, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "עזרה" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "חיפוש" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "עזרה" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "חיפוש" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 #, fuzzy msgid "Site notice" msgstr "הודעה חדשה" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "" -#: lib/action.php:625 +#: lib/action.php:656 #, fuzzy msgid "Page notice" msgstr "הודעה חדשה" -#: lib/action.php:727 +#: lib/action.php:758 #, fuzzy msgid "Secondary site navigation" msgstr "הרשמות" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "עזרה" + +#: lib/action.php:765 msgid "About" msgstr "אודות" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "רשימת שאלות נפוצות" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "פרטיות" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "מקור" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "צור קשר" -#: lib/action.php:751 +#: lib/action.php:782 msgid "Badge" msgstr "" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4667,12 +4782,12 @@ msgstr "" "**%%site.name%%** הוא שרות ביקרובלוג הניתן על ידי [%%site.broughtby%%](%%" "site.broughtbyurl%%)." -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** הוא שרות ביקרובלוג." -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4683,113 +4798,165 @@ msgstr "" "s, המופצת תחת רשיון [GNU Affero General Public License](http://www.fsf.org/" "licensing/licenses/agpl-3.0.html)" -#: lib/action.php:801 +#: lib/action.php:832 #, fuzzy msgid "Site content license" msgstr "הודעה חדשה" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "" -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "" -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "" -#: lib/action.php:1141 +#: lib/action.php:1172 #, fuzzy msgid "After" msgstr "<< אחרי" -#: lib/action.php:1149 +#: lib/action.php:1180 #, fuzzy msgid "Before" msgstr "לפני >>" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." msgstr "" -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 msgid "Changes to that panel are not allowed." msgstr "" -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 msgid "showForm() not implemented." msgstr "" -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 msgid "saveSettings() not implemented." msgstr "" -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 msgid "Unable to delete design setting." msgstr "" -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 #, fuzzy msgid "Basic site configuration" msgstr "הרשמות" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "הודעה חדשה" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 msgid "Design configuration" msgstr "" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "אישי" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 #, fuzzy msgid "User configuration" msgstr "הרשמות" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +#, fuzzy +msgctxt "MENU" +msgid "User" +msgstr "מתשמש" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 #, fuzzy msgid "Access configuration" msgstr "הרשמות" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "קבל" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 #, fuzzy msgid "Paths configuration" msgstr "הרשמות" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +msgctxt "MENU" +msgid "Paths" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 #, fuzzy msgid "Sessions configuration" msgstr "הרשמות" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "אישי" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4885,12 +5052,12 @@ msgstr "" msgid "Tags for this attachment" msgstr "" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 #, fuzzy msgid "Password changing failed" msgstr "הסיסמה נשמרה." -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 #, fuzzy msgid "Password changing is not allowed" msgstr "הסיסמה נשמרה." @@ -5174,20 +5341,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:148 #, fuzzy msgid "No configuration file found. " msgstr "אין קוד אישור." -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:152 msgid "Go to the installer." msgstr "" @@ -5382,24 +5549,24 @@ msgstr "שגיאת מערכת בהעלאת הקובץ." msgid "Not an image or corrupt file." msgstr "זהו לא קובץ תמונה, או שחל בו שיבוש." -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "פורמט התמונה אינו נתמך." -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 #, fuzzy msgid "Lost our file." msgstr "אין הודעה כזו." -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "" @@ -5703,6 +5870,12 @@ msgstr "אל" msgid "Available characters" msgstr "לפחות 6 אותיות" +#: lib/messageform.php:178 lib/noticeform.php:236 +#, fuzzy +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "שלח" + #: lib/noticeform.php:160 #, fuzzy msgid "Send a notice" @@ -5763,26 +5936,26 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 #, fuzzy msgid "in context" msgstr "אין תוכן!" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 #, fuzzy msgid "Repeated by" msgstr "צור" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 #, fuzzy msgid "Reply" msgstr "הגב" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 #, fuzzy msgid "Notice repeated" msgstr "הודעות" @@ -5832,6 +6005,10 @@ msgstr "תגובות" msgid "Favorites" msgstr "מועדפים" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "מתשמש" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "" @@ -5927,7 +6104,7 @@ msgstr "אין הודעה כזו." msgid "Repeat this notice" msgstr "אין הודעה כזו." -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "" @@ -5949,6 +6126,10 @@ msgstr "חיפוש" msgid "Keyword(s)" msgstr "" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "חיפוש" + #: lib/searchaction.php:162 #, fuzzy msgid "Search help" @@ -6003,6 +6184,15 @@ msgstr "הרשמה מרוחקת" 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" @@ -6079,47 +6269,47 @@ msgstr "הודעה חדשה" msgid "Moderate" msgstr "" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "לפני מספר שניות" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "לפני כדקה" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "לפני כ-%d דקות" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "לפני כשעה" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "לפני כ-%d שעות" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "לפני כיום" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "לפני כ-%d ימים" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "לפני כחודש" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "לפני כ-%d חודשים" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "לפני כשנה" diff --git a/locale/hsb/LC_MESSAGES/statusnet.po b/locale/hsb/LC_MESSAGES/statusnet.po index 7b6870afe..f46e7357a 100644 --- a/locale/hsb/LC_MESSAGES/statusnet.po +++ b/locale/hsb/LC_MESSAGES/statusnet.po @@ -9,79 +9,86 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:50:58+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:02:57+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: hsb\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : (n%100==3 || " "n%100==4) ? 2 : 3)\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 msgid "Access" msgstr "Přistup" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 #, fuzzy msgid "Site access settings" msgstr "Sydłowe nastajenja składować" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 #, fuzzy msgid "Registration" msgstr "Registrować" -#: actions/accessadminpanel.php:161 -msgid "Private" -msgstr "Priwatny" - -#: actions/accessadminpanel.php:163 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "" +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -msgid "Invite only" -msgstr "Jenož přeprosyć" +#, fuzzy +msgctxt "LABEL" +msgid "Private" +msgstr "Priwatny" -#: actions/accessadminpanel.php:169 +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 msgid "Make registration invitation only." msgstr "" -#: actions/accessadminpanel.php:173 -msgid "Closed" -msgstr "Začinjeny" +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 +msgid "Invite only" +msgstr "Jenož přeprosyć" -#: actions/accessadminpanel.php:175 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 msgid "Disable new registrations." msgstr "Nowe registrowanja znjemóžnić." -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "Składować" +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 +msgid "Closed" +msgstr "Začinjeny" -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 #, fuzzy msgid "Save access settings" msgstr "Sydłowe nastajenja składować" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "Składować" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page" msgstr "Strona njeeksistuje" -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -95,72 +102,82 @@ msgstr "Strona njeeksistuje" #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "Wužiwar njeeksistuje" -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s a přećeljo, strona %2$d" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s a přećeljo" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Kanal za přećelow wužiwarja %s (RSS 1.0)" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Kanal za přećelow wužiwarja %s (RSS 2.0)" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Kanal za přećelow wužiwarja %s (Atom)" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 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." msgstr "" -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 msgid "You and friends" msgstr "Ty a přećeljo" @@ -178,20 +195,20 @@ msgstr "" #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 msgid "API method not found." msgstr "API-metoda njenamakana." @@ -223,8 +240,9 @@ msgstr "Wužiwar njeje so dał aktualizować." #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "Wužiwar nima profil." @@ -248,7 +266,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: 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." @@ -358,68 +376,68 @@ msgstr "" msgid "Could not find target user." msgstr "" -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "" -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Přimjeno so hižo wužiwa. Spytaj druhe." -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Žane płaćiwe přimjeno." -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Startowa strona njeje płaćiwy URL." -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Dospołne mjeno je předołho (maks. 255 znamješkow)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "Wopisanje je předołho (maks. %d znamješkow)." -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Městno je předołho (maks. 255 znamješkow)." -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "Přewjele aliasow! Maksimum: %d." -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Njepłaćiwy alias: \"%s\"" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Alias \"%s\" so hižo wužiwa. Spytaj druhi." -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "Alias njemóže samsny kaž přimjeno być." @@ -430,15 +448,15 @@ msgstr "Alias njemóže samsny kaž přimjeno być." msgid "Group not found!" msgstr "Skupina njenamakana!" -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 msgid "You are already a member of that group." msgstr "Sy hižo čłon teje skupiny." -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "" -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Njebě móžno wužiwarja %1$s skupinje %2%s přidać." @@ -447,7 +465,7 @@ msgstr "Njebě móžno wužiwarja %1$s skupinje %2%s přidać." msgid "You are not a member of this group." msgstr "Njejsy čłon tuteje skupiny." -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Njebě móžno wužiwarja %1$s ze skupiny %2$s wotstronić." @@ -479,7 +497,7 @@ msgstr "Njepłaćiwa wulkosć." #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -522,7 +540,7 @@ msgstr "" #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -545,13 +563,13 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 msgid "Account" msgstr "Konto" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -633,12 +651,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "" #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -674,7 +692,7 @@ msgstr "" msgid "Repeats of %s" msgstr "" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "" @@ -695,8 +713,7 @@ msgstr "Přiwěšk njeeksistuje." #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "Žane přimjeno." @@ -708,7 +725,7 @@ msgstr "Žana wulkosć." msgid "Invalid size." msgstr "Njepłaćiwa wulkosć." -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Awatar" @@ -726,30 +743,30 @@ msgid "User without matching profile" msgstr "Wužiwar bjez hodźaceho so profila" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Nastajenja awatara" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Original" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Přehlad" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 msgid "Delete" msgstr "Zničić" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "Nahrać" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "" @@ -757,7 +774,7 @@ msgstr "" msgid "Pick a square area of the image to be your avatar" msgstr "" -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" @@ -789,22 +806,22 @@ msgid "" msgstr "" #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "Ně" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 msgid "Do not block this user" msgstr "Tutoho wužiwarja njeblokować" #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Haj" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 msgid "Block this user" msgstr "Tutoho wužiwarja blokować" @@ -812,39 +829,43 @@ msgstr "Tutoho wužiwarja blokować" msgid "Failed to save block information." msgstr "" -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 msgid "No such group." msgstr "Skupina njeeksistuje." -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, php-format msgid "%s blocked profiles" msgstr "" -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s zablokowa profile, stronu %2$d" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." msgstr "" -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 msgid "Unblock user from group" msgstr "" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 msgid "Unblock this user" msgstr "" @@ -921,7 +942,7 @@ msgstr "Njejsy wobsedźer tuteje aplikacije." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "" @@ -947,12 +968,13 @@ msgstr "Tutu zdźělenku njewušmórnyć" msgid "Delete this application" msgstr "Tutu zdźělenku wušmórnyć" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Njepřizjewjeny." @@ -979,7 +1001,7 @@ msgstr "Chceš woprawdźe tutu zdźělenku wušmórnyć?" msgid "Do not delete this notice" msgstr "Tutu zdźělenku njewušmórnyć" -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 msgid "Delete this notice" msgstr "Tutu zdźělenku wušmórnyć" @@ -995,18 +1017,18 @@ msgstr "Móžeš jenož lokalnych wužiwarjow wušmórnyć." msgid "Delete user" msgstr "Wužiwarja wušmórnyć" -#: actions/deleteuser.php:135 +#: 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 "" -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 msgid "Delete this user" msgstr "Tutoho wužiwarja wušmórnyć" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "Design" @@ -1108,6 +1130,17 @@ msgstr "Standardne designy wobnowić" msgid "Reset back to default" msgstr "Na standard wróćo stajić" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "Składować" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "Design składować" @@ -1201,29 +1234,29 @@ msgstr "" msgid "You must be logged in to create a group." msgstr "Dyrbiš přizjewjeny być, zo by skupinu wutworił." -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: 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 "Dyrbiš administrator być, zo by skupinu wobdźěłał." -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "Wuž tutón formular, zo by skupinu wobdźěłał." -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, php-format msgid "description is too long (max %d chars)." msgstr "wopisanje je předołho (maks. %d znamješkow)." -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 msgid "Could not update group." msgstr "Skupina njeje so dała aktualizować." -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 msgid "Could not create aliases." msgstr "Aliasy njejsu so dali wutworić." -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 msgid "Options saved." msgstr "Opcije składowane." @@ -1552,7 +1585,7 @@ msgstr "Wužiwar je hižo za skupinu zablokowany." msgid "User is not a member of group." msgstr "Wužiwar njeje čłon skupiny." -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 msgid "Block user from group" msgstr "Wužiwarja za skupinu blokować" @@ -1584,30 +1617,30 @@ msgstr "Žadyn ID." msgid "You must be logged in to edit a group." msgstr "Dyrbiš přizjewjeny być, zo by skupinu wobdźěłał." -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 msgid "Group design" msgstr "Skupinski design" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." msgstr "" -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 msgid "Couldn't update your design." msgstr "" -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 msgid "Design preferences saved." msgstr "Designowe nastajenja składowane." -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "Skupinske logo" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." @@ -1615,57 +1648,57 @@ msgstr "" "Móžeš logowy wobraz za swoju skupinu nahrać. Maksimalna datajowa wulkosć je %" "s." -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 msgid "User without matching profile." msgstr "Wužiwar bjez hodźaceho so profila." -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "" -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 msgid "Logo updated." msgstr "Logo zaktualizowane." -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 msgid "Failed updating logo." msgstr "" -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, php-format msgid "%1$s group members, page %2$d" msgstr "%1$s skupinskich čłonow, strona %2$d" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "Lisćina wužiwarjow w tutej skupinje." -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "Administrator" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "Blokować" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 msgid "Make user an admin of the group" msgstr "" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make Admin" msgstr "" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "Tutoho wužiwarja k administratorej činić" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "" @@ -1903,16 +1936,19 @@ msgstr "Wosobinska powěsć" msgid "Optionally add a personal message to the invitation." msgstr "Wosobinsku powěsć po dobrozdaću přeprošenju přidać." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" msgstr "Pósłać" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "" -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -1947,7 +1983,12 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "" -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "Žane přimjeno." + +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "" @@ -1956,11 +1997,11 @@ msgstr "" msgid "You must be logged in to leave a group." msgstr "Dyrbiš přizjewjeny być, zo by skupinu wopušćił." -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 msgid "You are not a member of that group." msgstr "Njejsy čłon teje skupiny." -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "" @@ -1977,8 +2018,7 @@ msgstr "Wopačne wužiwarske mjeno abo hesło." msgid "Error setting user. You are probably not authorized." msgstr "Zmylk při nastajenju wužiwarja. Snano njejsy awtorizowany." -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "Přizjewić" @@ -2218,8 +2258,8 @@ msgstr "" msgid "Only " msgstr "Jenož " -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "Njeje podpěrany datowy format." @@ -2358,7 +2398,7 @@ msgstr "" msgid "Password saved." msgstr "Hesło składowane." -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "Šćežki" @@ -2391,7 +2431,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 msgid "Site" msgstr "Sydło" @@ -2559,7 +2598,7 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "Dospołne mjeno" @@ -2587,7 +2626,7 @@ msgid "Bio" msgstr "Biografija" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2667,7 +2706,8 @@ msgstr "" msgid "Couldn't save tags." msgstr "" -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "Nastajenja składowane." @@ -2680,45 +2720,45 @@ msgstr "" msgid "Could not retrieve public stream." msgstr "" -#: actions/public.php:129 +#: actions/public.php:130 #, php-format msgid "Public timeline, page %d" msgstr "" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "" -#: actions/public.php:159 +#: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" msgstr "" -#: actions/public.php:163 +#: actions/public.php:164 msgid "Public Stream Feed (RSS 2.0)" msgstr "" -#: actions/public.php:167 +#: actions/public.php:168 msgid "Public Stream Feed (Atom)" msgstr "" -#: actions/public.php:187 +#: 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:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2727,7 +2767,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:246 +#: actions/public.php:247 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2897,8 +2937,7 @@ msgstr "Wodaj, njepłaćiwy přeprošenski kod." msgid "Registration successful" msgstr "Registrowanje wuspěšne" -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "Registrować" @@ -3057,7 +3096,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:656 +#: actions/repeat.php:114 lib/noticelist.php:674 msgid "Repeated" msgstr "Wospjetowany" @@ -3065,47 +3104,47 @@ msgstr "Wospjetowany" msgid "Repeated!" msgstr "Wospjetowany!" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "" -#: actions/replies.php:127 +#: actions/replies.php:128 #, php-format msgid "Replies to %1$s, page %2$d" msgstr "" -#: actions/replies.php:144 +#: actions/replies.php:145 #, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "" -#: actions/replies.php:151 +#: actions/replies.php:152 #, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "" -#: actions/replies.php:158 +#: actions/replies.php:159 #, php-format msgid "Replies feed for %s (Atom)" msgstr "" -#: actions/replies.php:198 +#: actions/replies.php:199 #, 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 "" -#: actions/replies.php:203 +#: 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:205 +#: actions/replies.php:206 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3130,7 +3169,6 @@ msgid "User is already sandboxed." msgstr "" #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "Posedźenja" @@ -3156,7 +3194,7 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Sydłowe nastajenja składować" @@ -3186,7 +3224,7 @@ msgstr "Organizacija" msgid "Description" msgstr "Wopisanje" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Statistika" @@ -3248,35 +3286,35 @@ msgstr "%1$s a přećeljo, strona %2$d" msgid "Could not retrieve favorite notices." msgstr "" -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" msgstr "" -#: actions/showfavorites.php:205 +#: 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:207 +#: 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 :)" msgstr "" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3284,7 +3322,7 @@ msgid "" "would add to their favorites :)" msgstr "" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "" @@ -3298,67 +3336,67 @@ msgstr "" msgid "%1$s group, page %2$d" msgstr "%1$s skupinskich čłonow, strona %2$d" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 msgid "Group profile" msgstr "Skupinski profil" -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "URL" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 msgid "Note" msgstr "" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "Aliasy" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "Skupinske akcije" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, php-format msgid "FOAF for %s group" msgstr "" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 msgid "Members" msgstr "Čłonojo" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Žadyn)" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "Wšitcy čłonojo" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 msgid "Created" msgstr "Wutworjeny" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3368,7 +3406,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:454 +#: actions/showgroup.php:462 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3377,7 +3415,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:482 +#: actions/showgroup.php:490 msgid "Admins" msgstr "Administratorojo" @@ -3825,22 +3863,22 @@ msgstr "Jabber" msgid "SMS" msgstr "SMS" -#: actions/tag.php:68 +#: actions/tag.php:69 #, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "" -#: actions/tag.php:86 +#: actions/tag.php:87 #, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "" -#: actions/tag.php:92 +#: actions/tag.php:93 #, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "" -#: actions/tag.php:98 +#: actions/tag.php:99 #, php-format msgid "Notice feed for tag %s (Atom)" msgstr "" @@ -3890,7 +3928,7 @@ msgstr "" msgid "No such tag." msgstr "" -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "" @@ -3920,70 +3958,72 @@ msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +#, fuzzy +msgctxt "TITLE" msgid "User" msgstr "Wužiwar" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "Wužiwarske nastajenja za sydło StatusNet." -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "" -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "" -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "Profil" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "" -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 msgid "New users" msgstr "Nowi wužiwarjo" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "Powitanje noweho wužiwarja" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "Powitanski tekst za nowych wužiwarjow (maks. 255 znamješkow)." -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 msgid "Default subscription" msgstr "Standardny abonement" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 msgid "Automatically subscribe new users to this user." msgstr "" -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 msgid "Invitations" msgstr "Přeprošenja" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 msgid "Invitations enabled" msgstr "Přeprošenja zmóžnjene" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "" @@ -4156,7 +4196,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 msgid "Version" msgstr "Wersija" @@ -4193,6 +4233,11 @@ msgstr "Njeje dźěl skupiny." msgid "Group leave failed." msgstr "Wopušćenje skupiny je so njeporadźiło." +#: classes/Local_group.php:41 +#, fuzzy +msgid "Could not update local group." +msgstr "Skupina njeje so dała aktualizować." + #: classes/Login_token.php:76 #, php-format msgid "Could not create login token for %s" @@ -4210,43 +4255,43 @@ msgstr "" msgid "Could not update message with new URI." msgstr "" -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "" -#: classes/Notice.php:222 +#: classes/Notice.php:239 msgid "Problem saving notice. Too long." msgstr "" -#: classes/Notice.php:226 +#: classes/Notice.php:243 msgid "Problem saving notice. Unknown user." msgstr "" -#: classes/Notice.php:231 +#: classes/Notice.php:248 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:237 +#: classes/Notice.php:254 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:243 +#: classes/Notice.php:260 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "" -#: classes/Notice.php:882 +#: classes/Notice.php:911 msgid "Problem saving group inbox." msgstr "" -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4275,19 +4320,29 @@ msgstr "Sebjeabonement njeje so dał zničić." msgid "Couldn't delete subscription." msgstr "Abonoment njeje so dał zničić." -#: classes/User.php:372 +#: classes/User.php:373 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:423 +#: classes/User_group.php:462 msgid "Could not create group." msgstr "" -#: classes/User_group.php:452 +#: classes/User_group.php:471 +#, fuzzy +msgid "Could not set group URI." +msgstr "Skupina njeje so dała aktualizować." + +#: classes/User_group.php:492 msgid "Could not set group membership." msgstr "" +#: classes/User_group.php:506 +#, fuzzy +msgid "Could not save local group info." +msgstr "Profil njeje so składować dał." + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "" @@ -4329,132 +4384,203 @@ msgstr "Strona bjez titula" msgid "Primary site navigation" msgstr "" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "" - -#: lib/action.php:439 +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:441 -msgid "Change your email, avatar, password, profile" -msgstr "" +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "Wosobinski" +#. TRANS: Tooltip for main menu option "Account" #: lib/action.php:444 -msgid "Connect" -msgstr "Zwjazać" +#, fuzzy +msgctxt "TOOLTIP" +msgid "Change your email, avatar, password, profile" +msgstr "Změń swoje hesło." -#: lib/action.php:444 +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "Konto" + +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 +#, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" -msgstr "" +msgstr "Zwiski" -#: lib/action.php:448 +#: lib/action.php:453 +#, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "Zwjazać" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" -msgstr "" +msgstr "SMS-wobkrućenje" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" -msgstr "Přeprosyć" +#: lib/action.php:460 +#, fuzzy +msgctxt "MENU" +msgid "Admin" +msgstr "Administrator" -#: lib/action.php:453 lib/subgroupnav.php:106 -#, php-format +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 +#, fuzzy, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "" +"Wužij tutón formular, zo by swojich přećelow a kolegow přeprosył, zo bychu " +"tutu słužbu wužiwali." -#: lib/action.php:458 -msgid "Logout" -msgstr "" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "Přeprosyć" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +#, fuzzy +msgctxt "TOOLTIP" msgid "Logout from the site" -msgstr "" +msgstr "Šat za sydło." + +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "Logo" -#: lib/action.php:463 +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 +#, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "Konto załožić" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "Registrować" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +#, fuzzy +msgctxt "TOOLTIP" msgid "Login to the site" -msgstr "" +msgstr "Při sydle přizjewić" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "Pomoc" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "Přizjewić" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 +#, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "Pomhaj!" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "Pytać" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "Pomoc" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +#, fuzzy +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Za ludźimi abo tekstom pytać" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "Pytać" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 msgid "Site notice" msgstr "" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "" -#: lib/action.php:625 +#: lib/action.php:656 msgid "Page notice" msgstr "" -#: lib/action.php:727 +#: lib/action.php:758 msgid "Secondary site navigation" msgstr "" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "Pomoc" + +#: lib/action.php:765 msgid "About" msgstr "Wo" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "Huste prašenja" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "Priwatnosć" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "Žórło" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "Kontakt" -#: lib/action.php:751 +#: lib/action.php:782 msgid "Badge" msgstr "" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%). " msgstr "" -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "" -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4462,108 +4588,161 @@ msgid "" "org/licensing/licenses/agpl-3.0.html)." msgstr "" -#: lib/action.php:801 +#: lib/action.php:832 msgid "Site content license" msgstr "" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "" -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "" -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "" -#: lib/action.php:1141 +#: lib/action.php:1172 msgid "After" msgstr "" -#: lib/action.php:1149 +#: lib/action.php:1180 msgid "Before" msgstr "" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." msgstr "" -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 msgid "Changes to that panel are not allowed." msgstr "Změny na tutym woknje njejsu dowolene." -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 msgid "showForm() not implemented." msgstr "" -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 msgid "saveSettings() not implemented." msgstr "" -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 msgid "Unable to delete design setting." msgstr "" -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 msgid "Basic site configuration" msgstr "" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "Sydło" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 msgid "Design configuration" msgstr "" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "Design" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 #, fuzzy msgid "User configuration" msgstr "SMS-wobkrućenje" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +#, fuzzy +msgctxt "MENU" +msgid "User" +msgstr "Wužiwar" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 #, fuzzy msgid "Access configuration" msgstr "SMS-wobkrućenje" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "Přistup" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 msgid "Paths configuration" msgstr "" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +#, fuzzy +msgctxt "MENU" +msgid "Paths" +msgstr "Šćežki" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 #, fuzzy msgid "Sessions configuration" msgstr "SMS-wobkrućenje" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "Posedźenja" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4653,11 +4832,11 @@ msgstr "" msgid "Tags for this attachment" msgstr "" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 msgid "Password changing failed" msgstr "Změnjenje hesła je so njeporadźiło" -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 msgid "Password changing is not allowed" msgstr "Změnjenje hesła njeje dowolene" @@ -4936,19 +5115,19 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:148 msgid "No configuration file found. " msgstr "Žana konfiguraciska dataja namakana. " -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:152 msgid "Go to the installer." msgstr "" @@ -5134,23 +5313,23 @@ msgstr "" msgid "Not an image or corrupt file." msgstr "" -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "" -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Naša dataja je so zhubiła." -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "Njeznaty datajowy typ" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "MB" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "KB" @@ -5443,6 +5622,12 @@ msgstr "Komu" msgid "Available characters" msgstr "K dispoziciji stejace znamješka" +#: lib/messageform.php:178 lib/noticeform.php:236 +#, fuzzy +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "Pósłać" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Zdźělenku pósłać" @@ -5499,23 +5684,23 @@ msgstr "Z" msgid "at" msgstr "" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 msgid "in context" msgstr "" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 msgid "Repeated by" msgstr "Wospjetowany wot" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 msgid "Reply to this notice" msgstr "Na tutu zdźělenku wotmołwić" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 msgid "Reply" msgstr "Wotmołwić" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 msgid "Notice repeated" msgstr "Zdźělenka wospjetowana" @@ -5563,6 +5748,10 @@ msgstr "Wotmołwy" msgid "Favorites" msgstr "Fawority" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "Wužiwar" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "" @@ -5652,7 +5841,7 @@ msgstr "Tutu zdźělenku wospjetować?" msgid "Repeat this notice" msgstr "Tutu zdźělenku wospjetować" -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "" @@ -5672,6 +5861,10 @@ msgstr "Pytanske sydło" msgid "Keyword(s)" msgstr "Klučowe hesła" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "Pytać" + #: lib/searchaction.php:162 msgid "Search help" msgstr "Pytanska pomoc" @@ -5723,6 +5916,15 @@ msgstr "" msgid "Groups %s is a member of" msgstr "" +#: lib/subgroupnav.php:105 +msgid "Invite" +msgstr "Přeprosyć" + +#: 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" @@ -5793,47 +5995,47 @@ msgstr "Powěsć" msgid "Moderate" msgstr "" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "před něšto sekundami" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "před něhdźe jednej mjeńšinu" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "před %d mjeńšinami" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "před něhdźe jednej hodźinu" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "před něhdźe %d hodźinami" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "před něhdźe jednym dnjom" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "před něhdźe %d dnjemi" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "před něhdźe jednym měsacom" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "před něhdźe %d měsacami" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "před něhdźe jednym lětom" diff --git a/locale/ia/LC_MESSAGES/statusnet.po b/locale/ia/LC_MESSAGES/statusnet.po index fa42bd3fe..cc6af7f0f 100644 --- a/locale/ia/LC_MESSAGES/statusnet.po +++ b/locale/ia/LC_MESSAGES/statusnet.po @@ -8,75 +8,82 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:51:01+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:03:00+0000\n" "Language-Team: Interlingua\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 msgid "Access" msgstr "Accesso" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 msgid "Site access settings" msgstr "Configurationes de accesso al sito" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 msgid "Registration" msgstr "Registration" -#: actions/accessadminpanel.php:161 -msgid "Private" -msgstr "Private" - -#: actions/accessadminpanel.php:163 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "Prohibir al usatores anonyme (sin session aperte) de vider le sito?" +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -msgid "Invite only" -msgstr "Solmente per invitation" +#, fuzzy +msgctxt "LABEL" +msgid "Private" +msgstr "Private" -#: actions/accessadminpanel.php:169 +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 msgid "Make registration invitation only." msgstr "Permitter le registration solmente al invitatos." -#: actions/accessadminpanel.php:173 -msgid "Closed" -msgstr "Claudite" +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 +msgid "Invite only" +msgstr "Solmente per invitation" -#: actions/accessadminpanel.php:175 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 msgid "Disable new registrations." msgstr "Disactivar le creation de nove contos." -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "Salveguardar" +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 +msgid "Closed" +msgstr "Claudite" -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 msgid "Save access settings" msgstr "Salveguardar configurationes de accesso" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "Salveguardar" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page" msgstr "Pagina non existe" -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -90,45 +97,53 @@ msgstr "Pagina non existe" #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "Usator non existe." -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s e amicos, pagina %2$d" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s e amicos" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Syndication pro le amicos de %s (RSS 1.0)" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Syndication pro le amicos de %s (RSS 2.0)" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Syndication pro le amicos de %s (Atom)" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." @@ -136,7 +151,7 @@ msgstr "" "Isto es le chronologia pro %s e su amicos, ma necuno ha ancora publicate " "alique." -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -145,7 +160,8 @@ msgstr "" "Proba subscriber te a altere personas, [face te membro de un gruppo](%%" "action.groups%%) o publica alique tu mesme." -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " @@ -154,7 +170,7 @@ 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)." -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -163,7 +179,8 @@ msgstr "" "Proque non [registrar un conto](%%%%action.register%%%%) e postea dar un " "pulsata a %s o publicar un message a su attention." -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 msgid "You and friends" msgstr "Tu e amicos" @@ -181,20 +198,20 @@ msgstr "Actualisationes de %1$s e su amicos in %2$s!" #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 msgid "API method not found." msgstr "Methodo API non trovate." @@ -228,8 +245,9 @@ msgstr "Non poteva actualisar le usator." #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "Le usator non ha un profilo." @@ -255,7 +273,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: 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." @@ -365,68 +383,68 @@ msgstr "Non poteva determinar le usator de origine." msgid "Could not find target user." msgstr "Non poteva trovar le usator de destination." -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "Le pseudonymo pote solmente haber minusculas e numeros, sin spatios." -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Pseudonymo ja in uso. Proba un altere." -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Non un pseudonymo valide." -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Le pagina personal non es un URL valide." -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Le nomine complete es troppo longe (max. 255 characteres)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "Description es troppo longe (max %d charachteres)." -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Loco es troppo longe (max. 255 characteres)." -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "Troppo de aliases! Maximo: %d." -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Alias invalide: \"%s\"" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Le alias \"%s\" es ja in uso. Proba un altere." -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "Le alias non pote esser identic al pseudonymo." @@ -437,15 +455,15 @@ msgstr "Le alias non pote esser identic al pseudonymo." msgid "Group not found!" msgstr "Gruppo non trovate!" -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 msgid "You are already a member of that group." msgstr "Tu es ja membro de iste gruppo." -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "Le administrator te ha blocate de iste gruppo." -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Non poteva inscriber le usator %1$s in le gruppo %2$s." @@ -454,7 +472,7 @@ msgstr "Non poteva inscriber le usator %1$s in le gruppo %2$s." msgid "You are not a member of this group." msgstr "Tu non es membro de iste gruppo." -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Non poteva remover le usator %1$s del gruppo %2$s." @@ -485,7 +503,7 @@ msgstr "Indicio invalide." #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -531,7 +549,7 @@ msgstr "Le indicio de requesta %s ha essite refusate e revocate." #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -557,13 +575,13 @@ msgstr "" "%3$s le datos de tu conto de %4$s. Tu debe solmente dar " "accesso a tu conto de %4$s a tertie personas in le quales tu ha confidentia." -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 msgid "Account" msgstr "Conto" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -648,12 +666,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s actualisationes favoritisate per %2$s / %2$s." #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "Chronologia de %s" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -690,7 +708,7 @@ msgstr "Repetite a %s" msgid "Repeats of %s" msgstr "Repetitiones de %s" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Notas con etiquetta %s" @@ -711,8 +729,7 @@ msgstr "Annexo non existe." #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "Nulle pseudonymo." @@ -724,7 +741,7 @@ msgstr "Nulle dimension." msgid "Invalid size." msgstr "Dimension invalide." -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Avatar" @@ -742,30 +759,30 @@ msgid "User without matching profile" msgstr "Usator sin profilo correspondente" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Configuration del avatar" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Original" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Previsualisation" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 msgid "Delete" msgstr "Deler" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "Incargar" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "Taliar" @@ -773,7 +790,7 @@ msgstr "Taliar" msgid "Pick a square area of the image to be your avatar" msgstr "Selige un area quadrate del imagine pro facer lo tu avatar" -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Datos del file perdite." @@ -808,22 +825,22 @@ msgstr "" "recipera notification de su @-responsas." #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "No" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 msgid "Do not block this user" msgstr "Non blocar iste usator" #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Si" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 msgid "Block this user" msgstr "Blocar iste usator" @@ -831,39 +848,43 @@ msgstr "Blocar iste usator" msgid "Failed to save block information." msgstr "Falleva de salveguardar le information del blocada." -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 msgid "No such group." msgstr "Gruppo non existe." -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, php-format msgid "%s blocked profiles" msgstr "%s profilos blocate" -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s profilos blocate, pagina %2$d" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." msgstr "Un lista del usatores excludite del membrato de iste gruppo." -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 msgid "Unblock user from group" msgstr "Disblocar le usator del gruppo" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "Disblocar" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 msgid "Unblock this user" msgstr "Disblocar iste usator" @@ -938,7 +959,7 @@ msgstr "Tu non es le proprietario de iste application." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "Il habeva un problema con tu indicio de session." @@ -964,12 +985,13 @@ msgstr "Non deler iste application" msgid "Delete this application" msgstr "Deler iste application" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Non identificate." @@ -998,7 +1020,7 @@ msgstr "Es tu secur de voler deler iste nota?" msgid "Do not delete this notice" msgstr "Non deler iste nota" -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 msgid "Delete this notice" msgstr "Deler iste nota" @@ -1014,7 +1036,7 @@ msgstr "Tu pote solmente deler usatores local." msgid "Delete user" msgstr "Deler usator" -#: actions/deleteuser.php:135 +#: 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." @@ -1022,12 +1044,12 @@ msgstr "" "Es tu secur de voler deler iste usator? Isto radera tote le datos super le " "usator del base de datos, sin copia de reserva." -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 msgid "Delete this user" msgstr "Deler iste usator" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "Apparentia" @@ -1130,6 +1152,17 @@ msgstr "Restaurar apparentias predefinite" msgid "Reset back to default" msgstr "Revenir al predefinitiones" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "Salveguardar" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "Salveguardar apparentia" @@ -1221,29 +1254,29 @@ msgstr "Modificar gruppo %s" msgid "You must be logged in to create a group." msgstr "Tu debe aperir un session pro crear un gruppo." -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: 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 "Tu debe esser administrator pro modificar le gruppo." -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "Usa iste formulario pro modificar le gruppo." -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, php-format msgid "description is too long (max %d chars)." msgstr "description es troppo longe (max %d chars)." -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 msgid "Could not update group." msgstr "Non poteva actualisar gruppo." -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 msgid "Could not create aliases." msgstr "Non poteva crear aliases." -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 msgid "Options saved." msgstr "Optiones salveguardate." @@ -1583,7 +1616,7 @@ msgstr "Le usator es ja blocate del gruppo." msgid "User is not a member of group." msgstr "Le usator non es membro del gruppo." -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 msgid "Block user from group" msgstr "Blocar usator del gruppo" @@ -1618,11 +1651,11 @@ msgstr "Nulle ID." msgid "You must be logged in to edit a group." msgstr "Tu debe aperir un session pro modificar un gruppo." -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 msgid "Group design" msgstr "Apparentia del gruppo" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." @@ -1630,20 +1663,20 @@ msgstr "" "Personalisa le apparentia de tu gruppo con un imagine de fundo e un paletta " "de colores de tu preferentia." -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 msgid "Couldn't update your design." msgstr "Non poteva actualisar tu apparentia." -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 msgid "Design preferences saved." msgstr "Preferentias de apparentia salveguardate." -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "Logotypo del gruppo" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." @@ -1651,57 +1684,57 @@ msgstr "" "Tu pote incargar un imagine pro le logotypo de tu gruppo. Le dimension " "maximal del file es %s." -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 msgid "User without matching profile." msgstr "Usator sin profilo correspondente" -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Selige un area quadrate del imagine que devenira le logotypo." -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 msgid "Logo updated." msgstr "Logotypo actualisate." -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 msgid "Failed updating logo." msgstr "Falleva de actualisar le logotypo." -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "Membros del gruppo %s" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, php-format msgid "%1$s group members, page %2$d" msgstr "Membros del gruppo %1$s, pagina %2$d" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "Un lista de usatores in iste gruppo." -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "Administrator" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "Blocar" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 msgid "Make user an admin of the group" msgstr "Facer le usator administrator del gruppo" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make Admin" msgstr "Facer administrator" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "Facer iste usator administrator" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Actualisationes de membros de %1$s in %2$s!" @@ -1966,16 +1999,19 @@ msgstr "Message personal" msgid "Optionally add a personal message to the invitation." msgstr "Si tu vole, adde un message personal al invitation." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" msgstr "Inviar" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s te ha invitate a accompaniar le/la in %2$s" -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2036,7 +2072,12 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Tu debe aperir un session pro facer te membro de un gruppo." -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "Nulle pseudonymo." + +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s es ora membro del gruppo %2$s" @@ -2045,11 +2086,11 @@ msgstr "%1$s es ora membro del gruppo %2$s" msgid "You must be logged in to leave a group." msgstr "Tu debe aperir un session pro quitar un gruppo." -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 msgid "You are not a member of that group." msgstr "Tu non es membro de iste gruppo." -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s quitava le gruppo %2$s" @@ -2067,8 +2108,7 @@ msgid "Error setting user. You are probably not authorized." msgstr "" "Error de acceder al conto de usator. Tu probabilemente non es autorisate." -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "Aperir session" @@ -2326,8 +2366,8 @@ msgstr "typo de contento " msgid "Only " msgstr "Solmente " -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "Formato de datos non supportate." @@ -2467,7 +2507,7 @@ msgstr "Non pote salveguardar le nove contrasigno." msgid "Password saved." msgstr "Contrasigno salveguardate." -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "Camminos" @@ -2500,7 +2540,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "Servitor SSL invalide. Le longitude maximal es 255 characteres." #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 msgid "Site" msgstr "Sito" @@ -2674,7 +2713,7 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 minusculas o numeros, sin punctuation o spatios" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "Nomine complete" @@ -2702,7 +2741,7 @@ msgid "Bio" msgstr "Bio" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2785,7 +2824,8 @@ msgstr "Non poteva salveguardar profilo." msgid "Couldn't save tags." msgstr "Non poteva salveguardar etiquettas." -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "Preferentias confirmate." @@ -2798,28 +2838,28 @@ msgstr "Ultra le limite de pagina (%s)" msgid "Could not retrieve public stream." msgstr "Non poteva recuperar le fluxo public." -#: actions/public.php:129 +#: actions/public.php:130 #, php-format msgid "Public timeline, page %d" msgstr "Chronologia public, pagina %d" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "Chronologia public" -#: actions/public.php:159 +#: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" msgstr "Syndication del fluxo public (RSS 1.0)" -#: actions/public.php:163 +#: actions/public.php:164 msgid "Public Stream Feed (RSS 2.0)" msgstr "Syndication del fluxo public (RSS 2.0)" -#: actions/public.php:167 +#: actions/public.php:168 msgid "Public Stream Feed (Atom)" msgstr "Syndication del fluxo public (Atom)" -#: actions/public.php:187 +#: actions/public.php:188 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " @@ -2828,11 +2868,11 @@ msgstr "" "Isto es le chronologia public pro %%site.name%%, ma nulle persona ha ancora " "scribite alique." -#: actions/public.php:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "Sia le prime a publicar!" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" @@ -2840,7 +2880,7 @@ msgstr "" "Proque non [registrar un conto](%%action.register%%) e devenir le prime a " "publicar?" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2853,7 +2893,7 @@ msgstr "" "[Inscribe te ora](%%action.register%%) pro condivider notas super te con " "amicos, familia e collegas! ([Leger plus](%%doc.help%%))" -#: actions/public.php:246 +#: actions/public.php:247 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3031,8 +3071,7 @@ msgstr "Pardono, le codice de invitation es invalide." msgid "Registration successful" msgstr "Registration succedite" -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "Crear conto" @@ -3218,7 +3257,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:656 +#: actions/repeat.php:114 lib/noticelist.php:674 msgid "Repeated" msgstr "Repetite" @@ -3226,33 +3265,33 @@ msgstr "Repetite" msgid "Repeated!" msgstr "Repetite!" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "Responsas a %s" -#: actions/replies.php:127 +#: actions/replies.php:128 #, php-format msgid "Replies to %1$s, page %2$d" msgstr "Responsas a %1$s, pagina %2$d" -#: actions/replies.php:144 +#: actions/replies.php:145 #, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "Syndication de responsas pro %s (RSS 1.0)" -#: actions/replies.php:151 +#: actions/replies.php:152 #, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "Syndication de responsas pro %s (RSS 2.0)" -#: actions/replies.php:158 +#: actions/replies.php:159 #, php-format msgid "Replies feed for %s (Atom)" msgstr "Syndication de responsas pro %s (Atom)" -#: actions/replies.php:198 +#: actions/replies.php:199 #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " @@ -3261,7 +3300,7 @@ msgstr "" "Isto es le chronologia de responsas a %1$s, ma %2$s non ha ancora recipite " "alcun nota a su attention." -#: actions/replies.php:203 +#: actions/replies.php:204 #, php-format msgid "" "You can engage other users in a conversation, subscribe to more people or " @@ -3270,7 +3309,7 @@ msgstr "" "Tu pote facer conversation con altere usatores, subscriber te a plus " "personas o [devenir membro de gruppos](%%action.groups%%)." -#: actions/replies.php:205 +#: actions/replies.php:206 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3297,7 +3336,6 @@ msgid "User is already sandboxed." msgstr "Usator es ja in cassa de sablo." #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "Sessiones" @@ -3322,7 +3360,7 @@ msgid "Turn on debugging output for sessions." msgstr "Producer informationes technic pro cercar defectos in sessiones." #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Salveguardar configurationes del sito" @@ -3352,7 +3390,7 @@ msgstr "Organisation" msgid "Description" msgstr "Description" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Statisticas" @@ -3415,22 +3453,22 @@ msgstr "Notas favorite de %1$s, pagina %2$d" msgid "Could not retrieve favorite notices." msgstr "Non poteva recuperar notas favorite." -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "Syndication del favorites de %s (RSS 1.0)" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "Syndication del favorites de %s (RSS 2.0)" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" msgstr "Syndication del favorites de %s (Atom)" -#: actions/showfavorites.php:205 +#: 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." @@ -3439,7 +3477,7 @@ msgstr "" "Favorite sub notas que te place pro memorisar los pro plus tarde o pro " "mitter los in evidentia." -#: actions/showfavorites.php:207 +#: actions/showfavorites.php:208 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Post something interesting " @@ -3448,7 +3486,7 @@ msgstr "" "%s non ha ancora addite alcun nota a su favorites. Publica alique " "interessante que ille favoritisarea :)" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3459,7 +3497,7 @@ msgstr "" "conto](%%%%action.register%%%%) e postea publicar alique interessante que " "ille favoritisarea :)" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "Isto es un modo de condivider lo que te place." @@ -3473,67 +3511,67 @@ msgstr "Gruppo %s" msgid "%1$s group, page %2$d" msgstr "Gruppo %1$s, pagina %2$d" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 msgid "Group profile" msgstr "Profilo del gruppo" -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "URL" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 msgid "Note" msgstr "Nota" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "Aliases" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "Actiones del gruppo" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Syndication de notas pro le gruppo %s (RSS 1.0)" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Syndication de notas pro le gruppo %s (RSS 2.0)" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Syndication de notas pro le gruppo %s (Atom)" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, php-format msgid "FOAF for %s group" msgstr "Amico de un amico pro le gruppo %s" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 msgid "Members" msgstr "Membros" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Nulle)" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "Tote le membros" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 msgid "Created" msgstr "Create" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3548,7 +3586,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:454 +#: actions/showgroup.php:462 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3561,7 +3599,7 @@ msgstr "" "[StatusNet](http://status.net/). Su membros condivide breve messages super " "lor vita e interesses. " -#: actions/showgroup.php:482 +#: actions/showgroup.php:490 msgid "Admins" msgstr "Administratores" @@ -4041,22 +4079,22 @@ msgstr "Jabber" msgid "SMS" msgstr "SMS" -#: actions/tag.php:68 +#: actions/tag.php:69 #, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "Notas etiquettate con %1$s, pagina %2$d" -#: actions/tag.php:86 +#: actions/tag.php:87 #, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "Syndication de notas pro le etiquetta %s (RSS 1.0)" -#: actions/tag.php:92 +#: actions/tag.php:93 #, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "Syndication de notas pro le etiquetta %s (RSS 2.0)" -#: actions/tag.php:98 +#: actions/tag.php:99 #, php-format msgid "Notice feed for tag %s (Atom)" msgstr "Syndication de notas pro le etiquetta %s (Atom)" @@ -4111,7 +4149,7 @@ msgstr "" msgid "No such tag." msgstr "Etiquetta non existe." -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "Methodo API in construction." @@ -4143,70 +4181,72 @@ msgstr "" "Le licentia del fluxo que tu ascolta, ‘%1$s’, non es compatibile con le " "licentia del sito ‘%2$s’." -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +#, fuzzy +msgctxt "TITLE" msgid "User" msgstr "Usator" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "Configurationes de usator pro iste sito de StatusNet." -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "Limite de biographia invalide. Debe esser un numero." -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "Texto de benvenita invalide. Longitude maximal es 255 characteres." -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "Subscription predefinite invalide: '%1$s' non es usator." -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "Profilo" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "Limite de biographia" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "Le longitude maximal del biographia de un profilo in characteres." -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 msgid "New users" msgstr "Nove usatores" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "Message de benvenita a nove usatores" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "Texto de benvenita pro nove usatores (max. 255 characteres)" -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 msgid "Default subscription" msgstr "Subscription predefinite" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 msgid "Automatically subscribe new users to this user." msgstr "Subscriber automaticamente le nove usatores a iste usator." -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 msgid "Invitations" msgstr "Invitationes" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 msgid "Invitations enabled" msgstr "Invitationes activate" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "Si le usatores pote invitar nove usatores." @@ -4402,7 +4442,7 @@ msgstr "" msgid "Plugins" msgstr "Plug-ins" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 msgid "Version" msgstr "Version" @@ -4441,6 +4481,11 @@ msgstr "Non es membro del gruppo." msgid "Group leave failed." msgstr "Le cancellation del membrato del gruppo ha fallite." +#: classes/Local_group.php:41 +#, fuzzy +msgid "Could not update local group." +msgstr "Non poteva actualisar gruppo." + #: classes/Login_token.php:76 #, php-format msgid "Could not create login token for %s" @@ -4458,27 +4503,27 @@ msgstr "Non poteva inserer message." msgid "Could not update message with new URI." msgstr "Non poteva actualisar message con nove URI." -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "Error in base de datos durante insertion del marca (hashtag): %s" -#: classes/Notice.php:222 +#: classes/Notice.php:239 msgid "Problem saving notice. Too long." msgstr "Problema salveguardar nota. Troppo longe." -#: classes/Notice.php:226 +#: classes/Notice.php:243 msgid "Problem saving notice. Unknown user." msgstr "Problema salveguardar nota. Usator incognite." -#: classes/Notice.php:231 +#: classes/Notice.php:248 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:237 +#: classes/Notice.php:254 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4486,19 +4531,19 @@ msgstr "" "Troppo de messages duplicate troppo rapidemente; face un pausa e publica de " "novo post alcun minutas." -#: classes/Notice.php:243 +#: classes/Notice.php:260 msgid "You are banned from posting notices on this site." msgstr "Il te es prohibite publicar notas in iste sito." -#: classes/Notice.php:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "Problema salveguardar nota." -#: classes/Notice.php:882 +#: classes/Notice.php:911 msgid "Problem saving group inbox." msgstr "Problema salveguardar le cassa de entrata del gruppo." -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4527,19 +4572,29 @@ msgstr "Non poteva deler auto-subscription." msgid "Couldn't delete subscription." msgstr "Non poteva deler subscription." -#: classes/User.php:372 +#: classes/User.php:373 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Benvenite a %1$s, @%2$s!" -#: classes/User_group.php:423 +#: classes/User_group.php:462 msgid "Could not create group." msgstr "Non poteva crear gruppo." -#: classes/User_group.php:452 +#: classes/User_group.php:471 +#, fuzzy +msgid "Could not set group URI." +msgstr "Non poteva configurar le membrato del gruppo." + +#: classes/User_group.php:492 msgid "Could not set group membership." msgstr "Non poteva configurar le membrato del gruppo." +#: classes/User_group.php:506 +#, fuzzy +msgid "Could not save local group info." +msgstr "Non poteva salveguardar le subscription." + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "Cambiar le optiones de tu profilo" @@ -4581,120 +4636,190 @@ msgstr "Pagina sin titulo" msgid "Primary site navigation" msgstr "Navigation primari del sito" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "Initio" - -#: lib/action.php:439 +#, fuzzy +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Profilo personal e chronologia de amicos" -#: lib/action.php:441 +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "Personal" + +#. TRANS: Tooltip for main menu option "Account" +#: lib/action.php:444 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Cambiar tu e-mail, avatar, contrasigno, profilo" -#: lib/action.php:444 -msgid "Connect" -msgstr "Connecter" +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "Conto" -#: lib/action.php:444 +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 +#, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Connecter con servicios" -#: lib/action.php:448 +#: lib/action.php:453 +#, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "Connecter" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Modificar le configuration del sito" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" -msgstr "Invitar" +#: lib/action.php:460 +#, fuzzy +msgctxt "MENU" +msgid "Admin" +msgstr "Administrator" -#: lib/action.php:453 lib/subgroupnav.php:106 -#, php-format +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 +#, fuzzy, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Invitar amicos e collegas a accompaniar te in %s" -#: lib/action.php:458 -msgid "Logout" -msgstr "Clauder session" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "Invitar" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +#, fuzzy +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Terminar le session del sito" -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "Clauder session" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 +#, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "Crear un conto" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "Crear conto" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +#, fuzzy +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Identificar te a iste sito" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "Adjuta" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "Aperir session" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 +#, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "Adjuta me!" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "Cercar" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "Adjuta" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +#, fuzzy +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Cercar personas o texto" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "Cercar" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 msgid "Site notice" msgstr "Aviso del sito" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "Vistas local" -#: lib/action.php:625 +#: lib/action.php:656 msgid "Page notice" msgstr "Aviso de pagina" -#: lib/action.php:727 +#: lib/action.php:758 msgid "Secondary site navigation" msgstr "Navigation secundari del sito" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "Adjuta" + +#: lib/action.php:765 msgid "About" msgstr "A proposito" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "FAQ" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "CdS" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "Confidentialitate" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "Fonte" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "Contacto" -#: lib/action.php:751 +#: lib/action.php:782 msgid "Badge" msgstr "Insignia" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "Licentia del software StatusNet" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4703,12 +4828,12 @@ msgstr "" "**%%site.name%%** es un servicio de microblog offerite per [%%site.broughtby%" "%](%%site.broughtbyurl%%). " -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** es un servicio de microblog. " -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4719,108 +4844,161 @@ msgstr "" "net/), version %s, disponibile sub le [GNU Affero General Public License]" "(http://www.fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:801 +#: lib/action.php:832 msgid "Site content license" msgstr "Licentia del contento del sito" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Le contento e datos de %1$s es private e confidential." -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "Contento e datos sub copyright de %1$s. Tote le derectos reservate." -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Contento e datos sub copyright del contributores. Tote le derectos reservate." -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "Totes " -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "licentia." -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "Pagination" -#: lib/action.php:1141 +#: lib/action.php:1172 msgid "After" msgstr "Post" -#: lib/action.php:1149 +#: lib/action.php:1180 msgid "Before" msgstr "Ante" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." msgstr "Tu non pote facer modificationes in iste sito." -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 msgid "Changes to that panel are not allowed." msgstr "Le modification de iste pannello non es permittite." -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 msgid "showForm() not implemented." msgstr "showForm() non implementate." -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 msgid "saveSettings() not implemented." msgstr "saveSettings() non implementate." -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 msgid "Unable to delete design setting." msgstr "Impossibile deler configuration de apparentia." -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 msgid "Basic site configuration" msgstr "Configuration basic del sito" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "Sito" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 msgid "Design configuration" msgstr "Configuration del apparentia" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "Apparentia" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 msgid "User configuration" msgstr "Configuration del usator" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +#, fuzzy +msgctxt "MENU" +msgid "User" +msgstr "Usator" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 msgid "Access configuration" msgstr "Configuration del accesso" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "Accesso" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 msgid "Paths configuration" msgstr "Configuration del camminos" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +#, fuzzy +msgctxt "MENU" +msgid "Paths" +msgstr "Camminos" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 msgid "Sessions configuration" msgstr "Configuration del sessiones" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "Sessiones" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" "Le ressource de API require accesso pro lectura e scriptura, ma tu ha " "solmente accesso pro lectura." -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4914,11 +5092,11 @@ msgstr "Notas ubi iste annexo appare" msgid "Tags for this attachment" msgstr "Etiquettas pro iste annexo" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 msgid "Password changing failed" msgstr "Cambio del contrasigno fallite" -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 msgid "Password changing is not allowed" msgstr "Cambio del contrasigno non permittite" @@ -5233,19 +5411,19 @@ msgstr "" "tracks - non ancora implementate.\n" "tracking - non ancora implementate.\n" -#: lib/common.php:136 +#: lib/common.php:148 msgid "No configuration file found. " msgstr "Nulle file de configuration trovate. " -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "Io cercava files de configuration in le sequente locos: " -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "Considera executar le installator pro reparar isto." -#: lib/common.php:140 +#: lib/common.php:152 msgid "Go to the installer." msgstr "Ir al installator." @@ -5433,25 +5611,25 @@ msgstr "Error de systema durante le incargamento del file." #: lib/imagefile.php:96 msgid "Not an image or corrupt file." -msgstr "Le file non es un imagine o es defecte." +msgstr "Le file non es un imagine o es defectuose." -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "Formato de file de imagine non supportate." -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "File perdite." -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "Typo de file incognite" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "MB" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "KB" @@ -5834,6 +6012,12 @@ msgstr "A" msgid "Available characters" msgstr "Characteres disponibile" +#: lib/messageform.php:178 lib/noticeform.php:236 +#, fuzzy +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "Inviar" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Inviar un nota" @@ -5892,23 +6076,23 @@ msgstr "W" msgid "at" msgstr "a" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 msgid "in context" msgstr "in contexto" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 msgid "Repeated by" msgstr "Repetite per" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 msgid "Reply to this notice" msgstr "Responder a iste nota" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 msgid "Reply" msgstr "Responder" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 msgid "Notice repeated" msgstr "Nota repetite" @@ -5956,6 +6140,10 @@ msgstr "Responsas" msgid "Favorites" msgstr "Favorites" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "Usator" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Cassa de entrata" @@ -6045,7 +6233,7 @@ msgstr "Repeter iste nota?" msgid "Repeat this notice" msgstr "Repeter iste nota" -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "Nulle signule usator definite pro le modo de singule usator." @@ -6065,6 +6253,10 @@ msgstr "Cercar in sito" msgid "Keyword(s)" msgstr "Parola(s)-clave" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "Cercar" + #: lib/searchaction.php:162 msgid "Search help" msgstr "Adjuta super le recerca" @@ -6116,6 +6308,15 @@ msgstr "Personas qui seque %s" msgid "Groups %s is a member of" msgstr "Gruppos del quales %s es membro" +#: lib/subgroupnav.php:105 +msgid "Invite" +msgstr "Invitar" + +#: lib/subgroupnav.php:106 +#, php-format +msgid "Invite friends and colleagues to join you on %s" +msgstr "Invitar amicos e collegas a accompaniar te in %s" + #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 msgid "People Tagcloud as self-tagged" @@ -6186,47 +6387,47 @@ msgstr "Message" msgid "Moderate" msgstr "Moderar" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "alcun secundas retro" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "circa un minuta retro" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "circa %d minutas retro" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "circa un hora retro" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "circa %d horas retro" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "circa un die retro" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "circa %d dies retro" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "circa un mense retro" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "circa %d menses retro" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "circa un anno retro" diff --git a/locale/is/LC_MESSAGES/statusnet.po b/locale/is/LC_MESSAGES/statusnet.po index 08e4fec95..aaf79c8f7 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-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:51:05+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:03:04+0000\n" "Language-Team: Icelandic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: is\n" "X-Message-Group: out-statusnet\n" @@ -21,71 +21,77 @@ msgstr "" "= 31 && n % 100 != 41 && n % 100 != 51 && n % 100 != 61 && n % 100 != 71 && " "n % 100 != 81 && n % 100 != 91);\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 #, fuzzy msgid "Access" msgstr "Samþykkja" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 #, fuzzy msgid "Site access settings" msgstr "Stillingar fyrir mynd" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 #, fuzzy msgid "Registration" msgstr "Nýskrá" -#: actions/accessadminpanel.php:161 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 +msgid "Prohibit anonymous users (not logged in) from viewing site?" +msgstr "" + +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. +#: actions/accessadminpanel.php:167 #, fuzzy +msgctxt "LABEL" msgid "Private" msgstr "Friðhelgi" -#: actions/accessadminpanel.php:163 -msgid "Prohibit anonymous users (not logged in) from viewing site?" +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 +msgid "Make registration invitation only." msgstr "" -#: actions/accessadminpanel.php:167 +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 #, fuzzy msgid "Invite only" msgstr "Bjóða" -#: actions/accessadminpanel.php:169 -msgid "Make registration invitation only." +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 +msgid "Disable new registrations." msgstr "" -#: actions/accessadminpanel.php:173 +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 msgid "Closed" msgstr "" -#: actions/accessadminpanel.php:175 -msgid "Disable new registrations." -msgstr "" - -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "Vista" - -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 #, fuzzy msgid "Save access settings" msgstr "Stillingar fyrir mynd" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "Vista" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 #, fuzzy msgid "No such page" msgstr "Ekkert þannig merki." -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -99,72 +105,82 @@ msgstr "Ekkert þannig merki." #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "Enginn svoleiðis notandi." -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, fuzzy, php-format msgid "%1$s and friends, page %2$d" msgstr "%s og vinirnir, síða %d" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s og vinirnir" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 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." msgstr "" -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 msgid "You and friends" msgstr "" @@ -182,20 +198,20 @@ msgstr "Færslur frá %1$s og vinum á %2$s!" #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "Aðferð í forritsskilum fannst ekki!" @@ -229,8 +245,9 @@ msgstr "Gat ekki uppfært notanda." #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "Notandi hefur enga persónulega síðu." @@ -255,7 +272,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: 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." @@ -372,68 +389,68 @@ msgstr "" msgid "Could not find target user." msgstr "" -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "Stuttnefni geta bara verið lágstafir og tölustafir en engin bil." -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Stuttnefni nú þegar í notkun. Prófaðu eitthvað annað." -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Ekki tækt stuttnefni." -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Heimasíða er ekki gild vefslóð." -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Fullt nafn er of langt (í mesta lagi 255 stafir)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, fuzzy, php-format msgid "Description is too long (max %d chars)." msgstr "Lýsing er of löng (í mesta lagi 140 tákn)." -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Staðsetning er of löng (í mesta lagi 255 stafir)." -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "" -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, php-format msgid "Invalid alias: \"%s\"" msgstr "" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "" -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "" @@ -445,16 +462,16 @@ msgstr "" msgid "Group not found!" msgstr "Aðferð í forritsskilum fannst ekki!" -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 #, fuzzy msgid "You are already a member of that group." msgstr "Þú ert nú þegar meðlimur í þessum hópi" -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "" -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, fuzzy, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Gat ekki bætt notandanum %s í hópinn %s" @@ -464,7 +481,7 @@ msgstr "Gat ekki bætt notandanum %s í hópinn %s" msgid "You are not a member of this group." msgstr "Þú ert ekki meðlimur í þessum hópi." -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, fuzzy, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Gat ekki fjarlægt notandann %s úr hópnum %s" @@ -496,7 +513,7 @@ msgstr "Ótæk stærð." #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -540,7 +557,7 @@ msgstr "" #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -563,13 +580,13 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 msgid "Account" msgstr "Aðgangur" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -655,12 +672,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%s færslur gerðar að uppáhaldsbabli af %s / %s." #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "Rás %s" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -696,7 +713,7 @@ msgstr "Svör við %s" msgid "Repeats of %s" msgstr "Svör við %s" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Babl merkt með %s" @@ -717,8 +734,7 @@ msgstr "" #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "Ekkert stuttnefni." @@ -730,7 +746,7 @@ msgstr "Engin stærð." msgid "Invalid size." msgstr "Ótæk stærð." -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Mynd" @@ -747,30 +763,30 @@ msgid "User without matching profile" msgstr "Notandi með enga persónulega síðu sem passar við" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Stillingar fyrir mynd" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Upphafleg mynd" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Forsýn" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 msgid "Delete" msgstr "Eyða" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "Hlaða upp" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "Skera af" @@ -779,7 +795,7 @@ msgid "Pick a square area of the image to be your avatar" msgstr "" "Veldu ferningslaga svæði á upphaflegu myndinni sem einkennismyndina þína" -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Týndum skráargögnunum okkar" @@ -812,23 +828,23 @@ msgid "" msgstr "" #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "Nei" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 #, fuzzy msgid "Do not block this user" msgstr "Opna á þennan notanda" #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Já" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 msgid "Block this user" msgstr "Loka á þennan notanda" @@ -836,39 +852,43 @@ msgstr "Loka á þennan notanda" msgid "Failed to save block information." msgstr "Mistókst að vista upplýsingar um notendalokun" -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 msgid "No such group." msgstr "Enginn þannig hópur." -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, php-format msgid "%s blocked profiles" msgstr "" -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, fuzzy, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%s og vinirnir, síða %d" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." msgstr "" -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 msgid "Unblock user from group" msgstr "" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "Opna" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 msgid "Unblock this user" msgstr "Opna á þennan notanda" @@ -949,7 +969,7 @@ msgstr "Þú ert ekki meðlimur í þessum hópi." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "Það komu upp vandamál varðandi setutókann þinn." @@ -975,12 +995,13 @@ msgstr "Gat ekki uppfært hóp." msgid "Delete this application" msgstr "Eyða þessu babli" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Ekki innskráð(ur)." @@ -1007,7 +1028,7 @@ msgstr "Ertu viss um að þú viljir eyða þessu babli?" msgid "Do not delete this notice" msgstr "" -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 msgid "Delete this notice" msgstr "Eyða þessu babli" @@ -1026,19 +1047,19 @@ msgstr "Þú getur ekki eytt stöðu annars notanda." msgid "Delete user" msgstr "Eyða" -#: actions/deleteuser.php:135 +#: 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 "" -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 #, fuzzy msgid "Delete this user" msgstr "Eyða þessu babli" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "" @@ -1145,6 +1166,17 @@ msgstr "" msgid "Reset back to default" msgstr "" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "Vista" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "" @@ -1247,30 +1279,30 @@ msgstr "Breyta hópnum %s" msgid "You must be logged in to create a group." msgstr "Þú verður að hafa skráð þig inn til að búa til hóp." -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: actions/editgroup.php:107 actions/editgroup.php:172 +#: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 #, fuzzy msgid "You must be an admin to edit the group." msgstr "Þú verður að vera stjórnandi til að geta breytt hópnum" -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "Notaðu þetta eyðublað til að breyta hópnum." -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, fuzzy, php-format msgid "description is too long (max %d chars)." msgstr "Lýsing er of löng (í mesta lagi 140 tákn)." -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 msgid "Could not update group." msgstr "Gat ekki uppfært hóp." -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 msgid "Could not create aliases." msgstr "" -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 msgid "Options saved." msgstr "Valmöguleikar vistaðir." @@ -1615,7 +1647,7 @@ msgstr "" msgid "User is not a member of group." msgstr "" -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 msgid "Block user from group" msgstr "" @@ -1648,87 +1680,87 @@ msgstr "Ekkert einkenni" msgid "You must be logged in to edit a group." msgstr "" -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 msgid "Group design" msgstr "" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." msgstr "" -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 msgid "Couldn't update your design." msgstr "" -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 msgid "Design preferences saved." msgstr "" -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "Einkennismynd hópsins" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "" -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 #, fuzzy msgid "User without matching profile." msgstr "Notandi með enga persónulega síðu sem passar við" -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "" -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 msgid "Logo updated." msgstr "Einkennismynd uppfærð." -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 msgid "Failed updating logo." msgstr "Tókst ekki að uppfæra einkennismynd" -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "Hópmeðlimir %s" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, fuzzy, php-format msgid "%1$s group members, page %2$d" msgstr "Hópmeðlimir %s, síða %d" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "Listi yfir notendur í þessum hóp." -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "Stjórnandi" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "Loka" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 msgid "Make user an admin of the group" msgstr "" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make Admin" msgstr "" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, fuzzy, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Færslur frá %1$s á %2$s!" @@ -1985,16 +2017,19 @@ msgstr "Persónuleg skilaboð" msgid "Optionally add a personal message to the invitation." msgstr "Bættu persónulegum skilaboðum við boðskortið ef þú vilt." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" msgstr "Senda" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s hefur boðið þér að slást í hópinn með þeim á %2$s" -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2055,7 +2090,12 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Þú verður að hafa skráð þig inn til að bæta þér í hóp." -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "Ekkert stuttnefni." + +#: actions/joingroup.php:141 #, fuzzy, php-format msgid "%1$s joined group %2$s" msgstr "%s bætti sér í hópinn %s" @@ -2064,11 +2104,11 @@ msgstr "%s bætti sér í hópinn %s" msgid "You must be logged in to leave a group." msgstr "Þú verður aða hafa skráð þig inn til að ganga úr hóp." -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 msgid "You are not a member of that group." msgstr "Þú ert ekki meðlimur í þessum hópi." -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, fuzzy, php-format msgid "%1$s left group %2$s" msgstr "%s gekk úr hópnum %s" @@ -2086,8 +2126,7 @@ msgstr "Rangt notendanafn eða lykilorð." msgid "Error setting user. You are probably not authorized." msgstr "Engin heimild." -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "Innskráning" @@ -2346,8 +2385,8 @@ msgstr "" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "Enginn stuðningur við gagnasnið." @@ -2494,7 +2533,7 @@ msgstr "Get ekki vistað nýja lykilorðið." msgid "Password saved." msgstr "Lykilorð vistað." -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "" @@ -2527,7 +2566,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 #, fuzzy msgid "Site" msgstr "Bjóða" @@ -2710,7 +2748,7 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 lágstafir eða tölustafir, engin greinarmerki eða bil" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "Fullt nafn" @@ -2741,7 +2779,7 @@ msgid "Bio" msgstr "Lýsing" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2826,7 +2864,8 @@ msgstr "Gat ekki vistað persónulega síðu." msgid "Couldn't save tags." msgstr "Gat ekki vistað merki." -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "Stillingar vistaðar." @@ -2839,45 +2878,45 @@ msgstr "" msgid "Could not retrieve public stream." msgstr "Gat ekki sótt efni úr almenningsveitu." -#: actions/public.php:129 +#: actions/public.php:130 #, php-format msgid "Public timeline, page %d" msgstr "Almenningsrás, síða %d" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "Almenningsrás" -#: actions/public.php:159 +#: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" msgstr "" -#: actions/public.php:163 +#: actions/public.php:164 msgid "Public Stream Feed (RSS 2.0)" msgstr "" -#: actions/public.php:167 +#: actions/public.php:168 msgid "Public Stream Feed (Atom)" msgstr "" -#: actions/public.php:187 +#: 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:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2886,7 +2925,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:246 +#: actions/public.php:247 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3059,8 +3098,7 @@ msgstr "" msgid "Registration successful" msgstr "Nýskráning tókst" -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "Nýskrá" @@ -3250,7 +3288,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:656 +#: actions/repeat.php:114 lib/noticelist.php:674 #, fuzzy msgid "Repeated" msgstr "Í sviðsljósinu" @@ -3259,47 +3297,47 @@ msgstr "Í sviðsljósinu" msgid "Repeated!" msgstr "" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "Svör við %s" -#: actions/replies.php:127 +#: actions/replies.php:128 #, fuzzy, php-format msgid "Replies to %1$s, page %2$d" msgstr "Skilaboð til %1$s á %2$s" -#: actions/replies.php:144 +#: actions/replies.php:145 #, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "" -#: actions/replies.php:151 +#: actions/replies.php:152 #, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "" -#: actions/replies.php:158 +#: actions/replies.php:159 #, fuzzy, php-format msgid "Replies feed for %s (Atom)" msgstr "Bablveita fyrir hópinn %s" -#: actions/replies.php:198 +#: actions/replies.php:199 #, 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 "" -#: actions/replies.php:203 +#: 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:205 +#: actions/replies.php:206 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3326,7 +3364,6 @@ msgid "User is already sandboxed." msgstr "" #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "" @@ -3351,7 +3388,7 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 #, fuzzy msgid "Save site settings" msgstr "Stillingar fyrir mynd" @@ -3386,7 +3423,7 @@ msgstr "Uppröðun" msgid "Description" msgstr "Lýsing" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Tölfræði" @@ -3448,35 +3485,35 @@ msgstr "Uppáhaldsbabl %s" msgid "Could not retrieve favorite notices." msgstr "Gat ekki sótt uppáhaldsbabl." -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, fuzzy, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "Bablveita uppáhaldsbabls %s" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, fuzzy, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "Bablveita uppáhaldsbabls %s" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, fuzzy, php-format msgid "Feed for favorites of %s (Atom)" msgstr "Bablveita uppáhaldsbabls %s" -#: actions/showfavorites.php:205 +#: 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:207 +#: 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 :)" msgstr "" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3484,7 +3521,7 @@ msgid "" "would add to their favorites :)" msgstr "" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "" @@ -3498,67 +3535,67 @@ msgstr "%s hópurinn" msgid "%1$s group, page %2$d" msgstr "Hópmeðlimir %s, síða %d" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 msgid "Group profile" msgstr "Hópssíðan" -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "Vefslóð" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 msgid "Note" msgstr "Athugasemd" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "Hópsaðgerðir" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, fuzzy, php-format msgid "FOAF for %s group" msgstr "%s hópurinn" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 msgid "Members" msgstr "Meðlimir" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Ekkert)" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "Allir meðlimir" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 msgid "Created" msgstr "" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3568,7 +3605,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:454 +#: actions/showgroup.php:462 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3577,7 +3614,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:482 +#: actions/showgroup.php:490 msgid "Admins" msgstr "" @@ -4040,22 +4077,22 @@ msgstr "Jabber snarskilaboðaþjónusta" msgid "SMS" msgstr "SMS" -#: actions/tag.php:68 +#: actions/tag.php:69 #, fuzzy, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "Notendur sjálfmerktir með %s - síða %d" -#: actions/tag.php:86 +#: actions/tag.php:87 #, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "" -#: actions/tag.php:92 +#: actions/tag.php:93 #, fuzzy, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "Bablveita fyrir %s" -#: actions/tag.php:98 +#: actions/tag.php:99 #, php-format msgid "Notice feed for tag %s (Atom)" msgstr "" @@ -4112,7 +4149,7 @@ msgstr "" msgid "No such tag." msgstr "Ekkert þannig merki." -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "Aðferð í forritsskilum er í þróun." @@ -4145,77 +4182,79 @@ msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +#, fuzzy +msgctxt "TITLE" msgid "User" msgstr "Notandi" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "" -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "" -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "" -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "Persónuleg síða" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "" -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 #, fuzzy msgid "New users" msgstr "Bjóða nýjum notendum að vera með" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "" -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 #, fuzzy msgid "Default subscription" msgstr "Allar áskriftir" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 #, fuzzy msgid "Automatically subscribe new users to this user." msgstr "" "Gerast sjálfkrafa áskrifandi að hverjum þeim sem gerist áskrifandi að þér " "(best fyrir ómannlega notendur)" -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 #, fuzzy msgid "Invitations" msgstr "Boðskort hefur verið sent út" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 #, fuzzy msgid "Invitations enabled" msgstr "Boðskort hefur verið sent út" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "" @@ -4399,7 +4438,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 #, fuzzy msgid "Version" msgstr "Persónulegt" @@ -4440,6 +4479,11 @@ msgstr "Gat ekki uppfært hóp." msgid "Group leave failed." msgstr "Hópssíðan" +#: classes/Local_group.php:41 +#, fuzzy +msgid "Could not update local group." +msgstr "Gat ekki uppfært hóp." + #: classes/Login_token.php:76 #, fuzzy, php-format msgid "Could not create login token for %s" @@ -4458,46 +4502,46 @@ msgstr "Gat ekki skeytt skilaboðum inn í." msgid "Could not update message with new URI." msgstr "Gat ekki uppfært skilaboð með nýju veffangi." -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "Gagnagrunnsvilla við innsetningu myllumerkis: %s" -#: classes/Notice.php:222 +#: classes/Notice.php:239 msgid "Problem saving notice. Too long." msgstr "" -#: classes/Notice.php:226 +#: classes/Notice.php:243 msgid "Problem saving notice. Unknown user." msgstr "Gat ekki vistað babl. Óþekktur notandi." -#: classes/Notice.php:231 +#: classes/Notice.php:248 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:237 +#: classes/Notice.php:254 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:243 +#: classes/Notice.php:260 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:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "Vandamál komu upp við að vista babl." -#: classes/Notice.php:882 +#: classes/Notice.php:911 #, fuzzy msgid "Problem saving group inbox." msgstr "Vandamál komu upp við að vista babl." -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4529,19 +4573,29 @@ msgstr "Gat ekki eytt áskrift." msgid "Couldn't delete subscription." msgstr "Gat ekki eytt áskrift." -#: classes/User.php:372 +#: classes/User.php:373 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:423 +#: classes/User_group.php:462 msgid "Could not create group." msgstr "Gat ekki búið til hóp." -#: classes/User_group.php:452 +#: classes/User_group.php:471 +#, fuzzy +msgid "Could not set group URI." +msgstr "Gat ekki skráð hópmeðlimi." + +#: classes/User_group.php:492 msgid "Could not set group membership." msgstr "Gat ekki skráð hópmeðlimi." +#: classes/User_group.php:506 +#, fuzzy +msgid "Could not save local group info." +msgstr "Gat ekki vistað áskrift." + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "Breyta persónulegu stillingunum þínum" @@ -4583,124 +4637,192 @@ msgstr "Ónafngreind síða" msgid "Primary site navigation" msgstr "Stikl aðalsíðu" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "Heim" - -#: lib/action.php:439 +#, fuzzy +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Persónuleg síða og vinarás" -#: lib/action.php:441 +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "Persónulegt" + +#. TRANS: Tooltip for main menu option "Account" +#: lib/action.php:444 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "" "Breyttu tölvupóstinum þínum, einkennismyndinni þinni, lykilorðinu þínu, " "persónulegu síðunni þinni" -#: lib/action.php:444 -msgid "Connect" -msgstr "Tengjast" +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "Aðgangur" -#: lib/action.php:444 +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 #, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Gat ekki framsent til vefþjóns: %s" -#: lib/action.php:448 +#: lib/action.php:453 +#, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "Tengjast" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 #, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Stikl aðalsíðu" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" -msgstr "Bjóða" +#: lib/action.php:460 +#, fuzzy +msgctxt "MENU" +msgid "Admin" +msgstr "Stjórnandi" -#: lib/action.php:453 lib/subgroupnav.php:106 -#, php-format +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 +#, fuzzy, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Bjóða vinum og vandamönnum að slást í hópinn á %s" -#: lib/action.php:458 -msgid "Logout" -msgstr "Útskráning" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "Bjóða" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +#, fuzzy +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Skrá þig út af síðunni" -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "Útskráning" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 +#, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "Búa til aðgang" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "Nýskrá" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +#, fuzzy +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Skrá þig inn á síðuna" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "Hjálp" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "Innskráning" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 +#, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "Hjálp!" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "Leita" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "Hjálp" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +#, fuzzy +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Leita að fólki eða texta" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "Leita" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 msgid "Site notice" msgstr "Babl vefsíðunnar" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "Staðbundin sýn" -#: lib/action.php:625 +#: lib/action.php:656 msgid "Page notice" msgstr "Babl síðunnar" -#: lib/action.php:727 +#: lib/action.php:758 msgid "Secondary site navigation" msgstr "Stikl undirsíðu" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "Hjálp" + +#: lib/action.php:765 msgid "About" msgstr "Um" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "Spurt og svarað" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "Friðhelgi" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "Frumþula" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "Tengiliður" -#: lib/action.php:751 +#: lib/action.php:782 msgid "Badge" msgstr "" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "Hugbúnaðarleyfi StatusNet" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4709,12 +4831,12 @@ msgstr "" "**%%site.name%%** er örbloggsþjónusta í boði [%%site.broughtby%%](%%site." "broughtbyurl%%). " -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** er örbloggsþjónusta." -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4725,116 +4847,168 @@ msgstr "" "sem er gefinn út undir [GNU Affero almenningsleyfinu](http://www.fsf.org/" "licensing/licenses/agpl-3.0.html)." -#: lib/action.php:801 +#: lib/action.php:832 #, fuzzy msgid "Site content license" msgstr "Hugbúnaðarleyfi StatusNet" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "Allt " -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "leyfi." -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "Uppröðun" -#: lib/action.php:1141 +#: lib/action.php:1172 msgid "After" msgstr "Eftir" -#: lib/action.php:1149 +#: lib/action.php:1180 msgid "Before" msgstr "Áður" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 #, fuzzy msgid "You cannot make changes to this site." msgstr "Þú getur ekki sent þessum notanda skilaboð." -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 #, fuzzy msgid "Changes to that panel are not allowed." msgstr "Nýskráning ekki leyfð." -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 #, fuzzy msgid "showForm() not implemented." msgstr "Skipun hefur ekki verið fullbúin" -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 #, fuzzy msgid "saveSettings() not implemented." msgstr "Skipun hefur ekki verið fullbúin" -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 msgid "Unable to delete design setting." msgstr "" -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 #, fuzzy msgid "Basic site configuration" msgstr "Staðfesting tölvupóstfangs" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "Bjóða" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 #, fuzzy msgid "Design configuration" msgstr "SMS staðfesting" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "Persónulegt" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 #, fuzzy msgid "User configuration" msgstr "SMS staðfesting" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +#, fuzzy +msgctxt "MENU" +msgid "User" +msgstr "Notandi" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 #, fuzzy msgid "Access configuration" msgstr "SMS staðfesting" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "Samþykkja" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 #, fuzzy msgid "Paths configuration" msgstr "SMS staðfesting" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +msgctxt "MENU" +msgid "Paths" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 #, fuzzy msgid "Sessions configuration" msgstr "SMS staðfesting" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "Persónulegt" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4929,12 +5103,12 @@ msgstr "" msgid "Tags for this attachment" msgstr "" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 #, fuzzy msgid "Password changing failed" msgstr "Lykilorðabreyting" -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 #, fuzzy msgid "Password changing is not allowed" msgstr "Lykilorðabreyting" @@ -5215,20 +5389,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:148 #, fuzzy msgid "No configuration file found. " msgstr "Enginn staðfestingarlykill." -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:152 #, fuzzy msgid "Go to the installer." msgstr "Skrá þig inn á síðuna" @@ -5420,23 +5594,23 @@ msgstr "Kerfisvilla kom upp við upphal skráar." msgid "Not an image or corrupt file." msgstr "Annaðhvort ekki mynd eða þá að skráin er gölluð." -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "Skráarsnið myndar ekki stutt." -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Týndum skránni okkar" -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "Óþekkt skráargerð" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "" @@ -5741,6 +5915,12 @@ msgstr "Til" msgid "Available characters" msgstr "Leyfileg tákn" +#: lib/messageform.php:178 lib/noticeform.php:236 +#, fuzzy +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "Senda" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Senda babl" @@ -5800,24 +5980,24 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 msgid "in context" msgstr "" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 #, fuzzy msgid "Repeated by" msgstr "Í sviðsljósinu" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 msgid "Reply to this notice" msgstr "Svara þessu babli" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 msgid "Reply" msgstr "Svara" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 #, fuzzy msgid "Notice repeated" msgstr "Babl sent inn" @@ -5867,6 +6047,10 @@ msgstr "Svör" msgid "Favorites" msgstr "Uppáhald" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "Notandi" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Innhólf" @@ -5960,7 +6144,7 @@ msgstr "Svara þessu babli" msgid "Repeat this notice" msgstr "Svara þessu babli" -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "" @@ -5982,6 +6166,10 @@ msgstr "" msgid "Keyword(s)" msgstr "" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "Leita" + #: lib/searchaction.php:162 msgid "Search help" msgstr "" @@ -6035,6 +6223,15 @@ msgstr "Fólk sem eru áskrifendur að %s" msgid "Groups %s is a member of" msgstr "Hópar sem %s er meðlimur í" +#: lib/subgroupnav.php:105 +msgid "Invite" +msgstr "Bjóða" + +#: lib/subgroupnav.php:106 +#, php-format +msgid "Invite friends and colleagues to join you on %s" +msgstr "Bjóða vinum og vandamönnum að slást í hópinn á %s" + #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 msgid "People Tagcloud as self-tagged" @@ -6107,47 +6304,47 @@ msgstr "Skilaboð" msgid "Moderate" msgstr "" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "fyrir nokkrum sekúndum" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "fyrir um einni mínútu síðan" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "fyrir um %d mínútum síðan" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "fyrir um einum klukkutíma síðan" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "fyrir um %d klukkutímum síðan" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "fyrir um einum degi síðan" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "fyrir um %d dögum síðan" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "fyrir um einum mánuði síðan" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "fyrir um %d mánuðum síðan" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "fyrir um einu ári síðan" diff --git a/locale/it/LC_MESSAGES/statusnet.po b/locale/it/LC_MESSAGES/statusnet.po index 7e3d7998a..61d4cfaf9 100644 --- a/locale/it/LC_MESSAGES/statusnet.po +++ b/locale/it/LC_MESSAGES/statusnet.po @@ -9,77 +9,84 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:51:09+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:03:07+0000\n" "Language-Team: Italian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: it\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 msgid "Access" msgstr "Accesso" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 msgid "Site access settings" msgstr "Impostazioni di accesso al sito" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 msgid "Registration" msgstr "Registrazione" -#: actions/accessadminpanel.php:161 -msgid "Private" -msgstr "Privato" - -#: actions/accessadminpanel.php:163 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "" "Proibire agli utenti anonimi (che non hanno effettuato l'accesso) di vedere " "il sito?" +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -msgid "Invite only" -msgstr "Solo invito" +#, fuzzy +msgctxt "LABEL" +msgid "Private" +msgstr "Privato" -#: actions/accessadminpanel.php:169 +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 msgid "Make registration invitation only." msgstr "Rende la registrazione solo su invito" -#: actions/accessadminpanel.php:173 -msgid "Closed" -msgstr "Chiuso" +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 +msgid "Invite only" +msgstr "Solo invito" -#: actions/accessadminpanel.php:175 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 msgid "Disable new registrations." msgstr "Disabilita la creazione di nuovi account" -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "Salva" +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 +msgid "Closed" +msgstr "Chiuso" -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 msgid "Save access settings" msgstr "Salva impostazioni di accesso" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "Salva" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page" msgstr "Pagina inesistente." -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -93,45 +100,53 @@ msgstr "Pagina inesistente." #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "Utente inesistente." -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s e amici, pagina %2$d" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s e amici" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Feed degli amici di %s (RSS 1.0)" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Feed degli amici di %s (RSS 2.0)" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Feed degli amici di %s (Atom)" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." @@ -139,7 +154,7 @@ msgstr "" "Questa è l'attività di %s e i suoi amici, ma nessuno ha ancora scritto " "qualche cosa." -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -148,7 +163,8 @@ msgstr "" "Prova ad abbonarti a più persone, [entra in un gruppo](%%action.groups%%) o " "scrivi un messaggio." -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " @@ -158,7 +174,7 @@ msgstr "" "qualche cosa alla sua attenzione](%%%%action.newnotice%%%%?status_textarea=%3" "$s)." -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -167,7 +183,8 @@ msgstr "" "Perché non [crei un account](%%%%action.register%%%%) e richiami %s o scrivi " "un messaggio alla sua attenzione." -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 msgid "You and friends" msgstr "Tu e i tuoi amici" @@ -185,20 +202,20 @@ msgstr "Messaggi da %1$s e amici su %2$s!" #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 msgid "API method not found." msgstr "Metodo delle API non trovato." @@ -232,8 +249,9 @@ msgstr "Impossibile aggiornare l'utente." #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "L'utente non ha un profilo." @@ -259,7 +277,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: 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." @@ -369,7 +387,7 @@ msgstr "Impossibile determinare l'utente sorgente." msgid "Could not find target user." msgstr "Impossibile trovare l'utente destinazione." -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." @@ -377,62 +395,62 @@ msgstr "" "Il soprannome deve essere composto solo da lettere minuscole e numeri, senza " "spazi." -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Soprannome già in uso. Prova con un altro." -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Non è un soprannome valido." -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "L'indirizzo della pagina web non è valido." -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Nome troppo lungo (max 255 caratteri)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "La descrizione è troppo lunga (max %d caratteri)." -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Ubicazione troppo lunga (max 255 caratteri)." -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "Troppi alias! Massimo %d." -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Alias non valido: \"%s\"" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "L'alias \"%s\" è già in uso. Prova con un altro." -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "L'alias non può essere lo stesso del soprannome." @@ -443,15 +461,15 @@ msgstr "L'alias non può essere lo stesso del soprannome." msgid "Group not found!" msgstr "Gruppo non trovato!" -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 msgid "You are already a member of that group." msgstr "Fai già parte di quel gruppo." -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "L'amministratore ti ha bloccato l'accesso a quel gruppo." -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Impossibile iscrivere l'utente %1$s al gruppo %2$s." @@ -460,7 +478,7 @@ msgstr "Impossibile iscrivere l'utente %1$s al gruppo %2$s." msgid "You are not a member of this group." msgstr "Non fai parte di questo gruppo." -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Impossibile rimuovere l'utente %1$s dal gruppo %2$s." @@ -491,7 +509,7 @@ msgstr "Token non valido." #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -535,7 +553,7 @@ msgstr "Il token di richiesta %s è stato rifiutato o revocato." #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -561,13 +579,13 @@ msgstr "" "%3$s ai dati del tuo account %4$s. È consigliato fornire " "accesso al proprio account %4$s solo ad applicazioni di cui ci si può fidare." -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 msgid "Account" msgstr "Account" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -650,12 +668,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s aggiornamenti preferiti da %2$s / %3$s" #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "Attività di %s" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -691,7 +709,7 @@ msgstr "Ripetuto a %s" msgid "Repeats of %s" msgstr "Ripetizioni di %s" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Messaggi etichettati con %s" @@ -712,8 +730,7 @@ msgstr "Nessun allegato." #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "Nessun soprannome." @@ -725,7 +742,7 @@ msgstr "Nessuna dimensione." msgid "Invalid size." msgstr "Dimensione non valida." -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Immagine" @@ -743,30 +760,30 @@ msgid "User without matching profile" msgstr "Utente senza profilo corrispondente" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Impostazioni immagine" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Originale" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Anteprima" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 msgid "Delete" msgstr "Elimina" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "Carica" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "Ritaglia" @@ -774,7 +791,7 @@ msgstr "Ritaglia" msgid "Pick a square area of the image to be your avatar" msgstr "Scegli un'area quadrata per la tua immagine personale" -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Perso il nostro file di dati." @@ -809,22 +826,22 @@ msgstr "" "risposte che ti invierà." #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "No" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 msgid "Do not block this user" msgstr "Non bloccare questo utente" #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Sì" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 msgid "Block this user" msgstr "Blocca questo utente" @@ -832,39 +849,43 @@ msgstr "Blocca questo utente" msgid "Failed to save block information." msgstr "Salvataggio delle informazioni per il blocco non riuscito." -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 msgid "No such group." msgstr "Nessuna gruppo." -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, php-format msgid "%s blocked profiles" msgstr "Profili bloccati di %s" -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "Profili bloccati di %1$s, pagina %2$d" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." msgstr "Un elenco degli utenti a cui è bloccato l'accesso a questo gruppo." -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 msgid "Unblock user from group" msgstr "Sblocca l'utente dal gruppo" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "Sblocca" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 msgid "Unblock this user" msgstr "Sblocca questo utente" @@ -939,7 +960,7 @@ msgstr "Questa applicazione non è di tua proprietà." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "Si è verificato un problema con il tuo token di sessione." @@ -964,12 +985,13 @@ msgstr "Non eliminare l'applicazione" msgid "Delete this application" msgstr "Elimina l'applicazione" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Accesso non effettuato." @@ -998,7 +1020,7 @@ msgstr "Vuoi eliminare questo messaggio?" msgid "Do not delete this notice" msgstr "Non eliminare il messaggio" -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 msgid "Delete this notice" msgstr "Elimina questo messaggio" @@ -1014,7 +1036,7 @@ msgstr "Puoi eliminare solo gli utenti locali." msgid "Delete user" msgstr "Elimina utente" -#: actions/deleteuser.php:135 +#: 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." @@ -1022,12 +1044,12 @@ msgstr "" "Vuoi eliminare questo utente? Questa azione eliminerà tutti i dati " "dell'utente dal database, senza una copia di sicurezza." -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 msgid "Delete this user" msgstr "Elimina questo utente" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "Aspetto" @@ -1130,6 +1152,17 @@ msgstr "Ripristina i valori predefiniti" msgid "Reset back to default" msgstr "Reimposta i valori predefiniti" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "Salva" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "Salva aspetto" @@ -1221,29 +1254,29 @@ msgstr "Modifica il gruppo %s" msgid "You must be logged in to create a group." msgstr "Devi eseguire l'accesso per creare un gruppo." -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: 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 "Devi essere amministratore per modificare il gruppo." -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "Usa questo modulo per modificare il gruppo." -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, php-format msgid "description is too long (max %d chars)." msgstr "La descrizione è troppo lunga (max %d caratteri)." -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 msgid "Could not update group." msgstr "Impossibile aggiornare il gruppo." -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 msgid "Could not create aliases." msgstr "Impossibile creare gli alias." -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 msgid "Options saved." msgstr "Opzioni salvate." @@ -1587,7 +1620,7 @@ msgstr "L'utente è già bloccato dal gruppo." msgid "User is not a member of group." msgstr "L'utente non fa parte del gruppo." -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 msgid "Block user from group" msgstr "Blocca l'utente dal gruppo" @@ -1622,11 +1655,11 @@ msgstr "Nessun ID." msgid "You must be logged in to edit a group." msgstr "Devi eseguire l'accesso per modificare un gruppo." -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 msgid "Group design" msgstr "Aspetto del gruppo" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." @@ -1634,20 +1667,20 @@ msgstr "" "Personalizza l'aspetto del tuo gruppo con un'immagine di sfondo e dei colori " "personalizzati." -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 msgid "Couldn't update your design." msgstr "Impossibile aggiornare l'aspetto." -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 msgid "Design preferences saved." msgstr "Preferenze dell'aspetto salvate." -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "Logo del gruppo" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." @@ -1655,57 +1688,57 @@ msgstr "" "Puoi caricare un'immagine per il logo del tuo gruppo. La dimensione massima " "del file è di %s." -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 msgid "User without matching profile." msgstr "Utente senza profilo corrispondente." -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Scegli un'area quadrata dell'immagine per il logo." -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 msgid "Logo updated." msgstr "Logo aggiornato." -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 msgid "Failed updating logo." msgstr "Aggiornamento del logo non riuscito." -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "Membri del gruppo %s" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, php-format msgid "%1$s group members, page %2$d" msgstr "Membri del gruppo %1$s, pagina %2$d" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "Un elenco degli utenti in questo gruppo." -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "Amministra" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "Blocca" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 msgid "Make user an admin of the group" msgstr "Rende l'utente amministratore del gruppo" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make Admin" msgstr "Rendi amm." -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "Rende questo utente un amministratore" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Messaggi dai membri di %1$s su %2$s!" @@ -1969,16 +2002,19 @@ msgstr "Messaggio personale" msgid "Optionally add a personal message to the invitation." msgstr "Puoi aggiungere un messaggio personale agli inviti." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" msgstr "Invia" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "Hai ricevuto un invito per seguire %1$s su %2$s" -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2039,7 +2075,11 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Devi eseguire l'accesso per iscriverti a un gruppo." -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Nessun soprannome o ID." + +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s fa ora parte del gruppo %2$s" @@ -2048,11 +2088,11 @@ msgstr "%1$s fa ora parte del gruppo %2$s" msgid "You must be logged in to leave a group." msgstr "Devi eseguire l'accesso per lasciare un gruppo." -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 msgid "You are not a member of that group." msgstr "Non fai parte di quel gruppo." -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s ha lasciato il gruppo %2$s" @@ -2069,8 +2109,7 @@ msgstr "Nome utente o password non corretto." msgid "Error setting user. You are probably not authorized." msgstr "Errore nell'impostare l'utente. Forse non hai l'autorizzazione." -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "Accedi" @@ -2324,8 +2363,8 @@ msgstr "tipo di contenuto " msgid "Only " msgstr "Solo " -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "Non è un formato di dati supportato." @@ -2466,7 +2505,7 @@ msgstr "Impossibile salvare la nuova password." msgid "Password saved." msgstr "Password salvata." -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "Percorsi" @@ -2499,7 +2538,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "Server SSL non valido. La lunghezza massima è di 255 caratteri." #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 msgid "Site" msgstr "Sito" @@ -2674,7 +2712,7 @@ msgstr "" "1-64 lettere minuscole o numeri, senza spazi o simboli di punteggiatura" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "Nome" @@ -2702,7 +2740,7 @@ msgid "Bio" msgstr "Biografia" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2785,7 +2823,8 @@ msgstr "Impossibile salvare il profilo." msgid "Couldn't save tags." msgstr "Impossibile salvare le etichette." -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "Impostazioni salvate." @@ -2798,28 +2837,28 @@ msgstr "Oltre il limite della pagina (%s)" msgid "Could not retrieve public stream." msgstr "Impossibile recuperare l'attività pubblica." -#: actions/public.php:129 +#: actions/public.php:130 #, php-format msgid "Public timeline, page %d" msgstr "Attività pubblica, pagina %d" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "Attività pubblica" -#: actions/public.php:159 +#: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" msgstr "Feed dell'attività pubblica (RSS 1.0)" -#: actions/public.php:163 +#: actions/public.php:164 msgid "Public Stream Feed (RSS 2.0)" msgstr "Feed dell'attività pubblica (RSS 2.0)" -#: actions/public.php:167 +#: actions/public.php:168 msgid "Public Stream Feed (Atom)" msgstr "Feed dell'attività pubblica (Atom)" -#: actions/public.php:187 +#: actions/public.php:188 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " @@ -2828,18 +2867,18 @@ msgstr "" "Questa è l'attività pubblica di %%site.name%%, ma nessuno ha ancora scritto " "qualche cosa." -#: actions/public.php:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "Fallo tu!" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" "Perché non [crei un account](%%action.register%%) e scrivi qualche cosa!" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2852,7 +2891,7 @@ msgstr "" "net/). [Registrati](%%action.register%%) per condividere messaggi con i tuoi " "amici, i tuoi familiari e colleghi! ([Maggiori informazioni](%%doc.help%%))" -#: actions/public.php:246 +#: actions/public.php:247 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3029,10 +3068,9 @@ msgstr "Codice di invito non valido." msgid "Registration successful" msgstr "Registrazione riuscita" -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" -msgstr "Registra" +msgstr "Registrati" #: actions/register.php:135 msgid "Registration not allowed." @@ -3218,7 +3256,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:656 +#: actions/repeat.php:114 lib/noticelist.php:674 msgid "Repeated" msgstr "Ripetuti" @@ -3226,33 +3264,33 @@ msgstr "Ripetuti" msgid "Repeated!" msgstr "Ripetuti!" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "Risposte a %s" -#: actions/replies.php:127 +#: actions/replies.php:128 #, php-format msgid "Replies to %1$s, page %2$d" msgstr "Risposte a %1$s, pagina %2$d" -#: actions/replies.php:144 +#: actions/replies.php:145 #, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "Feed delle risposte di %s (RSS 1.0)" -#: actions/replies.php:151 +#: actions/replies.php:152 #, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "Feed delle risposte di %s (RSS 2.0)" -#: actions/replies.php:158 +#: actions/replies.php:159 #, php-format msgid "Replies feed for %s (Atom)" msgstr "Feed delle risposte di %s (Atom)" -#: actions/replies.php:198 +#: actions/replies.php:199 #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " @@ -3261,7 +3299,7 @@ msgstr "" "Questa è l'attività delle risposte a %1$s, ma %2$s non ha ricevuto ancora " "alcun messaggio." -#: actions/replies.php:203 +#: actions/replies.php:204 #, php-format msgid "" "You can engage other users in a conversation, subscribe to more people or " @@ -3270,7 +3308,7 @@ msgstr "" "Puoi avviare una discussione con altri utenti, abbonarti a più persone o " "[entrare in qualche gruppo](%%action.groups%%)." -#: actions/replies.php:205 +#: actions/replies.php:206 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3297,7 +3335,6 @@ msgid "User is already sandboxed." msgstr "L'utente è già nella \"sandbox\"." #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "Sessioni" @@ -3322,7 +3359,7 @@ msgid "Turn on debugging output for sessions." msgstr "Abilita il debug per le sessioni" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Salva impostazioni" @@ -3352,7 +3389,7 @@ msgstr "Organizzazione" msgid "Description" msgstr "Descrizione" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Statistiche" @@ -3415,22 +3452,22 @@ msgstr "Messaggi preferiti di %1$s, pagina %2$d" msgid "Could not retrieve favorite notices." msgstr "Impossibile recuperare i messaggi preferiti." -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "Feed dei preferiti di %s (RSS 1.0)" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "Feed dei preferiti di %s (RSS 2.0)" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" msgstr "Feed dei preferiti di di %s (Atom)" -#: actions/showfavorites.php:205 +#: 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." @@ -3438,7 +3475,7 @@ msgstr "" "Non hai ancora scelto alcun messaggio come preferito. Fai clic sul pulsate a " "forma di cuore per salvare i messaggi e rileggerli in un altro momento." -#: actions/showfavorites.php:207 +#: actions/showfavorites.php:208 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Post something interesting " @@ -3447,7 +3484,7 @@ 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:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3458,7 +3495,7 @@ msgstr "" "account](%%%%action.register%%%%) e quindi scrivi qualche cosa di " "interessante in modo che lo inserisca tra i suoi preferiti. :)" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "Questo è un modo per condividere ciò che ti piace." @@ -3472,67 +3509,67 @@ msgstr "Gruppo %s" msgid "%1$s group, page %2$d" msgstr "Gruppi di %1$s, pagina %2$d" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 msgid "Group profile" msgstr "Profilo del gruppo" -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "URL" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 msgid "Note" msgstr "Nota" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "Alias" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "Azioni dei gruppi" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Feed dei messaggi per il gruppo %s (RSS 1.0)" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Feed dei messaggi per il gruppo %s (RSS 2.0)" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Feed dei messaggi per il gruppo %s (Atom)" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, php-format msgid "FOAF for %s group" msgstr "FOAF per il gruppo %s" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 msgid "Members" msgstr "Membri" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(nessuno)" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "Tutti i membri" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 msgid "Created" msgstr "Creato" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3548,7 +3585,7 @@ msgstr "" "stesso](%%%%action.register%%%%) per far parte di questo gruppo e di molti " "altri! ([Maggiori informazioni](%%%%doc.help%%%%))" -#: actions/showgroup.php:454 +#: actions/showgroup.php:462 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3560,7 +3597,7 @@ msgstr "" "(http://it.wikipedia.org/wiki/Microblogging) basato sul software libero " "[StatusNet](http://status.net/)." -#: actions/showgroup.php:482 +#: actions/showgroup.php:490 msgid "Admins" msgstr "Amministratori" @@ -3934,17 +3971,16 @@ msgstr "Impossibile salvare l'abbonamento." #: actions/subscribe.php:77 msgid "This action only accepts POST requests." -msgstr "" +msgstr "Quest'azione accetta solo richieste POST." #: actions/subscribe.php:107 -#, fuzzy msgid "No such profile." -msgstr "Nessun file." +msgstr "Nessun profilo." #: actions/subscribe.php:117 -#, fuzzy msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." -msgstr "Non hai una abbonamento a quel profilo." +msgstr "" +"Non è possibile abbonarsi a un profilo remoto OMB 0.1 con quest'azione." #: actions/subscribe.php:145 msgid "Subscribed" @@ -4038,22 +4074,22 @@ msgstr "Jabber" msgid "SMS" msgstr "SMS" -#: actions/tag.php:68 +#: actions/tag.php:69 #, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "Messaggi etichettati con %1$s, pagina %2$d" -#: actions/tag.php:86 +#: actions/tag.php:87 #, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "Feed dei messaggi per l'etichetta %s (RSS 1.0)" -#: actions/tag.php:92 +#: actions/tag.php:93 #, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "Feed dei messaggi per l'etichetta %s (RSS 2.0)" -#: actions/tag.php:98 +#: actions/tag.php:99 #, php-format msgid "Notice feed for tag %s (Atom)" msgstr "Feed dei messaggi per l'etichetta %s (Atom)" @@ -4109,7 +4145,7 @@ msgstr "" msgid "No such tag." msgstr "Nessuna etichetta." -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "Metodo delle API in lavorazione." @@ -4141,71 +4177,73 @@ msgstr "" "La licenza \"%1$s\" dello stream di chi ascolti non è compatibile con la " "licenza \"%2$s\" di questo sito." -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +#, fuzzy +msgctxt "TITLE" msgid "User" msgstr "Utente" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "Impostazioni utente per questo sito StatusNet." -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "Limite per la biografia non valido. Deve essere numerico." -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "" "Testo di benvenuto non valido. La lunghezza massima è di 255 caratteri." -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "Abbonamento predefinito non valido: \"%1$s\" non è un utente." -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "Profilo" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "Limite biografia" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "Lunghezza massima in caratteri della biografia" -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 msgid "New users" msgstr "Nuovi utenti" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "Messaggio per nuovi utenti" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "Messaggio di benvenuto per nuovi utenti (max 255 caratteri)" -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 msgid "Default subscription" msgstr "Abbonamento predefinito" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 msgid "Automatically subscribe new users to this user." msgstr "Abbonare automaticamente i nuovi utenti a questo utente" -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 msgid "Invitations" msgstr "Inviti" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 msgid "Invitations enabled" msgstr "Inviti abilitati" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "Indica se consentire agli utenti di invitarne di nuovi" @@ -4400,7 +4438,7 @@ msgstr "" msgid "Plugins" msgstr "Plugin" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 msgid "Version" msgstr "Versione" @@ -4441,6 +4479,10 @@ msgstr "Non si fa parte del gruppo." msgid "Group leave failed." msgstr "Uscita dal gruppo non riuscita." +#: classes/Local_group.php:41 +msgid "Could not update local group." +msgstr "Impossibile aggiornare il gruppo locale." + #: classes/Login_token.php:76 #, php-format msgid "Could not create login token for %s" @@ -4458,27 +4500,27 @@ msgstr "Impossibile inserire il messaggio." msgid "Could not update message with new URI." msgstr "Impossibile aggiornare il messaggio con il nuovo URI." -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "Errore del DB nell'inserire un hashtag: %s" -#: classes/Notice.php:222 +#: classes/Notice.php:239 msgid "Problem saving notice. Too long." msgstr "Problema nel salvare il messaggio. Troppo lungo." -#: classes/Notice.php:226 +#: classes/Notice.php:243 msgid "Problem saving notice. Unknown user." msgstr "Problema nel salvare il messaggio. Utente sconosciuto." -#: classes/Notice.php:231 +#: classes/Notice.php:248 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:237 +#: classes/Notice.php:254 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4486,19 +4528,19 @@ msgstr "" "Troppi messaggi duplicati troppo velocemente; fai una pausa e scrivi di " "nuovo tra qualche minuto." -#: classes/Notice.php:243 +#: classes/Notice.php:260 msgid "You are banned from posting notices on this site." msgstr "Ti è proibito inviare messaggi su questo sito." -#: classes/Notice.php:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "Problema nel salvare il messaggio." -#: classes/Notice.php:882 +#: classes/Notice.php:911 msgid "Problem saving group inbox." msgstr "Problema nel salvare la casella della posta del gruppo." -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4527,19 +4569,27 @@ msgstr "Impossibile eliminare l'auto-abbonamento." msgid "Couldn't delete subscription." msgstr "Impossibile eliminare l'abbonamento." -#: classes/User.php:372 +#: classes/User.php:373 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Benvenuti su %1$s, @%2$s!" -#: classes/User_group.php:423 +#: classes/User_group.php:462 msgid "Could not create group." msgstr "Impossibile creare il gruppo." -#: classes/User_group.php:452 +#: classes/User_group.php:471 +msgid "Could not set group URI." +msgstr "Impossibile impostare l'URI del gruppo." + +#: classes/User_group.php:492 msgid "Could not set group membership." msgstr "Impossibile impostare la membership al gruppo." +#: classes/User_group.php:506 +msgid "Could not save local group info." +msgstr "Impossibile salvare le informazioni del gruppo locale." + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "Modifica le impostazioni del tuo profilo" @@ -4581,120 +4631,190 @@ msgstr "Pagina senza nome" msgid "Primary site navigation" msgstr "Esplorazione sito primaria" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "Home" - -#: lib/action.php:439 +#, fuzzy +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Profilo personale e attività degli amici" -#: lib/action.php:441 +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "Personale" + +#. TRANS: Tooltip for main menu option "Account" +#: lib/action.php:444 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Modifica la tua email, immagine, password o il tuo profilo" -#: lib/action.php:444 -msgid "Connect" -msgstr "Connetti" +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "Account" -#: lib/action.php:444 +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 +#, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Connettiti con altri servizi" -#: lib/action.php:448 +#: lib/action.php:453 +#, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "Connetti" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Modifica la configurazione del sito" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" -msgstr "Invita" +#: lib/action.php:460 +#, fuzzy +msgctxt "MENU" +msgid "Admin" +msgstr "Amministra" -#: lib/action.php:453 lib/subgroupnav.php:106 -#, php-format +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 +#, fuzzy, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Invita amici e colleghi a seguirti su %s" -#: lib/action.php:458 -msgid "Logout" -msgstr "Esci" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "Invita" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +#, fuzzy +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Termina la tua sessione sul sito" -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "Esci" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 +#, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "Crea un account" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "Registrati" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +#, fuzzy +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Accedi al sito" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "Aiuto" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "Accedi" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 +#, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "Aiutami!" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "Cerca" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "Aiuto" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +#, fuzzy +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Cerca persone o del testo" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "Cerca" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 msgid "Site notice" msgstr "Messaggio del sito" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "Viste locali" -#: lib/action.php:625 +#: lib/action.php:656 msgid "Page notice" msgstr "Pagina messaggio" -#: lib/action.php:727 +#: lib/action.php:758 msgid "Secondary site navigation" msgstr "Esplorazione secondaria del sito" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "Aiuto" + +#: lib/action.php:765 msgid "About" msgstr "Informazioni" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "FAQ" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "TOS" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "Privacy" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "Sorgenti" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "Contatti" -#: lib/action.php:751 +#: lib/action.php:782 msgid "Badge" msgstr "Badge" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "Licenza del software StatusNet" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4703,12 +4823,12 @@ msgstr "" "**%%site.name%%** è un servizio di microblog offerto da [%%site.broughtby%%]" "(%%site.broughtbyurl%%). " -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** è un servizio di microblog. " -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4719,110 +4839,163 @@ msgstr "" "s, disponibile nei termini della licenza [GNU Affero General Public License]" "(http://www.fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:801 +#: lib/action.php:832 msgid "Site content license" msgstr "Licenza del contenuto del sito" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "I contenuti e i dati di %1$s sono privati e confidenziali." -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" "I contenuti e i dati sono copyright di %1$s. Tutti i diritti riservati." -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "I contenuti e i dati sono forniti dai collaboratori. Tutti i diritti " "riservati." -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "Tutti " -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "licenza." -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "Paginazione" -#: lib/action.php:1141 +#: lib/action.php:1172 msgid "After" msgstr "Successivi" -#: lib/action.php:1149 +#: lib/action.php:1180 msgid "Before" msgstr "Precedenti" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." -msgstr "" +msgstr "Impossibile gestire contenuti remoti." -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." -msgstr "" +msgstr "Impossibile gestire contenuti XML incorporati." -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." -msgstr "" +msgstr "Impossibile gestire contenuti Base64." -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." msgstr "Non puoi apportare modifiche al sito." -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 msgid "Changes to that panel are not allowed." msgstr "Le modifiche al pannello non sono consentite." -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 msgid "showForm() not implemented." msgstr "showForm() non implementata." -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 msgid "saveSettings() not implemented." msgstr "saveSettings() non implementata." -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 msgid "Unable to delete design setting." msgstr "Impossibile eliminare le impostazioni dell'aspetto." -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 msgid "Basic site configuration" msgstr "Configurazione di base" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "Sito" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 msgid "Design configuration" msgstr "Configurazione aspetto" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "Aspetto" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 msgid "User configuration" msgstr "Configurazione utente" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +#, fuzzy +msgctxt "MENU" +msgid "User" +msgstr "Utente" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 msgid "Access configuration" msgstr "Configurazione di accesso" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "Accesso" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 msgid "Paths configuration" msgstr "Configurazione percorsi" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +#, fuzzy +msgctxt "MENU" +msgid "Paths" +msgstr "Percorsi" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 msgid "Sessions configuration" msgstr "Configurazione sessioni" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "Sessioni" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" "Le risorse API richiedono accesso lettura-scrittura, ma si dispone del solo " "accesso in lettura." -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4915,11 +5088,11 @@ msgstr "Messaggi in cui appare questo allegato" msgid "Tags for this attachment" msgstr "Etichette per questo allegato" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 msgid "Password changing failed" msgstr "Modifica della password non riuscita" -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 msgid "Password changing is not allowed" msgstr "La modifica della password non è permessa" @@ -5120,9 +5293,9 @@ msgstr "" "minuti: %s" #: lib/command.php:692 -#, fuzzy, php-format +#, php-format msgid "Unsubscribed %s" -msgstr "Abbonamento a %s annullato" +msgstr "%s ha annullato l'abbonamento" #: lib/command.php:709 msgid "You are not subscribed to anyone." @@ -5155,7 +5328,6 @@ msgstr[0] "Non fai parte di questo gruppo:" msgstr[1] "Non fai parte di questi gruppi:" #: lib/command.php:769 -#, fuzzy msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5208,6 +5380,7 @@ msgstr "" "d - invia un messaggio diretto all'utente\n" "get - recupera l'ultimo messaggio dell'utente\n" "whois - recupera le informazioni del profilo dell'utente\n" +"lose - forza un utente nel non seguirti più\n" "fav - aggiunge l'ultimo messaggio dell'utente tra i tuoi " "preferiti\n" "fav # - aggiunge un messaggio con quell'ID tra i tuoi " @@ -5236,21 +5409,21 @@ msgstr "" "tracks - non ancora implementato\n" "tracking - non ancora implementato\n" -#: lib/common.php:136 +#: lib/common.php:148 msgid "No configuration file found. " msgstr "Non è stato trovato alcun file di configurazione. " -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "I file di configurazione sono stati cercati in questi posti: " -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "" "Potrebbe essere necessario lanciare il programma d'installazione per " "correggere il problema." -#: lib/common.php:140 +#: lib/common.php:152 msgid "Go to the installer." msgstr "Vai al programma d'installazione." @@ -5439,23 +5612,23 @@ msgstr "Errore di sistema nel caricare il file." msgid "Not an image or corrupt file." msgstr "Non è un'immagine o il file è danneggiato." -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "Formato file immagine non supportato." -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Perso il nostro file." -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "Tipo di file sconosciuto" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "MB" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "kB" @@ -5837,6 +6010,11 @@ msgstr "A" msgid "Available characters" msgstr "Caratteri disponibili" +#: lib/messageform.php:178 lib/noticeform.php:236 +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "Invia" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Invia un messaggio" @@ -5895,23 +6073,23 @@ msgstr "O" msgid "at" msgstr "presso" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 msgid "in context" msgstr "in una discussione" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 msgid "Repeated by" msgstr "Ripetuto da" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 msgid "Reply to this notice" msgstr "Rispondi a questo messaggio" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 msgid "Reply" msgstr "Rispondi" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 msgid "Notice repeated" msgstr "Messaggio ripetuto" @@ -5959,6 +6137,10 @@ msgstr "Risposte" msgid "Favorites" msgstr "Preferiti" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "Utente" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "In arrivo" @@ -6048,7 +6230,7 @@ msgstr "Ripetere questo messaggio?" msgid "Repeat this notice" msgstr "Ripeti questo messaggio" -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "Nessun utente singolo definito per la modalità single-user." @@ -6068,6 +6250,10 @@ msgstr "Cerca nel sito" msgid "Keyword(s)" msgstr "Parole" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "Cerca" + #: lib/searchaction.php:162 msgid "Search help" msgstr "Aiuto sulla ricerca" @@ -6119,6 +6305,15 @@ msgstr "Persone abbonate a %s" msgid "Groups %s is a member of" msgstr "Gruppi di cui %s fa parte" +#: lib/subgroupnav.php:105 +msgid "Invite" +msgstr "Invita" + +#: lib/subgroupnav.php:106 +#, php-format +msgid "Invite friends and colleagues to join you on %s" +msgstr "Invita amici e colleghi a seguirti su %s" + #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 msgid "People Tagcloud as self-tagged" @@ -6189,47 +6384,47 @@ msgstr "Messaggio" msgid "Moderate" msgstr "Modera" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "pochi secondi fa" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "circa un minuto fa" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "circa %d minuti fa" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "circa un'ora fa" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "circa %d ore fa" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "circa un giorno fa" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "circa %d giorni fa" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "circa un mese fa" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "circa %d mesi fa" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "circa un anno fa" diff --git a/locale/ja/LC_MESSAGES/statusnet.po b/locale/ja/LC_MESSAGES/statusnet.po index e05ddbd15..acbcb457d 100644 --- a/locale/ja/LC_MESSAGES/statusnet.po +++ b/locale/ja/LC_MESSAGES/statusnet.po @@ -11,75 +11,82 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:51:12+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:03:10+0000\n" "Language-Team: Japanese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ja\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 msgid "Access" msgstr "アクセス" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 msgid "Site access settings" msgstr "サイトアクセス設定" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 msgid "Registration" msgstr "登録" -#: actions/accessadminpanel.php:161 -msgid "Private" -msgstr "プライベート" - -#: actions/accessadminpanel.php:163 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "匿名ユーザー(ログインしていません)がサイトを見るのを禁止しますか?" +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -msgid "Invite only" -msgstr "招待のみ" +#, fuzzy +msgctxt "LABEL" +msgid "Private" +msgstr "プライベート" -#: actions/accessadminpanel.php:169 +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 msgid "Make registration invitation only." msgstr "招待のみ登録する" -#: actions/accessadminpanel.php:173 -msgid "Closed" -msgstr "閉じられた" +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 +msgid "Invite only" +msgstr "招待のみ" -#: actions/accessadminpanel.php:175 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 msgid "Disable new registrations." msgstr "新規登録を無効。" -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "保存" +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 +msgid "Closed" +msgstr "閉じられた" -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 msgid "Save access settings" msgstr "アクセス設定の保存" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "保存" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page" msgstr "そのようなページはありません。" -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -93,51 +100,59 @@ msgstr "そのようなページはありません。" #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "そのようなユーザはいません。" -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s と友人、ページ %2$d" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s と友人" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "%s の友人のフィード (RSS 1.0)" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "%s の友人のフィード (RSS 2.0)" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "%s の友人のフィード (Atom)" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "これは %s と友人のタイムラインです。まだ誰も投稿していません。" -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -146,7 +161,8 @@ msgstr "" "もっと多くの人をフォローしてみましょう。[グループに参加](%%action.groups%%) " "してみたり、何か投稿してみましょう。" -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " @@ -155,7 +171,7 @@ msgstr "" "プロフィールから [%1$s さんに合図](../%2$s) したり、[知らせたいことについて投" "稿](%%%%action.newnotice%%%%?status_textarea=%3$s) したりできます。" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -164,7 +180,8 @@ msgstr "" "[アカウントを登録](%%%%action.register%%%%) して %s さんに合図したり、お知ら" "せを送ってみませんか。" -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 msgid "You and friends" msgstr "あなたと友人" @@ -182,20 +199,20 @@ msgstr "%2$s に %1$s と友人からの更新があります!" #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 msgid "API method not found." msgstr "API メソッドが見つかりません。" @@ -229,8 +246,9 @@ msgstr "ユーザを更新できませんでした。" #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "ユーザはプロフィールをもっていません。" @@ -256,7 +274,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: 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." @@ -367,7 +385,7 @@ msgstr "ソースユーザーを決定できません。" msgid "Could not find target user." msgstr "ターゲットユーザーを見つけられません。" -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." @@ -375,62 +393,62 @@ msgstr "" "ニックネームには、小文字アルファベットと数字のみ使用できます。スペースは使用" "できません。" -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "そのニックネームは既に使用されています。他のものを試してみて下さい。" -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "有効なニックネームではありません。" -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "ホームページのURLが不適切です。" -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "フルネームが長すぎます。(255字まで)" -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "記述が長すぎます。(最長140字)" -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "場所が長すぎます。(255字まで)" -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "別名が多すぎます! 最大 %d。" -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, php-format msgid "Invalid alias: \"%s\"" msgstr "不正な別名: \"%s\"" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "別名 \"%s\" は既に使用されています。他のものを試してみて下さい。" -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "別名はニックネームと同じではいけません。" @@ -441,15 +459,15 @@ msgstr "別名はニックネームと同じではいけません。" msgid "Group not found!" msgstr "グループが見つかりません!" -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 msgid "You are already a member of that group." msgstr "すでにこのグループのメンバーです。" -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "管理者によってこのグループからブロックされています。" -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "ユーザ %1$s はグループ %2$s に参加できません。" @@ -458,7 +476,7 @@ msgstr "ユーザ %1$s はグループ %2$s に参加できません。" msgid "You are not a member of this group." msgstr "このグループのメンバーではありません。" -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "ユーザ %1$s をグループ %2$s から削除できません。" @@ -489,7 +507,7 @@ msgstr "不正なトークン。" #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -532,7 +550,7 @@ msgstr "リクエストトークン%sは、拒否されて、取り消されま #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -555,13 +573,13 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 msgid "Account" msgstr "アカウント" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -643,12 +661,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s は %2$s でお気に入りを更新しました / %2$s。" #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "%s のタイムライン" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -684,7 +702,7 @@ msgstr "%s への返信" msgid "Repeats of %s" msgstr "%s の返信" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "%s とタグ付けされたつぶやき" @@ -705,8 +723,7 @@ msgstr "そのような添付はありません。" #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "ニックネームがありません。" @@ -718,7 +735,7 @@ msgstr "サイズがありません。" msgid "Invalid size." msgstr "不正なサイズ。" -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "アバター" @@ -735,30 +752,30 @@ msgid "User without matching profile" msgstr "合っているプロフィールのないユーザ" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "アバター設定" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "オリジナル" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "プレビュー" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 msgid "Delete" msgstr "削除" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "アップロード" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "切り取り" @@ -766,7 +783,7 @@ msgstr "切り取り" msgid "Pick a square area of the image to be your avatar" msgstr "あなたのアバターとなるイメージを正方形で指定" -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "ファイルデータを紛失しました。" @@ -802,22 +819,22 @@ msgstr "" "どんな @-返信 についてもそれらから通知されないでしょう。" #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "No" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 msgid "Do not block this user" msgstr "このユーザをアンブロックする" #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Yes" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 msgid "Block this user" msgstr "このユーザをブロックする" @@ -825,39 +842,43 @@ msgstr "このユーザをブロックする" msgid "Failed to save block information." msgstr "ブロック情報の保存に失敗しました。" -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 msgid "No such group." msgstr "そのようなグループはありません。" -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, php-format msgid "%s blocked profiles" msgstr "%s ブロックされたプロファイル" -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s ブロックされたプロファイル、ページ %2$d" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." msgstr "このグループへの参加をブロックされたユーザのリスト。" -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 msgid "Unblock user from group" msgstr "グループからのアンブロックユーザ" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "アンブロック" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 msgid "Unblock this user" msgstr "このユーザをアンブロックする" @@ -932,7 +953,7 @@ msgstr "このアプリケーションのオーナーではありません。" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "あなたのセッショントークンに関する問題がありました。" @@ -958,12 +979,13 @@ msgstr "このアプリケーションを削除しないでください" msgid "Delete this application" msgstr "このアプリケーションを削除" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "ログインしていません。" @@ -992,7 +1014,7 @@ msgstr "本当にこのつぶやきを削除しますか?" msgid "Do not delete this notice" msgstr "このつぶやきを削除できません。" -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 msgid "Delete this notice" msgstr "このつぶやきを削除" @@ -1008,7 +1030,7 @@ msgstr "ローカルユーザのみ削除できます。" msgid "Delete user" msgstr "ユーザ削除" -#: actions/deleteuser.php:135 +#: 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." @@ -1016,12 +1038,12 @@ msgstr "" "あなたは本当にこのユーザを削除したいですか? これはバックアップなしでデータ" "ベースからユーザに関するすべてのデータをクリアします。" -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 msgid "Delete this user" msgstr "このユーザを削除" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "デザイン" @@ -1124,6 +1146,17 @@ msgstr "デフォルトデザインに戻す。" msgid "Reset back to default" msgstr "デフォルトへリセットする" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "保存" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "デザインの保存" @@ -1215,29 +1248,29 @@ msgstr "%s グループを編集" msgid "You must be logged in to create a group." msgstr "グループを作るにはログインしていなければなりません。" -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: 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 "グループを編集するには管理者である必要があります。" -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "このフォームを使ってグループを編集します。" -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, php-format msgid "description is too long (max %d chars)." msgstr "記述が長すぎます。(最長 %d 字)" -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 msgid "Could not update group." msgstr "グループを更新できません。" -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 msgid "Could not create aliases." msgstr "別名を作成できません。" -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 msgid "Options saved." msgstr "オプションが保存されました。" @@ -1581,7 +1614,7 @@ msgstr "ユーザはすでにグループからブロックされています。 msgid "User is not a member of group." msgstr "ユーザはグループのメンバーではありません。" -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 msgid "Block user from group" msgstr "グループからユーザをブロック" @@ -1615,11 +1648,11 @@ msgstr "ID がありません。" msgid "You must be logged in to edit a group." msgstr "グループを編集するにはログインしていなければなりません。" -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 msgid "Group design" msgstr "グループデザイン" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." @@ -1627,20 +1660,20 @@ msgstr "" "あなたが選んだパレットの色とバックグラウンドイメージであなたのグループをカス" "タマイズしてください。" -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 msgid "Couldn't update your design." msgstr "あなたのデザインを更新できません。" -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 msgid "Design preferences saved." msgstr "デザイン設定が保存されました。" -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "グループロゴ" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." @@ -1648,57 +1681,57 @@ msgstr "" "あなたのグループ用にロゴイメージをアップロードできます。最大ファイルサイズは " "%s。" -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 msgid "User without matching profile." msgstr "合っているプロフィールのないユーザ" -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "ロゴとなるイメージの正方形を選択。" -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 msgid "Logo updated." msgstr "ロゴが更新されました。" -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 msgid "Failed updating logo." msgstr "ロゴの更新に失敗しました。" -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "%s グループメンバー" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, php-format msgid "%1$s group members, page %2$d" msgstr "%1$s グループメンバー、ページ %2$d" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "このグループのユーザのリスト。" -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "管理者" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "ブロック" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 msgid "Make user an admin of the group" msgstr "ユーザをグループの管理者にする" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make Admin" msgstr "管理者にする" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "このユーザを管理者にする" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "%2$s 上の %1$s のメンバーから更新する" @@ -1961,16 +1994,19 @@ msgstr "パーソナルメッセージ" msgid "Optionally add a personal message to the invitation." msgstr "任意に招待にパーソナルメッセージを加えてください。" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" msgstr "投稿" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s があなたを %2$s へ招待しました" -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2031,7 +2067,12 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "グループに入るためにはログインしなければなりません。" -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "ニックネームがありません。" + +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s はグループ %2$s に参加しました" @@ -2040,11 +2081,11 @@ msgstr "%1$s はグループ %2$s に参加しました" msgid "You must be logged in to leave a group." msgstr "グループから離れるにはログインしていなければなりません。" -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 msgid "You are not a member of that group." msgstr "あなたはそのグループのメンバーではありません。" -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s はグループ %2$s に残りました。" @@ -2061,8 +2102,7 @@ msgstr "ユーザ名またはパスワードが間違っています。" msgid "Error setting user. You are probably not authorized." msgstr "ユーザ設定エラー。 あなたはたぶん承認されていません。" -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "ログイン" @@ -2315,8 +2355,8 @@ msgstr "内容種別 " msgid "Only " msgstr "だけ " -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "サポートされていないデータ形式。" @@ -2457,7 +2497,7 @@ msgstr "新しいパスワードを保存できません。" msgid "Password saved." msgstr "パスワードが保存されました。" -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "パス" @@ -2490,7 +2530,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "不正な SSL サーバー。最大 255 文字まで。" #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 msgid "Site" msgstr "サイト" @@ -2663,7 +2702,7 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64文字の、小文字アルファベットか数字で、スペースや句読点は除く" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "フルネーム" @@ -2691,7 +2730,7 @@ msgid "Bio" msgstr "自己紹介" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2773,7 +2812,8 @@ msgstr "プロファイルを保存できません" msgid "Couldn't save tags." msgstr "タグを保存できません。" -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "設定が保存されました。" @@ -2786,28 +2826,28 @@ msgstr "ページ制限を超えました (%s)" msgid "Could not retrieve public stream." msgstr "パブリックストリームを検索できません。" -#: actions/public.php:129 +#: actions/public.php:130 #, php-format msgid "Public timeline, page %d" msgstr "パブリックタイムライン、ページ %d" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "パブリックタイムライン" -#: actions/public.php:159 +#: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" msgstr "パブリックストリームフィード (RSS 1.0)" -#: actions/public.php:163 +#: actions/public.php:164 msgid "Public Stream Feed (RSS 2.0)" msgstr "パブリックストリームフィード (RSS 2.0)" -#: actions/public.php:167 +#: actions/public.php:168 msgid "Public Stream Feed (Atom)" msgstr "パブリックストリームフィード (Atom)" -#: actions/public.php:187 +#: actions/public.php:188 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " @@ -2816,11 +2856,11 @@ msgstr "" "これは %%site.name%% のパブリックタイムラインです、しかしまだ誰も投稿していま" "せん。" -#: actions/public.php:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "投稿する1番目になってください!" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" @@ -2828,7 +2868,7 @@ msgstr "" "なぜ [アカウント登録](%%action.register%%) しないのですか、そして最初の投稿を" "してください!" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2842,7 +2882,7 @@ msgstr "" "族そして同僚などについてのつぶやきを共有しましょう! ([もっと読む](%%doc.help%" "%))" -#: actions/public.php:246 +#: actions/public.php:247 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3019,8 +3059,7 @@ msgstr "すみません、不正な招待コード。" msgid "Registration successful" msgstr "登録成功" -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "登録" @@ -3205,7 +3244,7 @@ msgstr "自分のつぶやきは繰り返せません。" msgid "You already repeated that notice." msgstr "すでにそのつぶやきを繰り返しています。" -#: actions/repeat.php:114 lib/noticelist.php:656 +#: actions/repeat.php:114 lib/noticelist.php:674 msgid "Repeated" msgstr "繰り返された" @@ -3213,33 +3252,33 @@ msgstr "繰り返された" msgid "Repeated!" msgstr "繰り返されました!" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "%s への返信" -#: actions/replies.php:127 +#: actions/replies.php:128 #, php-format msgid "Replies to %1$s, page %2$d" msgstr "%1$s への返信、ページ %2$s" -#: actions/replies.php:144 +#: actions/replies.php:145 #, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "%s の返信フィード (RSS 1.0)" -#: actions/replies.php:151 +#: actions/replies.php:152 #, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "%s の返信フィード (RSS 2.0)" -#: actions/replies.php:158 +#: actions/replies.php:159 #, php-format msgid "Replies feed for %s (Atom)" msgstr "%s の返信フィード (Atom)" -#: actions/replies.php:198 +#: actions/replies.php:199 #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " @@ -3248,7 +3287,7 @@ msgstr "" "これは %1$s への返信を表示したタイムラインです、しかし %2$s はまだつぶやきを" "受け取っていません。" -#: actions/replies.php:203 +#: actions/replies.php:204 #, php-format msgid "" "You can engage other users in a conversation, subscribe to more people or " @@ -3257,7 +3296,7 @@ msgstr "" "あなたは、他のユーザを会話をするか、多くの人々をフォローするか、または [グ" "ループに加わる](%%action.groups%%)ことができます。" -#: actions/replies.php:205 +#: actions/replies.php:206 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3284,7 +3323,6 @@ msgid "User is already sandboxed." msgstr "ユーザはすでにサンドボックスです。" #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "セッション" @@ -3309,7 +3347,7 @@ msgid "Turn on debugging output for sessions." msgstr "セッションのためのデバッグ出力をオン。" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "サイト設定の保存" @@ -3339,7 +3377,7 @@ msgstr "組織" msgid "Description" msgstr "概要" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "統計データ" @@ -3403,22 +3441,22 @@ msgstr "%1$s のお気に入りのつぶやき、ページ %2$d" msgid "Could not retrieve favorite notices." msgstr "お気に入りのつぶやきを検索できません。" -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "%s のお気に入りのフィード (RSS 1.0)" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "%s のお気に入りのフィード (RSS 2.0)" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" msgstr "%s のお気に入りのフィード (Atom)" -#: actions/showfavorites.php:205 +#: 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." @@ -3427,7 +3465,7 @@ msgstr "" "加するあなたがそれらがお気に入りのつぶやきのときにお気に入りボタンをクリック" "するか、またはそれらの上でスポットライトをはじいてください。" -#: actions/showfavorites.php:207 +#: actions/showfavorites.php:208 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Post something interesting " @@ -3436,7 +3474,7 @@ msgstr "" "%s はまだ彼のお気に入りに少しのつぶやきも加えていません。 彼らがお気に入りに" "加えることおもしろいものを投稿してください:)" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3447,7 +3485,7 @@ msgstr "" "%%%action.register%%%%) しないのですか。そして、彼らがお気に入りに加えるおも" "しろい何かを投稿しませんか:)" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "これは、あなたが好きなことを共有する方法です。" @@ -3461,67 +3499,67 @@ msgstr "%s グループ" msgid "%1$s group, page %2$d" msgstr "%1$s グループ、ページ %2$d" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 msgid "Group profile" msgstr "グループプロファイル" -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "URL" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 msgid "Note" msgstr "ノート" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "別名" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "グループアクション" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "%s グループのつぶやきフィード (RSS 1.0)" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "%s グループのつぶやきフィード (RSS 2.0)" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "%s グループのつぶやきフィード (Atom)" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, php-format msgid "FOAF for %s group" msgstr "%s グループの FOAF" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 msgid "Members" msgstr "メンバー" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(なし)" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "全てのメンバー" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 msgid "Created" msgstr "作成日" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3536,7 +3574,7 @@ msgstr "" "する短いメッセージを共有します。[今すぐ参加](%%%%action.register%%%%) してこ" "のグループの一員になりましょう! ([もっと読む](%%%%doc.help%%%%))" -#: actions/showgroup.php:454 +#: actions/showgroup.php:462 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3549,7 +3587,7 @@ msgstr "" "wikipedia.org/wiki/Micro-blogging) サービス。メンバーは彼らの暮らしと興味に関" "する短いメッセージを共有します。" -#: actions/showgroup.php:482 +#: actions/showgroup.php:490 msgid "Admins" msgstr "管理者" @@ -4032,22 +4070,22 @@ msgstr "Jabber" msgid "SMS" msgstr "SMS" -#: actions/tag.php:68 +#: actions/tag.php:69 #, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "%1$s とタグ付けされたつぶやき、ページ %2$d" -#: actions/tag.php:86 +#: actions/tag.php:87 #, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "%s とタグ付けされたつぶやきフィード (RSS 1.0)" -#: actions/tag.php:92 +#: actions/tag.php:93 #, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "%s とタグ付けされたつぶやきフィード (RSS 2.0)" -#: actions/tag.php:98 +#: actions/tag.php:99 #, php-format msgid "Notice feed for tag %s (Atom)" msgstr "%s とタグ付けされたつぶやきフィード (Atom)" @@ -4100,7 +4138,7 @@ msgstr "このフォームを使用して、フォロー者かフォローにタ msgid "No such tag." msgstr "そのようなタグはありません。" -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "API メソッドが工事中です。" @@ -4132,70 +4170,72 @@ msgstr "" "リスニーストリームライセンス ‘%1$s’ は、サイトライセンス ‘%2$s’ と互換性があ" "りません。" -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +#, fuzzy +msgctxt "TITLE" msgid "User" msgstr "ユーザ" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "この StatusNet サイトのユーザ設定。" -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "不正な自己紹介制限。数字である必要があります。" -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "不正なウェルカムテキスト。最大長は255字です。" -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "不正なデフォルトフォローです: '%1$s' はユーザではありません。" -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "プロファイル" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "自己紹介制限" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "プロファイル自己紹介の最大文字長。" -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 msgid "New users" msgstr "新しいユーザ" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "新しいユーザを歓迎" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "新しいユーザへのウェルカムテキスト (最大255字)。" -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 msgid "Default subscription" msgstr "デフォルトフォロー" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 msgid "Automatically subscribe new users to this user." msgstr "自動的にこのユーザに新しいユーザをフォローしてください。" -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 msgid "Invitations" msgstr "招待" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 msgid "Invitations enabled" msgstr "招待が可能" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "ユーザが新しいユーザを招待するのを許容するかどうか。" @@ -4381,7 +4421,7 @@ msgstr "" msgid "Plugins" msgstr "プラグイン" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 msgid "Version" msgstr "バージョン" @@ -4423,6 +4463,11 @@ msgstr "グループの一部ではありません。" msgid "Group leave failed." msgstr "グループ脱退に失敗しました。" +#: classes/Local_group.php:41 +#, fuzzy +msgid "Could not update local group." +msgstr "グループを更新できません。" + #: classes/Login_token.php:76 #, php-format msgid "Could not create login token for %s" @@ -4440,26 +4485,26 @@ msgstr "メッセージを追加できません。" msgid "Could not update message with new URI." msgstr "新しいURIでメッセージをアップデートできませんでした。" -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "ハッシュタグ追加 DB エラー: %s" -#: classes/Notice.php:222 +#: classes/Notice.php:239 msgid "Problem saving notice. Too long." msgstr "つぶやきを保存する際に問題が発生しました。長すぎです。" -#: classes/Notice.php:226 +#: classes/Notice.php:243 msgid "Problem saving notice. Unknown user." msgstr "つぶやきを保存する際に問題が発生しました。不明なユーザです。" -#: classes/Notice.php:231 +#: classes/Notice.php:248 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "多すぎるつぶやきが速すぎます; 数分間の休みを取ってから再投稿してください。" -#: classes/Notice.php:237 +#: classes/Notice.php:254 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4467,19 +4512,19 @@ msgstr "" "多すぎる重複メッセージが速すぎます; 数分間休みを取ってから再度投稿してくださ" "い。" -#: classes/Notice.php:243 +#: classes/Notice.php:260 msgid "You are banned from posting notices on this site." msgstr "あなたはこのサイトでつぶやきを投稿するのが禁止されています。" -#: classes/Notice.php:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "つぶやきを保存する際に問題が発生しました。" -#: classes/Notice.php:882 +#: classes/Notice.php:911 msgid "Problem saving group inbox." msgstr "グループ受信箱を保存する際に問題が発生しました。" -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4508,19 +4553,29 @@ msgstr "自己フォローを削除できません。" msgid "Couldn't delete subscription." msgstr "フォローを削除できません" -#: classes/User.php:372 +#: classes/User.php:373 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "ようこそ %1$s、@%2$s!" -#: classes/User_group.php:423 +#: classes/User_group.php:462 msgid "Could not create group." msgstr "グループを作成できません。" -#: classes/User_group.php:452 +#: classes/User_group.php:471 +#, fuzzy +msgid "Could not set group URI." +msgstr "グループメンバーシップをセットできません。" + +#: classes/User_group.php:492 msgid "Could not set group membership." msgstr "グループメンバーシップをセットできません。" +#: classes/User_group.php:506 +#, fuzzy +msgid "Could not save local group info." +msgstr "フォローを保存できません。" + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "プロファイル設定の変更" @@ -4562,120 +4617,190 @@ msgstr "名称未設定ページ" msgid "Primary site navigation" msgstr "プライマリサイトナビゲーション" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "ホーム" - -#: lib/action.php:439 +#, fuzzy +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "パーソナルプロファイルと友人のタイムライン" -#: lib/action.php:441 +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "パーソナル" + +#. TRANS: Tooltip for main menu option "Account" +#: lib/action.php:444 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "メールアドレス、アバター、パスワード、プロパティの変更" -#: lib/action.php:444 -msgid "Connect" -msgstr "接続" +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "アカウント" -#: lib/action.php:444 +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 +#, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" msgstr "サービスへ接続" -#: lib/action.php:448 +#: lib/action.php:453 +#, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "接続" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "サイト設定の変更" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" -msgstr "招待" +#: lib/action.php:460 +#, fuzzy +msgctxt "MENU" +msgid "Admin" +msgstr "管理者" -#: lib/action.php:453 lib/subgroupnav.php:106 -#, php-format +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 +#, fuzzy, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "友人や同僚が %s で加わるよう誘ってください。" -#: lib/action.php:458 -msgid "Logout" -msgstr "ログアウト" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "招待" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +#, fuzzy +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "サイトからログアウト" -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "ログアウト" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 +#, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "アカウントを作成" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "登録" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +#, fuzzy +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "サイトへログイン" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "ヘルプ" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "ログイン" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 +#, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "助けて!" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "検索" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "ヘルプ" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +#, fuzzy +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "人々かテキストを検索" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "検索" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 msgid "Site notice" msgstr "サイトつぶやき" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "ローカルビュー" -#: lib/action.php:625 +#: lib/action.php:656 msgid "Page notice" msgstr "ページつぶやき" -#: lib/action.php:727 +#: lib/action.php:758 msgid "Secondary site navigation" msgstr "セカンダリサイトナビゲーション" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "ヘルプ" + +#: lib/action.php:765 msgid "About" msgstr "About" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "よくある質問" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "プライバシー" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "ソース" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "連絡先" -#: lib/action.php:751 +#: lib/action.php:782 msgid "Badge" msgstr "バッジ" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "StatusNet ソフトウェアライセンス" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4684,12 +4809,12 @@ msgstr "" "**%%site.name%%** は [%%site.broughtby%%](%%site.broughtbyurl%%) が提供するマ" "イクロブログサービスです。 " -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** はマイクロブログサービスです。 " -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4700,107 +4825,160 @@ msgstr "" "いています。 ライセンス [GNU Affero General Public License](http://www.fsf." "org/licensing/licenses/agpl-3.0.html)。" -#: lib/action.php:801 +#: lib/action.php:832 msgid "Site content license" msgstr "サイト内容ライセンス" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "全て " -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "ライセンス。" -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "ページ化" -#: lib/action.php:1141 +#: lib/action.php:1172 msgid "After" msgstr "<<後" -#: lib/action.php:1149 +#: lib/action.php:1180 msgid "Before" msgstr "前>>" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." msgstr "あなたはこのサイトへの変更を行うことができません。" -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 msgid "Changes to that panel are not allowed." msgstr "そのパネルへの変更は許可されていません。" -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 msgid "showForm() not implemented." msgstr "showForm() は実装されていません。" -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 msgid "saveSettings() not implemented." msgstr "saveSettings() は実装されていません。" -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 msgid "Unable to delete design setting." msgstr "デザイン設定を削除できません。" -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 msgid "Basic site configuration" msgstr "基本サイト設定" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "サイト" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 msgid "Design configuration" msgstr "デザイン設定" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "デザイン" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 msgid "User configuration" msgstr "ユーザ設定" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +#, fuzzy +msgctxt "MENU" +msgid "User" +msgstr "ユーザ" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 msgid "Access configuration" msgstr "アクセス設定" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "アクセス" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 msgid "Paths configuration" msgstr "パス設定" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +#, fuzzy +msgctxt "MENU" +msgid "Paths" +msgstr "パス" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 msgid "Sessions configuration" msgstr "セッション設定" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "セッション" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" "APIリソースは読み書きアクセスが必要です、しかしあなたは読みアクセスしか持って" "いません。" -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4892,11 +5070,11 @@ msgstr "この添付が現れるつぶやき" msgid "Tags for this attachment" msgstr "この添付のタグ" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 msgid "Password changing failed" msgstr "パスワード変更に失敗しました" -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 msgid "Password changing is not allowed" msgstr "パスワード変更は許可されていません" @@ -5169,21 +5347,21 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:148 msgid "No configuration file found. " msgstr "コンフィギュレーションファイルがありません。 " -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "私は以下の場所でコンフィギュレーションファイルを探しました: " -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "" "あなたは、これを修理するためにインストーラを動かしたがっているかもしれませ" "ん。" -#: lib/common.php:140 +#: lib/common.php:152 msgid "Go to the installer." msgstr "インストーラへ。" @@ -5371,23 +5549,23 @@ msgstr "ファイルのアップロードでシステムエラー" msgid "Not an image or corrupt file." msgstr "画像ではないかファイルが破損しています。" -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "サポート外の画像形式です。" -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "ファイルを紛失。" -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "不明なファイルタイプ" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "MB" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "kB" @@ -5771,6 +5949,12 @@ msgstr "To" msgid "Available characters" msgstr "利用可能な文字" +#: lib/messageform.php:178 lib/noticeform.php:236 +#, fuzzy +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "投稿" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "つぶやきを送る" @@ -5833,23 +6017,23 @@ msgstr "西" msgid "at" msgstr "at" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 msgid "in context" msgstr "" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 msgid "Repeated by" msgstr "" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 msgid "Reply to this notice" msgstr "このつぶやきへ返信" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 msgid "Reply" msgstr "返信" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 msgid "Notice repeated" msgstr "つぶやきを繰り返しました" @@ -5897,6 +6081,10 @@ msgstr "返信" msgid "Favorites" msgstr "お気に入り" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "ユーザ" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "受信箱" @@ -5986,7 +6174,7 @@ msgstr "このつぶやきを繰り返しますか?" msgid "Repeat this notice" msgstr "このつぶやきを繰り返す" -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "single-user モードのためのシングルユーザが定義されていません。" @@ -6006,6 +6194,10 @@ msgstr "サイト検索" msgid "Keyword(s)" msgstr "キーワード" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "検索" + #: lib/searchaction.php:162 msgid "Search help" msgstr "ヘルプ検索" @@ -6057,6 +6249,15 @@ msgstr "人々は %s をフォローしました。" msgid "Groups %s is a member of" msgstr "グループ %s はメンバー" +#: lib/subgroupnav.php:105 +msgid "Invite" +msgstr "招待" + +#: lib/subgroupnav.php:106 +#, php-format +msgid "Invite friends and colleagues to join you on %s" +msgstr "友人や同僚が %s で加わるよう誘ってください。" + #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 msgid "People Tagcloud as self-tagged" @@ -6128,47 +6329,47 @@ msgstr "メッセージ" msgid "Moderate" msgstr "管理" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "数秒前" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "約 1 分前" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "約 %d 分前" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "約 1 時間前" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "約 %d 時間前" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "約 1 日前" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "約 %d 日前" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "約 1 ヵ月前" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "約 %d ヵ月前" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "約 1 年前" diff --git a/locale/ko/LC_MESSAGES/statusnet.po b/locale/ko/LC_MESSAGES/statusnet.po index 1653bf31b..aca8a093a 100644 --- a/locale/ko/LC_MESSAGES/statusnet.po +++ b/locale/ko/LC_MESSAGES/statusnet.po @@ -7,83 +7,89 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:51:15+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:03: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 (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ko\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 #, fuzzy msgid "Access" msgstr "수락" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 #, fuzzy msgid "Site access settings" msgstr "아바타 설정" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 #, fuzzy msgid "Registration" msgstr "회원가입" -#: actions/accessadminpanel.php:161 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 +msgid "Prohibit anonymous users (not logged in) from viewing site?" +msgstr "" + +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. +#: actions/accessadminpanel.php:167 #, fuzzy +msgctxt "LABEL" msgid "Private" msgstr "개인정보 취급방침" -#: actions/accessadminpanel.php:163 -msgid "Prohibit anonymous users (not logged in) from viewing site?" +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 +msgid "Make registration invitation only." msgstr "" -#: actions/accessadminpanel.php:167 +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 #, fuzzy msgid "Invite only" msgstr "초대" -#: actions/accessadminpanel.php:169 -msgid "Make registration invitation only." +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 +msgid "Disable new registrations." msgstr "" -#: actions/accessadminpanel.php:173 +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 #, fuzzy msgid "Closed" msgstr "차단하기" -#: actions/accessadminpanel.php:175 -msgid "Disable new registrations." -msgstr "" - -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "저장" - -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 #, fuzzy msgid "Save access settings" msgstr "아바타 설정" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "저장" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 #, fuzzy msgid "No such page" msgstr "그러한 태그가 없습니다." -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -97,72 +103,82 @@ msgstr "그러한 태그가 없습니다." #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "그러한 사용자는 없습니다." -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, fuzzy, php-format msgid "%1$s and friends, page %2$d" msgstr "%s 와 친구들, %d 페이지" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s 및 친구들" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, fuzzy, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "%s의 친구들을 위한 피드" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, fuzzy, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "%s의 친구들을 위한 피드" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, fuzzy, php-format msgid "Feed for friends of %s (Atom)" msgstr "%s의 친구들을 위한 피드" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 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." msgstr "" -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 #, fuzzy msgid "You and friends" msgstr "%s 및 친구들" @@ -181,20 +197,20 @@ msgstr "%1$s 및 %2$s에 있는 친구들의 업데이트!" #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "API 메서드를 찾을 수 없습니다." @@ -228,8 +244,9 @@ msgstr "사용자를 업데이트 할 수 없습니다." #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "이용자가 프로필을 가지고 있지 않습니다." @@ -254,7 +271,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 #, fuzzy @@ -373,7 +390,7 @@ msgstr "공개 stream을 불러올 수 없습니다." msgid "Could not find target user." msgstr "어떠한 상태도 찾을 수 없습니다." -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." @@ -381,62 +398,62 @@ msgstr "" "별명은 반드시 영소문자와 숫자로만 이루어져야 하며 스페이스의 사용이 불가 합니" "다." -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "별명이 이미 사용중 입니다. 다른 별명을 시도해 보십시오." -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "유효한 별명이 아닙니다" -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "홈페이지 주소형식이 올바르지 않습니다." -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "실명이 너무 깁니다. (최대 255글자)" -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, fuzzy, php-format msgid "Description is too long (max %d chars)." msgstr "설명이 너무 길어요. (최대 140글자)" -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "위치가 너무 깁니다. (최대 255글자)" -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "" -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, fuzzy, php-format msgid "Invalid alias: \"%s\"" msgstr "유효하지 않은태그: \"%s\"" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, fuzzy, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "별명이 이미 사용중 입니다. 다른 별명을 시도해 보십시오." -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "" @@ -448,16 +465,16 @@ msgstr "" msgid "Group not found!" msgstr "API 메서드를 찾을 수 없습니다." -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 #, fuzzy msgid "You are already a member of that group." msgstr "당신은 이미 이 그룹의 멤버입니다." -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "" -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, fuzzy, php-format msgid "Could not join user %1$s to group %2$s." msgstr "그룹 %s에 %s는 가입할 수 없습니다." @@ -467,7 +484,7 @@ msgstr "그룹 %s에 %s는 가입할 수 없습니다." msgid "You are not a member of this group." msgstr "당신은 해당 그룹의 멤버가 아닙니다." -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, fuzzy, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "그룹 %s에서 %s 사용자를 제거할 수 없습니다." @@ -499,7 +516,7 @@ msgstr "옳지 않은 크기" #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -543,7 +560,7 @@ msgstr "" #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -566,13 +583,13 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 msgid "Account" msgstr "계정" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -659,12 +676,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%s 좋아하는 글이 업데이트 됐습니다. %S에 의해 / %s." #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "%s 타임라인" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -700,7 +717,7 @@ msgstr "%s에 답신" msgid "Repeats of %s" msgstr "%s에 답신" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "%s 태그된 통지" @@ -722,8 +739,7 @@ msgstr "그러한 문서는 없습니다." #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "별명이 없습니다." @@ -735,7 +751,7 @@ msgstr "사이즈가 없습니다." msgid "Invalid size." msgstr "옳지 않은 크기" -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "아바타" @@ -752,30 +768,30 @@ msgid "User without matching profile" msgstr "프로필 매칭이 없는 사용자" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "아바타 설정" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "원래 설정" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "미리보기" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 msgid "Delete" msgstr "삭제" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "올리기" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "자르기" @@ -783,7 +799,7 @@ msgstr "자르기" msgid "Pick a square area of the image to be your avatar" msgstr "당신의 아바타가 될 이미지영역을 지정하세요." -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "파일 데이터를 잃어버렸습니다." @@ -817,23 +833,23 @@ msgid "" msgstr "" #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "아니오" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 #, fuzzy msgid "Do not block this user" msgstr "이 사용자를 차단해제합니다." #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "네, 맞습니다." -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 msgid "Block this user" msgstr "이 사용자 차단하기" @@ -841,41 +857,45 @@ msgstr "이 사용자 차단하기" msgid "Failed to save block information." msgstr "정보차단을 저장하는데 실패했습니다." -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 msgid "No such group." msgstr "그러한 그룹이 없습니다." -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, fuzzy, php-format msgid "%s blocked profiles" msgstr "이용자 프로필" -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, fuzzy, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%s 와 친구들, %d 페이지" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 #, fuzzy msgid "A list of the users blocked from joining this group." msgstr "이 그룹의 회원리스트" -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 #, fuzzy msgid "Unblock user from group" msgstr "사용자 차단 해제에 실패했습니다." -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "차단해제" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 msgid "Unblock this user" msgstr "이 사용자를 차단해제합니다." @@ -956,7 +976,7 @@ msgstr "당신은 해당 그룹의 멤버가 아닙니다." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "당신의 세션토큰관련 문제가 있습니다." @@ -982,12 +1002,13 @@ msgstr "이 통지를 지울 수 없습니다." msgid "Delete this application" msgstr "이 게시글 삭제하기" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "로그인하고 있지 않습니다." @@ -1017,7 +1038,7 @@ msgstr "정말로 통지를 삭제하시겠습니까?" msgid "Do not delete this notice" msgstr "이 통지를 지울 수 없습니다." -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 msgid "Delete this notice" msgstr "이 게시글 삭제하기" @@ -1036,19 +1057,19 @@ msgstr "당신은 다른 사용자의 상태를 삭제하지 않아도 된다." msgid "Delete user" msgstr "삭제" -#: actions/deleteuser.php:135 +#: 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 "" -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 #, fuzzy msgid "Delete this user" msgstr "이 게시글 삭제하기" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "" @@ -1159,6 +1180,17 @@ msgstr "" msgid "Reset back to default" msgstr "" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "저장" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "" @@ -1261,31 +1293,31 @@ msgstr "%s 그룹 편집" msgid "You must be logged in to create a group." msgstr "그룹을 만들기 위해서는 로그인해야 합니다." -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: actions/editgroup.php:107 actions/editgroup.php:172 +#: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 #, fuzzy msgid "You must be an admin to edit the group." msgstr "관리자만 그룹을 편집할 수 있습니다." -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "다음 양식을 이용해 그룹을 편집하십시오." -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, fuzzy, php-format msgid "description is too long (max %d chars)." msgstr "설명이 너무 길어요. (최대 140글자)" -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 msgid "Could not update group." msgstr "그룹을 업데이트 할 수 없습니다." -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 #, fuzzy msgid "Could not create aliases." msgstr "좋아하는 게시글을 생성할 수 없습니다." -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 msgid "Options saved." msgstr "옵션들이 저장되었습니다." @@ -1634,7 +1666,7 @@ msgstr "회원이 당신을 차단해왔습니다." msgid "User is not a member of group." msgstr "당신은 해당 그룹의 멤버가 아닙니다." -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 #, fuzzy msgid "Block user from group" msgstr "사용자를 차단합니다." @@ -1671,93 +1703,93 @@ msgstr "ID가 없습니다." msgid "You must be logged in to edit a group." msgstr "그룹을 만들기 위해서는 로그인해야 합니다." -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 #, fuzzy msgid "Group design" msgstr "그룹" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." msgstr "" -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 #, fuzzy msgid "Couldn't update your design." msgstr "사용자를 업데이트 할 수 없습니다." -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 #, fuzzy msgid "Design preferences saved." msgstr "싱크설정이 저장되었습니다." -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "그룹 로고" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, fuzzy, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "당신그룹의 로고 이미지를 업로드할 수 있습니다." -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 #, fuzzy msgid "User without matching profile." msgstr "프로필 매칭이 없는 사용자" -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 #, fuzzy msgid "Pick a square area of the image to be the logo." msgstr "당신의 아바타가 될 이미지영역을 지정하세요." -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 msgid "Logo updated." msgstr "로고를 업데이트했습니다." -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 msgid "Failed updating logo." msgstr "로고 업데이트에 실패했습니다." -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "%s 그룹 회원" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, fuzzy, php-format msgid "%1$s group members, page %2$d" msgstr "%s 그룹 회원, %d페이지" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "이 그룹의 회원리스트" -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "관리자" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "차단하기" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 #, fuzzy msgid "Make user an admin of the group" msgstr "관리자만 그룹을 편집할 수 있습니다." -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 #, fuzzy msgid "Make Admin" msgstr "관리자" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, fuzzy, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "%2$s에 있는 %1$s의 업데이트!" @@ -2011,16 +2043,19 @@ msgstr "개인적인 메시지" msgid "Optionally add a personal message to the invitation." msgstr "초대장에 메시지 첨부하기." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" msgstr "보내기" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s님이 귀하를 %2$s에 초대하였습니다." -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2076,7 +2111,12 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "그룹가입을 위해서는 로그인이 필요합니다." -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "별명이 없습니다." + +#: actions/joingroup.php:141 #, fuzzy, php-format msgid "%1$s joined group %2$s" msgstr "%s 는 그룹 %s에 가입했습니다." @@ -2085,11 +2125,11 @@ msgstr "%s 는 그룹 %s에 가입했습니다." msgid "You must be logged in to leave a group." msgstr "그룹을 떠나기 위해서는 로그인해야 합니다." -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 msgid "You are not a member of that group." msgstr "당신은 해당 그룹의 멤버가 아닙니다." -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, fuzzy, php-format msgid "%1$s left group %2$s" msgstr "%s가 그룹%s를 떠났습니다." @@ -2107,8 +2147,7 @@ msgstr "틀린 계정 또는 비밀 번호" msgid "Error setting user. You are probably not authorized." msgstr "인증이 되지 않았습니다." -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "로그인" @@ -2364,8 +2403,8 @@ msgstr "연결" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "지원하는 형식의 데이터가 아닙니다." @@ -2511,7 +2550,7 @@ msgstr "새 비밀번호를 저장 할 수 없습니다." msgid "Password saved." msgstr "비밀 번호 저장" -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "" @@ -2544,7 +2583,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 #, fuzzy msgid "Site" msgstr "초대" @@ -2728,7 +2766,7 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64자 사이에 영소문자, 숫자로만 씁니다. 기호나 공백을 쓰면 안 됩니다." #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "실명" @@ -2757,7 +2795,7 @@ msgid "Bio" msgstr "자기소개" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2838,7 +2876,8 @@ msgstr "프로필을 저장 할 수 없습니다." msgid "Couldn't save tags." msgstr "태그를 저장할 수 없습니다." -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "설정 저장" @@ -2851,48 +2890,48 @@ msgstr "" msgid "Could not retrieve public stream." msgstr "공개 stream을 불러올 수 없습니다." -#: actions/public.php:129 +#: actions/public.php:130 #, php-format msgid "Public timeline, page %d" msgstr "공개 타임라인, %d 페이지" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "퍼블릭 타임라인" -#: actions/public.php:159 +#: actions/public.php:160 #, fuzzy msgid "Public Stream Feed (RSS 1.0)" msgstr "퍼블릭 스트림 피드" -#: actions/public.php:163 +#: actions/public.php:164 #, fuzzy msgid "Public Stream Feed (RSS 2.0)" msgstr "퍼블릭 스트림 피드" -#: actions/public.php:167 +#: actions/public.php:168 #, fuzzy msgid "Public Stream Feed (Atom)" msgstr "퍼블릭 스트림 피드" -#: actions/public.php:187 +#: 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:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2901,7 +2940,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:246 +#: actions/public.php:247 #, fuzzy, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3074,8 +3113,7 @@ msgstr "확인 코드 오류" msgid "Registration successful" msgstr "회원 가입이 성공적입니다." -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "회원가입" @@ -3264,7 +3302,7 @@ msgstr "라이선스에 동의하지 않는다면 등록할 수 없습니다." msgid "You already repeated that notice." msgstr "당신은 이미 이 사용자를 차단하고 있습니다." -#: actions/repeat.php:114 lib/noticelist.php:656 +#: actions/repeat.php:114 lib/noticelist.php:674 #, fuzzy msgid "Repeated" msgstr "생성" @@ -3274,47 +3312,47 @@ msgstr "생성" msgid "Repeated!" msgstr "생성" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "%s에 답신" -#: actions/replies.php:127 +#: actions/replies.php:128 #, fuzzy, php-format msgid "Replies to %1$s, page %2$d" msgstr "%2$s에서 %1$s까지 메시지" -#: actions/replies.php:144 +#: actions/replies.php:145 #, fuzzy, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "%s의 통지 피드" -#: actions/replies.php:151 +#: actions/replies.php:152 #, fuzzy, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "%s의 통지 피드" -#: actions/replies.php:158 +#: actions/replies.php:159 #, php-format msgid "Replies feed for %s (Atom)" msgstr "%s의 통지 피드" -#: actions/replies.php:198 +#: actions/replies.php:199 #, 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 "" -#: actions/replies.php:203 +#: 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:205 +#: actions/replies.php:206 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3342,7 +3380,6 @@ msgid "User is already sandboxed." msgstr "회원이 당신을 차단해왔습니다." #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "" @@ -3367,7 +3404,7 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 #, fuzzy msgid "Save site settings" msgstr "아바타 설정" @@ -3402,7 +3439,7 @@ msgstr "페이지수" msgid "Description" msgstr "설명" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "통계" @@ -3464,35 +3501,35 @@ msgstr "%s 님의 좋아하는 글들" msgid "Could not retrieve favorite notices." msgstr "좋아하는 게시글을 복구할 수 없습니다." -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "%s의 친구들을 위한 피드" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "%s의 친구들을 위한 피드" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" msgstr "%s의 친구들을 위한 피드" -#: actions/showfavorites.php:205 +#: 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:207 +#: 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 :)" msgstr "" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3500,7 +3537,7 @@ msgid "" "would add to their favorites :)" msgstr "" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "" @@ -3514,68 +3551,68 @@ msgstr "%s 그룹" msgid "%1$s group, page %2$d" msgstr "%s 그룹 회원, %d페이지" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 msgid "Group profile" msgstr "그룹 프로필" -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "URL" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 msgid "Note" msgstr "설명" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "그룹 행동" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "%s 그룹을 위한 공지피드" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "%s 그룹을 위한 공지피드" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "%s 그룹을 위한 공지피드" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, php-format msgid "FOAF for %s group" msgstr "%s의 보낸쪽지함" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 msgid "Members" msgstr "회원" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(없습니다.)" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "모든 회원" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 #, fuzzy msgid "Created" msgstr "생성" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3585,7 +3622,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:454 +#: actions/showgroup.php:462 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3596,7 +3633,7 @@ msgstr "" "**%s** 는 %%%%site.name%%%% [마이크로블로깅)(http://en.wikipedia.org/wiki/" "Micro-blogging)의 사용자 그룹입니다. " -#: actions/showgroup.php:482 +#: actions/showgroup.php:490 #, fuzzy msgid "Admins" msgstr "관리자" @@ -4064,22 +4101,22 @@ msgstr "Jabber" msgid "SMS" msgstr "SMS" -#: actions/tag.php:68 +#: actions/tag.php:69 #, fuzzy, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "이용자 셀프 테크 %s - %d 페이지" -#: actions/tag.php:86 +#: actions/tag.php:87 #, fuzzy, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "%s의 통지 피드" -#: actions/tag.php:92 +#: actions/tag.php:93 #, fuzzy, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "%s의 통지 피드" -#: actions/tag.php:98 +#: actions/tag.php:99 #, fuzzy, php-format msgid "Notice feed for tag %s (Atom)" msgstr "%s의 통지 피드" @@ -4133,7 +4170,7 @@ msgstr "당신의 구독자나 구독하는 사람에 태깅을 위해 이 양 msgid "No such tag." msgstr "그러한 태그가 없습니다." -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "API 메서드를 구성중 입니다." @@ -4166,75 +4203,77 @@ msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +#, fuzzy +msgctxt "TITLE" msgid "User" msgstr "이용자" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "" -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "" -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "" -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "프로필" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "" -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 #, fuzzy msgid "New users" msgstr "새 사용자를 초대" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "" -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 #, fuzzy msgid "Default subscription" msgstr "모든 예약 구독" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 #, fuzzy msgid "Automatically subscribe new users to this user." msgstr "나에게 구독하는 사람에게 자동 구독 신청" -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 #, fuzzy msgid "Invitations" msgstr "초대권을 보냈습니다" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 #, fuzzy msgid "Invitations enabled" msgstr "초대권을 보냈습니다" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "" @@ -4420,7 +4459,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 #, fuzzy msgid "Version" msgstr "개인적인" @@ -4461,6 +4500,11 @@ msgstr "그룹을 업데이트 할 수 없습니다." msgid "Group leave failed." msgstr "그룹 프로필" +#: classes/Local_group.php:41 +#, fuzzy +msgid "Could not update local group." +msgstr "그룹을 업데이트 할 수 없습니다." + #: classes/Login_token.php:76 #, fuzzy, php-format msgid "Could not create login token for %s" @@ -4479,28 +4523,28 @@ msgstr "메시지를 삽입할 수 없습니다." msgid "Could not update message with new URI." msgstr "새 URI와 함께 메시지를 업데이트할 수 없습니다." -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "해쉬테그를 추가 할 때에 데이타베이스 에러 : %s" -#: classes/Notice.php:222 +#: classes/Notice.php:239 #, fuzzy msgid "Problem saving notice. Too long." msgstr "통지를 저장하는데 문제가 발생했습니다." -#: classes/Notice.php:226 +#: classes/Notice.php:243 msgid "Problem saving notice. Unknown user." msgstr "게시글 저장문제. 알려지지않은 회원" -#: classes/Notice.php:231 +#: classes/Notice.php:248 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "너무 많은 게시글이 너무 빠르게 올라옵니다. 한숨고르고 몇분후에 다시 포스트를 " "해보세요." -#: classes/Notice.php:237 +#: classes/Notice.php:254 #, fuzzy msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " @@ -4509,20 +4553,20 @@ msgstr "" "너무 많은 게시글이 너무 빠르게 올라옵니다. 한숨고르고 몇분후에 다시 포스트를 " "해보세요." -#: classes/Notice.php:243 +#: classes/Notice.php:260 msgid "You are banned from posting notices on this site." msgstr "이 사이트에 게시글 포스팅으로부터 당신은 금지되었습니다." -#: classes/Notice.php:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "통지를 저장하는데 문제가 발생했습니다." -#: classes/Notice.php:882 +#: classes/Notice.php:911 #, fuzzy msgid "Problem saving group inbox." msgstr "통지를 저장하는데 문제가 발생했습니다." -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4554,19 +4598,29 @@ msgstr "예약 구독을 삭제 할 수 없습니다." msgid "Couldn't delete subscription." msgstr "예약 구독을 삭제 할 수 없습니다." -#: classes/User.php:372 +#: classes/User.php:373 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "%2$s에서 %1$s까지 메시지" -#: classes/User_group.php:423 +#: classes/User_group.php:462 msgid "Could not create group." msgstr "새 그룹을 만들 수 없습니다." -#: classes/User_group.php:452 +#: classes/User_group.php:471 +#, fuzzy +msgid "Could not set group URI." +msgstr "그룹 맴버십을 세팅할 수 없습니다." + +#: classes/User_group.php:492 msgid "Could not set group membership." msgstr "그룹 맴버십을 세팅할 수 없습니다." +#: classes/User_group.php:506 +#, fuzzy +msgid "Could not save local group info." +msgstr "구독을 저장할 수 없습니다." + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "프로필 세팅 바꾸기" @@ -4609,123 +4663,191 @@ msgstr "제목없는 페이지" msgid "Primary site navigation" msgstr "주 사이트 네비게이션" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "홈" - -#: lib/action.php:439 +#, fuzzy +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "개인 프로필과 친구 타임라인" -#: lib/action.php:441 +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "개인적인" + +#. TRANS: Tooltip for main menu option "Account" +#: lib/action.php:444 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "당신의 이메일, 아바타, 비밀 번호, 프로필을 변경하세요." -#: lib/action.php:444 -msgid "Connect" -msgstr "연결" +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "계정" -#: lib/action.php:444 +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 #, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" msgstr "서버에 재접속 할 수 없습니다 : %s" -#: lib/action.php:448 +#: lib/action.php:453 +#, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "연결" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 #, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "주 사이트 네비게이션" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" -msgstr "초대" +#: lib/action.php:460 +#, fuzzy +msgctxt "MENU" +msgid "Admin" +msgstr "관리자" -#: lib/action.php:453 lib/subgroupnav.php:106 -#, php-format +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 +#, fuzzy, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "%s에 친구를 가입시키기 위해 친구와 동료를 초대합니다." -#: lib/action.php:458 -msgid "Logout" -msgstr "로그아웃" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "초대" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +#, fuzzy +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "이 사이트로부터 로그아웃" -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "로그아웃" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 +#, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "계정 만들기" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "회원가입" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +#, fuzzy +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "이 사이트 로그인" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "도움말" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "로그인" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 +#, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "도움이 필요해!" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "검색" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "도움말" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +#, fuzzy +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "프로필이나 텍스트 검색" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "검색" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 msgid "Site notice" msgstr "사이트 공지" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "로컬 뷰" -#: lib/action.php:625 +#: lib/action.php:656 msgid "Page notice" msgstr "페이지 공지" -#: lib/action.php:727 +#: lib/action.php:758 msgid "Secondary site navigation" msgstr "보조 사이트 네비게이션" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "도움말" + +#: lib/action.php:765 msgid "About" msgstr "정보" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "자주 묻는 질문" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "개인정보 취급방침" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "소스 코드" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "연락하기" -#: lib/action.php:751 +#: lib/action.php:782 #, fuzzy msgid "Badge" msgstr "찔러 보기" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "라코니카 소프트웨어 라이선스" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4734,12 +4856,12 @@ msgstr "" "**%%site.name%%** 는 [%%site.broughtby%%](%%site.broughtbyurl%%)가 제공하는 " "마이크로블로깅서비스입니다." -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** 는 마이크로블로깅서비스입니다." -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4750,117 +4872,169 @@ msgstr "" "을 사용합니다. StatusNet는 [GNU Affero General Public License](http://www." "fsf.org/licensing/licenses/agpl-3.0.html) 라이선스에 따라 사용할 수 있습니다." -#: lib/action.php:801 +#: lib/action.php:832 #, fuzzy msgid "Site content license" msgstr "라코니카 소프트웨어 라이선스" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "모든 것" -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "라이선스" -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "페이지수" -#: lib/action.php:1141 +#: lib/action.php:1172 msgid "After" msgstr "뒷 페이지" -#: lib/action.php:1149 +#: lib/action.php:1180 msgid "Before" msgstr "앞 페이지" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 #, fuzzy msgid "You cannot make changes to this site." msgstr "당신은 이 사용자에게 메시지를 보낼 수 없습니다." -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 #, fuzzy msgid "Changes to that panel are not allowed." msgstr "가입이 허용되지 않습니다." -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 #, fuzzy msgid "showForm() not implemented." msgstr "명령이 아직 실행되지 않았습니다." -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 #, fuzzy msgid "saveSettings() not implemented." msgstr "명령이 아직 실행되지 않았습니다." -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 #, fuzzy msgid "Unable to delete design setting." msgstr "트위터 환경설정을 저장할 수 없습니다." -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 #, fuzzy msgid "Basic site configuration" msgstr "이메일 주소 확인서" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "초대" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 #, fuzzy msgid "Design configuration" msgstr "SMS 인증" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "개인적인" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 #, fuzzy msgid "User configuration" msgstr "SMS 인증" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +#, fuzzy +msgctxt "MENU" +msgid "User" +msgstr "이용자" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 #, fuzzy msgid "Access configuration" msgstr "SMS 인증" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "수락" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 #, fuzzy msgid "Paths configuration" msgstr "SMS 인증" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +msgctxt "MENU" +msgid "Paths" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 #, fuzzy msgid "Sessions configuration" msgstr "SMS 인증" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "개인적인" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4956,12 +5130,12 @@ msgstr "" msgid "Tags for this attachment" msgstr "" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 #, fuzzy msgid "Password changing failed" msgstr "비밀번호 변경" -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 #, fuzzy msgid "Password changing is not allowed" msgstr "비밀번호 변경" @@ -5239,20 +5413,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:148 #, fuzzy msgid "No configuration file found. " msgstr "확인 코드가 없습니다." -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:152 #, fuzzy msgid "Go to the installer." msgstr "이 사이트 로그인" @@ -5445,23 +5619,23 @@ msgstr "파일을 올리는데 시스템 오류 발생" msgid "Not an image or corrupt file." msgstr "그림 파일이 아니거나 손상된 파일 입니다." -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "지원하지 않는 그림 파일 형식입니다." -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "파일을 잃어버렸습니다." -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "알 수 없는 종류의 파일입니다" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "" @@ -5764,6 +5938,12 @@ msgstr "에게" msgid "Available characters" msgstr "사용 가능한 글자" +#: lib/messageform.php:178 lib/noticeform.php:236 +#, fuzzy +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "보내기" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "게시글 보내기" @@ -5823,25 +6003,25 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 #, fuzzy msgid "in context" msgstr "내용이 없습니다!" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 #, fuzzy msgid "Repeated by" msgstr "생성" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 msgid "Reply to this notice" msgstr "이 게시글에 대해 답장하기" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 msgid "Reply" msgstr "답장하기" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 #, fuzzy msgid "Notice repeated" msgstr "게시글이 등록되었습니다." @@ -5891,6 +6071,10 @@ msgstr "답신" msgid "Favorites" msgstr "좋아하는 글들" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "이용자" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "받은 쪽지함" @@ -5985,7 +6169,7 @@ msgstr "이 게시글에 대해 답장하기" msgid "Repeat this notice" msgstr "이 게시글에 대해 답장하기" -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "" @@ -6008,6 +6192,10 @@ msgstr "검색" msgid "Keyword(s)" msgstr "" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "검색" + #: lib/searchaction.php:162 #, fuzzy msgid "Search help" @@ -6062,6 +6250,15 @@ msgstr "%s에 의해 구독되는 사람들" msgid "Groups %s is a member of" msgstr "%s 그룹들은 의 멤버입니다." +#: lib/subgroupnav.php:105 +msgid "Invite" +msgstr "초대" + +#: lib/subgroupnav.php:106 +#, php-format +msgid "Invite friends and colleagues to join you on %s" +msgstr "%s에 친구를 가입시키기 위해 친구와 동료를 초대합니다." + #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 msgid "People Tagcloud as self-tagged" @@ -6136,47 +6333,47 @@ msgstr "메시지" msgid "Moderate" msgstr "" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "몇 초 전" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "1분 전" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "%d분 전" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "1시간 전" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "%d시간 전" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "하루 전" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "%d일 전" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "1달 전" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "%d달 전" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "1년 전" diff --git a/locale/mk/LC_MESSAGES/statusnet.po b/locale/mk/LC_MESSAGES/statusnet.po index 14efaf620..b80b0c905 100644 --- a/locale/mk/LC_MESSAGES/statusnet.po +++ b/locale/mk/LC_MESSAGES/statusnet.po @@ -9,77 +9,84 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:51:18+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:03:16+0000\n" "Language-Team: Macedonian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural= n==1 || n%10==1 ? 0 : 1;\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 msgid "Access" msgstr "Пристап" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 msgid "Site access settings" msgstr "Нагодувања за пристап на веб-страницата" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 msgid "Registration" msgstr "Регистрација" -#: actions/accessadminpanel.php:161 -msgid "Private" -msgstr "Приватен" - -#: actions/accessadminpanel.php:163 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "" "Да им забранам на анонимните (ненајавени) корисници да ја гледаат веб-" "страницата?" +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -msgid "Invite only" -msgstr "Само со покана" +#, fuzzy +msgctxt "LABEL" +msgid "Private" +msgstr "Приватен" -#: actions/accessadminpanel.php:169 +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 msgid "Make registration invitation only." msgstr "Регистрирање само со покана." -#: actions/accessadminpanel.php:173 -msgid "Closed" -msgstr "Затворен" +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 +msgid "Invite only" +msgstr "Само со покана" -#: actions/accessadminpanel.php:175 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 msgid "Disable new registrations." msgstr "Оневозможи нови регистрации." -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "Зачувај" +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 +msgid "Closed" +msgstr "Затворен" -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 msgid "Save access settings" msgstr "Зачувај нагодувања на пристап" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "Зачувај" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page" msgstr "Нема таква страница" -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -93,52 +100,60 @@ msgstr "Нема таква страница" #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "Нема таков корисник." -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s и пријателите, стр. %2$d" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s и пријатели" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Канал со пријатели на %s (RSS 1.0)" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Канал со пријатели на %s (RSS 2.0)" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Канал за пријатели на %S (Atom)" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" "Ова е историјата за %s и пријателите, но досега никој нема објавено ништо." -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -147,7 +162,8 @@ msgstr "" "Пробајте да се претплатите на повеќе луѓе, [зачленете се во група](%%action." "groups%%) или објавете нешто самите." -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " @@ -157,7 +173,7 @@ msgstr "" "на корисникот или да [објавите нешто што сакате тој да го прочита](%%%%" "action.newnotice%%%%?status_textarea=%3$s)." -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -167,7 +183,8 @@ msgstr "" "го подбуцнете корисникот %s или да објавите забелешка што сакате тој да ја " "прочита." -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 msgid "You and friends" msgstr "Вие и пријателите" @@ -185,20 +202,20 @@ msgstr "Подновувања од %1$s и пријатели на %2$s!" #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 msgid "API method not found." msgstr "API методот не е пронајден." @@ -232,8 +249,9 @@ msgstr "Не можев да го подновам корисникот." #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "Корисникот нема профил." @@ -259,7 +277,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: 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." @@ -372,68 +390,68 @@ msgstr "Не можев да го утврдам целниот корисник msgid "Could not find target user." msgstr "Не можев да го пронајдам целниот корисник." -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "Прекарот мора да има само мали букви и бројки и да нема празни места." -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Тој прекар е во употреба. Одберете друг." -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Неправилен прекар." -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Главната страница не е важечка URL-адреса." -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Целото име е предолго (максимум 255 знаци)" -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "Описот е предолг (дозволено е највеќе %d знаци)." -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Локацијата е предолга (максимумот е 255 знаци)." -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "Премногу алијаси! Дозволено е највеќе %d." -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Неважечки алијас: „%s“" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Алијасот „%s“ е зафатен. Одберете друг." -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "Алијасот не може да биде ист како прекарот." @@ -444,15 +462,15 @@ msgstr "Алијасот не може да биде ист како прека msgid "Group not found!" msgstr "Групата не е пронајдена!" -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 msgid "You are already a member of that group." msgstr "Веќе членувате во таа група." -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "Блокирани сте од таа група од администраторот." -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Не можам да го зачленам корисникот %1$s во групата 2$s." @@ -461,7 +479,7 @@ msgstr "Не можам да го зачленам корисникот %1$s в msgid "You are not a member of this group." msgstr "Не членувате во оваа група." -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Не можев да го отстранам корисникот %1$s од групата %2$s." @@ -492,7 +510,7 @@ msgstr "Погрешен жетон." #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -535,7 +553,7 @@ msgstr "Жетонот на барањето %s е одбиен и поништ #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -561,13 +579,13 @@ msgstr "" "%3$s податоците за Вашата %4$s сметка. Треба да дозволувате " "пристап до Вашата %4$s сметка само на трети страни на кои им верувате." -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 msgid "Account" msgstr "Сметка" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -651,12 +669,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "Подновувања на %1$s омилени на %2$s / %2$s." #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "Историја на %s" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -692,7 +710,7 @@ msgstr "Повторено за %s" msgid "Repeats of %s" msgstr "Повторувања на %s" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Забелешки означени со %s" @@ -713,8 +731,7 @@ msgstr "Нема таков прилог." #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "Нема прекар." @@ -726,7 +743,7 @@ msgstr "Нема големина." msgid "Invalid size." msgstr "Погрешна големина." -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Аватар" @@ -745,30 +762,30 @@ msgid "User without matching profile" msgstr "Корисник без соодветен профил" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Нагодувања на аватарот" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Оригинал" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Преглед" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 msgid "Delete" msgstr "Бриши" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "Подигни" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "Отсечи" @@ -776,7 +793,7 @@ msgstr "Отсечи" msgid "Pick a square area of the image to be your avatar" msgstr "Одберете квадратна површина од сликата за аватар" -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Податоците за податотеката се изгубени." @@ -812,22 +829,22 @@ msgstr "" "од корисникот." #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "Не" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 msgid "Do not block this user" msgstr "Не го блокирај корисников" #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Да" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 msgid "Block this user" msgstr "Блокирај го корисников" @@ -835,39 +852,43 @@ msgstr "Блокирај го корисников" msgid "Failed to save block information." msgstr "Не можев да ги снимам инофрмациите за блокот." -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 msgid "No such group." msgstr "Нема таква група." -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, php-format msgid "%s blocked profiles" msgstr "%s блокирани профили" -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s блокирани профили, стр. %2$d" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." msgstr "Листана корисниците блокирани од придружување во оваа група." -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 msgid "Unblock user from group" msgstr "Одблокирај корисник од група" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "Одблокирај" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 msgid "Unblock this user" msgstr "Одблокирај го овој корсник" @@ -942,7 +963,7 @@ msgstr "Не сте сопственик на овој програм." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "Се појави проблем со Вашиот сесиски жетон." @@ -968,12 +989,13 @@ msgstr "Не го бриши овој програм" msgid "Delete this application" msgstr "Избриши го програмов" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Не сте најавени." @@ -1002,7 +1024,7 @@ msgstr "Дали сте сигурни дека сакате да ја избр msgid "Do not delete this notice" msgstr "Не ја бриши оваа забелешка" -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 msgid "Delete this notice" msgstr "Бриши ја оваа забелешка" @@ -1018,7 +1040,7 @@ msgstr "Може да бришете само локални корисници. msgid "Delete user" msgstr "Бриши корисник" -#: actions/deleteuser.php:135 +#: 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." @@ -1026,12 +1048,12 @@ msgstr "" "Дали се сигурни дека сакате да го избришете овој корисник? Ова воедно ќе ги " "избрише сите податоци за корисникот од базата, без да може да се вратат." -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 msgid "Delete this user" msgstr "Избриши овој корисник" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "Изглед" @@ -1134,6 +1156,17 @@ msgstr "Врати основно-зададени нагодувања" msgid "Reset back to default" msgstr "Врати по основно" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "Зачувај" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "Зачувај изглед" @@ -1225,29 +1258,29 @@ msgstr "Уреди ја групата %s" msgid "You must be logged in to create a group." msgstr "Мора да сте најавени за да можете да создавате групи." -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: 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 "Мора да сте администратор за да можете да ја уредите групата." -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "ОБразецов служи за уредување на групата." -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, php-format msgid "description is too long (max %d chars)." msgstr "описот е предолг (максимум %d знаци)" -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 msgid "Could not update group." msgstr "Не можев да ја подновам групата." -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 msgid "Could not create aliases." msgstr "Не можеше да се создадат алијаси." -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 msgid "Options saved." msgstr "Нагодувањата се зачувани." @@ -1590,7 +1623,7 @@ msgstr "Корисникот е веќе блокиран од оваа груп msgid "User is not a member of group." msgstr "Корисникот не членува во групата." -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 msgid "Block user from group" msgstr "Блокирај корисник од група" @@ -1627,11 +1660,11 @@ msgstr "Нема ID." msgid "You must be logged in to edit a group." msgstr "Мора да сте најавени за да можете да уредувате група." -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 msgid "Group design" msgstr "Изглед на групата" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." @@ -1639,20 +1672,20 @@ msgstr "" "Прилагодете го изгледот на Вашата група со позадинска слика и палета од бои " "по Ваш избор." -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 msgid "Couldn't update your design." msgstr "Не можев да го подновам Вашиот изглед." -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 msgid "Design preferences saved." msgstr "Нагодувањата се зачувани." -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "Лого на групата" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." @@ -1660,57 +1693,57 @@ msgstr "" "Можете да подигнете слика за логото на Вашата група. Максималната дозволена " "големина на податотеката е %s." -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 msgid "User without matching profile." msgstr "Корисник без соодветен профил." -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Одберете квадратен простор на сликата за лого." -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 msgid "Logo updated." msgstr "Логото е подновено." -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 msgid "Failed updating logo." msgstr "Подновата на логото не успеа." -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "Членови на групата %s" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, php-format msgid "%1$s group members, page %2$d" msgstr "Членови на групата %1$s, стр. %2$d" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "Листа на корисниците на овааг група." -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "Администратор" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "Блокирај" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 msgid "Make user an admin of the group" msgstr "Направи го корисникот администратор на групата" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make Admin" msgstr "Направи го/ја администратор" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "Направи го корисникот администратор" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Подновувања од членови на %1$s на %2$s!" @@ -1976,16 +2009,19 @@ msgstr "Лична порака" msgid "Optionally add a personal message to the invitation." msgstr "Можете да додадете и лична порака во поканата." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" msgstr "Испрати" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s ве покани да се придружите на %2$s" -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2046,7 +2082,11 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Мора да сте најавени за да можете да се зачлените во група." -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Нема прекар или ID." + +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s се зачлени во групата %2$s" @@ -2055,11 +2095,11 @@ msgstr "%1$s се зачлени во групата %2$s" msgid "You must be logged in to leave a group." msgstr "Мора да сте најавени за да можете да ја напуштите групата." -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 msgid "You are not a member of that group." msgstr "Не членувате во таа група." -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s ја напушти групата %2$s" @@ -2076,8 +2116,7 @@ msgstr "Неточно корисничко име или лозинка" msgid "Error setting user. You are probably not authorized." msgstr "Грешка при поставувањето на корисникот. Веројатно не се заверени." -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "Најава" @@ -2334,8 +2373,8 @@ msgstr "тип на содржини " msgid "Only " msgstr "Само " -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "Ова не е поддржан формат на податотека." @@ -2476,7 +2515,7 @@ msgstr "Не можам да ја зачувам новата лозинка." msgid "Password saved." msgstr "Лозинката е зачувана." -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "Патеки" @@ -2509,7 +2548,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "Неважечки SSL-сервер. Дозволени се најмногу 255 знаци" #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 msgid "Site" msgstr "Веб-страница" @@ -2684,7 +2722,7 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 мали букви или бројки. Без интерпукциски знаци и празни места." #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "Цело име" @@ -2712,7 +2750,7 @@ msgid "Bio" msgstr "Биографија" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2796,7 +2834,8 @@ msgstr "Не можам да го зачувам профилот." msgid "Couldn't save tags." msgstr "Не можев да ги зачувам ознаките." -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "Нагодувањата се зачувани" @@ -2809,28 +2848,28 @@ msgstr "Надминато е ограничувањето на страница msgid "Could not retrieve public stream." msgstr "Не можам да го вратам јавниот поток." -#: actions/public.php:129 +#: actions/public.php:130 #, php-format msgid "Public timeline, page %d" msgstr "Јавна историја, стр. %d" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "Јавна историја" -#: actions/public.php:159 +#: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" msgstr "Канал на јавниот поток (RSS 1.0)" -#: actions/public.php:163 +#: actions/public.php:164 msgid "Public Stream Feed (RSS 2.0)" msgstr "Канал на јавниот поток (RSS 2.0)" -#: actions/public.php:167 +#: actions/public.php:168 msgid "Public Stream Feed (Atom)" msgstr "Канал на јавниот поток (Atom)" -#: actions/public.php:187 +#: actions/public.php:188 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " @@ -2838,11 +2877,11 @@ msgid "" msgstr "" "Ова е јавната историја за %%site.name%%, но досега никој ништо нема објавено." -#: actions/public.php:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "Создајте ја првата забелешка!" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" @@ -2850,7 +2889,7 @@ msgstr "" "Зошто не [регистрирате сметка](%%action.register%%) и станете првиот " "објавувач!" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2864,7 +2903,7 @@ msgstr "" "споделувате забелешки за себе со приајтелите, семејството и колегите! " "([Прочитајте повеќе](%%doc.help%%))" -#: actions/public.php:246 +#: actions/public.php:247 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3044,8 +3083,7 @@ msgstr "Жалиме, неважечки код за поканата." msgid "Registration successful" msgstr "Регистрацијата е успешна" -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "Регистрирај се" @@ -3233,7 +3271,7 @@ msgstr "Не можете да повторувате сопствена заб msgid "You already repeated that notice." msgstr "Веќе ја имате повторено таа забелешка." -#: actions/repeat.php:114 lib/noticelist.php:656 +#: actions/repeat.php:114 lib/noticelist.php:674 msgid "Repeated" msgstr "Повторено" @@ -3241,33 +3279,33 @@ msgstr "Повторено" msgid "Repeated!" msgstr "Повторено!" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "Одговори испратени до %s" -#: actions/replies.php:127 +#: actions/replies.php:128 #, php-format msgid "Replies to %1$s, page %2$d" msgstr "Одговори на %1$s, стр. %2$d" -#: actions/replies.php:144 +#: actions/replies.php:145 #, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "Канал со одговори за %s (RSS 1.0)" -#: actions/replies.php:151 +#: actions/replies.php:152 #, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "Канал со одговори за %s (RSS 2.0)" -#: actions/replies.php:158 +#: actions/replies.php:159 #, php-format msgid "Replies feed for %s (Atom)" msgstr "Канал со одговори за %s (Atom)" -#: actions/replies.php:198 +#: actions/replies.php:199 #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " @@ -3276,7 +3314,7 @@ msgstr "" "Ова е историјата на која се прикажани одговорите на %1$s, но %2$s сè уште " "нема добиено порака од некој што сака да ја прочита." -#: actions/replies.php:203 +#: actions/replies.php:204 #, php-format msgid "" "You can engage other users in a conversation, subscribe to more people or " @@ -3285,7 +3323,7 @@ msgstr "" "Можете да започнувате разговори со други корисници, да се претплаќате на " "други луѓе или да [се зачленувате во групи](%%action.groups%%)." -#: actions/replies.php:205 +#: actions/replies.php:206 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3312,7 +3350,6 @@ msgid "User is already sandboxed." msgstr "Корисникот е веќе во песочен режим." #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "Сесии" @@ -3337,7 +3374,7 @@ msgid "Turn on debugging output for sessions." msgstr "Вклучи извод од поправка на грешки за сесии." #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Зачувај нагодувања на веб-страницата" @@ -3367,7 +3404,7 @@ msgstr "Организација" msgid "Description" msgstr "Опис" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Статистики" @@ -3432,22 +3469,22 @@ msgstr "Омилени забелешки на %1$s, стр. %2$d" msgid "Could not retrieve favorite notices." msgstr "Не можев да ги вратам омилените забелешки." -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "Канал за омилени забелешки на %s (RSS 1.0)" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "Канал за омилени забелешки на %s (RSS 2.0)" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" msgstr "Канал за омилени забелешки на %s (Atom)" -#: actions/showfavorites.php:205 +#: 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." @@ -3456,7 +3493,7 @@ msgstr "" "омилена забелешка веднаш до самата забелешката што Ви се допаѓа за да ја " "обележите за подоцна, или за да ѝ дадете на важност." -#: actions/showfavorites.php:207 +#: actions/showfavorites.php:208 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Post something interesting " @@ -3465,7 +3502,7 @@ msgstr "" "%s сè уште нема додадено забелешки како омилени. Објавете нешто интересно, " "што корисникот би го обележал како омилено :)" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3476,7 +3513,7 @@ msgstr "" "%%action.register%%%%) и потоа објавите нешто интересно што корисникот би го " "додал како омилено :)" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "Ова е начин да го споделите она што Ви се допаѓа." @@ -3490,67 +3527,67 @@ msgstr "Група %s" msgid "%1$s group, page %2$d" msgstr "Група %1$s, стр. %2$d" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 msgid "Group profile" msgstr "Профил на група" -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "URL" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 msgid "Note" msgstr "Забелешка" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "Алијаси" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "Групни дејства" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Канал со забелешки за групата %s (RSS 1.0)" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Канал со забелешки за групата %s (RSS 2.0)" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Канал со забелешки за групата%s (Atom)" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, php-format msgid "FOAF for %s group" msgstr "FOAF за групата %s" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 msgid "Members" msgstr "Членови" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Нема)" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "Сите членови" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 msgid "Created" msgstr "Создадено" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3566,7 +3603,7 @@ msgstr "" "се](%%%%action.register%%%%) за да станете дел од оваа група и многу повеќе! " "([Прочитајте повеќе](%%%%doc.help%%%%))" -#: actions/showgroup.php:454 +#: actions/showgroup.php:462 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3579,7 +3616,7 @@ msgstr "" "слободната програмска алатка [StatusNet](http://status.net/). Нејзините " "членови си разменуваат кратки пораки за нивниот живот и интереси. " -#: actions/showgroup.php:482 +#: actions/showgroup.php:490 msgid "Admins" msgstr "Администратори" @@ -3957,17 +3994,16 @@ msgstr "Не можев да ја зачувам претплатата." #: actions/subscribe.php:77 msgid "This action only accepts POST requests." -msgstr "" +msgstr "Ова дејство прифаќа само POST-барања" #: actions/subscribe.php:107 -#, fuzzy msgid "No such profile." -msgstr "Нема таква податотека." +msgstr "Нема таков профил." #: actions/subscribe.php:117 -#, fuzzy msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." -msgstr "Не сте претплатени на тој профил." +msgstr "" +"Не можете да се претплатите на OMB 0.1 оддалечен профил со ова дејство." #: actions/subscribe.php:145 msgid "Subscribed" @@ -4061,22 +4097,22 @@ msgstr "Jabber" msgid "SMS" msgstr "СМС" -#: actions/tag.php:68 +#: actions/tag.php:69 #, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "Забелешки означени со %1$s, стр. %2$d" -#: actions/tag.php:86 +#: actions/tag.php:87 #, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "Канал со забелешки за ознаката %s (RSS 1.0)" -#: actions/tag.php:92 +#: actions/tag.php:93 #, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "Канал со забелешки за ознаката %s (RSS 2.0)" -#: actions/tag.php:98 +#: actions/tag.php:99 #, php-format msgid "Notice feed for tag %s (Atom)" msgstr "Канал со забелешки за ознаката %s (Atom)" @@ -4130,7 +4166,7 @@ msgstr "Со овој образец додавајте ознаки во Ваш msgid "No such tag." msgstr "Нема таква ознака." -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "API-методот е во изработка." @@ -4162,70 +4198,72 @@ msgstr "" "Лиценцата на потокот на следачот „%1$s“ не е компатибилна со лиценцата на " "веб-страницата „%2$s“." -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +#, fuzzy +msgctxt "TITLE" msgid "User" msgstr "Корисник" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "Кориснички нагодувања за оваа StatusNet веб-страница." -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "Неважечко ограничување за биографијата. Мора да е бројчено." -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "НЕважечки текст за добредојде. Дозволени се највеќе 255 знаци." -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "Неважечки опис по основно: „%1$s“ не е корисник." -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "Профил" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "Ограничување за биографијата" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "Максимална големина на профилната биографија во знаци." -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 msgid "New users" msgstr "Нови корисници" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "Добредојде за нов корисник" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "Текст за добредојде на нови корисници (највеќе до 255 знаци)." -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 msgid "Default subscription" msgstr "Основно-зададена претплата" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 msgid "Automatically subscribe new users to this user." msgstr "Автоматски претплатувај нови корисници на овој корисник." -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 msgid "Invitations" msgstr "Покани" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 msgid "Invitations enabled" msgstr "Поканите се овозможени" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "Дали да им е дозволено на корисниците да канат други корисници." @@ -4423,7 +4461,7 @@ msgstr "" msgid "Plugins" msgstr "Приклучоци" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 msgid "Version" msgstr "Верзија" @@ -4463,6 +4501,10 @@ msgstr "Не е дел од групата." msgid "Group leave failed." msgstr "Напуштањето на групата не успеа." +#: classes/Local_group.php:41 +msgid "Could not update local group." +msgstr "Не можев да ја подновам локалната група." + #: classes/Login_token.php:76 #, php-format msgid "Could not create login token for %s" @@ -4480,27 +4522,27 @@ msgstr "Не можев да ја испратам пораката." msgid "Could not update message with new URI." msgstr "Не можев да ја подновам пораката со нов URI." -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "Грешка во базата на податоци при вметнувањето на хеш-ознака: %s" -#: classes/Notice.php:222 +#: classes/Notice.php:239 msgid "Problem saving notice. Too long." msgstr "Проблем со зачувувањето на белешката. Премногу долго." -#: classes/Notice.php:226 +#: classes/Notice.php:243 msgid "Problem saving notice. Unknown user." msgstr "Проблем со зачувувањето на белешката. Непознат корисник." -#: classes/Notice.php:231 +#: classes/Notice.php:248 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "Премногу забелњшки за прекратко време; здивнете малку и продолжете за " "неколку минути." -#: classes/Notice.php:237 +#: classes/Notice.php:254 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4508,19 +4550,19 @@ msgstr "" "Премногу дуплирани пораки во прекратко време; здивнете малку и продолжете за " "неколку минути." -#: classes/Notice.php:243 +#: classes/Notice.php:260 msgid "You are banned from posting notices on this site." msgstr "Забрането Ви е да објавувате забелешки на оваа веб-страница." -#: classes/Notice.php:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "Проблем во зачувувањето на белешката." -#: classes/Notice.php:882 +#: classes/Notice.php:911 msgid "Problem saving group inbox." msgstr "Проблем при зачувувањето на групното приемно сандаче." -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4550,19 +4592,27 @@ msgstr "Не можам да ја избришам самопретплатат msgid "Couldn't delete subscription." msgstr "Претплата не може да се избрише." -#: classes/User.php:372 +#: classes/User.php:373 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Добредојдовте на %1$s, @%2$s!" -#: classes/User_group.php:423 +#: classes/User_group.php:462 msgid "Could not create group." msgstr "Не можев да ја создадам групата." -#: classes/User_group.php:452 +#: classes/User_group.php:471 +msgid "Could not set group URI." +msgstr "Не можев да поставам URI на групата." + +#: classes/User_group.php:492 msgid "Could not set group membership." msgstr "Не можев да назначам членство во групата." +#: classes/User_group.php:506 +msgid "Could not save local group info." +msgstr "Не можев да ги зачувам информациите за локалните групи." + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "Смени профилни нагодувања" @@ -4604,120 +4654,190 @@ msgstr "Страница без наслов" msgid "Primary site navigation" msgstr "Главна навигација" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "Дома" - -#: lib/action.php:439 +#, fuzzy +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Личен профил и историја на пријатели" -#: lib/action.php:441 +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "Личен" + +#. TRANS: Tooltip for main menu option "Account" +#: lib/action.php:444 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Промена на е-пошта, аватар, лозинка, профил" -#: lib/action.php:444 -msgid "Connect" -msgstr "Поврзи се" +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "Сметка" -#: lib/action.php:444 +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 +#, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Поврзи се со услуги" -#: lib/action.php:448 +#: lib/action.php:453 +#, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "Поврзи се" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Промена на конфигурацијата на веб-страницата" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" -msgstr "Покани" +#: lib/action.php:460 +#, fuzzy +msgctxt "MENU" +msgid "Admin" +msgstr "Администратор" -#: lib/action.php:453 lib/subgroupnav.php:106 -#, php-format +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 +#, fuzzy, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Поканете пријатели и колеги да Ви се придружат на %s" -#: lib/action.php:458 -msgid "Logout" -msgstr "Одјави се" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "Покани" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +#, fuzzy +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Одјава" -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "Одјави се" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 +#, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "Создај сметка" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "Регистрирај се" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +#, fuzzy +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Најава" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "Помош" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "Најава" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 +#, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "Напомош!" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "Барај" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "Помош" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +#, fuzzy +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Пребарајте луѓе или текст" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "Барај" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 msgid "Site notice" msgstr "Напомена за веб-страницата" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "Локални прегледи" -#: lib/action.php:625 +#: lib/action.php:656 msgid "Page notice" msgstr "Напомена за страницата" -#: lib/action.php:727 +#: lib/action.php:758 msgid "Secondary site navigation" msgstr "Споредна навигација" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "Помош" + +#: lib/action.php:765 msgid "About" msgstr "За" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "ЧПП" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "Услови" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "Приватност" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "Изворен код" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "Контакт" -#: lib/action.php:751 +#: lib/action.php:782 msgid "Badge" msgstr "Значка" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "Лиценца на програмот StatusNet" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4726,12 +4846,12 @@ msgstr "" "**%%site.name%%** е сервис за микроблогирање што ви го овозможува [%%site." "broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** е сервис за микроблогирање." -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4742,111 +4862,164 @@ msgstr "" "верзија %s, достапен пд [GNU Affero General Public License](http://www.fsf." "org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:801 +#: lib/action.php:832 msgid "Site content license" msgstr "Лиценца на содржините на веб-страницата" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Содржината и податоците на %1$s се лични и доверливи." -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" "Авторските права на содржината и податоците се во сопственост на %1$s. Сите " "права задржани." -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Авторските права на содржината и податоците им припаѓаат на учесниците. Сите " "права задржани." -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "Сите " -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "лиценца." -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "Прелом на страници" -#: lib/action.php:1141 +#: lib/action.php:1172 msgid "After" msgstr "По" -#: lib/action.php:1149 +#: lib/action.php:1180 msgid "Before" msgstr "Пред" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." -msgstr "" +msgstr "Сè уште не е поддржана обработката на оддалечена содржина." -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." -msgstr "" +msgstr "Сè уште не е поддржана обработката на XML содржина." -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." -msgstr "" +msgstr "Сè уште не е достапна обработката на вметната Base64 содржина." -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." msgstr "Не можете да ја менувате оваа веб-страница." -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 msgid "Changes to that panel are not allowed." msgstr "Менувањето на тој алатник не е дозволено." -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 msgid "showForm() not implemented." msgstr "showForm() не е имплементирано." -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 msgid "saveSettings() not implemented." msgstr "saveSettings() не е имплементирано." -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 msgid "Unable to delete design setting." msgstr "Не можам да ги избришам нагодувањата за изглед." -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 msgid "Basic site configuration" msgstr "Основни нагодувања на веб-страницата" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "Веб-страница" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 msgid "Design configuration" msgstr "Конфигурација на изгледот" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "Изглед" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 msgid "User configuration" msgstr "Конфигурација на корисник" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +#, fuzzy +msgctxt "MENU" +msgid "User" +msgstr "Корисник" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 msgid "Access configuration" msgstr "Конфигурација на пристапот" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "Пристап" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 msgid "Paths configuration" msgstr "Конфигурација на патеки" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +#, fuzzy +msgctxt "MENU" +msgid "Paths" +msgstr "Патеки" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 msgid "Sessions configuration" msgstr "Конфигурација на сесиите" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "Сесии" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" "API-ресурсот бара да може и да чита и да запишува, а вие можете само да " "читате." -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "Неуспешен обид за API-заверка, прекар = %1$s, прокси = %2$s, IP = %3$s" @@ -4937,11 +5110,11 @@ msgstr "Забелешки кадешто се јавува овој прило msgid "Tags for this attachment" msgstr "Ознаки за овој прилог" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 msgid "Password changing failed" msgstr "Менувањето на лозинката не успеа" -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 msgid "Password changing is not allowed" msgstr "Менувањето на лозинка не е дозволено" @@ -5143,9 +5316,9 @@ msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "Оваа врска може да се употреби само еднаш, и трае само 2 минути: %s" #: lib/command.php:692 -#, fuzzy, php-format +#, php-format msgid "Unsubscribed %s" -msgstr "Претплатата на %s е откажана" +msgstr "Откажана претплата на %s" #: lib/command.php:709 msgid "You are not subscribed to anyone." @@ -5178,7 +5351,6 @@ msgstr[0] "Не ни го испративте тој профил." msgstr[1] "Не ни го испративте тој профил." #: lib/command.php:769 -#, fuzzy msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5257,19 +5429,19 @@ msgstr "" "tracks - сè уште не е имплементирано.\n" "tracking - сè уште не е имплементирано.\n" -#: lib/common.php:136 +#: lib/common.php:148 msgid "No configuration file found. " msgstr "Нема пронајдено конфигурациска податотека. " -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "Побарав конфигурациони податотеки на следниве места: " -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "Препорачуваме да го пуштите инсталатерот за да го поправите ова." -#: lib/common.php:140 +#: lib/common.php:152 msgid "Go to the installer." msgstr "Оди на инсталаторот." @@ -5459,23 +5631,23 @@ msgstr "Системска грешка при подигањето на под msgid "Not an image or corrupt file." msgstr "Не е слика или податотеката е пореметена." -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "Неподдржан фомрат на слики." -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Податотеката е изгубена." -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "Непознат тип на податотека" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "МБ" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "кб" @@ -5862,6 +6034,11 @@ msgstr "За" 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 "Испрати забелешка" @@ -5920,23 +6097,23 @@ msgstr "З" msgid "at" msgstr "во" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 msgid "in context" msgstr "во контекст" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 msgid "Repeated by" msgstr "Повторено од" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 msgid "Reply to this notice" msgstr "Одговори на забелешкава" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 msgid "Reply" msgstr "Одговор" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 msgid "Notice repeated" msgstr "Забелешката е повторена" @@ -5984,6 +6161,10 @@ msgstr "Одговори" msgid "Favorites" msgstr "Омилени" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "Корисник" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Примени" @@ -6073,7 +6254,7 @@ msgstr "Да ја повторам белешкава?" msgid "Repeat this notice" msgstr "Повтори ја забелешкава" -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "Не е зададен корисник за еднокорисничкиот режим." @@ -6093,6 +6274,10 @@ msgstr "Пребарај по веб-страницата" msgid "Keyword(s)" msgstr "Клучен збор" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "Барај" + #: lib/searchaction.php:162 msgid "Search help" msgstr "Помош со пребарување" @@ -6144,6 +6329,15 @@ msgstr "Луѓе претплатени на %s" msgid "Groups %s is a member of" msgstr "Групи кадешто членува %s" +#: lib/subgroupnav.php:105 +msgid "Invite" +msgstr "Покани" + +#: lib/subgroupnav.php:106 +#, php-format +msgid "Invite friends and colleagues to join you on %s" +msgstr "Поканете пријатели и колеги да Ви се придружат на %s" + #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 msgid "People Tagcloud as self-tagged" @@ -6214,47 +6408,47 @@ msgstr "Порака" msgid "Moderate" msgstr "Модерирај" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "пред неколку секунди" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "пред една минута" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "пред %d минути" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "пред еден час" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "пред %d часа" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "пред еден ден" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "пред %d денови" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "пред еден месец" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "пред %d месеца" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "пред една година" diff --git a/locale/nb/LC_MESSAGES/statusnet.po b/locale/nb/LC_MESSAGES/statusnet.po index cf3daf093..a3e64e0cb 100644 --- a/locale/nb/LC_MESSAGES/statusnet.po +++ b/locale/nb/LC_MESSAGES/statusnet.po @@ -1,5 +1,6 @@ # Translation of StatusNet to Norwegian (bokmål)‬ # +# Author@translatewiki.net: Laaknor # Author@translatewiki.net: Nghtwlkr # -- # This file is distributed under the same license as the StatusNet package. @@ -8,75 +9,82 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:51:22+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:03:19+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 (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 msgid "Access" msgstr "Tilgang" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 msgid "Site access settings" msgstr "Innstillinger for nettstedstilgang" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 msgid "Registration" msgstr "Registrering" -#: actions/accessadminpanel.php:161 -msgid "Private" -msgstr "Privat" - -#: actions/accessadminpanel.php:163 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "Forhindre anonyme brukere (ikke innlogget) å se nettsted?" +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -msgid "Invite only" -msgstr "Kun invitasjon" +#, fuzzy +msgctxt "LABEL" +msgid "Private" +msgstr "Privat" -#: actions/accessadminpanel.php:169 +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 msgid "Make registration invitation only." msgstr "Gjør at registrering kun kan skje gjennom invitasjon." -#: actions/accessadminpanel.php:173 -msgid "Closed" -msgstr "Lukket" +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 +msgid "Invite only" +msgstr "Kun invitasjon" -#: actions/accessadminpanel.php:175 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 msgid "Disable new registrations." msgstr "Deaktiver nye registreringer." -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "Lagre" +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 +msgid "Closed" +msgstr "Lukket" -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 msgid "Save access settings" msgstr "Lagre tilgangsinnstillinger" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "Lagre" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page" msgstr "Ingen slik side" -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -90,51 +98,59 @@ msgstr "Ingen slik side" #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "Ingen slik bruker" -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s og venner, side %2$d" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s og venner" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Mating for venner av %s (RSS 1.0)" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Mating for venner av %s (RSS 2.0)" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Mating for venner av %s (Atom)" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, 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 postet noe enda." -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -143,7 +159,8 @@ msgstr "" "Prøv å abbonere på flere personer, [bli med i en gruppe](%%action.groups%%) " "eller post noe selv." -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " @@ -153,7 +170,7 @@ msgstr "" "å få hans eller hennes oppmerksomhet](%%%%action.newnotice%%%%?" "status_textarea=%3$s)." -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -162,7 +179,8 @@ msgstr "" "Hvorfor ikke [opprette en konto](%%%%action.register%%%%) og så knuff %s " "eller post en notis for å få hans eller hennes oppmerksomhet." -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 msgid "You and friends" msgstr "Du og venner" @@ -180,20 +198,20 @@ msgstr "Oppdateringer fra %1$s og venner på %2$s!" #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "API-metode ikke funnet!" @@ -227,8 +245,9 @@ msgstr "Klarte ikke å oppdatere bruker." #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "Brukeren har ingen profil." @@ -255,7 +274,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: 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." @@ -366,68 +385,68 @@ msgstr "Kunne ikke bestemme kildebruker." msgid "Could not find target user." msgstr "Kunne ikke finne målbruker." -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "Kallenavn kan kun ha små bokstaver og tall og ingen mellomrom." -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Det nicket er allerede i bruk. Prøv et annet." -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Ugyldig nick." -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Hjemmesiden er ikke en gyldig URL." -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Beklager, navnet er for langt (max 250 tegn)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "Beskrivelsen er for lang (maks %d tegn)." -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." -msgstr "" +msgstr "Plassering er for lang (maks 255 tegn)." -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "For mange alias! Maksimum %d." -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Ugyldig alias: «%s»" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Aliaset «%s» er allerede i bruk. Prøv et annet." -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 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 kallenavn." @@ -438,15 +457,15 @@ msgstr "Alias kan ikke være det samme som kallenavn." msgid "Group not found!" msgstr "Gruppe ikke funnet!" -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 msgid "You are already a member of that group." msgstr "Du er allerede medlem av den gruppen." -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "Du har blitt blokkert fra den gruppen av administratoren." -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Kunne ikke legge bruker %1$s til gruppe %2$s." @@ -455,7 +474,7 @@ msgstr "Kunne ikke legge bruker %1$s til gruppe %2$s." msgid "You are not a member of this group." msgstr "Du er ikke et medlem av denne gruppen." -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Kunne ikke fjerne bruker %1$s fra gruppe %2$s." @@ -480,14 +499,13 @@ msgid "No oauth_token parameter provided." msgstr "Ingen verdi for oauth_token er oppgitt." #: actions/apioauthauthorize.php:106 -#, fuzzy msgid "Invalid token." -msgstr "Ugyldig størrelse" +msgstr "Ugyldig symbol." #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -500,7 +518,7 @@ msgstr "Ugyldig størrelse" #: 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 "" +msgstr "Det var et problem med din sesjons-autentisering. Prøv igjen." #: actions/apioauthauthorize.php:135 msgid "Invalid nickname / password!" @@ -508,11 +526,11 @@ msgstr "Ugyldig kallenavn / passord!" #: actions/apioauthauthorize.php:159 msgid "Database error deleting OAuth application user." -msgstr "" +msgstr "Databasefeil ved sletting av bruker fra programmet OAuth." #: actions/apioauthauthorize.php:185 msgid "Database error inserting OAuth application user." -msgstr "" +msgstr "Databasefeil ved innsetting av bruker i programmet OAuth." #: actions/apioauthauthorize.php:214 #, php-format @@ -528,16 +546,16 @@ msgstr "" #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." -msgstr "" +msgstr "Uventet skjemainnsending." #: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" -msgstr "" +msgstr "Et program ønsker å koble til kontoen din" #: actions/apioauthauthorize.php:276 msgid "Allow or deny access" @@ -550,14 +568,17 @@ msgid "" "the ability to %3$s your %4$s account data. You should only " "give access to your %4$s account to third parties you trust." msgstr "" +"Programmet %1$s av %2$s ønsker å kunne " +"%3$s dine %4$s-kontodata. Du bør bare gi tilgang til din %4" +"$s-konto til tredjeparter du stoler på." -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 msgid "Account" msgstr "Konto" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -582,7 +603,7 @@ msgstr "Tillat eller nekt tilgang til din kontoinformasjon." #: actions/apistatusesdestroy.php:107 msgid "This method requires a POST or DELETE." -msgstr "" +msgstr "Denne metoden krever en POST eller DELETE." #: actions/apistatusesdestroy.php:130 msgid "You may not delete another user's status." @@ -613,7 +634,7 @@ msgstr "Ingen status med den ID-en funnet." #: lib/mailhandler.php:60 #, php-format msgid "That's too long. Max notice size is %d chars." -msgstr "" +msgstr "Det er for langt. Maks notisstørrelse er %d tegn." #: actions/apistatusesupdate.php:202 msgid "Not found" @@ -622,7 +643,7 @@ msgstr "Ikke funnet" #: actions/apistatusesupdate.php:225 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." -msgstr "" +msgstr "Maks notisstørrelse er %d tegn, inklusive vedleggs-URL." #: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 msgid "Unsupported format." @@ -639,12 +660,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s oppdateringer markert som favoritt av %2$s / %2$s." #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "%s tidslinje" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -680,7 +701,7 @@ msgstr "Gjentatt til %s" msgid "Repeats of %s" msgstr "Repetisjoner av %s" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Notiser merket med %s" @@ -701,8 +722,7 @@ msgstr "Ingen slike vedlegg." #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "Ingen kallenavn." @@ -714,7 +734,7 @@ msgstr "Ingen størrelse." msgid "Invalid size." msgstr "Ugyldig størrelse" -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Brukerbilde" @@ -722,49 +742,49 @@ msgstr "Brukerbilde" #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." -msgstr "" +msgstr "Du kan laste opp en personlig avatar. Maks filstørrelse er %s." #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 #: actions/userrss.php:103 msgid "User without matching profile" -msgstr "" +msgstr "Bruker uten samsvarende profil" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Avatarinnstillinger" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Original" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Forhåndsvis" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 msgid "Delete" msgstr "Slett" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "Last opp" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "Beskjær" #: actions/avatarsettings.php:328 msgid "Pick a square area of the image to be your avatar" -msgstr "" +msgstr "Velg et kvadratisk utsnitt av bildet som din avatar." -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." -msgstr "" +msgstr "Mistet våre fildata." #: actions/avatarsettings.php:366 msgid "Avatar updated." @@ -792,66 +812,73 @@ msgid "" "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å at du vil blokkere denne brukeren? Etter dette vil de ikke " +"lenger abbonere på deg, vil ikke kunne abbonere på deg i fremtiden og du vil " +"ikke bli varslet om @-svar fra dem." #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "Nei" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 msgid "Do not block this user" msgstr "Ikke blokker denne brukeren" #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Ja" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 msgid "Block this user" msgstr "Blokker denne brukeren" #: actions/block.php:167 msgid "Failed to save block information." -msgstr "" - -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +msgstr "Kunne ikke lagre blokkeringsinformasjon." + +#: 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:212 +#: lib/command.php:260 msgid "No such group." msgstr "Ingen slik gruppe." -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, php-format msgid "%s blocked profiles" msgstr "%s blokkerte profiler" -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s blokkerte profiler, side %2$d" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." -msgstr "" +msgstr "En liste over brukere som er blokkert fra å delta i denne gruppen." -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 msgid "Unblock user from group" -msgstr "" +msgstr "Opphev blokkering av bruker fra gruppe" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" -msgstr "" +msgstr "Opphev blokkering" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 msgid "Unblock this user" -msgstr "" +msgstr "Opphev blokkering av denne brukeren" #: actions/bookmarklet.php:50 msgid "Post to " @@ -867,12 +894,12 @@ msgstr "Fant ikke bekreftelseskode." #: actions/confirmaddress.php:85 msgid "That confirmation code is not for you!" -msgstr "" +msgstr "Den bekreftelseskoden er ikke til deg." #: actions/confirmaddress.php:90 #, php-format msgid "Unrecognized address type %s" -msgstr "" +msgstr "Ukjent adressetype %s" #: actions/confirmaddress.php:94 msgid "That address has already been confirmed." @@ -907,7 +934,7 @@ msgstr "Samtale" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:216 lib/searchgroupnav.php:82 msgid "Notices" -msgstr "" +msgstr "Notiser" #: actions/deleteapplication.php:63 msgid "You must be logged in to delete an application." @@ -924,7 +951,7 @@ msgstr "Du er ikke eieren av dette programmet." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "" @@ -950,12 +977,13 @@ msgstr "Ikke slett dette programmet" msgid "Delete this application" msgstr "Slett dette programmet" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Ikke logget inn." @@ -984,7 +1012,7 @@ msgstr "Er du sikker på at du vil slette denne notisen?" msgid "Do not delete this notice" msgstr "Ikke slett denne notisen" -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 msgid "Delete this notice" msgstr "Slett denne notisen" @@ -1000,7 +1028,7 @@ msgstr "Du kan bare slette lokale brukere." msgid "Delete user" msgstr "Slett bruker" -#: actions/deleteuser.php:135 +#: 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." @@ -1008,12 +1036,12 @@ msgstr "" "Er du sikker på at du vil slette denne brukeren? Dette vil slette alle data " "om brukeren fra databasen, uten sikkerhetskopi." -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 msgid "Delete this user" msgstr "Slett denne brukeren" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "" @@ -1028,7 +1056,7 @@ msgstr "Ugyldig logo-URL." #: actions/designadminpanel.php:279 #, php-format msgid "Theme not available: %s" -msgstr "" +msgstr "Tema ikke tilgjengelig: %s" #: actions/designadminpanel.php:375 msgid "Change logo" @@ -1039,18 +1067,16 @@ msgid "Site logo" msgstr "Nettstedslogo" #: actions/designadminpanel.php:387 -#, fuzzy msgid "Change theme" -msgstr "Endre" +msgstr "Endre tema" #: actions/designadminpanel.php:404 -#, fuzzy msgid "Site theme" -msgstr "Endre" +msgstr "Nettstedstema" #: actions/designadminpanel.php:405 msgid "Theme for the site." -msgstr "" +msgstr "Tema for nettstedet." #: actions/designadminpanel.php:417 lib/designsettings.php:101 msgid "Change background image" @@ -1067,6 +1093,7 @@ msgid "" "You can upload a background image for the site. The maximum file size is %1" "$s." msgstr "" +"Du kan laste opp et bakgrunnsbilde for nettstedet. Maks filstørrelse er %1$s." #: actions/designadminpanel.php:457 lib/designsettings.php:139 msgid "On" @@ -1115,7 +1142,18 @@ msgstr "" #: actions/designadminpanel.php:584 lib/designsettings.php:254 msgid "Reset back to default" -msgstr "" +msgstr "Tilbakestill til standardverdier" + +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "Lagre" #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" @@ -1203,38 +1241,37 @@ msgstr "Klarte ikke å oppdatere bruker." #: actions/editgroup.php:56 #, php-format msgid "Edit %s group" -msgstr "" +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 må være innlogget for å opprette en gruppe." -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 -#, fuzzy +#: 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 "Gjør brukeren til en administrator for gruppen" +msgstr "Du må være en administrator for å redigere gruppen." -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." -msgstr "" +msgstr "Bruk dette skjemaet for å redigere gruppen." -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, php-format msgid "description is too long (max %d chars)." msgstr "beskrivelse er for lang (maks %d tegn)" -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 msgid "Could not update group." msgstr "Kunne ikke oppdatere gruppe." -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 msgid "Could not create aliases." msgstr "Kunne ikke opprette alias." -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 msgid "Options saved." -msgstr "" +msgstr "Lagret valg." #: actions/emailsettings.php:60 msgid "Email settings" @@ -1243,7 +1280,7 @@ msgstr "E-postinnstillinger" #: actions/emailsettings.php:71 #, php-format msgid "Manage how you get email from %%site.name%%." -msgstr "" +msgstr "Velg hvordan du mottar e-post fra %%site.name%%." #: actions/emailsettings.php:100 actions/imsettings.php:100 #: actions/smssettings.php:104 @@ -1306,7 +1343,7 @@ msgstr "Ny" #: actions/emailsettings.php:153 actions/imsettings.php:139 #: actions/smssettings.php:169 msgid "Preferences" -msgstr "" +msgstr "Innstillinger" #: actions/emailsettings.php:158 msgid "Send me notices of new subscriptions through email." @@ -1339,7 +1376,7 @@ msgstr "Publiser en MicroID for min e-postadresse." #: actions/emailsettings.php:302 actions/imsettings.php:264 #: actions/othersettings.php:180 actions/smssettings.php:284 msgid "Preferences saved." -msgstr "" +msgstr "Innstillinger lagret." #: actions/emailsettings.php:320 msgid "No email address." @@ -1492,11 +1529,11 @@ msgstr "Nytt nick" #: actions/file.php:42 msgid "No attachments." -msgstr "" +msgstr "Ingen vedlegg." #: actions/file.php:51 msgid "No uploaded attachments." -msgstr "" +msgstr "Ingen opplastede vedlegg." #: actions/finishremotesubscribe.php:69 msgid "Not expecting this response!" @@ -1515,9 +1552,8 @@ msgid "That user has blocked you from subscribing." msgstr "" #: actions/finishremotesubscribe.php:110 -#, fuzzy msgid "You are not authorized." -msgstr "Ikke autorisert." +msgstr "Du er ikke autorisert." #: actions/finishremotesubscribe.php:113 msgid "Could not convert request token to access token." @@ -1569,7 +1605,7 @@ msgstr "Du er allerede logget inn!" msgid "User is not a member of group." msgstr "" -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 msgid "Block user from group" msgstr "" @@ -1601,88 +1637,88 @@ msgstr "Ingen ID." msgid "You must be logged in to edit a group." msgstr "" -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 msgid "Group design" msgstr "" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." msgstr "" -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 #, fuzzy msgid "Couldn't update your design." msgstr "Klarte ikke å oppdatere bruker." -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 msgid "Design preferences saved." msgstr "" -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "Gruppelogo" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "" -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 #, fuzzy msgid "User without matching profile." msgstr "Brukeren har ingen profil." -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "" -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 msgid "Logo updated." msgstr "Logo oppdatert." -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 msgid "Failed updating logo." -msgstr "" +msgstr "Kunne ikke oppdatere logo." -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "%s gruppemedlemmer" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, php-format msgid "%1$s group members, page %2$d" -msgstr "" +msgstr "%1$s gruppemedlemmer, side %2$d" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "En liste over brukerne i denne gruppen." -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "Administrator" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "Blokkér" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 msgid "Make user an admin of the group" msgstr "Gjør brukeren til en administrator for gruppen" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make Admin" msgstr "Gjør til administrator" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "Gjør denne brukeren til administrator" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Oppdateringer fra medlemmer av %1$s på %2$s!" @@ -1695,7 +1731,7 @@ msgstr "Grupper" #: actions/groups.php:64 #, php-format msgid "Groups, page %d" -msgstr "" +msgstr "Grupper, side %d" #: actions/groups.php:90 #, php-format @@ -1751,7 +1787,7 @@ msgstr "" #: actions/groupunblock.php:128 actions/unblock.php:86 msgid "Error removing the block." -msgstr "" +msgstr "Feil under oppheving av blokkering." #: actions/imsettings.php:59 #, fuzzy @@ -1895,7 +1931,7 @@ msgstr "" #: actions/invite.php:144 msgid "Invitation(s) sent to the following people:" -msgstr "" +msgstr "Invitasjon(er) sendt til følgende personer:" #: actions/invite.php:150 msgid "" @@ -1924,16 +1960,19 @@ msgstr "Personlig melding" msgid "Optionally add a personal message to the invitation." msgstr "" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" msgstr "Send" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s har invitert deg til %2$s" -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -1989,7 +2028,12 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Du må være innlogget for å bli med i en gruppe." -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "Ingen kallenavn." + +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "" @@ -1998,11 +2042,11 @@ msgstr "" msgid "You must be logged in to leave a group." msgstr "" -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 msgid "You are not a member of that group." msgstr "" -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s forlot gruppe %2$s" @@ -2020,8 +2064,7 @@ msgstr "Feil brukernavn eller passord" msgid "Error setting user. You are probably not authorized." msgstr "Ikke autorisert." -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "Logg inn" @@ -2264,8 +2307,8 @@ msgstr "innholdstype " msgid "Only " msgstr "Bare " -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "" @@ -2408,7 +2451,7 @@ msgstr "Klarer ikke å lagre nytt passord." msgid "Password saved." msgstr "Passordet ble lagret" -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "" @@ -2441,7 +2484,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 msgid "Site" msgstr "" @@ -2614,7 +2656,7 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 små bokstaver eller nummer, ingen punktum eller mellomrom" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "Fullt navn" @@ -2643,7 +2685,7 @@ msgid "Bio" msgstr "Om meg" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2726,7 +2768,8 @@ msgstr "Klarte ikke å lagre profil." msgid "Couldn't save tags." msgstr "Klarte ikke å lagre profil." -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "" @@ -2739,46 +2782,46 @@ msgstr "" msgid "Could not retrieve public stream." msgstr "" -#: actions/public.php:129 +#: actions/public.php:130 #, php-format msgid "Public timeline, page %d" msgstr "" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "" -#: actions/public.php:159 +#: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" msgstr "" -#: actions/public.php:163 +#: actions/public.php:164 msgid "Public Stream Feed (RSS 2.0)" msgstr "" -#: actions/public.php:167 +#: actions/public.php:168 #, fuzzy msgid "Public Stream Feed (Atom)" msgstr "%s offentlig strøm" -#: actions/public.php:187 +#: 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:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2787,7 +2830,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:246 +#: actions/public.php:247 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2958,8 +3001,7 @@ msgstr "" msgid "Registration successful" msgstr "" -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "" @@ -3139,7 +3181,7 @@ msgstr "" msgid "You already repeated that notice." msgstr "Du er allerede logget inn!" -#: actions/repeat.php:114 lib/noticelist.php:656 +#: actions/repeat.php:114 lib/noticelist.php:674 msgid "Repeated" msgstr "Gjentatt" @@ -3147,47 +3189,47 @@ msgstr "Gjentatt" msgid "Repeated!" msgstr "Gjentatt!" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "Svar til %s" -#: actions/replies.php:127 +#: actions/replies.php:128 #, php-format msgid "Replies to %1$s, page %2$d" msgstr "Svar til %1$s, side %2$d" -#: actions/replies.php:144 +#: actions/replies.php:145 #, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "Svarstrøm for %s (RSS 1.0)" -#: actions/replies.php:151 +#: actions/replies.php:152 #, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "Svarstrøm for %s (RSS 2.0)" -#: actions/replies.php:158 +#: actions/replies.php:159 #, php-format msgid "Replies feed for %s (Atom)" msgstr "Svarstrøm for %s (Atom)" -#: actions/replies.php:198 +#: 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 his attention yet." msgstr "Dette er tidslinjen for %s og venner, men ingen har postet noe enda." -#: actions/replies.php:203 +#: 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:205 +#: actions/replies.php:206 #, fuzzy, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3217,7 +3259,6 @@ msgid "User is already sandboxed." msgstr "Du er allerede logget inn!" #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "" @@ -3242,7 +3283,7 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 #, fuzzy msgid "Save site settings" msgstr "Innstillinger for IM" @@ -3273,7 +3314,7 @@ msgstr "Organisasjon" msgid "Description" msgstr "Beskrivelse" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Statistikk" @@ -3335,35 +3376,35 @@ msgstr "%s og venner" msgid "Could not retrieve favorite notices." msgstr "" -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, fuzzy, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "Feed for %s sine venner" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, fuzzy, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "Feed for %s sine venner" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, fuzzy, php-format msgid "Feed for favorites of %s (Atom)" msgstr "Feed for %s sine venner" -#: actions/showfavorites.php:205 +#: 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:207 +#: 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 :)" msgstr "" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3371,7 +3412,7 @@ msgid "" "would add to their favorites :)" msgstr "" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "" @@ -3385,70 +3426,70 @@ msgstr "" msgid "%1$s group, page %2$d" msgstr "Alle abonnementer" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 #, fuzzy msgid "Group profile" msgstr "Klarte ikke å lagre profil." -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 msgid "Note" msgstr "" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, fuzzy, php-format msgid "FOAF for %s group" msgstr "Klarte ikke å lagre profil." -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 #, fuzzy msgid "Members" msgstr "Medlem siden" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 #, fuzzy msgid "Created" msgstr "Opprett" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3458,7 +3499,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:454 +#: actions/showgroup.php:462 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3467,7 +3508,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:482 +#: actions/showgroup.php:490 msgid "Admins" msgstr "" @@ -3926,22 +3967,22 @@ msgstr "Ingen Jabber ID." msgid "SMS" msgstr "" -#: actions/tag.php:68 +#: actions/tag.php:69 #, fuzzy, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "Mikroblogg av %s" -#: actions/tag.php:86 +#: actions/tag.php:87 #, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "" -#: actions/tag.php:92 +#: actions/tag.php:93 #, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "" -#: actions/tag.php:98 +#: actions/tag.php:99 #, fuzzy, php-format msgid "Notice feed for tag %s (Atom)" msgstr "Feed for taggen %s" @@ -3994,7 +4035,7 @@ msgstr "" msgid "No such tag." msgstr "" -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "API-metode under utvikling." @@ -4025,75 +4066,76 @@ msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +msgctxt "TITLE" msgid "User" msgstr "" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "" -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "" -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "" -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "Profil" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "" -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 #, fuzzy msgid "New users" msgstr "slett" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "" -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 #, fuzzy msgid "Default subscription" msgstr "Alle abonnementer" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 #, fuzzy msgid "Automatically subscribe new users to this user." msgstr "" "Abonner automatisk på de som abonnerer på meg (best for ikke-mennesker)" -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 #, fuzzy msgid "Invitations" msgstr "Bekreftelseskode" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 msgid "Invitations enabled" msgstr "" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "" @@ -4268,7 +4310,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 #, fuzzy msgid "Version" msgstr "Personlig" @@ -4309,6 +4351,11 @@ msgstr "Klarte ikke å oppdatere bruker." msgid "Group leave failed." msgstr "Klarte ikke å lagre profil." +#: classes/Local_group.php:41 +#, fuzzy +msgid "Could not update local group." +msgstr "Kunne ikke oppdatere gruppe." + #: classes/Login_token.php:76 #, fuzzy, php-format msgid "Could not create login token for %s" @@ -4326,43 +4373,43 @@ msgstr "" msgid "Could not update message with new URI." msgstr "" -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "" -#: classes/Notice.php:222 +#: classes/Notice.php:239 msgid "Problem saving notice. Too long." msgstr "" -#: classes/Notice.php:226 +#: classes/Notice.php:243 msgid "Problem saving notice. Unknown user." msgstr "" -#: classes/Notice.php:231 +#: classes/Notice.php:248 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:237 +#: classes/Notice.php:254 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:243 +#: classes/Notice.php:260 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "" -#: classes/Notice.php:882 +#: classes/Notice.php:911 msgid "Problem saving group inbox." msgstr "" -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4393,21 +4440,31 @@ msgstr "Klarte ikke å lagre avatar-informasjonen" msgid "Couldn't delete subscription." msgstr "" -#: classes/User.php:372 +#: classes/User.php:373 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:423 +#: classes/User_group.php:462 #, fuzzy msgid "Could not create group." msgstr "Klarte ikke å lagre avatar-informasjonen" -#: classes/User_group.php:452 +#: classes/User_group.php:471 +#, fuzzy +msgid "Could not set group URI." +msgstr "Klarte ikke å lagre avatar-informasjonen" + +#: classes/User_group.php:492 #, fuzzy msgid "Could not set group membership." msgstr "Klarte ikke å lagre avatar-informasjonen" +#: classes/User_group.php:506 +#, fuzzy +msgid "Could not save local group info." +msgstr "Klarte ikke å lagre avatar-informasjonen" + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "Endre profilinnstillingene dine" @@ -4450,122 +4507,187 @@ msgstr "" msgid "Primary site navigation" msgstr "" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "Hjem" - -#: lib/action.php:439 +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:441 -msgid "Change your email, avatar, password, profile" -msgstr "" +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "Personlig" +#. TRANS: Tooltip for main menu option "Account" #: lib/action.php:444 -msgid "Connect" -msgstr "Koble til" +#, fuzzy +msgctxt "TOOLTIP" +msgid "Change your email, avatar, password, profile" +msgstr "Endre passordet ditt" -#: lib/action.php:444 +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "Konto" + +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 +#, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" -msgstr "" +msgstr "Koble til" -#: lib/action.php:448 +#: lib/action.php:453 +#, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "Koble til" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 +msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" -msgstr "" +#: lib/action.php:460 +#, fuzzy +msgctxt "MENU" +msgid "Admin" +msgstr "Administrator" -#: lib/action.php:453 lib/subgroupnav.php:106 +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 #, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "" -#: lib/action.php:458 -msgid "Logout" -msgstr "Logg ut" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "Kun invitasjon" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +#, fuzzy +msgctxt "TOOLTIP" msgid "Logout from the site" -msgstr "" +msgstr "Tema for nettstedet." -#: lib/action.php:463 +#: lib/action.php:476 #, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "Logg ut" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 +#, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "Opprett en ny konto" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "Registrering" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +#, fuzzy +msgctxt "TOOLTIP" msgid "Login to the site" -msgstr "" +msgstr "Tema for nettstedet." -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "Hjelp" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "Logg inn" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 #, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "Hjelp" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "Søk" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "Hjelp" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "Søk" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 msgid "Site notice" msgstr "" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "" -#: lib/action.php:625 +#: lib/action.php:656 msgid "Page notice" msgstr "" -#: lib/action.php:727 +#: lib/action.php:758 msgid "Secondary site navigation" msgstr "" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "Hjelp" + +#: lib/action.php:765 msgid "About" msgstr "Om" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "OSS/FAQ" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "Kilde" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "Kontakt" -#: lib/action.php:751 +#: lib/action.php:782 msgid "Badge" msgstr "" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4574,12 +4696,12 @@ msgstr "" "**%%site.name%%** er en mikrobloggingtjeneste av [%%site.broughtby%%](%%site." "broughtbyurl%%). " -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** er en mikrobloggingtjeneste. " -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4587,106 +4709,157 @@ msgid "" "org/licensing/licenses/agpl-3.0.html)." msgstr "" -#: lib/action.php:801 +#: lib/action.php:832 msgid "Site content license" msgstr "" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "" -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "" -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "" -#: lib/action.php:1141 +#: lib/action.php:1172 msgid "After" msgstr "" -#: lib/action.php:1149 +#: lib/action.php:1180 #, fuzzy msgid "Before" msgstr "Tidligere »" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." msgstr "" -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 msgid "Changes to that panel are not allowed." msgstr "" -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 msgid "showForm() not implemented." msgstr "" -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 msgid "saveSettings() not implemented." msgstr "" -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 msgid "Unable to delete design setting." msgstr "" -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 msgid "Basic site configuration" msgstr "" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "Nettstedslogo" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 msgid "Design configuration" msgstr "" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "Personlig" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 msgid "User configuration" msgstr "" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +msgctxt "MENU" +msgid "User" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 msgid "Access configuration" msgstr "" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "Tilgang" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 msgid "Paths configuration" msgstr "" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +msgctxt "MENU" +msgid "Paths" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 msgid "Sessions configuration" msgstr "" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "Personlig" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4782,12 +4955,12 @@ msgstr "" msgid "Tags for this attachment" msgstr "" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 #, fuzzy msgid "Password changing failed" msgstr "Passordet ble lagret" -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 #, fuzzy msgid "Password changing is not allowed" msgstr "Passordet ble lagret" @@ -5067,20 +5240,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:148 #, fuzzy msgid "No configuration file found. " msgstr "Fant ikke bekreftelseskode." -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:152 msgid "Go to the installer." msgstr "" @@ -5273,24 +5446,24 @@ msgstr "" msgid "Not an image or corrupt file." msgstr "" -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "" -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 #, fuzzy msgid "Lost our file." msgstr "Klarte ikke å lagre profil." -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "" @@ -5596,6 +5769,12 @@ msgstr "" msgid "Available characters" msgstr "6 eller flere tegn" +#: lib/messageform.php:178 lib/noticeform.php:236 +#, fuzzy +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "Send" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "" @@ -5654,25 +5833,25 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 msgid "in context" msgstr "" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 #, fuzzy msgid "Repeated by" msgstr "Opprett" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 #, fuzzy msgid "Reply" msgstr "svar" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 #, fuzzy msgid "Notice repeated" msgstr "Nytt nick" @@ -5721,6 +5900,10 @@ msgstr "Svar" msgid "Favorites" msgstr "" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "" @@ -5815,7 +5998,7 @@ msgstr "Kan ikke slette notisen." msgid "Repeat this notice" msgstr "Kan ikke slette notisen." -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "" @@ -5837,6 +6020,10 @@ msgstr "Søk" msgid "Keyword(s)" msgstr "" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "Søk" + #: lib/searchaction.php:162 #, fuzzy msgid "Search help" @@ -5890,6 +6077,15 @@ msgstr "Svar til %s" 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" @@ -5964,47 +6160,47 @@ msgstr "" msgid "Moderate" msgstr "" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "noen få sekunder siden" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "omtrent ett minutt siden" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "omtrent %d minutter siden" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "omtrent én time siden" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "omtrent %d timer siden" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "omtrent én dag siden" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "omtrent %d dager siden" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "omtrent én måned siden" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "omtrent %d måneder siden" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "omtrent ett år siden" diff --git a/locale/nl/LC_MESSAGES/statusnet.po b/locale/nl/LC_MESSAGES/statusnet.po index 1cd71ad86..a9e757956 100644 --- a/locale/nl/LC_MESSAGES/statusnet.po +++ b/locale/nl/LC_MESSAGES/statusnet.po @@ -10,75 +10,82 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:51:28+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:03:32+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 msgid "Access" msgstr "Toegang" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 msgid "Site access settings" msgstr "Instellingen voor sitetoegang" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 msgid "Registration" msgstr "Registratie" -#: actions/accessadminpanel.php:161 -msgid "Private" -msgstr "Privé" - -#: actions/accessadminpanel.php:163 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "Mogen anonieme gebruikers (niet aangemeld) de website bekijken?" +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -msgid "Invite only" -msgstr "Alleen op uitnodiging" +#, fuzzy +msgctxt "LABEL" +msgid "Private" +msgstr "Privé" -#: actions/accessadminpanel.php:169 +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 msgid "Make registration invitation only." msgstr "Registratie alleen op uitnodiging." -#: actions/accessadminpanel.php:173 -msgid "Closed" -msgstr "Gesloten" +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 +msgid "Invite only" +msgstr "Alleen op uitnodiging" -#: actions/accessadminpanel.php:175 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 msgid "Disable new registrations." msgstr "Nieuwe registraties uitschakelen." -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "Opslaan" +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 +msgid "Closed" +msgstr "Gesloten" -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 msgid "Save access settings" msgstr "Toegangsinstellingen opslaan" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "Opslaan" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page" msgstr "Deze pagina bestaat niet" -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -92,45 +99,53 @@ msgstr "Deze pagina bestaat niet" #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "Onbekende gebruiker." -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s en vrienden, pagina %2$d" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s en vrienden" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Feed voor vrienden van %s (RSS 1.0)" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Feed voor vrienden van %s (RSS 2.0)" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Feed voor vrienden van %s (Atom)" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." @@ -138,7 +153,7 @@ msgstr "" "Dit is de tijdlijn voor %s en vrienden, maar niemand heeft nog mededelingen " "geplaatst." -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -147,7 +162,8 @@ msgstr "" "Probeer te abonneren op meer gebruikers, [word lid van een groep](%%action." "groups%%) of plaats zelf berichten." -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " @@ -157,7 +173,7 @@ msgstr "" "bericht voor die gebruiker plaatsen](%%%%action.newnotice%%%%?" "status_textarea=%3$s)." -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -166,7 +182,8 @@ msgstr "" "U kunt een [gebruiker aanmaken](%%%%action.register%%%%) en %s dan porren of " "een bericht sturen." -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 msgid "You and friends" msgstr "U en vrienden" @@ -184,20 +201,20 @@ msgstr "Updates van %1$s en vrienden op %2$s." #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 msgid "API method not found." msgstr "De API-functie is niet aangetroffen." @@ -231,8 +248,9 @@ msgstr "Het was niet mogelijk de gebruiker bij te werken." #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "Deze gebruiker heeft geen profiel." @@ -258,7 +276,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: 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." @@ -373,7 +391,7 @@ msgstr "Het was niet mogelijk de brongebruiker te bepalen." msgid "Could not find target user." msgstr "Het was niet mogelijk de doelgebruiker te vinden." -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." @@ -381,63 +399,63 @@ msgstr "" "De gebruikersnaam mag alleen kleine letters en cijfers bevatten. Spaties " "zijn niet toegestaan." -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "" "De opgegeven gebruikersnaam is al in gebruik. Kies een andere gebruikersnaam." -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Ongeldige gebruikersnaam!" -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "De thuispagina is geen geldige URL." -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "De volledige naam is te lang (maximaal 255 tekens)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "De beschrijving is te lang (maximaal %d tekens)." -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Locatie is te lang (maximaal 255 tekens)." -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "Te veel aliassen! Het maximale aantal is %d." -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Ongeldige alias: \"%s\"" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "De alias \"%s\" wordt al gebruikt. Geef een andere alias op." -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "Een alias kan niet hetzelfde zijn als de gebruikersnaam." @@ -448,15 +466,15 @@ msgstr "Een alias kan niet hetzelfde zijn als de gebruikersnaam." msgid "Group not found!" msgstr "De groep is niet aangetroffen!" -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 msgid "You are already a member of that group." msgstr "U bent al lid van die groep." -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "Een beheerder heeft ingesteld dat u geen lid mag worden van die groep." -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Het was niet mogelijk gebruiker %1$s toe te voegen aan de groep %2$s." @@ -465,7 +483,7 @@ msgstr "Het was niet mogelijk gebruiker %1$s toe te voegen aan de groep %2$s." msgid "You are not a member of this group." msgstr "U bent geen lid van deze groep." -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Het was niet mogelijk gebruiker %1$s uit de group %2$s te verwijderen." @@ -496,7 +514,7 @@ msgstr "Ongeldig token." #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -545,7 +563,7 @@ msgstr "Het verzoektoken %s is geweigerd en ingetrokken." #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -571,13 +589,13 @@ msgstr "" "van het type \"%3$s tot uw gebruikersgegevens. Geef alleen " "toegang tot uw gebruiker bij %4$s aan derde partijen die u vertrouwt." -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 msgid "Account" msgstr "Gebruiker" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -661,12 +679,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s updates op de favorietenlijst geplaatst door %2$s / %3$s" #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "%s tijdlijn" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -702,7 +720,7 @@ msgstr "Herhaald naar %s" msgid "Repeats of %s" msgstr "Herhaald van %s" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Mededelingen met het label %s" @@ -723,8 +741,7 @@ msgstr "Deze bijlage bestaat niet." #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "Geen gebruikersnaam." @@ -736,7 +753,7 @@ msgstr "Geen afmeting." msgid "Invalid size." msgstr "Ongeldige afmetingen." -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Avatar" @@ -754,30 +771,30 @@ msgid "User without matching profile" msgstr "Gebruiker zonder bijbehorend profiel" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Avatarinstellingen" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Origineel" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Voorvertoning" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 msgid "Delete" msgstr "Verwijderen" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "Uploaden" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "Uitsnijden" @@ -786,7 +803,7 @@ msgid "Pick a square area of the image to be your avatar" msgstr "" "Selecteer een vierkant in de afbeelding om deze als uw avatar in te stellen" -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Ons bestand is verloren gegaan." @@ -821,22 +838,22 @@ msgstr "" "van deze gebruiker." #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "Nee" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 msgid "Do not block this user" msgstr "Gebruiker niet blokkeren" #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Ja" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 msgid "Block this user" msgstr "Deze gebruiker blokkeren" @@ -844,39 +861,43 @@ msgstr "Deze gebruiker blokkeren" msgid "Failed to save block information." msgstr "Het was niet mogelijk om de blokkadeinformatie op te slaan." -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 msgid "No such group." msgstr "De opgegeven groep bestaat niet." -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, php-format msgid "%s blocked profiles" msgstr "%s geblokkeerde profielen" -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s geblokkeerde profielen, pagina %2$d" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." msgstr "Een lijst met voor deze groep geblokkeerde gebruikers." -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 msgid "Unblock user from group" msgstr "Deze gebruiker weer toegang geven tot de groep" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "Deblokkeer" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 msgid "Unblock this user" msgstr "Deblokkeer deze gebruiker." @@ -951,7 +972,7 @@ msgstr "U bent niet de eigenaar van deze applicatie." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "Er is een probleem met uw sessietoken." @@ -977,12 +998,13 @@ msgstr "Deze applicatie niet verwijderen" msgid "Delete this application" msgstr "Deze applicatie verwijderen" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Niet aangemeld." @@ -1011,7 +1033,7 @@ msgstr "Weet u zeker dat u deze aankondiging wilt verwijderen?" msgid "Do not delete this notice" msgstr "Deze mededeling niet verwijderen" -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 msgid "Delete this notice" msgstr "Deze mededeling verwijderen" @@ -1027,7 +1049,7 @@ msgstr "U kunt alleen lokale gebruikers verwijderen." msgid "Delete user" msgstr "Gebruiker verwijderen" -#: actions/deleteuser.php:135 +#: 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." @@ -1036,12 +1058,12 @@ msgstr "" "worden alle gegevens van deze gebruiker uit de database verwijderd. Het is " "niet mogelijk ze terug te zetten." -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 msgid "Delete this user" msgstr "Gebruiker verwijderen" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "Uiterlijk" @@ -1144,6 +1166,17 @@ msgstr "Standaardontwerp toepassen" msgid "Reset back to default" msgstr "Standaardinstellingen toepassen" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "Opslaan" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "Ontwerp opslaan" @@ -1235,29 +1268,29 @@ msgstr "Groep %s bewerken" msgid "You must be logged in to create a group." msgstr "U moet aangemeld zijn om een groep aan te kunnen maken." -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: 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 "U moet beheerder zijn om de groep te kunnen bewerken." -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "Gebruik dit formulier om de groep te bewerken." -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, php-format msgid "description is too long (max %d chars)." msgstr "de beschrijving is te lang (maximaal %d tekens)" -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 msgid "Could not update group." msgstr "Het was niet mogelijk de groep bij te werken." -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 msgid "Could not create aliases." msgstr "Het was niet mogelijk de aliassen aan te maken." -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 msgid "Options saved." msgstr "De instellingen zijn opgeslagen." @@ -1604,7 +1637,7 @@ msgstr "Deze gebruiker is al de toegang tot de groep ontzegd." msgid "User is not a member of group." msgstr "De gebruiker is geen lid van de groep." -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 msgid "Block user from group" msgstr "Gebruiker toegang tot de groep blokkeren" @@ -1641,11 +1674,11 @@ msgstr "Geen ID." msgid "You must be logged in to edit a group." msgstr "U moet aangemeld zijn om een groep te kunnen bewerken." -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 msgid "Group design" msgstr "Groepsontwerp" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." @@ -1653,20 +1686,20 @@ msgstr "" "De vormgeving van uw groep aanpassen met een achtergrondafbeelding en een " "kleurenpalet van uw keuze." -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 msgid "Couldn't update your design." msgstr "Het was niet mogelijk uw ontwerp bij te werken." -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 msgid "Design preferences saved." msgstr "De ontwerpvoorkeuren zijn opgeslagen." -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "Groepslogo" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." @@ -1674,57 +1707,57 @@ msgstr "" "Hier kunt u een logo voor uw groep uploaden. De maximale bestandsgrootte is %" "s." -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 msgid "User without matching profile." msgstr "Gebruiker zonder bijbehorend profiel." -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Selecteer een vierkant uit de afbeelding die het logo wordt." -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 msgid "Logo updated." msgstr "Logo geactualiseerd." -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 msgid "Failed updating logo." msgstr "Het bijwerken van het logo is mislukt." -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "leden van de groep %s" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, php-format msgid "%1$s group members, page %2$d" msgstr "%1$s groeps leden, pagina %2$d" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "Ledenlijst van deze groep" -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "Beheerder" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "Blokkeren" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 msgid "Make user an admin of the group" msgstr "Deze gebruiker groepsbeheerder maken" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make Admin" msgstr "Beheerder maken" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "Deze gebruiker beheerder maken" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Updates voor leden van %1$s op %2$s." @@ -1992,16 +2025,19 @@ msgstr "Persoonlijk bericht" msgid "Optionally add a personal message to the invitation." msgstr "Persoonlijk bericht bij de uitnodiging (optioneel)." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" msgstr "Verzenden" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s heeft u uitgenodigd voor %2$s" -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2062,7 +2098,11 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "U moet aangemeld zijn om lid te worden van een groep." -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Geen gebruikersnaam of ID." + +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s is lid geworden van de groep %2$s" @@ -2071,11 +2111,11 @@ msgstr "%1$s is lid geworden van de groep %2$s" msgid "You must be logged in to leave a group." msgstr "U moet aangemeld zijn om een groep te kunnen verlaten." -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 msgid "You are not a member of that group." msgstr "U bent geen lid van deze groep" -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s heeft de groep %2$s verlaten" @@ -2094,8 +2134,7 @@ msgstr "" "Er is een fout opgetreden bij het maken van de instellingen. U hebt " "waarschijnlijk niet de juiste rechten." -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "Aanmelden" @@ -2353,8 +2392,8 @@ msgstr "inhoudstype " msgid "Only " msgstr "Alleen " -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "Geen ondersteund gegevensformaat." @@ -2493,7 +2532,7 @@ msgstr "Het was niet mogelijk het nieuwe wachtwoord op te slaan." msgid "Password saved." msgstr "Het wachtwoord is opgeslagen." -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "Paden" @@ -2526,7 +2565,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "De SSL-server is ongeldig. De maximale lengte is 255 tekens." #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 msgid "Site" msgstr "Website" @@ -2701,7 +2739,7 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 kleine letters of cijfers, geen leestekens of spaties" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "Volledige naam" @@ -2729,7 +2767,7 @@ msgid "Bio" msgstr "Beschrijving" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2815,7 +2853,8 @@ msgstr "Het profiel kon niet opgeslagen worden." msgid "Couldn't save tags." msgstr "Het was niet mogelijk de labels op te slaan." -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "De instellingen zijn opgeslagen." @@ -2828,28 +2867,28 @@ msgstr "Meer dan de paginalimiet (%s)" msgid "Could not retrieve public stream." msgstr "Het was niet mogelijk de publieke stream op te halen." -#: actions/public.php:129 +#: actions/public.php:130 #, php-format msgid "Public timeline, page %d" msgstr "Openbare tijdlijn, pagina %d" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "Openbare tijdlijn" -#: actions/public.php:159 +#: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" msgstr "Publieke streamfeed (RSS 1.0)" -#: actions/public.php:163 +#: actions/public.php:164 msgid "Public Stream Feed (RSS 2.0)" msgstr "Publieke streamfeed (RSS 1.0)" -#: actions/public.php:167 +#: actions/public.php:168 msgid "Public Stream Feed (Atom)" msgstr "Publieke streamfeed (Atom)" -#: actions/public.php:187 +#: actions/public.php:188 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " @@ -2858,11 +2897,11 @@ msgstr "" "Dit is de publieke tijdlijn voor %%site.name%%, maar niemand heeft nog " "berichten geplaatst." -#: actions/public.php:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "U kunt de eerste zijn die een bericht plaatst!" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" @@ -2870,7 +2909,7 @@ msgstr "" "Waarom [registreert u geen gebruiker](%%action.register%%) en plaatst u als " "eerste een bericht?" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2883,7 +2922,7 @@ msgstr "" "net/). [Registreer nu](%%action.register%%) om mededelingen over uzelf te " "delen met vrienden, familie en collega's! [Meer lezen...](%%doc.help%%)" -#: actions/public.php:246 +#: actions/public.php:247 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3067,8 +3106,7 @@ msgstr "Sorry. De uitnodigingscode is ongeldig." msgid "Registration successful" msgstr "De registratie is voltooid" -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "Registreren" @@ -3254,7 +3292,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:656 +#: actions/repeat.php:114 lib/noticelist.php:674 msgid "Repeated" msgstr "Herhaald" @@ -3262,33 +3300,33 @@ msgstr "Herhaald" msgid "Repeated!" msgstr "Herhaald!" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "Antwoorden aan %s" -#: actions/replies.php:127 +#: actions/replies.php:128 #, php-format msgid "Replies to %1$s, page %2$d" msgstr "Antwoorden aan %1$s, pagina %2$d" -#: actions/replies.php:144 +#: actions/replies.php:145 #, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "Antwoordenfeed voor %s (RSS 1.0)" -#: actions/replies.php:151 +#: actions/replies.php:152 #, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "Antwoordenfeed voor %s (RSS 2.0)" -#: actions/replies.php:158 +#: actions/replies.php:159 #, php-format msgid "Replies feed for %s (Atom)" msgstr "Antwoordenfeed voor %s (Atom)" -#: actions/replies.php:198 +#: actions/replies.php:199 #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " @@ -3297,7 +3335,7 @@ msgstr "" "Dit is de tijdlijn met de antwoorden aan %1$s, maar %2$s heeft nog geen " "antwoorden ontvangen." -#: actions/replies.php:203 +#: actions/replies.php:204 #, php-format msgid "" "You can engage other users in a conversation, subscribe to more people or " @@ -3306,7 +3344,7 @@ msgstr "" "U kunt gesprekken aanknopen met andere gebruikers, op meer gebruikers " "abonneren of [lid worden van groepen](%%action.groups%%)." -#: actions/replies.php:205 +#: actions/replies.php:206 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3333,7 +3371,6 @@ msgid "User is already sandboxed." msgstr "Deze gebruiker is al in de zandbak geplaatst." #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "Sessies" @@ -3358,7 +3395,7 @@ msgid "Turn on debugging output for sessions." msgstr "Debuguitvoer voor sessies inschakelen." #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Websiteinstellingen opslaan" @@ -3388,7 +3425,7 @@ msgstr "Organisatie" msgid "Description" msgstr "Beschrijving" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Statistieken" @@ -3452,22 +3489,22 @@ msgstr "Favoriete mededelingen van %1$s, pagina %2$d" msgid "Could not retrieve favorite notices." msgstr "Het was niet mogelijk de favoriete mededelingen op te halen." -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "Favorietenfeed van %s (RSS 1.0)" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "Favorietenfeed van %s (RSS 2.0)" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" msgstr "Favorietenfeed van %s (Atom)" -#: actions/showfavorites.php:205 +#: 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." @@ -3476,7 +3513,7 @@ msgstr "" "toevoegen\" bij mededelingen die u aanstaan om ze op een lijst te bewaren en " "ze uit te lichten." -#: actions/showfavorites.php:207 +#: actions/showfavorites.php:208 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Post something interesting " @@ -3486,7 +3523,7 @@ msgstr "" "een interessant bericht, en dan komt u misschien wel op de " "favorietenlijst. :)" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3497,7 +3534,7 @@ msgstr "" "action.register%%%%) en dan interessante mededelingen plaatsten die " "misschien aan favorietenlijsten zijn toe te voegen. :)" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "Dit is de manier om dat te delen wat u wilt." @@ -3511,67 +3548,67 @@ msgstr "%s groep" msgid "%1$s group, page %2$d" msgstr "Groep %1$s, pagina %2$d" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 msgid "Group profile" msgstr "Groepsprofiel" -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "URL" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 msgid "Note" msgstr "Opmerking" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "Aliassen" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "Groepshandelingen" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Mededelingenfeed voor groep %s (RSS 1.0)" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Mededelingenfeed voor groep %s (RSS 2.0)" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Mededelingenfeed voor groep %s (Atom)" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, php-format msgid "FOAF for %s group" msgstr "Vriend van een vriend voor de groep %s" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 msgid "Members" msgstr "Leden" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(geen)" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "Alle leden" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 msgid "Created" msgstr "Aangemaakt" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3587,7 +3624,7 @@ msgstr "" "lid te worden van deze groep en nog veel meer! [Meer lezen...](%%%%doc.help%%" "%%)" -#: actions/showgroup.php:454 +#: actions/showgroup.php:462 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3600,7 +3637,7 @@ msgstr "" "[StatusNet](http://status.net/). De leden wisselen korte mededelingen uit " "over hun ervaringen en interesses. " -#: actions/showgroup.php:482 +#: actions/showgroup.php:490 msgid "Admins" msgstr "Beheerders" @@ -3981,17 +4018,17 @@ msgstr "Het was niet mogelijk het abonnement op te slaan." #: actions/subscribe.php:77 msgid "This action only accepts POST requests." -msgstr "" +msgstr "Deze handeling accepteert alleen POST-verzoeken." #: actions/subscribe.php:107 -#, fuzzy msgid "No such profile." -msgstr "Het bestand bestaat niet." +msgstr "Het profiel bestaat niet." #: actions/subscribe.php:117 -#, fuzzy msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." -msgstr "U bent niet geabonneerd op dat profiel." +msgstr "" +"U kunt niet abonneren op een OMB 1.0 profiel van een andere omgeving via " +"deze handeling." #: actions/subscribe.php:145 msgid "Subscribed" @@ -4086,22 +4123,22 @@ msgstr "Jabber" msgid "SMS" msgstr "SMS" -#: actions/tag.php:68 +#: actions/tag.php:69 #, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "Mededelingen met het label %1$s, pagina %2$d" -#: actions/tag.php:86 +#: actions/tag.php:87 #, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "Mededelingenfeed voor label %s (RSS 1.0)" -#: actions/tag.php:92 +#: actions/tag.php:93 #, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "Mededelingenfeed voor label %s (RSS 2.0)" -#: actions/tag.php:98 +#: actions/tag.php:99 #, php-format msgid "Notice feed for tag %s (Atom)" msgstr "Mededelingenfeed voor label %s (Atom)" @@ -4157,7 +4194,7 @@ msgstr "" msgid "No such tag." msgstr "Onbekend label." -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "De API-functie is in bewerking." @@ -4189,70 +4226,72 @@ msgstr "" "De licentie \"%1$s\" voor de stream die u wilt volgen is niet compatibel met " "de sitelicentie \"%2$s\"." -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +#, fuzzy +msgctxt "TITLE" msgid "User" msgstr "Gebruiker" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "Gebruikersinstellingen voor deze StatusNet-website." -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "Ongeldige beschrijvingslimiet. Het moet een getal zijn." -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "Ongeldige welkomsttekst. De maximale lengte is 255 tekens." -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "Ongeldig standaardabonnement: \"%1$s\" is geen gebruiker." -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "Profiel" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "Profiellimiet" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "De maximale lengte van de profieltekst in tekens." -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 msgid "New users" msgstr "Nieuwe gebruikers" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "Welkom voor nieuwe gebruikers" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "Welkomsttekst voor nieuwe gebruikers. Maximaal 255 tekens." -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 msgid "Default subscription" msgstr "Standaardabonnement" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 msgid "Automatically subscribe new users to this user." msgstr "Nieuwe gebruikers automatisch op deze gebruiker abonneren" -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 msgid "Invitations" msgstr "Uitnodigingen" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 msgid "Invitations enabled" msgstr "Uitnodigingen ingeschakeld" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "Of gebruikers nieuwe gebruikers kunnen uitnodigen." @@ -4450,7 +4489,7 @@ msgstr "" msgid "Plugins" msgstr "Plug-ins" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 msgid "Version" msgstr "Versie" @@ -4491,6 +4530,10 @@ msgstr "Geen lid van groep." msgid "Group leave failed." msgstr "Groepslidmaatschap opzeggen is mislukt." +#: classes/Local_group.php:41 +msgid "Could not update local group." +msgstr "Het was niet mogelijk de lokale groep bij te werken." + #: classes/Login_token.php:76 #, php-format msgid "Could not create login token for %s" @@ -4508,31 +4551,31 @@ msgstr "Het was niet mogelijk het bericht in te voegen." msgid "Could not update message with new URI." msgstr "Het was niet mogelijk het bericht bij te werken met de nieuwe URI." -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "Er is een databasefout opgetreden bij de invoer van de hashtag: %s" -#: classes/Notice.php:222 +#: classes/Notice.php:239 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:226 +#: classes/Notice.php:243 msgid "Problem saving notice. Unknown user." msgstr "" "Er was een probleem bij het opslaan van de mededeling. De gebruiker is " "onbekend." -#: classes/Notice.php:231 +#: classes/Notice.php:248 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:237 +#: classes/Notice.php:254 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4540,22 +4583,22 @@ msgstr "" "Te veel duplicaatberichten te snel achter elkaar. Neem een adempauze en " "plaats over een aantal minuten pas weer een bericht." -#: classes/Notice.php:243 +#: classes/Notice.php:260 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:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "Er is een probleem opgetreden bij het opslaan van de mededeling." -#: classes/Notice.php:882 +#: classes/Notice.php:911 msgid "Problem saving group inbox." msgstr "" "Er is een probleem opgetreden bij het opslaan van het Postvak IN van de " "groep." -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4584,19 +4627,27 @@ msgstr "Het was niet mogelijk het abonnement op uzelf te verwijderen." msgid "Couldn't delete subscription." msgstr "Kon abonnement niet verwijderen." -#: classes/User.php:372 +#: classes/User.php:373 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Welkom bij %1$s, @%2$s!" -#: classes/User_group.php:423 +#: classes/User_group.php:462 msgid "Could not create group." msgstr "Het was niet mogelijk de groep aan te maken." -#: classes/User_group.php:452 +#: classes/User_group.php:471 +msgid "Could not set group URI." +msgstr "Het was niet mogelijk de groeps-URI in te stellen." + +#: classes/User_group.php:492 msgid "Could not set group membership." msgstr "Het was niet mogelijk het groepslidmaatschap in te stellen." +#: classes/User_group.php:506 +msgid "Could not save local group info." +msgstr "Het was niet mogelijk de lokale groepsinformatie op te slaan." + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "Uw profielgegevens wijzigen" @@ -4638,120 +4689,190 @@ msgstr "Naamloze pagina" msgid "Primary site navigation" msgstr "Primaire sitenavigatie" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "Start" - -#: lib/action.php:439 +#, fuzzy +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Persoonlijk profiel en tijdlijn van vrienden" -#: lib/action.php:441 +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "Persoonlijk" + +#. TRANS: Tooltip for main menu option "Account" +#: lib/action.php:444 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Uw e-mailadres, avatar, wachtwoord of profiel wijzigen" -#: lib/action.php:444 -msgid "Connect" -msgstr "Koppelen" +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "Gebruiker" -#: lib/action.php:444 +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 +#, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Met diensten verbinden" -#: lib/action.php:448 +#: lib/action.php:453 +#, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "Koppelen" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Websiteinstellingen wijzigen" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" -msgstr "Uitnodigen" +#: lib/action.php:460 +#, fuzzy +msgctxt "MENU" +msgid "Admin" +msgstr "Beheerder" -#: lib/action.php:453 lib/subgroupnav.php:106 -#, php-format +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 +#, fuzzy, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Vrienden en collega's uitnodigen om u te vergezellen op %s" -#: lib/action.php:458 -msgid "Logout" -msgstr "Afmelden" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "Uitnodigen" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +#, fuzzy +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Van de site afmelden" -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "Afmelden" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 +#, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "Gebruiker aanmaken" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "Registreren" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +#, fuzzy +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Bij de site aanmelden" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "Help" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "Aanmelden" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 +#, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "Help me!" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "Zoeken" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "Help" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +#, fuzzy +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Naar gebruikers of tekst zoeken" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "Zoeken" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 msgid "Site notice" msgstr "Mededeling van de website" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "Lokale weergaven" -#: lib/action.php:625 +#: lib/action.php:656 msgid "Page notice" msgstr "Mededeling van de pagina" -#: lib/action.php:727 +#: lib/action.php:758 msgid "Secondary site navigation" msgstr "Secundaire sitenavigatie" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "Help" + +#: lib/action.php:765 msgid "About" msgstr "Over" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "Veel gestelde vragen" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "Gebruiksvoorwaarden" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "Privacy" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "Broncode" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "Contact" -#: lib/action.php:751 +#: lib/action.php:782 msgid "Badge" msgstr "Widget" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "Licentie van de StatusNet-software" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4760,12 +4881,12 @@ msgstr "" "**%%site.name%%** is een microblogdienst van [%%site.broughtby%%](%%site." "broughtbyurl%%). " -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** is een microblogdienst. " -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4776,111 +4897,164 @@ msgstr "" "versie %s, beschikbaar onder de [GNU Affero General Public License](http://" "www.fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:801 +#: lib/action.php:832 msgid "Site content license" msgstr "Licentie voor siteinhoud" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Inhoud en gegevens van %1$s zijn persoonlijk en vertrouwelijk." -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" "Auteursrechten op inhoud en gegevens rusten bij %1$s. Alle rechten " "voorbehouden." -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Auteursrechten op inhoud en gegevens rusten bij de respectievelijke " "gebruikers. Alle rechten voorbehouden." -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "Alle " -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "licentie." -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "Paginering" -#: lib/action.php:1141 +#: lib/action.php:1172 msgid "After" msgstr "Later" -#: lib/action.php:1149 +#: lib/action.php:1180 msgid "Before" msgstr "Eerder" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." -msgstr "" +msgstr "Het is nog niet mogelijk inhoud uit andere omgevingen te verwerken." -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." -msgstr "" +msgstr "Het is nog niet mogelijk ingebedde XML-inhoud te verwerken" -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." -msgstr "" +msgstr "Het is nog niet mogelijk ingebedde Base64-inhoud te verwerken" -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." msgstr "U mag geen wijzigingen maken aan deze website." -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 msgid "Changes to that panel are not allowed." msgstr "Wijzigingen aan dat venster zijn niet toegestaan." -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 msgid "showForm() not implemented." msgstr "showForm() is niet geïmplementeerd." -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 msgid "saveSettings() not implemented." msgstr "saveSettings() is nog niet geïmplementeerd." -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 msgid "Unable to delete design setting." msgstr "Het was niet mogelijk om de ontwerpinstellingen te verwijderen." -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 msgid "Basic site configuration" msgstr "Basisinstellingen voor de website" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "Website" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 msgid "Design configuration" msgstr "Instellingen vormgeving" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "Uiterlijk" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 msgid "User configuration" msgstr "Gebruikersinstellingen" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +#, fuzzy +msgctxt "MENU" +msgid "User" +msgstr "Gebruiker" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 msgid "Access configuration" msgstr "Toegangsinstellingen" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "Toegang" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 msgid "Paths configuration" msgstr "Padinstellingen" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +#, fuzzy +msgctxt "MENU" +msgid "Paths" +msgstr "Paden" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 msgid "Sessions configuration" msgstr "Sessieinstellingen" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "Sessies" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" "Het API-programma heeft lezen-en-schrijventoegang nodig, maar u hebt alleen " "maar leestoegang." -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4972,11 +5146,11 @@ msgstr "Mededelingen die deze bijlage bevatten" msgid "Tags for this attachment" msgstr "Labels voor deze bijlage" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 msgid "Password changing failed" msgstr "Wachtwoord wijzigen is mislukt" -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 msgid "Password changing is not allowed" msgstr "Wachtwoord wijzigen is niet toegestaan" @@ -5182,9 +5356,9 @@ msgstr "" "geldig: %s" #: lib/command.php:692 -#, fuzzy, php-format +#, php-format msgid "Unsubscribed %s" -msgstr "Uw abonnement op %s is opgezegd" +msgstr "Het abonnement van %s is opgeheven" #: lib/command.php:709 msgid "You are not subscribed to anyone." @@ -5217,7 +5391,6 @@ msgstr[0] "U bent lid van deze groep:" msgstr[1] "U bent lid van deze groepen:" #: lib/command.php:769 -#, fuzzy msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5270,6 +5443,7 @@ msgstr "" "d - direct bericht aan gebruiker\n" "get - laatste mededeling van gebruiker opvragen\n" "whois - profielinformatie van gebruiker opvragen\n" +"lose - zorgt ervoor dat de gebruiker u niet meer volgt\n" "fav - laatste mededeling van gebruiker op favorietenlijst " "zetten\n" "fav # - mededelingen met aangegeven ID op favorietenlijst " @@ -5298,20 +5472,20 @@ msgstr "" "tracks - nog niet beschikbaar\n" "tracking - nog niet beschikbaar\n" -#: lib/common.php:136 +#: lib/common.php:148 msgid "No configuration file found. " msgstr "Er is geen instellingenbestand aangetroffen. " -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "Er is gezocht naar instellingenbestanden op de volgende plaatsen: " -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "" "U kunt proberen de installer uit te voeren om dit probleem op te lossen." -#: lib/common.php:140 +#: lib/common.php:152 msgid "Go to the installer." msgstr "Naar het installatieprogramma gaan." @@ -5501,23 +5675,23 @@ msgstr "Er is een systeemfout opgetreden tijdens het uploaden van het bestand." msgid "Not an image or corrupt file." msgstr "Het bestand is geen afbeelding of het bestand is beschadigd." -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "Niet ondersteund beeldbestandsformaat." -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Het bestand is zoekgeraakt." -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "Onbekend bestandstype" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "MB" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "kB" @@ -5903,6 +6077,11 @@ msgstr "Aan" msgid "Available characters" msgstr "Beschikbare tekens" +#: lib/messageform.php:178 lib/noticeform.php:236 +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "OK" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Mededeling verzenden" @@ -5961,23 +6140,23 @@ msgstr "W" msgid "at" msgstr "op" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 msgid "in context" msgstr "in context" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 msgid "Repeated by" msgstr "Herhaald door" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 msgid "Reply to this notice" msgstr "Op deze mededeling antwoorden" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 msgid "Reply" msgstr "Antwoorden" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 msgid "Notice repeated" msgstr "Mededeling herhaald" @@ -6026,6 +6205,10 @@ msgstr "Antwoorden" msgid "Favorites" msgstr "Favorieten" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "Gebruiker" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Postvak IN" @@ -6115,7 +6298,7 @@ msgstr "Deze mededeling herhalen?" msgid "Repeat this notice" msgstr "Deze mededeling herhalen" -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "Er is geen gebruiker gedefinieerd voor single-usermodus." @@ -6135,6 +6318,10 @@ msgstr "Site doorzoeken" msgid "Keyword(s)" msgstr "Term(en)" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "Zoeken" + #: lib/searchaction.php:162 msgid "Search help" msgstr "Hulp bij zoeken" @@ -6186,6 +6373,15 @@ msgstr "Gebruikers met een abonnement op %s" msgid "Groups %s is a member of" msgstr "Groepen waar %s lid van is" +#: lib/subgroupnav.php:105 +msgid "Invite" +msgstr "Uitnodigen" + +#: lib/subgroupnav.php:106 +#, php-format +msgid "Invite friends and colleagues to join you on %s" +msgstr "Vrienden en collega's uitnodigen om u te vergezellen op %s" + #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 msgid "People Tagcloud as self-tagged" @@ -6256,47 +6452,47 @@ msgstr "Bericht" msgid "Moderate" msgstr "Modereren" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "een paar seconden geleden" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "ongeveer een minuut geleden" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "ongeveer %d minuten geleden" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "ongeveer een uur geleden" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "ongeveer %d uur geleden" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "ongeveer een dag geleden" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "ongeveer %d dagen geleden" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "ongeveer een maand geleden" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "ongeveer %d maanden geleden" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "ongeveer een jaar geleden" diff --git a/locale/nn/LC_MESSAGES/statusnet.po b/locale/nn/LC_MESSAGES/statusnet.po index 55918d880..ddd183e87 100644 --- a/locale/nn/LC_MESSAGES/statusnet.po +++ b/locale/nn/LC_MESSAGES/statusnet.po @@ -7,83 +7,89 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:51:25+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:03:22+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 (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nn\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 #, fuzzy msgid "Access" msgstr "Godta" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 #, fuzzy msgid "Site access settings" msgstr "Avatar-innstillingar" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 #, fuzzy msgid "Registration" msgstr "Registrér" -#: actions/accessadminpanel.php:161 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 +msgid "Prohibit anonymous users (not logged in) from viewing site?" +msgstr "" + +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. +#: actions/accessadminpanel.php:167 #, fuzzy +msgctxt "LABEL" msgid "Private" msgstr "Personvern" -#: actions/accessadminpanel.php:163 -msgid "Prohibit anonymous users (not logged in) from viewing site?" +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 +msgid "Make registration invitation only." msgstr "" -#: actions/accessadminpanel.php:167 +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 #, fuzzy msgid "Invite only" msgstr "Invitér" -#: actions/accessadminpanel.php:169 -msgid "Make registration invitation only." +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 +msgid "Disable new registrations." msgstr "" -#: actions/accessadminpanel.php:173 +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 #, fuzzy msgid "Closed" msgstr "Blokkér" -#: actions/accessadminpanel.php:175 -msgid "Disable new registrations." -msgstr "" - -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "Lagra" - -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 #, fuzzy msgid "Save access settings" msgstr "Avatar-innstillingar" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "Lagra" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 #, fuzzy msgid "No such page" msgstr "Dette emneord finst ikkje." -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -97,72 +103,82 @@ msgstr "Dette emneord finst ikkje." #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "Brukaren finst ikkje." -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, fuzzy, php-format msgid "%1$s and friends, page %2$d" msgstr "%s med vener, side %d" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s med vener" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, fuzzy, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Straum for vener av %s" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, fuzzy, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Straum for vener av %s" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, fuzzy, php-format msgid "Feed for friends of %s (Atom)" msgstr "Straum for vener av %s" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 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." msgstr "" -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 #, fuzzy msgid "You and friends" msgstr "%s med vener" @@ -181,20 +197,20 @@ msgstr "Oppdateringar frå %1$s og vener på %2$s!" #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "Fann ikkje API-metode." @@ -228,8 +244,9 @@ msgstr "Kan ikkje oppdatera brukar." #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "Brukaren har inga profil." @@ -254,7 +271,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 #, fuzzy @@ -373,68 +390,68 @@ msgstr "Kan ikkje hente offentleg straum." msgid "Could not find target user." msgstr "Kan ikkje finna einkvan status." -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "Kallenamn må berre ha små bokstavar og nummer, ingen mellomrom." -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Kallenamnet er allereie i bruk. Prøv eit anna." -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Ikkje eit gyldig brukarnamn." -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Heimesida er ikkje ei gyldig internettadresse." -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Ditt fulle namn er for langt (maksimalt 255 teikn)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, fuzzy, php-format msgid "Description is too long (max %d chars)." msgstr "skildringa er for lang (maks 140 teikn)." -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Plassering er for lang (maksimalt 255 teikn)." -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "" -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, fuzzy, php-format msgid "Invalid alias: \"%s\"" msgstr "Ugyldig merkelapp: %s" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, fuzzy, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Kallenamnet er allereie i bruk. Prøv eit anna." -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "" @@ -446,16 +463,16 @@ msgstr "" msgid "Group not found!" msgstr "Fann ikkje API-metode." -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 #, fuzzy msgid "You are already a member of that group." msgstr "Du er allereie medlem av den gruppa" -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "" -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, fuzzy, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Kunne ikkje melde brukaren %s inn i gruppa %s" @@ -465,7 +482,7 @@ msgstr "Kunne ikkje melde brukaren %s inn i gruppa %s" msgid "You are not a member of this group." msgstr "Du er ikkje medlem av den gruppa." -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, fuzzy, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Kunne ikkje fjerne %s fra %s gruppa " @@ -497,7 +514,7 @@ msgstr "Ugyldig storleik." #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -541,7 +558,7 @@ msgstr "" #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -564,13 +581,13 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 msgid "Account" msgstr "Konto" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -657,12 +674,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%s oppdateringar favorisert av %s / %s." #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "%s tidsline" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -698,7 +715,7 @@ msgstr "Svar til %s" msgid "Repeats of %s" msgstr "Svar til %s" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Notisar merka med %s" @@ -720,8 +737,7 @@ msgstr "Slikt dokument finst ikkje." #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "Ingen kallenamn." @@ -733,7 +749,7 @@ msgstr "Ingen storleik." msgid "Invalid size." msgstr "Ugyldig storleik." -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Brukarbilete" @@ -750,30 +766,30 @@ msgid "User without matching profile" msgstr "Kan ikkje finne brukar" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Avatar-innstillingar" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Original" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Forhandsvis" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 msgid "Delete" msgstr "Slett" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "Last opp" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "Skaler" @@ -781,7 +797,7 @@ msgstr "Skaler" msgid "Pick a square area of the image to be your avatar" msgstr "Velg eit utvalg av bildet som vil blir din avatar." -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Fant ikkje igjen fil data." @@ -815,23 +831,23 @@ msgid "" msgstr "" #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "Nei" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 #, fuzzy msgid "Do not block this user" msgstr "Lås opp brukaren" #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Jau" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 msgid "Block this user" msgstr "Blokkér denne brukaren" @@ -839,41 +855,45 @@ msgstr "Blokkér denne brukaren" msgid "Failed to save block information." msgstr "Lagring av informasjon feila." -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 msgid "No such group." msgstr "Denne gruppa finst ikkje." -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, fuzzy, php-format msgid "%s blocked profiles" msgstr "Brukarprofil" -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, fuzzy, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%s med vener, side %d" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 #, fuzzy msgid "A list of the users blocked from joining this group." msgstr "Ei liste over brukarane i denne gruppa." -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 #, fuzzy msgid "Unblock user from group" msgstr "De-blokkering av brukar feila." -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "Lås opp" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 msgid "Unblock this user" msgstr "Lås opp brukaren" @@ -954,7 +974,7 @@ msgstr "Du er ikkje medlem av den gruppa." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "Det var eit problem med sesjons billetten din." @@ -980,12 +1000,13 @@ msgstr "Kan ikkje sletta notisen." msgid "Delete this application" msgstr "Slett denne notisen" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Ikkje logga inn" @@ -1016,7 +1037,7 @@ msgstr "Sikker på at du vil sletta notisen?" msgid "Do not delete this notice" msgstr "Kan ikkje sletta notisen." -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 msgid "Delete this notice" msgstr "Slett denne notisen" @@ -1035,19 +1056,19 @@ msgstr "Du kan ikkje sletta statusen til ein annan brukar." msgid "Delete user" msgstr "Slett" -#: actions/deleteuser.php:135 +#: 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 "" -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 #, fuzzy msgid "Delete this user" msgstr "Slett denne notisen" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "" @@ -1158,6 +1179,17 @@ msgstr "" msgid "Reset back to default" msgstr "" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "Lagra" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "" @@ -1260,31 +1292,31 @@ msgstr "Rediger %s gruppa" msgid "You must be logged in to create a group." msgstr "Du må være logga inn for å lage ei gruppe." -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: actions/editgroup.php:107 actions/editgroup.php:172 +#: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 #, fuzzy msgid "You must be an admin to edit the group." msgstr "Du må være administrator for å redigere gruppa" -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "Bruk dette skjemaet for å redigere gruppa" -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, fuzzy, php-format msgid "description is too long (max %d chars)." msgstr "skildringa er for lang (maks 140 teikn)." -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 msgid "Could not update group." msgstr "Kann ikkje oppdatera gruppa." -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 #, fuzzy msgid "Could not create aliases." msgstr "Kunne ikkje lagre favoritt." -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 msgid "Options saved." msgstr "Lagra innstillingar." @@ -1634,7 +1666,7 @@ msgstr "Brukar har blokkert deg." msgid "User is not a member of group." msgstr "Du er ikkje medlem av den gruppa." -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 #, fuzzy msgid "Block user from group" msgstr "Blokker brukaren" @@ -1671,93 +1703,93 @@ msgstr "Ingen ID" msgid "You must be logged in to edit a group." msgstr "Du må være logga inn for å lage ei gruppe." -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 #, fuzzy msgid "Group design" msgstr "Grupper" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." msgstr "" -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 #, fuzzy msgid "Couldn't update your design." msgstr "Kan ikkje oppdatera brukar." -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 #, fuzzy msgid "Design preferences saved." msgstr "Synkroniserings innstillingar blei lagra." -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "Logo åt gruppa" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, fuzzy, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "Du kan lasta opp ein logo for gruppa." -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 #, fuzzy msgid "User without matching profile." msgstr "Kan ikkje finne brukar" -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 #, fuzzy msgid "Pick a square area of the image to be the logo." msgstr "Velg eit utvalg av bildet som vil blir din avatar." -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 msgid "Logo updated." msgstr "Logo oppdatert." -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 msgid "Failed updating logo." msgstr "Feil ved oppdatering av logo." -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "%s medlemmar i gruppa" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, fuzzy, php-format msgid "%1$s group members, page %2$d" msgstr "%s medlemmar i gruppa, side %d" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "Ei liste over brukarane i denne gruppa." -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "Administrator" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "Blokkér" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 #, fuzzy msgid "Make user an admin of the group" msgstr "Du må være administrator for å redigere gruppa" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 #, fuzzy msgid "Make Admin" msgstr "Administrator" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, fuzzy, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Oppdateringar frå %1$s på %2$s!" @@ -2013,16 +2045,19 @@ msgstr "Personleg melding" msgid "Optionally add a personal message to the invitation." msgstr "Eventuelt legg til ei personleg melding til invitasjonen." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" msgstr "Send" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s har invitert deg til %2$s" -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2078,7 +2113,12 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Du må være logga inn for å bli med i ei gruppe." -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "Ingen kallenamn." + +#: actions/joingroup.php:141 #, fuzzy, php-format msgid "%1$s joined group %2$s" msgstr "%s blei medlem av gruppe %s" @@ -2087,11 +2127,11 @@ msgstr "%s blei medlem av gruppe %s" msgid "You must be logged in to leave a group." msgstr "Du må være innlogga for å melde deg ut av ei gruppe." -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 msgid "You are not a member of that group." msgstr "Du er ikkje medlem av den gruppa." -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, fuzzy, php-format msgid "%1$s left group %2$s" msgstr "%s forlot %s gruppa" @@ -2109,8 +2149,7 @@ msgstr "Feil brukarnamn eller passord" msgid "Error setting user. You are probably not authorized." msgstr "Ikkje autorisert." -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "Logg inn" @@ -2369,8 +2408,8 @@ msgstr "Kopla til" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "Ikkje eit støtta dataformat." @@ -2516,7 +2555,7 @@ msgstr "Klarar ikkje lagra nytt passord." msgid "Password saved." msgstr "Lagra passord." -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "" @@ -2549,7 +2588,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 #, fuzzy msgid "Site" msgstr "Invitér" @@ -2734,7 +2772,7 @@ msgstr "" "1-64 små bokstavar eller tal, ingen punktum (og liknande) eller mellomrom" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "Fullt namn" @@ -2763,7 +2801,7 @@ msgid "Bio" msgstr "Om meg" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2847,7 +2885,8 @@ msgstr "Kan ikkje lagra profil." msgid "Couldn't save tags." msgstr "Kan ikkje lagra merkelapp." -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "Lagra innstillingar." @@ -2860,48 +2899,48 @@ msgstr "" msgid "Could not retrieve public stream." msgstr "Kan ikkje hente offentleg straum." -#: actions/public.php:129 +#: actions/public.php:130 #, php-format msgid "Public timeline, page %d" msgstr "Offentleg tidsline, side %d" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "Offentleg tidsline" -#: actions/public.php:159 +#: actions/public.php:160 #, fuzzy msgid "Public Stream Feed (RSS 1.0)" msgstr "Offentleg straum" -#: actions/public.php:163 +#: actions/public.php:164 #, fuzzy msgid "Public Stream Feed (RSS 2.0)" msgstr "Offentleg straum" -#: actions/public.php:167 +#: actions/public.php:168 #, fuzzy msgid "Public Stream Feed (Atom)" msgstr "Offentleg straum" -#: actions/public.php:187 +#: 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:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2910,7 +2949,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:246 +#: actions/public.php:247 #, fuzzy, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3084,8 +3123,7 @@ msgstr "Feil med stadfestingskode." msgid "Registration successful" msgstr "Registreringa gikk bra" -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "Registrér" @@ -3277,7 +3315,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:656 +#: actions/repeat.php:114 lib/noticelist.php:674 #, fuzzy msgid "Repeated" msgstr "Lag" @@ -3287,47 +3325,47 @@ msgstr "Lag" msgid "Repeated!" msgstr "Lag" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "Svar til %s" -#: actions/replies.php:127 +#: actions/replies.php:128 #, fuzzy, php-format msgid "Replies to %1$s, page %2$d" msgstr "Melding til %1$s på %2$s" -#: actions/replies.php:144 +#: actions/replies.php:145 #, fuzzy, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "Notisstraum for %s" -#: actions/replies.php:151 +#: actions/replies.php:152 #, fuzzy, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "Notisstraum for %s" -#: actions/replies.php:158 +#: actions/replies.php:159 #, php-format msgid "Replies feed for %s (Atom)" msgstr "Notisstraum for %s" -#: actions/replies.php:198 +#: actions/replies.php:199 #, 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 "" -#: actions/replies.php:203 +#: 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:205 +#: actions/replies.php:206 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3355,7 +3393,6 @@ msgid "User is already sandboxed." msgstr "Brukar har blokkert deg." #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "" @@ -3380,7 +3417,7 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 #, fuzzy msgid "Save site settings" msgstr "Avatar-innstillingar" @@ -3415,7 +3452,7 @@ msgstr "Paginering" msgid "Description" msgstr "Beskriving" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Statistikk" @@ -3477,35 +3514,35 @@ msgstr "%s's favoritt meldingar" msgid "Could not retrieve favorite notices." msgstr "Kunne ikkje hente fram favorittane." -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "Straum for vener av %s" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "Straum for vener av %s" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" msgstr "Straum for vener av %s" -#: actions/showfavorites.php:205 +#: 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:207 +#: 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 :)" msgstr "" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3513,7 +3550,7 @@ msgid "" "would add to their favorites :)" msgstr "" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "" @@ -3527,68 +3564,68 @@ msgstr "%s gruppe" msgid "%1$s group, page %2$d" msgstr "%s medlemmar i gruppa, side %d" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 msgid "Group profile" msgstr "Gruppe profil" -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "URL" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 msgid "Note" msgstr "Merknad" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "Gruppe handlingar" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Notisstraum for %s gruppa" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Notisstraum for %s gruppa" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "Notisstraum for %s gruppa" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, php-format msgid "FOAF for %s group" msgstr "Utboks for %s" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 msgid "Members" msgstr "Medlemmar" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Ingen)" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "Alle medlemmar" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 #, fuzzy msgid "Created" msgstr "Lag" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3598,7 +3635,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:454 +#: actions/showgroup.php:462 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3609,7 +3646,7 @@ msgstr "" "**%s** er ei brukargruppe på %%%%site.name%%%%, ei [mikroblogging](http://en." "wikipedia.org/wiki/Micro-blogging)-teneste" -#: actions/showgroup.php:482 +#: actions/showgroup.php:490 #, fuzzy msgid "Admins" msgstr "Administrator" @@ -4078,22 +4115,22 @@ msgstr "Jabber" msgid "SMS" msgstr "SMS" -#: actions/tag.php:68 +#: actions/tag.php:69 #, fuzzy, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "Brukarar sjølv-merka med %s, side %d" -#: actions/tag.php:86 +#: actions/tag.php:87 #, fuzzy, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "Notisstraum for %s" -#: actions/tag.php:92 +#: actions/tag.php:93 #, fuzzy, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "Notisstraum for %s" -#: actions/tag.php:98 +#: actions/tag.php:99 #, fuzzy, php-format msgid "Notice feed for tag %s (Atom)" msgstr "Notisstraum for %s" @@ -4150,7 +4187,7 @@ msgstr "" msgid "No such tag." msgstr "Dette emneord finst ikkje." -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "API-metoden er ikkje ferdig enno." @@ -4183,76 +4220,78 @@ msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +#, fuzzy +msgctxt "TITLE" msgid "User" msgstr "Brukar" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "" -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "" -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "" -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "Profil" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "" -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 #, fuzzy msgid "New users" msgstr "Invitér nye brukarar" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "" -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 #, fuzzy msgid "Default subscription" msgstr "Alle tingingar" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 #, fuzzy msgid "Automatically subscribe new users to this user." msgstr "" "Automatisk ting notisane til dei som tingar mine (best for ikkje-menneskje)" -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 #, fuzzy msgid "Invitations" msgstr "Invitasjon(er) sendt" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 #, fuzzy msgid "Invitations enabled" msgstr "Invitasjon(er) sendt" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "" @@ -4439,7 +4478,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 #, fuzzy msgid "Version" msgstr "Personleg" @@ -4480,6 +4519,11 @@ msgstr "Kann ikkje oppdatera gruppa." msgid "Group leave failed." msgstr "Gruppe profil" +#: classes/Local_group.php:41 +#, fuzzy +msgid "Could not update local group." +msgstr "Kann ikkje oppdatera gruppa." + #: classes/Login_token.php:76 #, fuzzy, php-format msgid "Could not create login token for %s" @@ -4498,27 +4542,27 @@ msgstr "Kunne ikkje lagre melding." msgid "Could not update message with new URI." msgstr "Kunne ikkje oppdatere melding med ny URI." -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "databasefeil ved innsetjing av skigardmerkelapp (#merkelapp): %s" -#: classes/Notice.php:222 +#: classes/Notice.php:239 #, fuzzy msgid "Problem saving notice. Too long." msgstr "Eit problem oppstod ved lagring av notis." -#: classes/Notice.php:226 +#: classes/Notice.php:243 msgid "Problem saving notice. Unknown user." msgstr "Feil ved lagring av notis. Ukjend brukar." -#: classes/Notice.php:231 +#: classes/Notice.php:248 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:237 +#: classes/Notice.php:254 #, fuzzy msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " @@ -4526,20 +4570,20 @@ msgid "" msgstr "" "For mange notisar for raskt; tek ei pause, og prøv igjen om eit par minutt." -#: classes/Notice.php:243 +#: classes/Notice.php:260 msgid "You are banned from posting notices on this site." msgstr "Du kan ikkje lengre legge inn notisar på denne sida." -#: classes/Notice.php:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "Eit problem oppstod ved lagring av notis." -#: classes/Notice.php:882 +#: classes/Notice.php:911 #, fuzzy msgid "Problem saving group inbox." msgstr "Eit problem oppstod ved lagring av notis." -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4571,19 +4615,29 @@ msgstr "Kan ikkje sletta tinging." msgid "Couldn't delete subscription." msgstr "Kan ikkje sletta tinging." -#: classes/User.php:372 +#: classes/User.php:373 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Melding til %1$s på %2$s" -#: classes/User_group.php:423 +#: classes/User_group.php:462 msgid "Could not create group." msgstr "Kunne ikkje laga gruppa." -#: classes/User_group.php:452 +#: classes/User_group.php:471 +#, fuzzy +msgid "Could not set group URI." +msgstr "Kunne ikkje bli med i gruppa." + +#: classes/User_group.php:492 msgid "Could not set group membership." msgstr "Kunne ikkje bli med i gruppa." +#: classes/User_group.php:506 +#, fuzzy +msgid "Could not save local group info." +msgstr "Kunne ikkje lagra abonnement." + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "Endra profilinnstillingane dine" @@ -4626,123 +4680,191 @@ msgstr "Ingen tittel" msgid "Primary site navigation" msgstr "Navigasjon for hovudsida" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "Heim" - -#: lib/action.php:439 +#, fuzzy +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Personleg profil og oversyn over vener" -#: lib/action.php:441 +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "Personleg" + +#. TRANS: Tooltip for main menu option "Account" +#: lib/action.php:444 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Endra e-posten, avataren, passordet eller profilen" -#: lib/action.php:444 -msgid "Connect" -msgstr "Kopla til" +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "Konto" -#: lib/action.php:444 +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 #, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Klarte ikkje å omdirigera til tenaren: %s" -#: lib/action.php:448 +#: lib/action.php:453 +#, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "Kopla til" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 #, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Navigasjon for hovudsida" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" -msgstr "Invitér" +#: lib/action.php:460 +#, fuzzy +msgctxt "MENU" +msgid "Admin" +msgstr "Administrator" -#: lib/action.php:453 lib/subgroupnav.php:106 -#, php-format +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 +#, fuzzy, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Inviter vennar og kollega til å bli med deg på %s" -#: lib/action.php:458 -msgid "Logout" -msgstr "Logg ut" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "Invitér" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +#, fuzzy +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Logg ut or sida" -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "Logg ut" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 +#, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "Opprett ny konto" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "Registrér" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +#, fuzzy +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Logg inn or sida" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "Hjelp" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "Logg inn" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 +#, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "Hjelp meg!" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "Søk" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "Hjelp" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +#, fuzzy +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Søk etter folk eller innhald" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "Søk" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 msgid "Site notice" msgstr "Statusmelding" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "Lokale syningar" -#: lib/action.php:625 +#: lib/action.php:656 msgid "Page notice" msgstr "Sidenotis" -#: lib/action.php:727 +#: lib/action.php:758 msgid "Secondary site navigation" msgstr "Andrenivås side navigasjon" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "Hjelp" + +#: lib/action.php:765 msgid "About" msgstr "Om" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "OSS" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "Personvern" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "Kjeldekode" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "Kontakt" -#: lib/action.php:751 +#: lib/action.php:782 #, fuzzy msgid "Badge" msgstr "Dult" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "StatusNets programvarelisens" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4751,12 +4873,12 @@ msgstr "" "**%%site.name%%** er ei mikrobloggingteneste av [%%site.broughtby%%](%%site." "broughtbyurl%%). " -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** er ei mikrobloggingteneste. " -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4767,117 +4889,169 @@ msgstr "" "%s, tilgjengeleg under [GNU Affero General Public License](http://www.fsf." "org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:801 +#: lib/action.php:832 #, fuzzy msgid "Site content license" msgstr "StatusNets programvarelisens" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "Alle" -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "lisens." -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "Paginering" -#: lib/action.php:1141 +#: lib/action.php:1172 msgid "After" msgstr "« Etter" -#: lib/action.php:1149 +#: lib/action.php:1180 msgid "Before" msgstr "Før »" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 #, fuzzy msgid "You cannot make changes to this site." msgstr "Du kan ikkje sende melding til denne brukaren." -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 #, fuzzy msgid "Changes to that panel are not allowed." msgstr "Registrering ikkje tillatt." -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 #, fuzzy msgid "showForm() not implemented." msgstr "Kommando ikkje implementert." -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 #, fuzzy msgid "saveSettings() not implemented." msgstr "Kommando ikkje implementert." -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 #, fuzzy msgid "Unable to delete design setting." msgstr "Klarte ikkje å lagra Twitter-innstillingane dine!" -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 #, fuzzy msgid "Basic site configuration" msgstr "Stadfesting av epostadresse" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "Invitér" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 #, fuzzy msgid "Design configuration" msgstr "SMS bekreftelse" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "Personleg" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 #, fuzzy msgid "User configuration" msgstr "SMS bekreftelse" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +#, fuzzy +msgctxt "MENU" +msgid "User" +msgstr "Brukar" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 #, fuzzy msgid "Access configuration" msgstr "SMS bekreftelse" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "Godta" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 #, fuzzy msgid "Paths configuration" msgstr "SMS bekreftelse" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +msgctxt "MENU" +msgid "Paths" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 #, fuzzy msgid "Sessions configuration" msgstr "SMS bekreftelse" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "Personleg" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4973,12 +5147,12 @@ msgstr "" msgid "Tags for this attachment" msgstr "" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 #, fuzzy msgid "Password changing failed" msgstr "Endra passord" -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 #, fuzzy msgid "Password changing is not allowed" msgstr "Endra passord" @@ -5259,20 +5433,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:148 #, fuzzy msgid "No configuration file found. " msgstr "Ingen stadfestingskode." -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:152 #, fuzzy msgid "Go to the installer." msgstr "Logg inn or sida" @@ -5465,23 +5639,23 @@ msgstr "Systemfeil ved opplasting av fil." msgid "Not an image or corrupt file." msgstr "Korrupt bilete." -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "Støttar ikkje bileteformatet." -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Mista fila vår." -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "Ukjend fil type" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "" @@ -5791,6 +5965,12 @@ msgstr "Til" msgid "Available characters" msgstr "Tilgjenglege teikn" +#: lib/messageform.php:178 lib/noticeform.php:236 +#, fuzzy +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "Send" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Send ei melding" @@ -5850,25 +6030,25 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 #, fuzzy msgid "in context" msgstr "Ingen innhald." -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 #, fuzzy msgid "Repeated by" msgstr "Lag" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 msgid "Reply to this notice" msgstr "Svar på denne notisen" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 msgid "Reply" msgstr "Svar" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 #, fuzzy msgid "Notice repeated" msgstr "Melding lagra" @@ -5918,6 +6098,10 @@ msgstr "Svar" msgid "Favorites" msgstr "Favorittar" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "Brukar" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Innboks" @@ -6012,7 +6196,7 @@ msgstr "Svar på denne notisen" msgid "Repeat this notice" msgstr "Svar på denne notisen" -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "" @@ -6035,6 +6219,10 @@ msgstr "Søk" msgid "Keyword(s)" msgstr "" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "Søk" + #: lib/searchaction.php:162 #, fuzzy msgid "Search help" @@ -6089,6 +6277,15 @@ msgstr "Mennesker som tingar %s" msgid "Groups %s is a member of" msgstr "Grupper %s er medlem av" +#: lib/subgroupnav.php:105 +msgid "Invite" +msgstr "Invitér" + +#: lib/subgroupnav.php:106 +#, php-format +msgid "Invite friends and colleagues to join you on %s" +msgstr "Inviter vennar og kollega til å bli med deg på %s" + #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 msgid "People Tagcloud as self-tagged" @@ -6163,47 +6360,47 @@ msgstr "Melding" msgid "Moderate" msgstr "" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "eit par sekund sidan" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "omtrent eitt minutt sidan" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "~%d minutt sidan" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "omtrent ein time sidan" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "~%d timar sidan" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "omtrent ein dag sidan" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "~%d dagar sidan" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "omtrent ein månad sidan" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "~%d månadar sidan" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "omtrent eitt år sidan" diff --git a/locale/pl/LC_MESSAGES/statusnet.po b/locale/pl/LC_MESSAGES/statusnet.po index 79b37a5e4..a8cef8d36 100644 --- a/locale/pl/LC_MESSAGES/statusnet.po +++ b/locale/pl/LC_MESSAGES/statusnet.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:51:31+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:03:35+0000\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" @@ -19,69 +19,76 @@ 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 (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pl\n" "X-Message-Group: out-statusnet\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 msgid "Access" msgstr "Dostęp" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 msgid "Site access settings" msgstr "Ustawienia dostępu witryny" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 msgid "Registration" msgstr "Rejestracja" -#: actions/accessadminpanel.php:161 -msgid "Private" -msgstr "Prywatna" - -#: actions/accessadminpanel.php:163 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "Zabronić anonimowym użytkownikom (niezalogowanym) przeglądać witrynę?" +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -msgid "Invite only" -msgstr "Tylko zaproszeni" +#, fuzzy +msgctxt "LABEL" +msgid "Private" +msgstr "Prywatna" -#: actions/accessadminpanel.php:169 +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 msgid "Make registration invitation only." msgstr "Rejestracja tylko za zaproszeniem." -#: actions/accessadminpanel.php:173 -msgid "Closed" -msgstr "Zamknięte" +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 +msgid "Invite only" +msgstr "Tylko zaproszeni" -#: actions/accessadminpanel.php:175 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 msgid "Disable new registrations." msgstr "Wyłączenie nowych rejestracji." -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "Zapisz" +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 +msgid "Closed" +msgstr "Zamknięte" -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 msgid "Save access settings" msgstr "Zapisz ustawienia dostępu" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "Zapisz" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page" msgstr "Nie ma takiej strony" -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -95,45 +102,53 @@ msgstr "Nie ma takiej strony" #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "Brak takiego użytkownika." -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s i przyjaciele, strona %2$d" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "Użytkownik %s i przyjaciele" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Kanał dla znajomych użytkownika %s (RSS 1.0)" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Kanał dla znajomych użytkownika %s (RSS 2.0)" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Kanał dla znajomych użytkownika %s (Atom)" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." @@ -141,7 +156,7 @@ msgstr "" "To jest oś czasu użytkownika %s i przyjaciół, ale nikt jeszcze nic nie " "wysłał." -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -150,7 +165,8 @@ msgstr "" "Spróbuj subskrybować więcej osób, [dołączyć do grupy](%%action.groups%%) lub " "wysłać coś samemu." -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " @@ -160,7 +176,7 @@ msgstr "" "[wysłać coś wymagającego jego uwagi](%%%%action.newnotice%%%%?" "status_textarea=%3$s)." -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -169,7 +185,8 @@ msgstr "" "Dlaczego nie [zarejestrujesz konta](%%%%action.register%%%%) i wtedy " "szturchniesz użytkownika %s lub wyślesz wpis wymagającego jego uwagi." -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 msgid "You and friends" msgstr "Ty i przyjaciele" @@ -187,20 +204,20 @@ msgstr "Aktualizacje z %1$s i przyjaciół na %2$s." #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 msgid "API method not found." msgstr "Nie odnaleziono metody API." @@ -233,8 +250,9 @@ msgstr "Nie można zaktualizować użytkownika." #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "Użytkownik nie posiada profilu." @@ -260,7 +278,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: 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." @@ -373,68 +391,68 @@ msgstr "Nie można określić użytkownika źródłowego." msgid "Could not find target user." msgstr "Nie można odnaleźć użytkownika docelowego." -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "Pseudonim może zawierać tylko małe litery i cyfry, bez spacji." -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Pseudonim jest już używany. Spróbuj innego." -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "To nie jest prawidłowy pseudonim." -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Strona domowa nie jest prawidłowym adresem URL." -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Imię i nazwisko jest za długie (maksymalnie 255 znaków)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "Opis jest za długi (maksymalnie %d znaków)." -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Położenie jest za długie (maksymalnie 255 znaków)." -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "Za dużo aliasów. Maksymalnie %d." -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Nieprawidłowy alias: \"%s\"" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Alias \"%s\" jest już używany. Spróbuj innego." -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "Alias nie może być taki sam jak pseudonim." @@ -445,15 +463,15 @@ msgstr "Alias nie może być taki sam jak pseudonim." msgid "Group not found!" msgstr "Nie odnaleziono grupy." -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 msgid "You are already a member of that group." msgstr "Jesteś już członkiem tej grupy." -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "Zostałeś zablokowany w tej grupie przez administratora." -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Nie można dołączyć użytkownika %1$s do grupy %2$s." @@ -462,7 +480,7 @@ msgstr "Nie można dołączyć użytkownika %1$s do grupy %2$s." msgid "You are not a member of this group." msgstr "Nie jesteś członkiem tej grupy." -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Nie można usunąć użytkownika %1$s z grupy %2$s." @@ -493,7 +511,7 @@ msgstr "Nieprawidłowy token." #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -535,7 +553,7 @@ msgstr "Token żądania %s został odrzucony lub unieważniony." #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -561,13 +579,13 @@ msgstr "" "uzyskać możliwość %3$s danych konta %4$s. Dostęp do konta %4" "$s powinien być udostępniany tylko zaufanym osobom trzecim." -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 msgid "Account" msgstr "Konto" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -649,12 +667,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "Użytkownik %1$s aktualizuje ulubione według %2$s/%2$s." #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "Oś czasu użytkownika %s" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -690,7 +708,7 @@ msgstr "Powtórzone dla %s" msgid "Repeats of %s" msgstr "Powtórzenia %s" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Wpisy ze znacznikiem %s" @@ -711,8 +729,7 @@ msgstr "Nie ma takiego załącznika." #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "Brak pseudonimu." @@ -724,7 +741,7 @@ msgstr "Brak rozmiaru." msgid "Invalid size." msgstr "Nieprawidłowy rozmiar." -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Awatar" @@ -741,30 +758,30 @@ msgid "User without matching profile" msgstr "Użytkownik bez odpowiadającego profilu" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Ustawienia awatara" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Oryginał" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Podgląd" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 msgid "Delete" msgstr "Usuń" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "Wyślij" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "Przytnij" @@ -772,7 +789,7 @@ msgstr "Przytnij" msgid "Pick a square area of the image to be your avatar" msgstr "Wybierz kwadratowy obszar obrazu do awatara" -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Utracono dane pliku." @@ -807,22 +824,22 @@ msgstr "" "i nie będziesz powiadamiany o żadnych odpowiedziach @ od niego." #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "Nie" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 msgid "Do not block this user" msgstr "Nie blokuj tego użytkownika" #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Tak" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 msgid "Block this user" msgstr "Zablokuj tego użytkownika" @@ -830,39 +847,43 @@ msgstr "Zablokuj tego użytkownika" msgid "Failed to save block information." msgstr "Zapisanie informacji o blokadzie nie powiodło się." -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 msgid "No such group." msgstr "Nie ma takiej grupy." -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, php-format msgid "%s blocked profiles" msgstr "%s zablokowane profile" -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s zablokowane profile, strona %2$d" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." msgstr "Lista użytkowników zablokowanych w tej grupie." -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 msgid "Unblock user from group" msgstr "Odblokuj użytkownika w tej grupie" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "Odblokuj" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 msgid "Unblock this user" msgstr "Odblokuj tego użytkownika" @@ -937,7 +958,7 @@ msgstr "Nie jesteś właścicielem tej aplikacji." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "Wystąpił problem z tokenem sesji." @@ -962,12 +983,13 @@ msgstr "Nie usuwaj tej aplikacji" msgid "Delete this application" msgstr "Usuń tę aplikację" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Niezalogowany." @@ -996,7 +1018,7 @@ msgstr "Jesteś pewien, że chcesz usunąć ten wpis?" msgid "Do not delete this notice" msgstr "Nie usuwaj tego wpisu" -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 msgid "Delete this notice" msgstr "Usuń ten wpis" @@ -1012,7 +1034,7 @@ msgstr "Nie można usuwać lokalnych użytkowników." msgid "Delete user" msgstr "Usuń użytkownika" -#: actions/deleteuser.php:135 +#: 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." @@ -1020,12 +1042,12 @@ msgstr "" "Na pewno usunąć tego użytkownika? Wyczyści to wszystkie dane o użytkowniku z " "bazy danych, bez utworzenia kopii zapasowej." -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 msgid "Delete this user" msgstr "Usuń tego użytkownika" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "Wygląd" @@ -1100,7 +1122,7 @@ msgstr "Zmień kolory" #: actions/designadminpanel.php:510 lib/designsettings.php:191 msgid "Content" -msgstr "Zawartość" +msgstr "Treść" #: actions/designadminpanel.php:523 lib/designsettings.php:204 msgid "Sidebar" @@ -1126,6 +1148,17 @@ msgstr "Przywróć domyślny wygląd" msgid "Reset back to default" msgstr "Przywróć domyślne ustawienia" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "Zapisz" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "Zapisz wygląd" @@ -1217,29 +1250,29 @@ msgstr "Zmodyfikuj grupę %s" msgid "You must be logged in to create a group." msgstr "Musisz być zalogowany, aby utworzyć grupę." -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: 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 "Musisz być administratorem, aby zmodyfikować grupę." -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "Użyj tego formularza, aby zmodyfikować grupę." -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, php-format msgid "description is too long (max %d chars)." msgstr "opis jest za długi (maksymalnie %d znaków)." -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 msgid "Could not update group." msgstr "Nie można zaktualizować grupy." -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 msgid "Could not create aliases." msgstr "Nie można utworzyć aliasów." -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 msgid "Options saved." msgstr "Zapisano opcje." @@ -1580,7 +1613,7 @@ msgstr "Użytkownik został już zablokował w grupie." msgid "User is not a member of group." msgstr "Użytkownik nie jest członkiem grupy." -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 msgid "Block user from group" msgstr "Zablokuj użytkownika w grupie" @@ -1615,86 +1648,86 @@ msgstr "Brak identyfikatora." msgid "You must be logged in to edit a group." msgstr "Musisz być zalogowany, aby zmodyfikować grupę." -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 msgid "Group design" msgstr "Wygląd grupy" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." msgstr "Dostosuj wygląd grupy za pomocą wybranego obrazu tła i palety kolorów." -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 msgid "Couldn't update your design." msgstr "Nie można zaktualizować wyglądu." -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 msgid "Design preferences saved." msgstr "Zapisano preferencje wyglądu." -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "Logo grupy" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "Można wysłać obraz logo grupy. Maksymalny rozmiar pliku to %s." -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 msgid "User without matching profile." msgstr "Użytkownik bez odpowiadającego profilu." -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Wybierz kwadratowy obszar obrazu, który będzie logo." -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 msgid "Logo updated." msgstr "Zaktualizowano logo." -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 msgid "Failed updating logo." msgstr "Zaktualizowanie logo nie powiodło się." -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "Członkowie grupy %s" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, php-format msgid "%1$s group members, page %2$d" msgstr "Członkowie grupy %1$s, strona %2$d" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "Lista użytkowników znajdujących się w tej grupie." -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "Administrator" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "Zablokuj" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 msgid "Make user an admin of the group" msgstr "Uczyń użytkownika administratorem grupy" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make Admin" msgstr "Uczyń administratorem" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "Uczyń tego użytkownika administratorem" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Aktualizacje od członków %1$s na %2$s." @@ -1958,16 +1991,19 @@ msgstr "Osobista wiadomość" msgid "Optionally add a personal message to the invitation." msgstr "Opcjonalnie dodaj osobistą wiadomość do zaproszenia." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" msgstr "Wyślij" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s zapraszają cię, abyś dołączył do nich w %2$s" -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2028,7 +2064,11 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Musisz być zalogowany, aby dołączyć do grupy." -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Brak pseudonimu lub identyfikatora." + +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "Użytkownik %1$s dołączył do grupy %2$s" @@ -2037,11 +2077,11 @@ msgstr "Użytkownik %1$s dołączył do grupy %2$s" msgid "You must be logged in to leave a group." msgstr "Musisz być zalogowany, aby opuścić grupę." -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 msgid "You are not a member of that group." msgstr "Nie jesteś członkiem tej grupy." -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "Użytkownik %1$s opuścił grupę %2$s" @@ -2058,8 +2098,7 @@ msgstr "Niepoprawna nazwa użytkownika lub hasło." msgid "Error setting user. You are probably not authorized." msgstr "Błąd podczas ustawiania użytkownika. Prawdopodobnie brak upoważnienia." -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "Zaloguj się" @@ -2160,7 +2199,7 @@ msgstr "Nie można wysłać wiadomości do tego użytkownika." #: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 #: lib/command.php:475 msgid "No content!" -msgstr "Brak zawartości." +msgstr "Brak treści." #: actions/newmessage.php:158 msgid "No recipient specified." @@ -2198,7 +2237,7 @@ msgid "" "Search for notices on %%site.name%% by their contents. Separate search terms " "by spaces; they must be 3 characters or more." msgstr "" -"Wyszukaj wpisy na %%site.name%% według ich zawartości. Oddziel wyszukiwane " +"Wyszukaj wpisy na %%site.name%% według ich treści. Oddziel wyszukiwane " "terminy spacjami. Terminy muszą mieć trzy znaki lub więcej." #: actions/noticesearch.php:78 @@ -2313,8 +2352,8 @@ msgstr "typ zawartości " msgid "Only " msgstr "Tylko " -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "To nie jest obsługiwany format danych." @@ -2453,7 +2492,7 @@ msgstr "Nie można zapisać nowego hasła." msgid "Password saved." msgstr "Zapisano hasło." -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "Ścieżki" @@ -2486,7 +2525,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "Nieprawidłowy serwer SSL. Maksymalna długość to 255 znaków." #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 msgid "Site" msgstr "Witryny" @@ -2661,7 +2699,7 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 małe litery lub liczby, bez spacji i znaków przestankowych" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "Imię i nazwisko" @@ -2689,7 +2727,7 @@ msgid "Bio" msgstr "O mnie" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2772,7 +2810,8 @@ msgstr "Nie można zapisać profilu." msgid "Couldn't save tags." msgstr "Nie można zapisać znaczników." -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "Zapisano ustawienia." @@ -2785,28 +2824,28 @@ msgstr "Poza ograniczeniem strony (%s)" msgid "Could not retrieve public stream." msgstr "Nie można pobrać publicznego strumienia." -#: actions/public.php:129 +#: actions/public.php:130 #, php-format msgid "Public timeline, page %d" msgstr "Publiczna oś czasu, strona %d" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "Publiczna oś czasu" -#: actions/public.php:159 +#: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" msgstr "Kanał publicznego strumienia (RSS 1.0)" -#: actions/public.php:163 +#: actions/public.php:164 msgid "Public Stream Feed (RSS 2.0)" msgstr "Kanał publicznego strumienia (RSS 2.0)" -#: actions/public.php:167 +#: actions/public.php:168 msgid "Public Stream Feed (Atom)" msgstr "Kanał publicznego strumienia (Atom)" -#: actions/public.php:187 +#: actions/public.php:188 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " @@ -2815,11 +2854,11 @@ msgstr "" "To jest publiczna oś czasu dla %%site.name%%, ale nikt jeszcze nic nie " "wysłał." -#: actions/public.php:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "Zostań pierwszym, który coś wyśle." -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" @@ -2827,7 +2866,7 @@ msgstr "" "Dlaczego nie [zarejestrujesz konta](%%action.register%%) i zostaniesz " "pierwszym, który coś wyśle." -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2840,7 +2879,7 @@ msgstr "" "[Dołącz teraz](%%action.register%%), aby dzielić się wpisami o sobie z " "przyjaciółmi, rodziną i kolegami. ([Przeczytaj więcej](%%doc.help%%))" -#: actions/public.php:246 +#: actions/public.php:247 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3018,8 +3057,7 @@ msgstr "Nieprawidłowy kod zaproszenia." msgid "Registration successful" msgstr "Rejestracja powiodła się" -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "Zarejestruj się" @@ -3206,7 +3244,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:656 +#: actions/repeat.php:114 lib/noticelist.php:674 msgid "Repeated" msgstr "Powtórzono" @@ -3214,33 +3252,33 @@ msgstr "Powtórzono" msgid "Repeated!" msgstr "Powtórzono." -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "Odpowiedzi na %s" -#: actions/replies.php:127 +#: actions/replies.php:128 #, php-format msgid "Replies to %1$s, page %2$d" msgstr "odpowiedzi dla użytkownika %1$s, strona %2$s" -#: actions/replies.php:144 +#: actions/replies.php:145 #, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "Kanał odpowiedzi dla użytkownika %s (RSS 1.0)" -#: actions/replies.php:151 +#: actions/replies.php:152 #, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "Kanał odpowiedzi dla użytkownika %s (RSS 2.0)" -#: actions/replies.php:158 +#: actions/replies.php:159 #, php-format msgid "Replies feed for %s (Atom)" msgstr "Kanał odpowiedzi dla użytkownika %s (Atom)" -#: actions/replies.php:198 +#: actions/replies.php:199 #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " @@ -3249,7 +3287,7 @@ 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." -#: actions/replies.php:203 +#: actions/replies.php:204 #, php-format msgid "" "You can engage other users in a conversation, subscribe to more people or " @@ -3258,7 +3296,7 @@ msgstr "" "Można nawiązać rozmowę z innymi użytkownikami, subskrybować więcej osób lub " "[dołączyć do grup](%%action.groups%%)." -#: actions/replies.php:205 +#: actions/replies.php:206 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3285,7 +3323,6 @@ msgid "User is already sandboxed." msgstr "Użytkownik jest już ograniczony." #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "Sesje" @@ -3310,7 +3347,7 @@ msgid "Turn on debugging output for sessions." msgstr "Włącza wyjście debugowania dla sesji." #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Zapisz ustawienia witryny" @@ -3340,7 +3377,7 @@ msgstr "Organizacja" msgid "Description" msgstr "Opis" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Statystyki" @@ -3403,22 +3440,22 @@ msgstr "Ulubione wpisy użytkownika %1$s, strona %2$d" msgid "Could not retrieve favorite notices." msgstr "Nie można odebrać ulubionych wpisów." -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "Kanał dla ulubionych wpisów użytkownika %s (RSS 1.0)" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "Kanał dla ulubionych wpisów użytkownika %s (RSS 2.0)" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" msgstr "Kanał dla ulubionych wpisów użytkownika %s (Atom)" -#: actions/showfavorites.php:205 +#: 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." @@ -3427,7 +3464,7 @@ msgstr "" "na wpisach, które chciałbyś dodać do zakładek na później lub rzucić na nie " "trochę światła." -#: actions/showfavorites.php:207 +#: actions/showfavorites.php:208 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Post something interesting " @@ -3436,7 +3473,7 @@ msgstr "" "Użytkownik %s nie dodał jeszcze żadnych wpisów do ulubionych. Wyślij coś " "interesującego, aby chcieli dodać to do swoich ulubionych. :)" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3447,7 +3484,7 @@ msgstr "" "[zarejestrujesz konta](%%%%action.register%%%%) i wyślesz coś " "interesującego, aby chcieli dodać to do swoich ulubionych. :)" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "To jest sposób na współdzielenie tego, co chcesz." @@ -3461,67 +3498,67 @@ msgstr "Grupa %s" msgid "%1$s group, page %2$d" msgstr "Grupa %1$s, strona %2$d" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 msgid "Group profile" msgstr "Profil grupy" -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "Adres URL" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 msgid "Note" msgstr "Wpis" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "Aliasy" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "Działania grupy" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Kanał wpisów dla grupy %s (RSS 1.0)" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Kanał wpisów dla grupy %s (RSS 2.0)" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Kanał wpisów dla grupy %s (Atom)" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, php-format msgid "FOAF for %s group" msgstr "FOAF dla grupy %s" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 msgid "Members" msgstr "Członkowie" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Brak)" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "Wszyscy członkowie" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 msgid "Created" msgstr "Utworzono" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3537,7 +3574,7 @@ msgstr "" "action.register%%%%), aby stać się częścią tej grupy i wiele więcej. " "([Przeczytaj więcej](%%%%doc.help%%%%))" -#: actions/showgroup.php:454 +#: actions/showgroup.php:462 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3550,7 +3587,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:482 +#: actions/showgroup.php:490 msgid "Admins" msgstr "Administratorzy" @@ -3925,17 +3962,17 @@ msgstr "Nie można zapisać subskrypcji." #: actions/subscribe.php:77 msgid "This action only accepts POST requests." -msgstr "" +msgstr "Ta czynność przyjmuje tylko żądania POST." #: actions/subscribe.php:107 -#, fuzzy msgid "No such profile." -msgstr "Nie ma takiego pliku." +msgstr "Nie ma takiego profilu." #: actions/subscribe.php:117 -#, fuzzy msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." -msgstr "Nie jesteś subskrybowany do tego profilu." +msgstr "" +"Nie można subskrybować zdalnego profilu profilu OMB 0.1 za pomocą tej " +"czynności." #: actions/subscribe.php:145 msgid "Subscribed" @@ -4030,22 +4067,22 @@ msgstr "Jabber" msgid "SMS" msgstr "SMS" -#: actions/tag.php:68 +#: actions/tag.php:69 #, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "Wpisy ze znacznikiem %1$s, strona %2$d" -#: actions/tag.php:86 +#: actions/tag.php:87 #, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "Kanał wpisów dla znacznika %s (RSS 1.0)" -#: actions/tag.php:92 +#: actions/tag.php:93 #, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "Kanał wpisów dla znacznika %s (RSS 2.0)" -#: actions/tag.php:98 +#: actions/tag.php:99 #, php-format msgid "Notice feed for tag %s (Atom)" msgstr "Kanał wpisów dla znacznika %s (Atom)" @@ -4100,7 +4137,7 @@ msgstr "" msgid "No such tag." msgstr "Nie ma takiego znacznika." -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "Metoda API jest w trakcie tworzenia." @@ -4132,70 +4169,72 @@ msgstr "" "Licencja nasłuchiwanego strumienia \"%1$s\" nie jest zgodna z licencją " "witryny \"%2$s\"." -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +#, fuzzy +msgctxt "TITLE" msgid "User" msgstr "Użytkownik" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "Ustawienia użytkownika dla tej witryny StatusNet." -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "Nieprawidłowe ograniczenie informacji o sobie. Musi być liczbowa." -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "Nieprawidłowy tekst powitania. Maksymalna długość to 255 znaków." -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "Nieprawidłowa domyślna subskrypcja: \"%1$s\" nie jest użytkownikiem." -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "Profil" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "Ograniczenie informacji o sobie" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "Maksymalna długość informacji o sobie jako liczba znaków." -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 msgid "New users" msgstr "Nowi użytkownicy" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "Powitanie nowego użytkownika" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "Tekst powitania nowych użytkowników (maksymalnie 255 znaków)." -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 msgid "Default subscription" msgstr "Domyślna subskrypcja" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 msgid "Automatically subscribe new users to this user." msgstr "Automatyczne subskrybowanie nowych użytkowników do tego użytkownika." -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 msgid "Invitations" msgstr "Zaproszenia" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 msgid "Invitations enabled" msgstr "Zaproszenia są włączone" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "Czy zezwolić użytkownikom zapraszanie nowych użytkowników." @@ -4390,7 +4429,7 @@ msgstr "" msgid "Plugins" msgstr "Wtyczki" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 msgid "Version" msgstr "Wersja" @@ -4432,6 +4471,10 @@ msgstr "Nie jest częścią grupy." msgid "Group leave failed." msgstr "Opuszczenie grupy nie powiodło się." +#: classes/Local_group.php:41 +msgid "Could not update local group." +msgstr "Nie można zaktualizować lokalnej grupy." + #: classes/Login_token.php:76 #, php-format msgid "Could not create login token for %s" @@ -4449,27 +4492,27 @@ msgstr "Nie można wprowadzić wiadomości." msgid "Could not update message with new URI." msgstr "Nie można zaktualizować wiadomości za pomocą nowego adresu URL." -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "Błąd bazy danych podczas wprowadzania znacznika mieszania: %s" -#: classes/Notice.php:222 +#: classes/Notice.php:239 msgid "Problem saving notice. Too long." msgstr "Problem podczas zapisywania wpisu. Za długi." -#: classes/Notice.php:226 +#: classes/Notice.php:243 msgid "Problem saving notice. Unknown user." msgstr "Problem podczas zapisywania wpisu. Nieznany użytkownik." -#: classes/Notice.php:231 +#: classes/Notice.php:248 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:237 +#: classes/Notice.php:254 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4477,19 +4520,19 @@ 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:243 +#: classes/Notice.php:260 msgid "You are banned from posting notices on this site." msgstr "Zabroniono ci wysyłania wpisów na tej witrynie." -#: classes/Notice.php:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "Problem podczas zapisywania wpisu." -#: classes/Notice.php:882 +#: classes/Notice.php:911 msgid "Problem saving group inbox." msgstr "Problem podczas zapisywania skrzynki odbiorczej grupy." -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4518,19 +4561,27 @@ msgstr "Nie można usunąć autosubskrypcji." msgid "Couldn't delete subscription." msgstr "Nie można usunąć subskrypcji." -#: classes/User.php:372 +#: classes/User.php:373 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Witaj w %1$s, @%2$s." -#: classes/User_group.php:423 +#: classes/User_group.php:462 msgid "Could not create group." msgstr "Nie można utworzyć grupy." -#: classes/User_group.php:452 +#: classes/User_group.php:471 +msgid "Could not set group URI." +msgstr "Nie można ustawić adresu URI grupy." + +#: classes/User_group.php:492 msgid "Could not set group membership." msgstr "Nie można ustawić członkostwa w grupie." +#: classes/User_group.php:506 +msgid "Could not save local group info." +msgstr "Nie można zapisać informacji o lokalnej grupie." + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "Zmień ustawienia profilu" @@ -4572,120 +4623,190 @@ msgstr "Strona bez nazwy" msgid "Primary site navigation" msgstr "Główna nawigacja witryny" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "Strona domowa" - -#: lib/action.php:439 +#, fuzzy +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Profil osobisty i oś czasu przyjaciół" -#: lib/action.php:441 +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "Osobiste" + +#. TRANS: Tooltip for main menu option "Account" +#: lib/action.php:444 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Zmień adres e-mail, awatar, hasło, profil" -#: lib/action.php:444 -msgid "Connect" -msgstr "Połącz" +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "Konto" -#: lib/action.php:444 +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 +#, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Połącz z serwisami" -#: lib/action.php:448 +#: lib/action.php:453 +#, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "Połącz" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Zmień konfigurację witryny" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" -msgstr "Zaproś" +#: lib/action.php:460 +#, fuzzy +msgctxt "MENU" +msgid "Admin" +msgstr "Administrator" -#: lib/action.php:453 lib/subgroupnav.php:106 -#, php-format +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 +#, fuzzy, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Zaproś przyjaciół i kolegów do dołączenia do ciebie na %s" -#: lib/action.php:458 -msgid "Logout" -msgstr "Wyloguj się" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "Zaproś" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +#, fuzzy +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Wyloguj się z witryny" -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "Wyloguj się" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 +#, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "Utwórz konto" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "Zarejestruj się" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +#, fuzzy +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Zaloguj się na witrynie" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "Pomoc" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "Zaloguj się" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 +#, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "Pomóż mi." -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "Wyszukaj" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "Pomoc" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +#, fuzzy +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Wyszukaj osoby lub tekst" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "Wyszukaj" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 msgid "Site notice" msgstr "Wpis witryny" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "Lokalne widoki" -#: lib/action.php:625 +#: lib/action.php:656 msgid "Page notice" msgstr "Wpis strony" -#: lib/action.php:727 +#: lib/action.php:758 msgid "Secondary site navigation" msgstr "Druga nawigacja witryny" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "Pomoc" + +#: lib/action.php:765 msgid "About" msgstr "O usłudze" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "FAQ" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "TOS" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "Prywatność" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "Kod źródłowy" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "Kontakt" -#: lib/action.php:751 +#: lib/action.php:782 msgid "Badge" msgstr "Odznaka" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "Licencja oprogramowania StatusNet" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4694,12 +4815,12 @@ msgstr "" "**%%site.name%%** jest usługą mikroblogowania prowadzoną przez [%%site." "broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** jest usługą mikroblogowania. " -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4710,111 +4831,164 @@ msgstr "" "status.net/) w wersji %s, dostępnego na [Powszechnej Licencji Publicznej GNU " "Affero](http://www.fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:801 +#: lib/action.php:832 msgid "Site content license" msgstr "Licencja zawartości witryny" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Treść i dane %1$s są prywatne i poufne." -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" "Prawa autorskie do treści i danych są własnością %1$s. Wszystkie prawa " "zastrzeżone." -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Prawa autorskie do treści i danych są własnością współtwórców. Wszystkie " "prawa zastrzeżone." -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "Wszystko " -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "licencja." -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "Paginacja" -#: lib/action.php:1141 +#: lib/action.php:1172 msgid "After" msgstr "Później" -#: lib/action.php:1149 +#: lib/action.php:1180 msgid "Before" msgstr "Wcześniej" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." -msgstr "" +msgstr "Nie można jeszcze obsługiwać zdalnej treści." -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." -msgstr "" +msgstr "Nie można jeszcze obsługiwać zagnieżdżonej treści XML." -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." -msgstr "" +msgstr "Nie można jeszcze obsługiwać zagnieżdżonej treści Base64." -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." msgstr "Nie można wprowadzić zmian witryny." -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 msgid "Changes to that panel are not allowed." msgstr "Zmiany w tym panelu nie są dozwolone." -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 msgid "showForm() not implemented." msgstr "showForm() nie jest zaimplementowane." -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 msgid "saveSettings() not implemented." msgstr "saveSettings() nie jest zaimplementowane." -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 msgid "Unable to delete design setting." msgstr "Nie można usunąć ustawienia wyglądu." -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 msgid "Basic site configuration" msgstr "Podstawowa konfiguracja witryny" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "Witryny" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 msgid "Design configuration" msgstr "Konfiguracja wyglądu" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "Wygląd" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 msgid "User configuration" msgstr "Konfiguracja użytkownika" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +#, fuzzy +msgctxt "MENU" +msgid "User" +msgstr "Użytkownik" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 msgid "Access configuration" msgstr "Konfiguracja dostępu" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "Dostęp" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 msgid "Paths configuration" msgstr "Konfiguracja ścieżek" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +#, fuzzy +msgctxt "MENU" +msgid "Paths" +msgstr "Ścieżki" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 msgid "Sessions configuration" msgstr "Konfiguracja sesji" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "Sesje" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" "Zasób API wymaga dostępu do zapisu i do odczytu, ale powiadasz dostęp tylko " "do odczytu." -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4907,11 +5081,11 @@ msgstr "Powiadamia, kiedy pojawia się ten załącznik" msgid "Tags for this attachment" msgstr "Znaczniki dla tego załącznika" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 msgid "Password changing failed" msgstr "Zmiana hasła nie powiodła się" -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 msgid "Password changing is not allowed" msgstr "Zmiana hasła nie jest dozwolona" @@ -5112,7 +5286,7 @@ msgstr "" "minuty: %s." #: lib/command.php:692 -#, fuzzy, php-format +#, php-format msgid "Unsubscribed %s" msgstr "Usunięto subskrypcję użytkownika %s" @@ -5150,7 +5324,6 @@ msgstr[1] "Jesteś członkiem tych grup:" msgstr[2] "Jesteś członkiem tych grup:" #: lib/command.php:769 -#, fuzzy msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5195,14 +5368,15 @@ msgstr "" "on - włącza powiadomienia\n" "off - wyłącza powiadomienia\n" "help - wyświetla tę pomoc\n" -"follow - włącza obserwowanie użytkownika\n" +"follow - subskrybuje użytkownika\n" "groups - wyświetla listę grup, do których dołączyłeś\n" "subscriptions - wyświetla listę obserwowanych osób\n" "subscribers - wyświetla listę osób, które cię obserwują\n" -"leave - rezygnuje z obserwowania użytkownika\n" +"leave - usuwa subskrypcję użytkownika\n" "d - bezpośrednia wiadomość do użytkownika\n" "get - zwraca ostatni wpis użytkownika\n" "whois - zwraca informacje o profilu użytkownika\n" +"lose - wymusza użytkownika do zatrzymania obserwowania cię\n" "fav - dodaje ostatni wpis użytkownika jako \"ulubiony\"\n" "fav # - dodaje wpis z podanym identyfikatorem jako " "\"ulubiony\"\n" @@ -5231,19 +5405,19 @@ msgstr "" "tracks - jeszcze nie zaimplementowano\n" "tracking - jeszcze nie zaimplementowano\n" -#: lib/common.php:136 +#: lib/common.php:148 msgid "No configuration file found. " msgstr "Nie odnaleziono pliku konfiguracji." -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "Szukano plików konfiguracji w następujących miejscach: " -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "Należy uruchomić instalator, aby to naprawić." -#: lib/common.php:140 +#: lib/common.php:152 msgid "Go to the installer." msgstr "Przejdź do instalatora." @@ -5433,23 +5607,23 @@ msgstr "Błąd systemu podczas wysyłania pliku." msgid "Not an image or corrupt file." msgstr "To nie jest obraz lub lub plik jest uszkodzony." -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "Nieobsługiwany format pliku obrazu." -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Utracono plik." -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "Nieznany typ pliku" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "MB" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "KB" @@ -5830,6 +6004,11 @@ msgstr "Do" msgid "Available characters" msgstr "Dostępne znaki" +#: lib/messageform.php:178 lib/noticeform.php:236 +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "Wyślij" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Wyślij wpis" @@ -5888,23 +6067,23 @@ msgstr "Zachód" msgid "at" msgstr "w" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 msgid "in context" msgstr "w rozmowie" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 msgid "Repeated by" msgstr "Powtórzone przez" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 msgid "Reply to this notice" msgstr "Odpowiedz na ten wpis" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 msgid "Reply" msgstr "Odpowiedz" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 msgid "Notice repeated" msgstr "Powtórzono wpis" @@ -5952,6 +6131,10 @@ msgstr "Odpowiedzi" msgid "Favorites" msgstr "Ulubione" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "Użytkownik" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Odebrane" @@ -6041,7 +6224,7 @@ msgstr "Powtórzyć ten wpis?" msgid "Repeat this notice" msgstr "Powtórz ten wpis" -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "" "Nie określono pojedynczego użytkownika dla trybu pojedynczego użytkownika." @@ -6062,6 +6245,10 @@ msgstr "Przeszukaj witrynę" msgid "Keyword(s)" msgstr "Słowa kluczowe" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "Wyszukaj" + #: lib/searchaction.php:162 msgid "Search help" msgstr "Przeszukaj pomoc" @@ -6113,6 +6300,15 @@ msgstr "Osoby subskrybowane do %s" msgid "Groups %s is a member of" msgstr "Grupy %s są członkiem" +#: lib/subgroupnav.php:105 +msgid "Invite" +msgstr "Zaproś" + +#: lib/subgroupnav.php:106 +#, php-format +msgid "Invite friends and colleagues to join you on %s" +msgstr "Zaproś przyjaciół i kolegów do dołączenia do ciebie na %s" + #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 msgid "People Tagcloud as self-tagged" @@ -6183,47 +6379,47 @@ msgstr "Wiadomość" msgid "Moderate" msgstr "Moderuj" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "kilka sekund temu" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "około minutę temu" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "około %d minut temu" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "około godzinę temu" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "około %d godzin temu" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "blisko dzień temu" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "około %d dni temu" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "około miesiąc temu" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "około %d miesięcy temu" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "około rok temu" diff --git a/locale/pt/LC_MESSAGES/statusnet.po b/locale/pt/LC_MESSAGES/statusnet.po index e742dda19..2598008d9 100644 --- a/locale/pt/LC_MESSAGES/statusnet.po +++ b/locale/pt/LC_MESSAGES/statusnet.po @@ -9,78 +9,85 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:51:34+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:03:38+0000\n" "Language-Team: Portuguese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 msgid "Access" msgstr "Acesso" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 #, fuzzy msgid "Site access settings" msgstr "Gravar configurações do site" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 #, fuzzy msgid "Registration" msgstr "Registar" -#: actions/accessadminpanel.php:161 -msgid "Private" -msgstr "Privado" - -#: actions/accessadminpanel.php:163 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "Proibir utilizadores anónimos (sem sessão iniciada) de ver o site?" +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -msgid "Invite only" -msgstr "Só por convite" +#, fuzzy +msgctxt "LABEL" +msgid "Private" +msgstr "Privado" -#: actions/accessadminpanel.php:169 +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 msgid "Make registration invitation only." msgstr "Permitir o registo só a convidados." -#: actions/accessadminpanel.php:173 -msgid "Closed" -msgstr "Fechado" +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 +msgid "Invite only" +msgstr "Só por convite" -#: actions/accessadminpanel.php:175 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 msgid "Disable new registrations." msgstr "Impossibilitar registos novos." -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "Gravar" +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 +msgid "Closed" +msgstr "Fechado" -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 #, fuzzy msgid "Save access settings" msgstr "Gravar configurações do site" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "Gravar" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page" msgstr "Página não encontrada." -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -94,52 +101,60 @@ msgstr "Página não encontrada." #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "Utilizador não encontrado." -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, fuzzy, php-format msgid "%1$s and friends, page %2$d" msgstr "Perfis bloqueados de %1$s, página %2$d" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s e amigos" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Fonte para os amigos de %s (RSS 1.0)" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Fonte para os amigos de %s (RSS 2.0)" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Fonte para os amigos de %s (Atom)" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" "Estas são as notas de %s e dos amigos, mas ainda não publicaram nenhuma." -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -148,7 +163,8 @@ msgstr "" "Tente subscrever mais pessoas, [juntar-se a um grupo] (%%action.groups%%) ou " "publicar qualquer coisa." -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " @@ -157,7 +173,7 @@ msgstr "" "Pode tentar [dar um toque em %1$s](../%2$s) a partir do perfil ou [publicar " "qualquer coisa à sua atenção](%%%%action.newnotice%%%%?status_textarea=%3$s)." -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -166,7 +182,8 @@ msgstr "" "Podia [registar uma conta](%%action.register%%) e depois tocar %s ou " "publicar uma nota à sua atenção." -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 msgid "You and friends" msgstr "Você e seus amigos" @@ -184,20 +201,20 @@ msgstr "Actualizações de %1$s e amigos no %2$s!" #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 msgid "API method not found." msgstr "Método da API não encontrado." @@ -230,8 +247,9 @@ msgstr "Não foi possível actualizar o utilizador." #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "Utilizador não tem perfil." @@ -257,7 +275,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: 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." @@ -369,68 +387,68 @@ msgstr "Não foi possível determinar o utilizador de origem." msgid "Could not find target user." msgstr "Não foi possível encontrar o utilizador de destino." -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "Utilizador só deve conter letras minúsculas e números. Sem espaços." -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Utilizador já é usado. Tente outro." -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Utilizador não é válido." -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Página de ínicio não é uma URL válida." -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Nome completo demasiado longo (máx. 255 caracteres)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "Descrição demasiado longa (máx. 140 caracteres)." -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Localidade demasiado longa (máx. 255 caracteres)." -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "Demasiados sinónimos (máx. %d)." -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Sinónimo inválido: \"%s\"" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Sinónimo \"%s\" já em uso. Tente outro." -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "Os sinónimos não podem ser iguais ao nome do utilizador." @@ -441,15 +459,15 @@ msgstr "Os sinónimos não podem ser iguais ao nome do utilizador." msgid "Group not found!" msgstr "Grupo não foi encontrado!" -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 msgid "You are already a member of that group." msgstr "Já é membro desse grupo." -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "Foi bloqueado desse grupo pelo gestor." -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Não foi possível adicionar %1$s ao grupo %2$s." @@ -458,7 +476,7 @@ msgstr "Não foi possível adicionar %1$s ao grupo %2$s." msgid "You are not a member of this group." msgstr "Não é membro deste grupo." -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Não foi possível remover %1$s do grupo %2$s." @@ -490,7 +508,7 @@ msgstr "Tamanho inválido." #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -534,7 +552,7 @@ msgstr "" #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -557,13 +575,13 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 msgid "Account" msgstr "Conta" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -647,12 +665,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s actualizações preferidas por %2$s / %2$s." #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "Notas de %s" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -688,7 +706,7 @@ msgstr "Repetida para %s" msgid "Repeats of %s" msgstr "Repetências de %s" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Notas categorizadas com %s" @@ -709,8 +727,7 @@ msgstr "Anexo não encontrado." #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "Nenhuma utilizador." @@ -722,7 +739,7 @@ msgstr "Tamanho não definido." msgid "Invalid size." msgstr "Tamanho inválido." -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Avatar" @@ -739,30 +756,30 @@ msgid "User without matching profile" msgstr "Utilizador sem perfil correspondente" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Configurações do avatar" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Original" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Antevisão" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 msgid "Delete" msgstr "Apagar" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "Carregar" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "Cortar" @@ -770,7 +787,7 @@ msgstr "Cortar" msgid "Pick a square area of the image to be your avatar" msgstr "Escolha uma área quadrada da imagem para ser o seu avatar" -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Perdi os dados do nosso ficheiro." @@ -805,22 +822,22 @@ msgstr "" "de futuro e você não receberá notificações das @-respostas dele." #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "Não" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 msgid "Do not block this user" msgstr "Não bloquear este utilizador" #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Sim" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 msgid "Block this user" msgstr "Bloquear este utilizador" @@ -828,39 +845,43 @@ msgstr "Bloquear este utilizador" msgid "Failed to save block information." msgstr "Não foi possível gravar informação do bloqueio." -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 msgid "No such group." msgstr "Grupo não foi encontrado." -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, php-format msgid "%s blocked profiles" msgstr "%s perfis bloqueados" -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "Perfis bloqueados de %1$s, página %2$d" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." msgstr "Uma lista dos utilizadores com entrada bloqueada neste grupo." -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 msgid "Unblock user from group" msgstr "Desbloquear utilizador do grupo" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "Desbloquear" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 msgid "Unblock this user" msgstr "Desbloquear este utilizador" @@ -939,7 +960,7 @@ msgstr "Não é membro deste grupo." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "Ocorreu um problema com a sua sessão." @@ -968,12 +989,13 @@ msgstr "Não apagar esta nota" msgid "Delete this application" msgstr "Apagar esta nota" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Não iniciou sessão." @@ -1002,7 +1024,7 @@ msgstr "Tem a certeza de que quer apagar esta nota?" msgid "Do not delete this notice" msgstr "Não apagar esta nota" -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 msgid "Delete this notice" msgstr "Apagar esta nota" @@ -1018,7 +1040,7 @@ msgstr "Só pode apagar utilizadores locais." msgid "Delete user" msgstr "Apagar utilizador" -#: actions/deleteuser.php:135 +#: 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." @@ -1026,12 +1048,12 @@ msgstr "" "Tem a certeza de que quer apagar este utilizador? Todos os dados do " "utilizador serão eliminados da base de dados, sem haver cópias." -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 msgid "Delete this user" msgstr "Apagar este utilizador" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "Estilo" @@ -1134,6 +1156,17 @@ msgstr "Repor estilos predefinidos" msgid "Reset back to default" msgstr "Repor predefinição" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "Gravar" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "Gravar o estilo" @@ -1237,29 +1270,29 @@ msgstr "Editar grupo %s" msgid "You must be logged in to create a group." msgstr "Tem de iniciar uma sessão para criar o grupo." -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: 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 "Tem de ser administrador para editar o grupo." -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "Use este formulário para editar o grupo." -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, php-format msgid "description is too long (max %d chars)." msgstr "descrição é demasiada extensa (máx. %d caracteres)." -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 msgid "Could not update group." msgstr "Não foi possível actualizar o grupo." -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 msgid "Could not create aliases." msgstr "Não foi possível criar sinónimos." -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 msgid "Options saved." msgstr "Opções gravadas." @@ -1603,7 +1636,7 @@ msgstr "Acesso do utilizador ao grupo já foi bloqueado." msgid "User is not a member of group." msgstr "Utilizador não é membro do grupo." -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 msgid "Block user from group" msgstr "Bloquear acesso do utilizador ao grupo" @@ -1638,11 +1671,11 @@ msgstr "Sem ID." msgid "You must be logged in to edit a group." msgstr "Precisa de iniciar sessão para editar um grupo." -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 msgid "Group design" msgstr "Estilo do grupo" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." @@ -1650,20 +1683,20 @@ msgstr "" "Personalize o aspecto do seu grupo com uma imagem de fundo e uma paleta de " "cores à sua escolha." -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 msgid "Couldn't update your design." msgstr "Não foi possível actualizar o estilo." -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 msgid "Design preferences saved." msgstr "Preferências de estilo foram gravadas." -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "Logotipo do grupo" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." @@ -1671,57 +1704,57 @@ msgstr "" "Pode carregar uma imagem para logotipo do seu grupo. O tamanho máximo do " "ficheiro é %s." -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 msgid "User without matching profile." msgstr "Utilizador sem perfil correspondente." -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Escolha uma área quadrada da imagem para ser o logotipo." -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 msgid "Logo updated." msgstr "Logotipo actualizado." -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 msgid "Failed updating logo." msgstr "Não foi possível actualizar o logotipo." -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "Membros do grupo %s" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, php-format msgid "%1$s group members, page %2$d" msgstr "Membros do grupo %1$s, página %2$d" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "Uma lista dos utilizadores neste grupo." -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "Gestor" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "Bloquear" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 msgid "Make user an admin of the group" msgstr "Tornar utilizador o gestor do grupo" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make Admin" msgstr "Tornar Gestor" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "Tornar este utilizador um gestor" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Actualizações dos membros de %1$s em %2$s!" @@ -1986,16 +2019,19 @@ msgstr "Mensagem pessoal" msgid "Optionally add a personal message to the invitation." msgstr "Pode optar por acrescentar uma mensagem pessoal ao convite" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" msgstr "Enviar" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s convidou-o a juntar-se a ele no %2$s" -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2055,7 +2091,12 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Precisa de iniciar uma sessão para se juntar a um grupo." -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "Nenhuma utilizador." + +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s juntou-se ao grupo %2$s" @@ -2064,11 +2105,11 @@ msgstr "%1$s juntou-se ao grupo %2$s" msgid "You must be logged in to leave a group." msgstr "Precisa de iniciar uma sessão para deixar um grupo." -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 msgid "You are not a member of that group." msgstr "Não é um membro desse grupo." -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s deixou o grupo %2$s" @@ -2085,8 +2126,7 @@ msgstr "Nome de utilizador ou senha incorrectos." msgid "Error setting user. You are probably not authorized." msgstr "Erro ao preparar o utilizador. Provavelmente não está autorizado." -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "Entrar" @@ -2346,8 +2386,8 @@ msgstr "tipo de conteúdo " msgid "Only " msgstr "Apenas " -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "Formato de dados não suportado." @@ -2493,7 +2533,7 @@ msgstr "Não é possível guardar a nova senha." msgid "Password saved." msgstr "Senha gravada." -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "Localizações" @@ -2526,7 +2566,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "Servidor SSL inválido. O tamanho máximo é 255 caracteres." #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 msgid "Site" msgstr "Site" @@ -2700,7 +2739,7 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 letras minúsculas ou números, sem pontuação ou espaços" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "Nome completo" @@ -2728,7 +2767,7 @@ msgid "Bio" msgstr "Biografia" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2810,7 +2849,8 @@ msgstr "Não foi possível gravar o perfil." msgid "Couldn't save tags." msgstr "Não foi possível gravar as categorias." -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "Configurações gravadas." @@ -2823,28 +2863,28 @@ msgstr "Além do limite de página (%s)" msgid "Could not retrieve public stream." msgstr "Não foi possível importar as notas públicas." -#: actions/public.php:129 +#: actions/public.php:130 #, php-format msgid "Public timeline, page %d" msgstr "Notas públicas, página %d" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "Notas públicas" -#: actions/public.php:159 +#: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" msgstr "Fonte de Notas Públicas (RSS 1.0)" -#: actions/public.php:163 +#: actions/public.php:164 msgid "Public Stream Feed (RSS 2.0)" msgstr "Fonte de Notas Públicas (RSS 2.0)" -#: actions/public.php:167 +#: actions/public.php:168 msgid "Public Stream Feed (Atom)" msgstr "Fonte de Notas Públicas (Atom)" -#: actions/public.php:187 +#: actions/public.php:188 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " @@ -2853,11 +2893,11 @@ msgstr "" "Estas são as notas públicas do site %%site.name%% mas ninguém publicou nada " "ainda." -#: actions/public.php:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "Seja a primeira pessoa a publicar!" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" @@ -2865,7 +2905,7 @@ msgstr "" "Podia [registar uma conta](%%action.register%%) e ser a primeira pessoa a " "publicar!" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2878,7 +2918,7 @@ msgstr "" "[StatusNet](http://status.net/). [Registe-se agora](%%action.register%%) " "para partilhar notas sobre si, família e amigos! ([Saber mais](%%doc.help%%))" -#: actions/public.php:246 +#: actions/public.php:247 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3060,8 +3100,7 @@ msgstr "Desculpe, código de convite inválido." msgid "Registration successful" msgstr "Registo efectuado" -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "Registar" @@ -3247,7 +3286,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:656 +#: actions/repeat.php:114 lib/noticelist.php:674 msgid "Repeated" msgstr "Repetida" @@ -3255,33 +3294,33 @@ msgstr "Repetida" msgid "Repeated!" msgstr "Repetida!" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "Respostas a %s" -#: actions/replies.php:127 +#: actions/replies.php:128 #, fuzzy, php-format msgid "Replies to %1$s, page %2$d" msgstr "Respostas a %1$s em %2$s!" -#: actions/replies.php:144 +#: actions/replies.php:145 #, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "Fonte de respostas a %s (RSS 1.0)" -#: actions/replies.php:151 +#: actions/replies.php:152 #, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "Fonte de respostas a %s (RSS 2.0)" -#: actions/replies.php:158 +#: actions/replies.php:159 #, php-format msgid "Replies feed for %s (Atom)" msgstr "Fonte de respostas a %s (Atom)" -#: actions/replies.php:198 +#: actions/replies.php:199 #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " @@ -3290,7 +3329,7 @@ msgstr "" "Estas são as notas de resposta a %1$s, mas %2$s ainda não recebeu nenhuma " "resposta." -#: actions/replies.php:203 +#: actions/replies.php:204 #, php-format msgid "" "You can engage other users in a conversation, subscribe to more people or " @@ -3299,7 +3338,7 @@ msgstr "" "Pode meter conversa com outros utilizadores, subscrever mais pessoas ou " "[juntar-se a grupos](%%action.groups%%)." -#: actions/replies.php:205 +#: actions/replies.php:206 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3326,7 +3365,6 @@ msgid "User is already sandboxed." msgstr "Utilizador já está impedido de criar notas públicas." #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "Sessões" @@ -3352,7 +3390,7 @@ msgid "Turn on debugging output for sessions." msgstr "Ligar a impressão de dados de depuração, para sessões." #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Gravar configurações do site" @@ -3385,7 +3423,7 @@ msgstr "Paginação" msgid "Description" msgstr "Descrição" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Estatísticas" @@ -3448,22 +3486,22 @@ msgstr "Notas favoritas de %s" msgid "Could not retrieve favorite notices." msgstr "Não foi possível importar notas favoritas." -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "Fonte dos favoritos de %s (RSS 1.0)" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "Fonte dos favoritos de %s (RSS 2.0)" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" msgstr "Fonte dos favoritos de %s (Atom)" -#: actions/showfavorites.php:205 +#: 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." @@ -3472,7 +3510,7 @@ msgstr "" "notas de que goste, para marcá-las para mais tarde ou para lhes dar " "relevância." -#: actions/showfavorites.php:207 +#: actions/showfavorites.php:208 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Post something interesting " @@ -3481,7 +3519,7 @@ msgstr "" "%s ainda não adicionou nenhuma nota às favoritas. Publique algo interessante " "que mude este estado de coisas :)" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3492,7 +3530,7 @@ msgstr "" "conta](%%action.register%%) e publicar algo interessante que mude este " "estado de coisas :)" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "Esta é uma forma de partilhar aquilo de que gosta." @@ -3506,67 +3544,67 @@ msgstr "Grupo %s" msgid "%1$s group, page %2$d" msgstr "Membros do grupo %1$s, página %2$d" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 msgid "Group profile" msgstr "Perfil do grupo" -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "URL" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 msgid "Note" msgstr "Anotação" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "Sinónimos" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "Acções do grupo" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Fonte de notas do grupo %s (RSS 1.0)" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Fonte de notas do grupo %s (RSS 2.0)" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Fonte de notas do grupo %s (Atom)" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, php-format msgid "FOAF for %s group" msgstr "FOAF do grupo %s" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 msgid "Members" msgstr "Membros" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Nenhum)" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "Todos os membros" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 msgid "Created" msgstr "Criado" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3582,7 +3620,7 @@ msgstr "" "[Registe-se agora](%%action.register%%) para se juntar a este grupo e a " "muitos mais! ([Saber mais](%%doc.help%%))" -#: actions/showgroup.php:454 +#: actions/showgroup.php:462 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3595,7 +3633,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:482 +#: actions/showgroup.php:490 msgid "Admins" msgstr "Gestores" @@ -4075,22 +4113,22 @@ msgstr "Jabber" msgid "SMS" msgstr "SMS" -#: actions/tag.php:68 +#: actions/tag.php:69 #, fuzzy, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "Utilizadores auto-categorizados com %1$s - página %2$d" -#: actions/tag.php:86 +#: actions/tag.php:87 #, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "Fonte de notas para a categoria %s (RSS 1.0)" -#: actions/tag.php:92 +#: actions/tag.php:93 #, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "Fonte de notas para a categoria %s (RSS 2.0)" -#: actions/tag.php:98 +#: actions/tag.php:99 #, php-format msgid "Notice feed for tag %s (Atom)" msgstr "Fonte de notas para a categoria %s (Atom)" @@ -4144,7 +4182,7 @@ msgstr "" msgid "No such tag." msgstr "Categoria não existe." -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "Método da API em desenvolvimento." @@ -4176,70 +4214,72 @@ msgstr "" "Licença ‘%1$s’ da listenee stream não é compatível com a licença ‘%2$s’ do " "site." -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +#, fuzzy +msgctxt "TITLE" msgid "User" msgstr "Utilizador" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "Configurações do utilizador para este site StatusNet." -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "Limite da biografia inválido. Tem de ser numérico." -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "Texto de boas-vindas inválido. Tamanho máx. é 255 caracteres." -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "Subscrição predefinida é inválida: '%1$s' não é utilizador." -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "Perfil" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "Limite da Biografia" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "Tamanho máximo de uma biografia em caracteres." -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 msgid "New users" msgstr "Utilizadores novos" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "Boas-vindas a utilizadores novos" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "Texto de boas-vindas a utilizadores novos (máx. 255 caracteres)." -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 msgid "Default subscription" msgstr "Subscrição predefinida" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 msgid "Automatically subscribe new users to this user." msgstr "Novos utilizadores subscrevem automaticamente este utilizador." -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 msgid "Invitations" msgstr "Convites" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 msgid "Invitations enabled" msgstr "Convites habilitados" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "Permitir, ou não, que utilizadores convidem utilizadores novos." @@ -4434,7 +4474,7 @@ msgstr "" msgid "Plugins" msgstr "Plugins" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 msgid "Version" msgstr "Versão" @@ -4477,6 +4517,11 @@ msgstr "Não foi possível actualizar o grupo." msgid "Group leave failed." msgstr "Perfil do grupo" +#: classes/Local_group.php:41 +#, fuzzy +msgid "Could not update local group." +msgstr "Não foi possível actualizar o grupo." + #: classes/Login_token.php:76 #, php-format msgid "Could not create login token for %s" @@ -4494,27 +4539,27 @@ msgstr "Não foi possível inserir a mensagem." msgid "Could not update message with new URI." msgstr "Não foi possível actualizar a mensagem com a nova URI." -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "Erro na base de dados ao inserir a marca: %s" -#: classes/Notice.php:222 +#: classes/Notice.php:239 msgid "Problem saving notice. Too long." msgstr "Problema na gravação da nota. Demasiado longa." -#: classes/Notice.php:226 +#: classes/Notice.php:243 msgid "Problem saving notice. Unknown user." msgstr "Problema na gravação da nota. Utilizador desconhecido." -#: classes/Notice.php:231 +#: classes/Notice.php:248 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:237 +#: classes/Notice.php:254 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4522,20 +4567,20 @@ msgstr "" "Demasiadas mensagens duplicadas, demasiado rápido; descanse e volte a " "publicar daqui a alguns minutos." -#: classes/Notice.php:243 +#: classes/Notice.php:260 msgid "You are banned from posting notices on this site." msgstr "Está proibido de publicar notas neste site." -#: classes/Notice.php:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "Problema na gravação da nota." -#: classes/Notice.php:882 +#: classes/Notice.php:911 #, fuzzy msgid "Problem saving group inbox." msgstr "Problema na gravação da nota." -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4564,19 +4609,29 @@ msgstr "Não foi possível apagar a auto-subscrição." msgid "Couldn't delete subscription." msgstr "Não foi possível apagar a subscrição." -#: classes/User.php:372 +#: classes/User.php:373 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "%1$s dá-lhe as boas-vindas, @%2$s!" -#: classes/User_group.php:423 +#: classes/User_group.php:462 msgid "Could not create group." msgstr "Não foi possível criar o grupo." -#: classes/User_group.php:452 +#: classes/User_group.php:471 +#, fuzzy +msgid "Could not set group URI." +msgstr "Não foi possível configurar membros do grupo." + +#: classes/User_group.php:492 msgid "Could not set group membership." msgstr "Não foi possível configurar membros do grupo." +#: classes/User_group.php:506 +#, fuzzy +msgid "Could not save local group info." +msgstr "Não foi possível gravar a subscrição." + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "Modificar as suas definições de perfil" @@ -4618,120 +4673,190 @@ msgstr "Página sem título" msgid "Primary site navigation" msgstr "Navegação primária deste site" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "Início" - -#: lib/action.php:439 +#, fuzzy +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Perfil pessoal e notas dos amigos" -#: lib/action.php:441 +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "Pessoal" + +#. TRANS: Tooltip for main menu option "Account" +#: lib/action.php:444 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Altere o seu endereço electrónico, avatar, senha, perfil" -#: lib/action.php:444 -msgid "Connect" -msgstr "Ligar" +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "Conta" -#: lib/action.php:444 +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 +#, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Ligar aos serviços" -#: lib/action.php:448 +#: lib/action.php:453 +#, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "Ligar" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Alterar a configuração do site" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" -msgstr "Convidar" +#: lib/action.php:460 +#, fuzzy +msgctxt "MENU" +msgid "Admin" +msgstr "Gestor" -#: lib/action.php:453 lib/subgroupnav.php:106 -#, php-format +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 +#, fuzzy, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Convidar amigos e colegas para se juntarem a si em %s" -#: lib/action.php:458 -msgid "Logout" -msgstr "Sair" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "Convidar" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +#, fuzzy +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Terminar esta sessão" -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "Sair" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 +#, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "Criar uma conta" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "Registar" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +#, fuzzy +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Iniciar uma sessão" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "Ajuda" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "Entrar" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 +#, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "Ajudem-me!" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "Pesquisa" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "Ajuda" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +#, fuzzy +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Procurar pessoas ou pesquisar texto" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "Pesquisa" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 msgid "Site notice" msgstr "Aviso do site" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "Vistas locais" -#: lib/action.php:625 +#: lib/action.php:656 msgid "Page notice" msgstr "Aviso da página" -#: lib/action.php:727 +#: lib/action.php:758 msgid "Secondary site navigation" msgstr "Navegação secundária deste site" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "Ajuda" + +#: lib/action.php:765 msgid "About" msgstr "Sobre" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "FAQ" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "Termos" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "Privacidade" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "Código" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "Contacto" -#: lib/action.php:751 +#: lib/action.php:782 msgid "Badge" msgstr "Emblema" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "Licença de software do StatusNet" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4740,12 +4865,12 @@ msgstr "" "**%%site.name%%** é um serviço de microblogues disponibilizado por [%%site." "broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** é um serviço de microblogues. " -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4756,108 +4881,161 @@ msgstr "" "disponibilizado nos termos da [GNU Affero General Public License](http://www." "fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:801 +#: lib/action.php:832 msgid "Site content license" msgstr "Licença de conteúdos do site" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "Tudo " -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "licença." -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "Paginação" -#: lib/action.php:1141 +#: lib/action.php:1172 msgid "After" msgstr "Posteriores" -#: lib/action.php:1149 +#: lib/action.php:1180 msgid "Before" msgstr "Anteriores" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." msgstr "Não pode fazer alterações a este site." -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 msgid "Changes to that panel are not allowed." msgstr "Não são permitidas alterações a esse painel." -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 msgid "showForm() not implemented." msgstr "showForm() não implementado." -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 msgid "saveSettings() not implemented." msgstr "saveSettings() não implementado." -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 msgid "Unable to delete design setting." msgstr "Não foi possível apagar a configuração do estilo." -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 msgid "Basic site configuration" msgstr "Configuração básica do site" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "Site" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 msgid "Design configuration" msgstr "Configuração do estilo" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "Estilo" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 #, fuzzy msgid "User configuration" msgstr "Configuração das localizações" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +#, fuzzy +msgctxt "MENU" +msgid "User" +msgstr "Utilizador" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 #, fuzzy msgid "Access configuration" msgstr "Configuração do estilo" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "Acesso" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 msgid "Paths configuration" msgstr "Configuração das localizações" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +#, fuzzy +msgctxt "MENU" +msgid "Paths" +msgstr "Localizações" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 #, fuzzy msgid "Sessions configuration" msgstr "Configuração do estilo" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "Sessões" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4952,11 +5130,11 @@ msgstr "Notas em que este anexo aparece" msgid "Tags for this attachment" msgstr "Categorias para este anexo" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 msgid "Password changing failed" msgstr "Não foi possível mudar a palavra-chave" -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 msgid "Password changing is not allowed" msgstr "Não é permitido mudar a palavra-chave" @@ -5272,19 +5450,19 @@ msgstr "" "tracks - ainda não implementado.\n" "tracking - ainda não implementado.\n" -#: lib/common.php:136 +#: lib/common.php:148 msgid "No configuration file found. " msgstr "Ficheiro de configuração não encontrado. " -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "Procurei ficheiros de configuração nos seguintes sítios: " -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "Talvez queira correr o instalador para resolver esta questão." -#: lib/common.php:140 +#: lib/common.php:152 msgid "Go to the installer." msgstr "Ir para o instalador." @@ -5474,23 +5652,23 @@ msgstr "Ocorreu um erro de sistema ao transferir o ficheiro." msgid "Not an image or corrupt file." msgstr "Ficheiro não é uma imagem ou está corrompido." -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "Formato do ficheiro da imagem não é suportado." -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Perdi o nosso ficheiro." -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "Tipo do ficheiro é desconhecido" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "MB" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "kB" @@ -5873,6 +6051,12 @@ msgstr "Para" msgid "Available characters" msgstr "Caracteres disponíveis" +#: lib/messageform.php:178 lib/noticeform.php:236 +#, fuzzy +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "Enviar" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Enviar uma nota" @@ -5930,23 +6114,23 @@ msgstr "O" msgid "at" msgstr "coords." -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 msgid "in context" msgstr "no contexto" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 msgid "Repeated by" msgstr "Repetida por" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 msgid "Reply to this notice" msgstr "Responder a esta nota" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 msgid "Reply" msgstr "Responder" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 msgid "Notice repeated" msgstr "Nota repetida" @@ -5994,6 +6178,10 @@ msgstr "Respostas" msgid "Favorites" msgstr "Favoritas" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "Utilizador" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Recebidas" @@ -6083,7 +6271,7 @@ msgstr "Repetir esta nota?" msgid "Repeat this notice" msgstr "Repetir esta nota" -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "" @@ -6103,6 +6291,10 @@ msgstr "Pesquisar site" msgid "Keyword(s)" msgstr "Categorias" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "Pesquisa" + #: lib/searchaction.php:162 msgid "Search help" msgstr "Pesquisar ajuda" @@ -6154,6 +6346,15 @@ msgstr "Pessoas que subscrevem %s" msgid "Groups %s is a member of" msgstr "Grupos de que %s é membro" +#: lib/subgroupnav.php:105 +msgid "Invite" +msgstr "Convidar" + +#: lib/subgroupnav.php:106 +#, php-format +msgid "Invite friends and colleagues to join you on %s" +msgstr "Convidar amigos e colegas para se juntarem a si em %s" + #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 msgid "People Tagcloud as self-tagged" @@ -6224,47 +6425,47 @@ msgstr "Mensagem" msgid "Moderate" msgstr "Moderar" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "há alguns segundos" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "há cerca de um minuto" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "há cerca de %d minutos" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "há cerca de uma hora" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "há cerca de %d horas" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "há cerca de um dia" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "há cerca de %d dias" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "há cerca de um mês" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "há cerca de %d meses" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "há cerca de um ano" diff --git a/locale/pt_BR/LC_MESSAGES/statusnet.po b/locale/pt_BR/LC_MESSAGES/statusnet.po index 18659cecf..041a2d4a3 100644 --- a/locale/pt_BR/LC_MESSAGES/statusnet.po +++ b/locale/pt_BR/LC_MESSAGES/statusnet.po @@ -11,75 +11,82 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:51:37+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:03:41+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 (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt-br\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 msgid "Access" msgstr "Acesso" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 msgid "Site access settings" msgstr "Configurações de acesso ao site" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 msgid "Registration" msgstr "Registro" -#: actions/accessadminpanel.php:161 -msgid "Private" -msgstr "Particular" - -#: actions/accessadminpanel.php:163 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "Impedir usuários anônimos (não autenticados) de visualizar o site?" +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -msgid "Invite only" -msgstr "Somente convidados" +#, fuzzy +msgctxt "LABEL" +msgid "Private" +msgstr "Particular" -#: actions/accessadminpanel.php:169 +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 msgid "Make registration invitation only." msgstr "Cadastro liberado somente para convidados." -#: actions/accessadminpanel.php:173 -msgid "Closed" -msgstr "Fechado" +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 +msgid "Invite only" +msgstr "Somente convidados" -#: actions/accessadminpanel.php:175 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 msgid "Disable new registrations." msgstr "Desabilita novos registros." -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "Salvar" +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 +msgid "Closed" +msgstr "Fechado" -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 msgid "Save access settings" msgstr "Salvar as configurações de acesso" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "Salvar" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page" msgstr "Esta página não existe." -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -93,45 +100,53 @@ msgstr "Esta página não existe." #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "Este usuário não existe." -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s e amigos, pág. %2$d" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s e amigos" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Fonte de mensagens dos amigos de %s (RSS 1.0)" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Fonte de mensagens dos amigos de %s (RSS 2.0)" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Fonte de mensagens dos amigos de %s (Atom)" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." @@ -139,7 +154,7 @@ msgstr "" "Esse é o fluxo de mensagens de %s e seus amigos, mas ninguém publicou nada " "ainda." -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -148,7 +163,8 @@ msgstr "" "Tente assinar mais pessoas, [unir-ser a um grupo](%%action.groups%%) ou " "publicar algo." -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " @@ -158,7 +174,7 @@ msgstr "" "[publicar alguma coisa que desperte seu interesse](%%%%action.newnotice%%%%?" "status_textarea=%3$s)." -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -167,7 +183,8 @@ 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." -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 msgid "You and friends" msgstr "Você e amigos" @@ -185,20 +202,20 @@ msgstr "Atualizações de %1$s e amigos no %2$s!" #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 msgid "API method not found." msgstr "O método da API não foi encontrado!" @@ -232,8 +249,9 @@ msgstr "Não foi possível atualizar o usuário." #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "O usuário não tem perfil." @@ -259,7 +277,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: 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." @@ -371,7 +389,7 @@ msgstr "Não foi possível determinar o usuário de origem." msgid "Could not find target user." msgstr "Não foi possível encontrar usuário de destino." -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." @@ -379,62 +397,62 @@ msgstr "" "A identificação deve conter apenas letras minúsculas e números e não pode " "ter e espaços." -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Esta identificação já está em uso. Tente outro." -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Não é uma identificação válida." -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "A URL informada não é válida." -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Nome completo muito extenso (máx. 255 caracteres)" -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "Descrição muito extensa (máximo %d caracteres)." -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Localização muito extensa (máx. 255 caracteres)." -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "Muitos apelidos! O máximo são %d." -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Apelido inválido: \"%s\"" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "O apelido \"%s\" já está em uso. Tente outro." -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "O apelido não pode ser igual à identificação." @@ -445,15 +463,15 @@ msgstr "O apelido não pode ser igual à identificação." msgid "Group not found!" msgstr "O grupo não foi encontrado!" -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 msgid "You are already a member of that group." msgstr "Você já é membro desse grupo." -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "O administrador desse grupo bloqueou sua inscrição." -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Não foi possível associar o usuário %1$s ao grupo %2$s." @@ -462,7 +480,7 @@ msgstr "Não foi possível associar o usuário %1$s ao grupo %2$s." msgid "You are not a member of this group." msgstr "Você não é membro deste grupo." -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Não foi possível remover o usuário %1$s do grupo %2$s." @@ -493,7 +511,7 @@ msgstr "Token inválido." #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -539,7 +557,7 @@ msgstr "O token %s solicitado foi negado e revogado." #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -566,13 +584,13 @@ msgstr "" "fornecer acesso à sua conta %4$s somente para terceiros nos quais você " "confia." -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 msgid "Account" msgstr "Conta" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -654,12 +672,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s marcadas como favoritas por %2$s / %2$s." #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "Mensagens de %s" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -695,7 +713,7 @@ msgstr "Repetida para %s" msgid "Repeats of %s" msgstr "Repetições de %s" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Mensagens etiquetadas como %s" @@ -716,8 +734,7 @@ msgstr "Este anexo não existe." #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "Nenhuma identificação." @@ -729,7 +746,7 @@ msgstr "Sem tamanho definido." msgid "Invalid size." msgstr "Tamanho inválido." -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Avatar" @@ -747,30 +764,30 @@ msgid "User without matching profile" msgstr "Usuário sem um perfil correspondente" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Configurações do avatar" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Original" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Visualização" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 msgid "Delete" msgstr "Excluir" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "Enviar" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "Cortar" @@ -778,7 +795,7 @@ msgstr "Cortar" msgid "Pick a square area of the image to be your avatar" msgstr "Selecione uma área quadrada da imagem para ser seu avatar" -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Os dados do nosso arquivo foram perdidos." @@ -814,22 +831,22 @@ msgstr "" "você." #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "Não" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 msgid "Do not block this user" msgstr "Não bloquear este usuário" #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Sim" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 msgid "Block this user" msgstr "Bloquear este usuário" @@ -837,39 +854,43 @@ msgstr "Bloquear este usuário" msgid "Failed to save block information." msgstr "Não foi possível salvar a informação de bloqueio." -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 msgid "No such group." msgstr "Esse grupo não existe." -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, php-format msgid "%s blocked profiles" msgstr "Perfis bloqueados no %s" -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "Perfis bloqueados no %1$s, pág. %2$d" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." msgstr "Uma lista dos usuários proibidos de se associarem a este grupo." -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 msgid "Unblock user from group" msgstr "Desbloquear o usuário do grupo" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "Desbloquear" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 msgid "Unblock this user" msgstr "Desbloquear este usuário" @@ -944,7 +965,7 @@ msgstr "Você não é o dono desta aplicação." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "Ocorreu um problema com o seu token de sessão." @@ -970,12 +991,13 @@ msgstr "Não excluir esta aplicação" msgid "Delete this application" msgstr "Excluir esta aplicação" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Você não está autenticado." @@ -1004,7 +1026,7 @@ msgstr "Tem certeza que deseja excluir esta mensagem?" msgid "Do not delete this notice" msgstr "Não excluir esta mensagem." -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 msgid "Delete this notice" msgstr "Excluir esta mensagem" @@ -1020,7 +1042,7 @@ msgstr "Você só pode excluir usuários locais." msgid "Delete user" msgstr "Excluir usuário" -#: actions/deleteuser.php:135 +#: 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." @@ -1028,12 +1050,12 @@ msgstr "" "Tem certeza que deseja excluir este usuário? Isso eliminará todos os dados " "deste usuário do banco de dados, sem cópia de segurança." -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 msgid "Delete this user" msgstr "Excluir este usuário" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "Aparência" @@ -1136,6 +1158,17 @@ msgstr "Restaura a aparência padrão" msgid "Reset back to default" msgstr "Restaura de volta ao padrão" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "Salvar" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "Salvar a aparência" @@ -1227,29 +1260,29 @@ msgstr "Editar o grupo %s" msgid "You must be logged in to create a group." msgstr "Você deve estar autenticado para criar um grupo." -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: 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 "Você deve ser um administrador para editar o grupo." -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "Use esse formulário para editar o grupo." -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, php-format msgid "description is too long (max %d chars)." msgstr "descrição muito extensa (máximo %d caracteres)." -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 msgid "Could not update group." msgstr "Não foi possível atualizar o grupo." -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 msgid "Could not create aliases." msgstr "Não foi possível criar os apelidos." -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 msgid "Options saved." msgstr "As configurações foram salvas." @@ -1594,7 +1627,7 @@ msgstr "O usuário já está bloqueado no grupo." msgid "User is not a member of group." msgstr "O usuário não é um membro do grupo" -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 msgid "Block user from group" msgstr "Bloquear o usuário no grupo" @@ -1630,11 +1663,11 @@ msgstr "Nenhuma ID." msgid "You must be logged in to edit a group." msgstr "Você precisa estar autenticado para editar um grupo." -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 msgid "Group design" msgstr "Aparência do grupo" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." @@ -1642,20 +1675,20 @@ msgstr "" "Personalize a aparência do grupo com uma imagem de fundo e uma paleta de " "cores à sua escolha." -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 msgid "Couldn't update your design." msgstr "Não foi possível atualizar a aparência." -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 msgid "Design preferences saved." msgstr "As configurações da aparência foram salvas." -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "Logo do grupo" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." @@ -1663,57 +1696,57 @@ msgstr "" "Você pode enviar uma imagem de logo para o seu grupo. O tamanho máximo do " "arquivo é %s." -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 msgid "User without matching profile." msgstr "Usuário sem um perfil correspondente" -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Selecione uma área quadrada da imagem para definir a logo" -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 msgid "Logo updated." msgstr "A logo foi atualizada." -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 msgid "Failed updating logo." msgstr "Não foi possível atualizar a logo." -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "Membros do grupo %s" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, php-format msgid "%1$s group members, page %2$d" msgstr "Membros do grupo %1$s, pág. %2$d" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "Uma lista dos usuários deste grupo." -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "Admin" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "Bloquear" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 msgid "Make user an admin of the group" msgstr "Tornar o usuário um administrador do grupo" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make Admin" msgstr "Tornar administrador" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "Torna este usuário um administrador" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Atualizações dos membros de %1$s no %2$s!" @@ -1979,16 +2012,19 @@ msgstr "Mensagem pessoal" msgid "Optionally add a personal message to the invitation." msgstr "Você pode, opcionalmente, adicionar uma mensagem pessoal ao convite." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" msgstr "Enviar" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s convidou você para se juntar a %2$s" -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2049,7 +2085,12 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Você deve estar autenticado para se associar a um grupo." -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "Nenhuma identificação." + +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s associou-se ao grupo %2$s" @@ -2058,11 +2099,11 @@ msgstr "%1$s associou-se ao grupo %2$s" msgid "You must be logged in to leave a group." msgstr "Você deve estar autenticado para sair de um grupo." -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 msgid "You are not a member of that group." msgstr "Você não é um membro desse grupo." -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s deixou o grupo %2$s" @@ -2080,8 +2121,7 @@ msgid "Error setting user. You are probably not authorized." msgstr "" "Erro na configuração do usuário. Você provavelmente não tem autorização." -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "Entrar" @@ -2341,8 +2381,8 @@ msgstr "tipo de conteúdo " msgid "Only " msgstr "Apenas " -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "Não é um formato de dados suportado." @@ -2483,7 +2523,7 @@ msgstr "Não é possível salvar a nova senha." msgid "Password saved." msgstr "A senha foi salva." -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "Caminhos" @@ -2517,7 +2557,6 @@ msgstr "" "Servidor SSL inválido. O comprimento máximo deve ser de 255 caracteres." #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 msgid "Site" msgstr "Site" @@ -2690,7 +2729,7 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 letras minúsculas ou números, sem pontuações ou espaços" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "Nome completo" @@ -2718,7 +2757,7 @@ msgid "Bio" msgstr "Descrição" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2801,7 +2840,8 @@ msgstr "Não foi possível salvar o perfil." msgid "Couldn't save tags." msgstr "Não foi possível salvar as etiquetas." -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "As configurações foram salvas." @@ -2814,28 +2854,28 @@ msgstr "Além do limite da página (%s)" msgid "Could not retrieve public stream." msgstr "Não foi possível recuperar o fluxo público." -#: actions/public.php:129 +#: actions/public.php:130 #, php-format msgid "Public timeline, page %d" msgstr "Mensagens públicas, pág. %d" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "Mensagens públicas" -#: actions/public.php:159 +#: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" msgstr "Fonte de mensagens públicas (RSS 1.0)" -#: actions/public.php:163 +#: actions/public.php:164 msgid "Public Stream Feed (RSS 2.0)" msgstr "Fonte de mensagens públicas (RSS 2.0)" -#: actions/public.php:167 +#: actions/public.php:168 msgid "Public Stream Feed (Atom)" msgstr "Fonte de mensagens públicas (Atom)" -#: actions/public.php:187 +#: actions/public.php:188 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " @@ -2844,11 +2884,11 @@ msgstr "" "Esse é o fluxo de mensagens públicas de %%site.name%%, mas ninguém publicou " "nada ainda." -#: actions/public.php:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "Seja o primeiro a publicar!" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" @@ -2856,7 +2896,7 @@ msgstr "" "Por que você não [registra uma conta](%%action.register%%) pra ser o " "primeiro a publicar?" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2869,7 +2909,7 @@ msgstr "" "[Cadastre-se agora](%%action.register%%) para compartilhar notícias sobre " "você com seus amigos, família e colegas! ([Saiba mais](%%doc.help%%))" -#: actions/public.php:246 +#: actions/public.php:247 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3052,8 +3092,7 @@ msgstr "Desculpe, mas o código do convite é inválido." msgid "Registration successful" msgstr "Registro realizado com sucesso" -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "Registrar-se" @@ -3238,7 +3277,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:656 +#: actions/repeat.php:114 lib/noticelist.php:674 msgid "Repeated" msgstr "Repetida" @@ -3246,33 +3285,33 @@ msgstr "Repetida" msgid "Repeated!" msgstr "Repetida!" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "Respostas para %s" -#: actions/replies.php:127 +#: actions/replies.php:128 #, php-format msgid "Replies to %1$s, page %2$d" msgstr "Respostas para %1$s, pág. %2$d" -#: actions/replies.php:144 +#: actions/replies.php:145 #, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "Fonte de respostas para %s (RSS 1.0)" -#: actions/replies.php:151 +#: actions/replies.php:152 #, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "Fonte de respostas para %s (RSS 2.0)" -#: actions/replies.php:158 +#: actions/replies.php:159 #, php-format msgid "Replies feed for %s (Atom)" msgstr "Fonte de respostas para %s (Atom)" -#: actions/replies.php:198 +#: actions/replies.php:199 #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " @@ -3281,7 +3320,7 @@ msgstr "" "Esse é o fluxo de mensagens de resposta para %1$s, mas %2$s ainda não " "recebeu nenhuma mensagem direcionada a ele(a)." -#: actions/replies.php:203 +#: actions/replies.php:204 #, php-format msgid "" "You can engage other users in a conversation, subscribe to more people or " @@ -3290,7 +3329,7 @@ msgstr "" "Você pode envolver outros usuários na conversa. Pra isso, assine mais " "pessoas ou [associe-se a grupos](%%action.groups%%)." -#: actions/replies.php:205 +#: actions/replies.php:206 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3318,7 +3357,6 @@ msgid "User is already sandboxed." msgstr "O usuário já está em isolamento." #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "Sessões" @@ -3343,7 +3381,7 @@ msgid "Turn on debugging output for sessions." msgstr "Ativa a saída de depuração para as sessões." #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Salvar as configurações do site" @@ -3373,7 +3411,7 @@ msgstr "Organização" msgid "Description" msgstr "Descrição" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Estatísticas" @@ -3436,22 +3474,22 @@ msgstr "Mensagens favoritas de %1$s, pág. %2$d" msgid "Could not retrieve favorite notices." msgstr "Não foi possível recuperar as mensagens favoritas." -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "Fonte para favoritas de %s (RSS 1.0)" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "Fonte para favoritas de %s (RSS 2.0)" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" msgstr "Fonte para favoritas de %s (Atom)" -#: actions/showfavorites.php:205 +#: 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." @@ -3460,7 +3498,7 @@ msgstr "" "\"Favorita\" nas mensagens que você quer guardar para referência futura ou " "para destacar." -#: actions/showfavorites.php:207 +#: actions/showfavorites.php:208 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Post something interesting " @@ -3469,7 +3507,7 @@ msgstr "" "%s não adicionou nenhuma mensagem às suas favoritas. Publique alguma coisa " "interessante para para as pessoas marcarem como favorita. :)" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3480,7 +3518,7 @@ msgstr "" "[registra uma conta](%%%%action.register%%%%) e publica alguma coisa " "interessante para as pessoas marcarem como favorita? :)" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "Esta é uma forma de compartilhar o que você gosta." @@ -3494,67 +3532,67 @@ msgstr "Grupo %s" msgid "%1$s group, page %2$d" msgstr "Grupo %1$s, pág. %2$d" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 msgid "Group profile" msgstr "Perfil do grupo" -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "Site" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 msgid "Note" msgstr "Mensagem" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "Apelidos" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "Ações do grupo" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Fonte de mensagens do grupo %s (RSS 1.0)" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Fonte de mensagens do grupo %s (RSS 2.0)" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Fonte de mensagens do grupo %s (Atom)" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, php-format msgid "FOAF for %s group" msgstr "FOAF para o grupo %s" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 msgid "Members" msgstr "Membros" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Nenhum)" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "Todos os membros" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 msgid "Created" msgstr "Criado" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3570,7 +3608,7 @@ msgstr "" "para se tornar parte deste grupo e muito mais! ([Saiba mais](%%%%doc.help%%%" "%))" -#: actions/showgroup.php:454 +#: actions/showgroup.php:462 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3583,7 +3621,7 @@ msgstr "" "[StatusNet](http://status.net/). Seus membros compartilham mensagens curtas " "sobre suas vidas e interesses. " -#: actions/showgroup.php:482 +#: actions/showgroup.php:490 msgid "Admins" msgstr "Administradores" @@ -4063,22 +4101,22 @@ msgstr "Jabber" msgid "SMS" msgstr "SMS" -#: actions/tag.php:68 +#: actions/tag.php:69 #, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "Mensagens etiquetadas com %1$s, pág. %2$d" -#: actions/tag.php:86 +#: actions/tag.php:87 #, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "Fonte de mensagens de %s (RSS 1.0)" -#: actions/tag.php:92 +#: actions/tag.php:93 #, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "Fonte de mensagens de %s (RSS 2.0)" -#: actions/tag.php:98 +#: actions/tag.php:99 #, php-format msgid "Notice feed for tag %s (Atom)" msgstr "Fonte de mensagens de %s (Atom)" @@ -4132,7 +4170,7 @@ msgstr "" msgid "No such tag." msgstr "Esta etiqueta não existe." -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "O método da API está em construção." @@ -4164,71 +4202,73 @@ msgstr "" "A licença '%1$s' do fluxo do usuário não é compatível com a licença '%2$s' " "do site." -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +#, fuzzy +msgctxt "TITLE" msgid "User" msgstr "Usuário" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "Configurações de usuário para este site StatusNet." -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "Limite da descrição inválido. Seu valor deve ser numérico." -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "" "Mensagem de boas vindas inválida. O comprimento máximo é de 255 caracteres." -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "Assinatura padrão inválida: '%1$s' não é um usuário." -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "Perfil" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "Limite da descrição" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "Comprimento máximo da descrição do perfil, em caracteres." -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 msgid "New users" msgstr "Novos usuários" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "Boas vindas aos novos usuários" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "Texto de boas vindas para os novos usuários (máx. 255 caracteres)." -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 msgid "Default subscription" msgstr "Assinatura padrão" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 msgid "Automatically subscribe new users to this user." msgstr "Os novos usuários assinam esse usuário automaticamente." -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 msgid "Invitations" msgstr "Convites" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 msgid "Invitations enabled" msgstr "Convites habilitados" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "Define se os usuários podem ou não convidar novos usuários." @@ -4426,7 +4466,7 @@ msgstr "" msgid "Plugins" msgstr "Plugins" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 msgid "Version" msgstr "Versão" @@ -4465,6 +4505,11 @@ msgstr "Não é parte de um grupo." msgid "Group leave failed." msgstr "Não foi possível deixar o grupo." +#: classes/Local_group.php:41 +#, fuzzy +msgid "Could not update local group." +msgstr "Não foi possível atualizar o grupo." + #: classes/Login_token.php:76 #, php-format msgid "Could not create login token for %s" @@ -4482,27 +4527,27 @@ msgstr "Não foi possível inserir a mensagem." msgid "Could not update message with new URI." msgstr "Não foi possível atualizar a mensagem com a nova URI." -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "Erro no banco de dados durante a inserção da hashtag: %s" -#: classes/Notice.php:222 +#: classes/Notice.php:239 msgid "Problem saving notice. Too long." msgstr "Problema no salvamento da mensagem. Ela é muito extensa." -#: classes/Notice.php:226 +#: classes/Notice.php:243 msgid "Problem saving notice. Unknown user." msgstr "Problema no salvamento da mensagem. Usuário desconhecido." -#: classes/Notice.php:231 +#: classes/Notice.php:248 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:237 +#: classes/Notice.php:254 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4510,19 +4555,19 @@ msgstr "" "Muitas mensagens duplicadas em um período curto de tempo; dê uma respirada e " "publique novamente daqui a alguns minutos." -#: classes/Notice.php:243 +#: classes/Notice.php:260 msgid "You are banned from posting notices on this site." msgstr "Você está proibido de publicar mensagens neste site." -#: classes/Notice.php:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "Problema no salvamento da mensagem." -#: classes/Notice.php:882 +#: classes/Notice.php:911 msgid "Problem saving group inbox." msgstr "Problema no salvamento das mensagens recebidas do grupo." -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4551,19 +4596,29 @@ msgstr "Não foi possível excluir a auto-assinatura." msgid "Couldn't delete subscription." msgstr "Não foi possível excluir a assinatura." -#: classes/User.php:372 +#: classes/User.php:373 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Bem vindo(a) a %1$s, @%2$s!" -#: classes/User_group.php:423 +#: classes/User_group.php:462 msgid "Could not create group." msgstr "Não foi possível criar o grupo." -#: classes/User_group.php:452 +#: classes/User_group.php:471 +#, fuzzy +msgid "Could not set group URI." +msgstr "Não foi possível configurar a associação ao grupo." + +#: classes/User_group.php:492 msgid "Could not set group membership." msgstr "Não foi possível configurar a associação ao grupo." +#: classes/User_group.php:506 +#, fuzzy +msgid "Could not save local group info." +msgstr "Não foi possível salvar a assinatura." + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "Alterar as suas configurações de perfil" @@ -4605,120 +4660,190 @@ msgstr "Página sem título" msgid "Primary site navigation" msgstr "Navegação primária no site" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "Início" - -#: lib/action.php:439 +#, fuzzy +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Perfil pessoal e fluxo de mensagens dos amigos" -#: lib/action.php:441 +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "Pessoal" + +#. TRANS: Tooltip for main menu option "Account" +#: lib/action.php:444 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Mude seu e-mail, avatar, senha, perfil" -#: lib/action.php:444 -msgid "Connect" -msgstr "Conectar" +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "Conta" -#: lib/action.php:444 +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 +#, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Conecte-se a outros serviços" -#: lib/action.php:448 +#: lib/action.php:453 +#, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "Conectar" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Mude as configurações do site" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" -msgstr "Convidar" +#: lib/action.php:460 +#, fuzzy +msgctxt "MENU" +msgid "Admin" +msgstr "Admin" -#: lib/action.php:453 lib/subgroupnav.php:106 -#, php-format +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 +#, fuzzy, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Convide seus amigos e colegas para unir-se a você no %s" -#: lib/action.php:458 -msgid "Logout" -msgstr "Sair" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "Convidar" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +#, fuzzy +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Sai do site" -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "Sair" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 +#, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "Cria uma conta" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "Registrar-se" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +#, fuzzy +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Autentique-se no site" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "Ajuda" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "Entrar" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 +#, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "Ajudem-me!" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "Procurar" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "Ajuda" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +#, fuzzy +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Procura por pessoas ou textos" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "Procurar" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 msgid "Site notice" msgstr "Mensagem do site" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "Visualizações locais" -#: lib/action.php:625 +#: lib/action.php:656 msgid "Page notice" msgstr "Notícia da página" -#: lib/action.php:727 +#: lib/action.php:758 msgid "Secondary site navigation" msgstr "Navegação secundária no site" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "Ajuda" + +#: lib/action.php:765 msgid "About" msgstr "Sobre" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "FAQ" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "Termos de uso" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "Privacidade" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "Fonte" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "Contato" -#: lib/action.php:751 +#: lib/action.php:782 msgid "Badge" msgstr "Mini-aplicativo" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "Licença do software StatusNet" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4727,12 +4852,12 @@ msgstr "" "**%%site.name%%** é um serviço de microblog disponibilizado por [%%site." "broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** é um serviço de microblog. " -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4743,109 +4868,162 @@ msgstr "" "versão %s, disponível sob a [GNU Affero General Public License] (http://www." "fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:801 +#: lib/action.php:832 msgid "Site content license" msgstr "Licença do conteúdo do site" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "O conteúdo e os dados de %1$s são privados e confidenciais." -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "Conteúdo e dados licenciados sob %1$s. Todos os direitos reservados." -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Conteúdo e dados licenciados pelos colaboradores. Todos os direitos " "reservados." -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "Todas " -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "licença." -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "Paginação" -#: lib/action.php:1141 +#: lib/action.php:1172 msgid "After" msgstr "Próximo" -#: lib/action.php:1149 +#: lib/action.php:1180 msgid "Before" msgstr "Anterior" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." msgstr "Você não pode fazer alterações neste site." -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 msgid "Changes to that panel are not allowed." msgstr "Não são permitidas alterações a esse painel." -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 msgid "showForm() not implemented." msgstr "showForm() não implementado." -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 msgid "saveSettings() not implemented." msgstr "saveSettings() não implementado." -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 msgid "Unable to delete design setting." msgstr "Não foi possível excluir as configurações da aparência." -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 msgid "Basic site configuration" msgstr "Configuração básica do site" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "Site" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 msgid "Design configuration" msgstr "Configuração da aparência" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "Aparência" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 msgid "User configuration" msgstr "Configuração do usuário" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +#, fuzzy +msgctxt "MENU" +msgid "User" +msgstr "Usuário" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 msgid "Access configuration" msgstr "Configuração do acesso" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "Acesso" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 msgid "Paths configuration" msgstr "Configuração dos caminhos" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +#, fuzzy +msgctxt "MENU" +msgid "Paths" +msgstr "Caminhos" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 msgid "Sessions configuration" msgstr "Configuração das sessões" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "Sessões" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" "Os recursos de API exigem acesso de leitura e escrita, mas você possui " "somente acesso de leitura." -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4938,11 +5116,11 @@ msgstr "Mensagens onde este anexo aparece" msgid "Tags for this attachment" msgstr "Etiquetas para este anexo" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 msgid "Password changing failed" msgstr "Não foi possível alterar a senha" -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 msgid "Password changing is not allowed" msgstr "Não é permitido alterar a senha" @@ -5260,19 +5438,19 @@ msgstr "" "tracks - não implementado ainda\n" "tracking - não implementado ainda\n" -#: lib/common.php:136 +#: lib/common.php:148 msgid "No configuration file found. " msgstr "Não foi encontrado nenhum arquivo de configuração. " -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "Eu procurei pelos arquivos de configuração nos seguintes lugares: " -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "Você pode querer executar o instalador para corrigir isto." -#: lib/common.php:140 +#: lib/common.php:152 msgid "Go to the installer." msgstr "Ir para o instalador." @@ -5462,23 +5640,23 @@ msgstr "Erro no sistema durante o envio do arquivo." msgid "Not an image or corrupt file." msgstr "Imagem inválida ou arquivo corrompido." -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "Formato de imagem não suportado." -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Nosso arquivo foi perdido." -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "Tipo de arquivo desconhecido" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "Mb" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "Kb" @@ -5862,6 +6040,12 @@ msgstr "Para" msgid "Available characters" msgstr "Caracteres disponíveis" +#: lib/messageform.php:178 lib/noticeform.php:236 +#, fuzzy +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "Enviar" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Enviar uma mensagem" @@ -5920,23 +6104,23 @@ msgstr "O" msgid "at" msgstr "em" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 msgid "in context" msgstr "no contexto" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 msgid "Repeated by" msgstr "Repetida por" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 msgid "Reply to this notice" msgstr "Responder a esta mensagem" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 msgid "Reply" msgstr "Responder" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 msgid "Notice repeated" msgstr "Mensagem repetida" @@ -5984,6 +6168,10 @@ msgstr "Respostas" msgid "Favorites" msgstr "Favoritas" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "Usuário" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Recebidas" @@ -6073,7 +6261,7 @@ msgstr "Repetir esta mensagem?" msgid "Repeat this notice" msgstr "Repetir esta mensagem" -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "Nenhum usuário definido para o modo de usuário único." @@ -6093,6 +6281,10 @@ msgstr "Procurar no site" msgid "Keyword(s)" msgstr "Palavra(s)-chave" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "Procurar" + #: lib/searchaction.php:162 msgid "Search help" msgstr "Ajuda da procura" @@ -6144,6 +6336,15 @@ msgstr "Assinantes de %s" msgid "Groups %s is a member of" msgstr "Grupos dos quais %s é membro" +#: lib/subgroupnav.php:105 +msgid "Invite" +msgstr "Convidar" + +#: lib/subgroupnav.php:106 +#, php-format +msgid "Invite friends and colleagues to join you on %s" +msgstr "Convide seus amigos e colegas para unir-se a você no %s" + #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 msgid "People Tagcloud as self-tagged" @@ -6214,47 +6415,47 @@ msgstr "Mensagem" msgid "Moderate" msgstr "Moderar" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "alguns segundos atrás" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "cerca de 1 minuto atrás" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "cerca de %d minutos atrás" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "cerca de 1 hora atrás" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "cerca de %d horas atrás" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "cerca de 1 dia atrás" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "cerca de %d dias atrás" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "cerca de 1 mês atrás" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "cerca de %d meses atrás" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "cerca de 1 ano atrás" diff --git a/locale/ru/LC_MESSAGES/statusnet.po b/locale/ru/LC_MESSAGES/statusnet.po index d4df1a654..4db3b0684 100644 --- a/locale/ru/LC_MESSAGES/statusnet.po +++ b/locale/ru/LC_MESSAGES/statusnet.po @@ -12,77 +12,84 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:51:41+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:03:44+0000\n" "Language-Team: Russian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" "10< =4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 msgid "Access" msgstr "Принять" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 msgid "Site access settings" msgstr "Настройки доступа к сайту" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 msgid "Registration" msgstr "Регистрация" -#: actions/accessadminpanel.php:161 -msgid "Private" -msgstr "Личное" - -#: actions/accessadminpanel.php:163 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "" "Запретить анонимным (не авторизовавшимся) пользователям просматривать сайт?" +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -msgid "Invite only" -msgstr "Только по приглашениям" +#, fuzzy +msgctxt "LABEL" +msgid "Private" +msgstr "Личное" -#: actions/accessadminpanel.php:169 +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 msgid "Make registration invitation only." msgstr "Разрешить регистрацию только по приглашениям." -#: actions/accessadminpanel.php:173 -msgid "Closed" -msgstr "Закрыта" +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 +msgid "Invite only" +msgstr "Только по приглашениям" -#: actions/accessadminpanel.php:175 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 msgid "Disable new registrations." msgstr "Отключить новые регистрации." -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "Сохранить" +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 +msgid "Closed" +msgstr "Закрыта" -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 msgid "Save access settings" msgstr "Сохранить настройки доступа" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "Сохранить" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page" msgstr "Нет такой страницы" -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -96,51 +103,59 @@ msgstr "Нет такой страницы" #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "Нет такого пользователя." -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s и друзья, страница %2$d" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s и друзья" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Лента друзей %s (RSS 1.0)" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Лента друзей %s (RSS 2.0)" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Лента друзей %s (Atom)" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "Это лента %s и друзей, однако пока никто ничего не отправил." -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -149,7 +164,8 @@ msgstr "" "Попробуйте подписаться на большее число людей, [присоединитесь к группе](%%" "action.groups%%) или отправьте что-нибудь сами." -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " @@ -159,7 +175,7 @@ msgstr "" "что-нибудь для привлечения его или её внимания](%%%%action.newnotice%%%%?" "status_textarea=%3$s)." -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -168,7 +184,8 @@ msgstr "" "Почему бы не [зарегистрироваться](%%action.register%%), чтобы «подтолкнуть» %" "s или отправить запись для привлечения его или её внимания?" -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 msgid "You and friends" msgstr "Вы и друзья" @@ -186,20 +203,20 @@ msgstr "Обновлено от %1$s и его друзей на %2$s!" #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 msgid "API method not found." msgstr "Метод API не найден." @@ -231,8 +248,9 @@ msgstr "Не удаётся обновить пользователя." #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "У пользователя нет профиля." @@ -258,7 +276,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: 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." @@ -374,69 +392,69 @@ msgstr "Не удаётся определить исходного пользо msgid "Could not find target user." msgstr "Не удаётся найти целевого пользователя." -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "" "Имя должно состоять только из прописных букв и цифр и не иметь пробелов." -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Такое имя уже используется. Попробуйте какое-нибудь другое." -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Неверное имя." -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "URL Главной страницы неверен." -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Полное имя слишком длинное (не больше 255 знаков)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "Слишком длинное описание (максимум %d символов)" -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Слишком длинное месторасположение (максимум 255 знаков)." -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "Слишком много алиасов! Максимальное число — %d." -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Неверный алиас: «%s»" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Алиас «%s» уже используется. Попробуйте какой-нибудь другой." -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "Алиас не может совпадать с именем." @@ -447,15 +465,15 @@ msgstr "Алиас не может совпадать с именем." msgid "Group not found!" msgstr "Группа не найдена!" -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 msgid "You are already a member of that group." msgstr "Вы уже являетесь членом этой группы." -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "Вы заблокированы из этой группы администратором." -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Не удаётся присоединить пользователя %1$s к группе %2$s." @@ -464,7 +482,7 @@ msgstr "Не удаётся присоединить пользователя %1 msgid "You are not a member of this group." msgstr "Вы не являетесь членом этой группы." -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Не удаётся удалить пользователя %1$s из группы %2$s." @@ -495,7 +513,7 @@ msgstr "Неправильный токен" #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -537,7 +555,7 @@ msgstr "Запрос токена %s был запрещен и аннулиро #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -564,13 +582,13 @@ msgstr "" "предоставлять разрешение на доступ к вашей учётной записи %4$s только тем " "сторонним приложениям, которым вы доверяете." -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 msgid "Account" msgstr "Настройки" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -652,12 +670,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "Обновления %1$s, отмеченные как любимые %2$s / %2$s." #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "Лента %s" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -693,7 +711,7 @@ msgstr "Повторено для %s" msgid "Repeats of %s" msgstr "Повторы за %s" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Записи с тегом %s" @@ -714,8 +732,7 @@ msgstr "Нет такого вложения." #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "Нет имени." @@ -727,7 +744,7 @@ msgstr "Нет размера." msgid "Invalid size." msgstr "Неверный размер." -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Аватара" @@ -745,30 +762,30 @@ msgid "User without matching profile" msgstr "Пользователь без соответствующего профиля" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Настройки аватары" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Оригинал" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Просмотр" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 msgid "Delete" msgstr "Удалить" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "Загрузить" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "Обрезать" @@ -776,7 +793,7 @@ msgstr "Обрезать" msgid "Pick a square area of the image to be your avatar" msgstr "Подберите нужный квадратный участок для вашей аватары" -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Потеряна информация о файле." @@ -811,22 +828,22 @@ msgstr "" "приходить уведомления об @-ответах от него." #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "Нет" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 msgid "Do not block this user" msgstr "Не блокировать этого пользователя" #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Да" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 msgid "Block this user" msgstr "Заблокировать пользователя." @@ -834,39 +851,43 @@ msgstr "Заблокировать пользователя." msgid "Failed to save block information." msgstr "Не удаётся сохранить информацию о блокировании." -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 msgid "No such group." msgstr "Нет такой группы." -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, php-format msgid "%s blocked profiles" msgstr "Заблокированные профили %s" -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "Заблокированные профили %1$s, страница %2$d" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." msgstr "Список пользователей, заблокированных от присоединения к этой группе." -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 msgid "Unblock user from group" msgstr "Разблокировать пользователя в группе." -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "Разблокировать" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 msgid "Unblock this user" msgstr "Разблокировать пользователя." @@ -941,7 +962,7 @@ msgstr "Вы не являетесь владельцем этого прило #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "Проблема с Вашей сессией. Попробуйте ещё раз, пожалуйста." @@ -967,12 +988,13 @@ msgstr "Не удаляйте это приложение" msgid "Delete this application" msgstr "Удалить это приложение" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Не авторизован." @@ -1001,7 +1023,7 @@ msgstr "Вы уверены, что хотите удалить эту запи msgid "Do not delete this notice" msgstr "Не удалять эту запись" -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 msgid "Delete this notice" msgstr "Удалить эту запись" @@ -1017,7 +1039,7 @@ msgstr "Вы можете удалять только внутренних по msgid "Delete user" msgstr "Удалить пользователя" -#: actions/deleteuser.php:135 +#: 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." @@ -1025,12 +1047,12 @@ msgstr "" "Вы действительно хотите удалить этого пользователя? Это повлечёт удаление " "всех данных о пользователе из базы данных без возможности восстановления." -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 msgid "Delete this user" msgstr "Удалить этого пользователя" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "Оформление" @@ -1133,6 +1155,17 @@ msgstr "Восстановить оформление по умолчанию" msgid "Reset back to default" msgstr "Восстановить значения по умолчанию" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "Сохранить" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "Сохранить оформление" @@ -1224,29 +1257,29 @@ msgstr "Изменить информацию о группе %s" msgid "You must be logged in to create a group." msgstr "Вы должны авторизоваться, чтобы создать новую группу." -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: 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 "Вы должны быть администратором, чтобы изменять информацию о группе." -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "Заполните информацию о группе в следующие поля" -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, php-format msgid "description is too long (max %d chars)." msgstr "Слишком длинное описание (максимум %d символов)" -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 msgid "Could not update group." msgstr "Не удаётся обновить информацию о группе." -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 msgid "Could not create aliases." msgstr "Не удаётся создать алиасы." -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 msgid "Options saved." msgstr "Настройки сохранены." @@ -1596,7 +1629,7 @@ msgstr "Пользователь уже заблокирован из групп msgid "User is not a member of group." msgstr "Пользователь не является членом этой группы." -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 msgid "Block user from group" msgstr "Заблокировать пользователя из группы." @@ -1631,11 +1664,11 @@ msgstr "Нет ID." msgid "You must be logged in to edit a group." msgstr "Вы должны авторизоваться, чтобы изменить группу." -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 msgid "Group design" msgstr "Оформление группы" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." @@ -1643,20 +1676,20 @@ msgstr "" "Настройте внешний вид группы, установив фоновое изображение и цветовую гамму " "на ваш выбор." -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 msgid "Couldn't update your design." msgstr "Не удаётся обновить ваше оформление." -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 msgid "Design preferences saved." msgstr "Настройки оформления сохранены." -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "Логотип группы" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." @@ -1664,57 +1697,57 @@ msgstr "" "Здесь вы можете загрузить логотип для группы. Максимальный размер файла " "составляет %s." -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 msgid "User without matching profile." msgstr "Пользователь без соответствующего профиля." -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Подберите нужный квадратный участок для вашего логотипа." -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 msgid "Logo updated." msgstr "Логотип обновлён." -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 msgid "Failed updating logo." msgstr "Неудача при обновлении логотипа." -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "Участники группы %s" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, php-format msgid "%1$s group members, page %2$d" msgstr "Участники группы %1$s, страница %2$d" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "Список пользователей, являющихся членами этой группы." -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "Настройки" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "Блокировать" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 msgid "Make user an admin of the group" msgstr "Сделать пользователя администратором группы" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make Admin" msgstr "Сделать администратором" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "Сделать этого пользователя администратором" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Обновления участников %1$s на %2$s!" @@ -1980,16 +2013,19 @@ msgstr "Личное сообщение" msgid "Optionally add a personal message to the invitation." msgstr "Можно добавить к приглашению личное сообщение." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" -msgstr "ОК" +msgstr "Отправить" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s пригласил вас присоединиться к нему на %2$s" -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2050,7 +2086,11 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Вы должны авторизоваться для вступления в группу." -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Нет имени или ID." + +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s вступил в группу %2$s" @@ -2059,11 +2099,11 @@ msgstr "%1$s вступил в группу %2$s" msgid "You must be logged in to leave a group." msgstr "Вы должны авторизоваться, чтобы покинуть группу." -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 msgid "You are not a member of that group." msgstr "Вы не являетесь членом этой группы." -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s покинул группу %2$s" @@ -2080,8 +2120,7 @@ msgstr "Некорректное имя или пароль." msgid "Error setting user. You are probably not authorized." msgstr "Ошибка установки пользователя. Вы, вероятно, не авторизованы." -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "Вход" @@ -2333,8 +2372,8 @@ msgstr "тип содержимого " msgid "Only " msgstr "Только " -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "Неподдерживаемый формат данных." @@ -2475,7 +2514,7 @@ msgstr "Не удаётся сохранить новый пароль." msgid "Password saved." msgstr "Пароль сохранён." -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "Пути" @@ -2508,7 +2547,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "Неверный SSL-сервер. Максимальная длина составляет 255 символов." #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 msgid "Site" msgstr "Сайт" @@ -2680,7 +2718,7 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 латинских строчных буквы или цифры, без пробелов" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "Полное имя" @@ -2708,7 +2746,7 @@ msgid "Bio" msgstr "Биография" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2790,7 +2828,8 @@ msgstr "Не удаётся сохранить профиль." msgid "Couldn't save tags." msgstr "Не удаётся сохранить теги." -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "Настройки сохранены." @@ -2803,39 +2842,39 @@ msgstr "Превышен предел страницы (%s)" msgid "Could not retrieve public stream." msgstr "Не удаётся вернуть публичный поток." -#: actions/public.php:129 +#: actions/public.php:130 #, php-format msgid "Public timeline, page %d" msgstr "Общая лента, страница %d" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "Общая лента" -#: actions/public.php:159 +#: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" msgstr "Лента публичного потока (RSS 1.0)" -#: actions/public.php:163 +#: actions/public.php:164 msgid "Public Stream Feed (RSS 2.0)" msgstr "Лента публичного потока (RSS 2.0)" -#: actions/public.php:167 +#: actions/public.php:168 msgid "Public Stream Feed (Atom)" msgstr "Лента публичного потока (Atom)" -#: actions/public.php:187 +#: actions/public.php:188 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "Это общая лента %%site.name%%, однако пока никто ничего не отправил." -#: actions/public.php:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "Создайте первую запись!" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" @@ -2843,7 +2882,7 @@ msgstr "" "Почему бы не [зарегистрироваться](%%action.register%%), чтобы стать первым " "отправителем?" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2857,7 +2896,7 @@ msgstr "" "register%%), чтобы держать в курсе своих событий поклонников, друзей, " "родственников и коллег! ([Читать далее](%%doc.help%%))" -#: actions/public.php:246 +#: actions/public.php:247 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3035,8 +3074,7 @@ msgstr "Извините, неверный пригласительный код msgid "Registration successful" msgstr "Регистрация успешна!" -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "Регистрация" @@ -3223,7 +3261,7 @@ msgstr "Вы не можете повторить собственную зап msgid "You already repeated that notice." msgstr "Вы уже повторили эту запись." -#: actions/repeat.php:114 lib/noticelist.php:656 +#: actions/repeat.php:114 lib/noticelist.php:674 msgid "Repeated" msgstr "Повторено" @@ -3231,33 +3269,33 @@ msgstr "Повторено" msgid "Repeated!" msgstr "Повторено!" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "Ответы для %s" -#: actions/replies.php:127 +#: actions/replies.php:128 #, php-format msgid "Replies to %1$s, page %2$d" msgstr "Ответы для %1$s, страница %2$d" -#: actions/replies.php:144 +#: actions/replies.php:145 #, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "Лента записей для %s (RSS 1.0)" -#: actions/replies.php:151 +#: actions/replies.php:152 #, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "Лента записей для %s (RSS 2.0)" -#: actions/replies.php:158 +#: actions/replies.php:159 #, php-format msgid "Replies feed for %s (Atom)" msgstr "Лента записей для %s (Atom)" -#: actions/replies.php:198 +#: actions/replies.php:199 #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " @@ -3265,7 +3303,7 @@ msgid "" msgstr "" "Эта лента содержит ответы на записи %1$s, однако %2$s пока не получал их." -#: actions/replies.php:203 +#: actions/replies.php:204 #, php-format msgid "" "You can engage other users in a conversation, subscribe to more people or " @@ -3274,7 +3312,7 @@ msgstr "" "Вы можете вовлечь других пользователей в разговор, подписавшись на большее " "число людей или [присоединившись к группам](%%action.groups%%)." -#: actions/replies.php:205 +#: actions/replies.php:206 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3303,7 +3341,6 @@ msgid "User is already sandboxed." msgstr "Пользователь уже в режиме песочницы." #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "Сессии" @@ -3328,7 +3365,7 @@ msgid "Turn on debugging output for sessions." msgstr "Включить отладочный вывод для сессий." #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Сохранить настройки сайта" @@ -3358,7 +3395,7 @@ msgstr "Организация" msgid "Description" msgstr "Описание" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Статистика" @@ -3422,22 +3459,22 @@ msgstr "Любимые записи %1$s, страница %2$d" msgid "Could not retrieve favorite notices." msgstr "Не удаётся восстановить любимые записи." -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "Лента друзей %s (RSS 1.0)" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "Лента друзей %s (RSS 2.0)" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" msgstr "Лента друзей %s (Atom)" -#: actions/showfavorites.php:205 +#: 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." @@ -3445,7 +3482,7 @@ msgstr "" "Вы пока не выбрали ни одной любимой записи. Нажмите на кнопку добавления в " "любимые рядом с понравившейся записью, чтобы позже уделить ей внимание." -#: actions/showfavorites.php:207 +#: actions/showfavorites.php:208 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Post something interesting " @@ -3454,7 +3491,7 @@ msgstr "" "%s пока не выбрал ни одной любимой записи. Напишите такую интересную запись, " "которую он добавит её в число любимых :)" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3465,7 +3502,7 @@ msgstr "" "[зарегистрироваться](%%%%action.register%%%%) и не написать что-нибудь " "интересное, что понравилось бы этому пользователю? :)" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "Это способ разделить то, что вам нравится." @@ -3479,67 +3516,67 @@ msgstr "Группа %s" msgid "%1$s group, page %2$d" msgstr "Группа %1$s, страница %2$d" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 msgid "Group profile" msgstr "Профиль группы" -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "URL" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 msgid "Note" msgstr "Запись" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "Алиасы" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "Действия группы" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Лента записей группы %s (RSS 1.0)" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Лента записей группы %s (RSS 2.0)" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Лента записей группы %s (Atom)" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, php-format msgid "FOAF for %s group" msgstr "FOAF для группы %s" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 msgid "Members" msgstr "Участники" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(пока ничего нет)" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "Все участники" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 msgid "Created" msgstr "Создано" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3555,7 +3592,7 @@ msgstr "" "action.register%%%%), чтобы стать участником группы и получить множество " "других возможностей! ([Читать далее](%%%%doc.help%%%%))" -#: actions/showgroup.php:454 +#: actions/showgroup.php:462 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3568,7 +3605,7 @@ msgstr "" "обеспечении [StatusNet](http://status.net/). Участники обмениваются " "короткими сообщениями о своей жизни и интересах. " -#: actions/showgroup.php:482 +#: actions/showgroup.php:490 msgid "Admins" msgstr "Администраторы" @@ -3948,17 +3985,17 @@ msgstr "Не удаётся сохранить подписку." #: actions/subscribe.php:77 msgid "This action only accepts POST requests." -msgstr "" +msgstr "Это действие принимает только POST-запросы." #: actions/subscribe.php:107 -#, fuzzy msgid "No such profile." -msgstr "Нет такого файла." +msgstr "Нет такого профиля." #: actions/subscribe.php:117 -#, fuzzy msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." -msgstr "Вы не подписаны на этот профиль." +msgstr "" +"Вы не можете подписаться на удалённый профиль OMB 0.1 с помощью этого " +"действия." #: actions/subscribe.php:145 msgid "Subscribed" @@ -4053,22 +4090,22 @@ msgstr "Jabber" msgid "SMS" msgstr "СМС" -#: actions/tag.php:68 +#: actions/tag.php:69 #, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "Записи с тегом %1$s, страница %2$d" -#: actions/tag.php:86 +#: actions/tag.php:87 #, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "Лента записей для тега %s (RSS 1.0)" -#: actions/tag.php:92 +#: actions/tag.php:93 #, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "Лента записей для тега %s (RSS 2.0)" -#: actions/tag.php:98 +#: actions/tag.php:99 #, php-format msgid "Notice feed for tag %s (Atom)" msgstr "Лента записей для тега %s (Atom)" @@ -4123,7 +4160,7 @@ msgstr "" msgid "No such tag." msgstr "Нет такого тега." -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "Метод API реконструируется." @@ -4154,71 +4191,73 @@ msgid "" msgstr "" "Лицензия просматриваемого потока «%1$s» несовместима с лицензией сайта «%2$s»." -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +#, fuzzy +msgctxt "TITLE" msgid "User" msgstr "Пользователь" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "Пользовательские настройки для этого сайта StatusNet." -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "Неверное ограничение биографии. Должно быть числом." -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "" "Неверный текст приветствия. Максимальная длина составляет 255 символов." -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "Неверная подписка по умолчанию: «%1$s» не является пользователем." -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "Профиль" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "Ограничение биографии" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "Максимальная длина биографии профиля в символах." -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 msgid "New users" msgstr "Новые пользователи" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "Приветствие новым пользователям" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "Текст приветствия для новых пользователей (максимум 255 символов)." -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 msgid "Default subscription" msgstr "Подписка по умолчанию" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 msgid "Automatically subscribe new users to this user." msgstr "Автоматически подписывать новых пользователей на этого пользователя." -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 msgid "Invitations" msgstr "Приглашения" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 msgid "Invitations enabled" msgstr "Приглашения включены" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "Разрешать ли пользователям приглашать новых пользователей." @@ -4413,7 +4452,7 @@ msgstr "" msgid "Plugins" msgstr "Плагины" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 msgid "Version" msgstr "Версия" @@ -4452,6 +4491,10 @@ msgstr "Не является частью группы." msgid "Group leave failed." msgstr "Не удаётся покинуть группу." +#: classes/Local_group.php:41 +msgid "Could not update local group." +msgstr "Не удаётся обновить локальную группу." + #: classes/Login_token.php:76 #, php-format msgid "Could not create login token for %s" @@ -4469,27 +4512,27 @@ msgstr "Не удаётся вставить сообщение." msgid "Could not update message with new URI." msgstr "Не удаётся обновить сообщение с новым URI." -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "Ошибка баз данных при вставке хеш-тегов для %s" -#: classes/Notice.php:222 +#: classes/Notice.php:239 msgid "Problem saving notice. Too long." msgstr "Проблемы с сохранением записи. Слишком длинно." -#: classes/Notice.php:226 +#: classes/Notice.php:243 msgid "Problem saving notice. Unknown user." msgstr "Проблема при сохранении записи. Неизвестный пользователь." -#: classes/Notice.php:231 +#: classes/Notice.php:248 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "Слишком много записей за столь короткий срок; передохните немного и " "попробуйте вновь через пару минут." -#: classes/Notice.php:237 +#: classes/Notice.php:254 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4497,19 +4540,19 @@ msgstr "" "Слишком много одинаковых записей за столь короткий срок; передохните немного " "и попробуйте вновь через пару минут." -#: classes/Notice.php:243 +#: classes/Notice.php:260 msgid "You are banned from posting notices on this site." msgstr "Вам запрещено поститься на этом сайте (бан)" -#: classes/Notice.php:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "Проблемы с сохранением записи." -#: classes/Notice.php:882 +#: classes/Notice.php:911 msgid "Problem saving group inbox." msgstr "Проблемы с сохранением входящих сообщений группы." -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4538,19 +4581,27 @@ msgstr "Невозможно удалить самоподписку." msgid "Couldn't delete subscription." msgstr "Не удаётся удалить подписку." -#: classes/User.php:372 +#: classes/User.php:373 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Добро пожаловать на %1$s, @%2$s!" -#: classes/User_group.php:423 +#: classes/User_group.php:462 msgid "Could not create group." msgstr "Не удаётся создать группу." -#: classes/User_group.php:452 +#: classes/User_group.php:471 +msgid "Could not set group URI." +msgstr "Не удаётся назначить URI группы." + +#: classes/User_group.php:492 msgid "Could not set group membership." msgstr "Не удаётся назначить членство в группе." +#: classes/User_group.php:506 +msgid "Could not save local group info." +msgstr "Не удаётся сохранить информацию о локальной группе." + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "Изменить ваши настройки профиля" @@ -4592,120 +4643,190 @@ msgstr "Страница без названия" msgid "Primary site navigation" msgstr "Главная навигация" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "Моё" - -#: lib/action.php:439 +#, fuzzy +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Личный профиль и лента друзей" -#: lib/action.php:441 +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "Личное" + +#. TRANS: Tooltip for main menu option "Account" +#: lib/action.php:444 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Изменить ваш email, аватару, пароль, профиль" -#: lib/action.php:444 -msgid "Connect" -msgstr "Соединить" +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "Настройки" -#: lib/action.php:444 +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 +#, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Соединить с сервисами" -#: lib/action.php:448 +#: lib/action.php:453 +#, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "Соединить" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Изменить конфигурацию сайта" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" -msgstr "Пригласить" +#: lib/action.php:460 +#, fuzzy +msgctxt "MENU" +msgid "Admin" +msgstr "Настройки" -#: lib/action.php:453 lib/subgroupnav.php:106 -#, php-format +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 +#, fuzzy, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Пригласите друзей и коллег стать такими же как вы участниками %s" -#: lib/action.php:458 -msgid "Logout" -msgstr "Выход" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "Пригласить" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +#, fuzzy +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Выйти" -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "Выход" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 +#, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "Создать новый аккаунт" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "Регистрация" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +#, fuzzy +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Войти" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "Помощь" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "Вход" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 +#, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "Помощь" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "Поиск" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "Помощь" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +#, fuzzy +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Искать людей или текст" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "Поиск" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 msgid "Site notice" msgstr "Новая запись" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "Локальные виды" -#: lib/action.php:625 +#: lib/action.php:656 msgid "Page notice" msgstr "Новая запись" -#: lib/action.php:727 +#: lib/action.php:758 msgid "Secondary site navigation" msgstr "Навигация по подпискам" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "Помощь" + +#: lib/action.php:765 msgid "About" msgstr "О проекте" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "ЧаВо" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "TOS" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "Пользовательское соглашение" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "Исходный код" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "Контактная информация" -#: lib/action.php:751 +#: lib/action.php:782 msgid "Badge" msgstr "Бедж" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "StatusNet лицензия" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4714,12 +4835,12 @@ msgstr "" "**%%site.name%%** — это сервис микроблогинга, созданный для вас при помощи [%" "%site.broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** — сервис микроблогинга. " -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4731,110 +4852,163 @@ msgstr "" "лицензией [GNU Affero General Public License](http://www.fsf.org/licensing/" "licenses/agpl-3.0.html)." -#: lib/action.php:801 +#: lib/action.php:832 msgid "Site content license" msgstr "Лицензия содержимого сайта" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Содержание и данные %1$s являются личными и конфиденциальными." -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" "Авторские права на содержание и данные принадлежат %1$s. Все права защищены." -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Авторские права на содержание и данные принадлежат разработчикам. Все права " "защищены." -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "All " -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "license." -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "Разбиение на страницы" -#: lib/action.php:1141 +#: lib/action.php:1172 msgid "After" msgstr "Сюда" -#: lib/action.php:1149 +#: lib/action.php:1180 msgid "Before" msgstr "Туда" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." -msgstr "" +msgstr "Пока ещё нельзя обрабатывать удалённое содержимое." -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." -msgstr "" +msgstr "Пока ещё нельзя обрабатывать встроенный XML." -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." -msgstr "" +msgstr "Пока ещё нельзя обрабатывать встроенное содержание Base64." -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." msgstr "Вы не можете изменять этот сайт." -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 msgid "Changes to that panel are not allowed." msgstr "Изменения для этой панели недопустимы." -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 msgid "showForm() not implemented." msgstr "showForm() не реализована." -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 msgid "saveSettings() not implemented." msgstr "saveSettings() не реализована." -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 msgid "Unable to delete design setting." msgstr "Не удаётся удалить настройки оформления." -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 msgid "Basic site configuration" msgstr "Основная конфигурация сайта" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "Сайт" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 msgid "Design configuration" msgstr "Конфигурация оформления" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "Оформление" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 msgid "User configuration" msgstr "Конфигурация пользователя" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +#, fuzzy +msgctxt "MENU" +msgid "User" +msgstr "Пользователь" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 msgid "Access configuration" msgstr "Конфигурация доступа" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "Принять" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 msgid "Paths configuration" msgstr "Конфигурация путей" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +#, fuzzy +msgctxt "MENU" +msgid "Paths" +msgstr "Пути" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 msgid "Sessions configuration" msgstr "Конфигурация сессий" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "Сессии" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" "API ресурса требует доступ для чтения и записи, но у вас есть только доступ " "для чтения." -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4927,11 +5101,11 @@ msgstr "Сообщает, где появляется это вложение" msgid "Tags for this attachment" msgstr "Теги для этого вложения" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 msgid "Password changing failed" msgstr "Изменение пароля не удалось" -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 msgid "Password changing is not allowed" msgstr "Смена пароля не разрешена" @@ -5130,9 +5304,9 @@ msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "Эта ссылка действительна только один раз в течение 2 минут: %s" #: lib/command.php:692 -#, fuzzy, php-format +#, php-format msgid "Unsubscribed %s" -msgstr "Отписано от %s" +msgstr "Отписано %s" #: lib/command.php:709 msgid "You are not subscribed to anyone." @@ -5168,7 +5342,6 @@ msgstr[1] "Вы являетесь участником следующих гр msgstr[2] "Вы являетесь участником следующих групп:" #: lib/command.php:769 -#, fuzzy msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5221,6 +5394,7 @@ msgstr "" "d — прямое сообщение пользователю\n" "get — получить последнюю запись от пользователя\n" "whois — получить информацию из профиля пользователя\n" +"lose — отменить подписку пользователя на вас\n" "fav — добавить последнюю запись пользователя в число любимых\n" "fav # — добавить запись с заданным id в число любимых\n" "repeat # — повторить уведомление с заданным id\n" @@ -5247,19 +5421,19 @@ msgstr "" "tracks — пока не реализовано.\n" "tracking — пока не реализовано.\n" -#: lib/common.php:136 +#: lib/common.php:148 msgid "No configuration file found. " msgstr "Конфигурационный файл не найден. " -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "Конфигурационные файлы искались в следующих местах: " -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "Возможно, вы решите запустить установщик для исправления этого." -#: lib/common.php:140 +#: lib/common.php:152 msgid "Go to the installer." msgstr "Перейти к установщику" @@ -5449,23 +5623,23 @@ msgstr "Системная ошибка при загрузке файла." msgid "Not an image or corrupt file." msgstr "Не является изображением или повреждённый файл." -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "Неподдерживаемый формат файла изображения." -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Потерян файл." -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "Неподдерживаемый тип файла" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "МБ" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "КБ" @@ -5847,6 +6021,11 @@ msgstr "Для" msgid "Available characters" msgstr "6 или больше знаков" +#: 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 "Послать запись" @@ -5905,23 +6084,23 @@ msgstr "з. д." msgid "at" msgstr "на" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 msgid "in context" msgstr "в контексте" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 msgid "Repeated by" msgstr "Повторено" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 msgid "Reply to this notice" msgstr "Ответить на эту запись" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 msgid "Reply" msgstr "Ответить" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 msgid "Notice repeated" msgstr "Запись повторена" @@ -5969,6 +6148,10 @@ msgstr "Ответы" msgid "Favorites" msgstr "Любимое" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "Пользователь" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Входящие" @@ -6058,7 +6241,7 @@ msgstr "Повторить эту запись?" msgid "Repeat this notice" msgstr "Повторить эту запись" -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "Ни задан пользователь для однопользовательского режима." @@ -6078,6 +6261,10 @@ msgstr "Поиск по сайту" msgid "Keyword(s)" msgstr "Ключевые слова" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "Поиск" + #: lib/searchaction.php:162 msgid "Search help" msgstr "Справка по поиску" @@ -6129,6 +6316,15 @@ msgstr "Люди подписанные на %s" msgid "Groups %s is a member of" msgstr "Группы, в которых состоит %s" +#: lib/subgroupnav.php:105 +msgid "Invite" +msgstr "Пригласить" + +#: lib/subgroupnav.php:106 +#, php-format +msgid "Invite friends and colleagues to join you on %s" +msgstr "Пригласите друзей и коллег стать такими же как вы участниками %s" + #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 msgid "People Tagcloud as self-tagged" @@ -6199,47 +6395,47 @@ msgstr "Сообщение" msgid "Moderate" msgstr "Модерировать" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "пару секунд назад" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "около минуты назад" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "около %d минут(ы) назад" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "около часа назад" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "около %d часа(ов) назад" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "около дня назад" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "около %d дня(ей) назад" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "около месяца назад" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "около %d месяца(ев) назад" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "около года назад" diff --git a/locale/statusnet.po b/locale/statusnet.po index 8e1434497..3f4ad499f 100644 --- a/locale/statusnet.po +++ b/locale/statusnet.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-01 14:08+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,64 +17,69 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:337 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 msgid "Access" msgstr "" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 msgid "Site access settings" msgstr "" -#: actions/accessadminpanel.php:158 -msgid "Registration" -msgstr "" - +#. TRANS: Form legend for registration form. #: actions/accessadminpanel.php:161 -msgid "Private" +msgid "Registration" msgstr "" -#: actions/accessadminpanel.php:163 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "" +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -msgid "Invite only" +msgctxt "LABEL" +msgid "Private" msgstr "" -#: actions/accessadminpanel.php:169 +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 msgid "Make registration invitation only." msgstr "" -#: actions/accessadminpanel.php:173 -msgid "Closed" +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 +msgid "Invite only" msgstr "" -#: actions/accessadminpanel.php:175 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 msgid "Disable new registrations." msgstr "" -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 +msgid "Closed" msgstr "" -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 msgid "Save access settings" msgstr "" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +msgctxt "BUTTON" +msgid "Save" +msgstr "" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page" msgstr "" -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -100,61 +105,70 @@ msgstr "" msgid "No such user." msgstr "" -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, php-format msgid "%1$s and friends, page %2$d" msgstr "" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 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." msgstr "" -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 msgid "You and friends" msgstr "" @@ -176,9 +190,9 @@ msgstr "" #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 -#: actions/apigroupshow.php:105 actions/apihelptest.php:88 +#: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:131 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 #: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 @@ -421,7 +435,7 @@ msgstr "" #: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 #: actions/apigroupleave.php:104 actions/apigroupmembership.php:91 -#: actions/apigroupshow.php:90 actions/apitimelinegroup.php:91 +#: actions/apigroupshow.php:82 actions/apitimelinegroup.php:91 msgid "Group not found!" msgstr "" @@ -493,11 +507,11 @@ msgid "Invalid nickname / password!" msgstr "" #: actions/apioauthauthorize.php:159 -msgid "DB error deleting OAuth app user." +msgid "Database error deleting OAuth application user." msgstr "" #: actions/apioauthauthorize.php:185 -msgid "DB error inserting OAuth app user." +msgid "Database error inserting OAuth application user." msgstr "" #: actions/apioauthauthorize.php:214 @@ -537,7 +551,7 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 msgid "Account" msgstr "" @@ -666,7 +680,7 @@ msgstr "" msgid "Repeats of %s" msgstr "" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "" @@ -881,7 +895,7 @@ msgid "Couldn't delete email confirmation." msgstr "" #: actions/confirmaddress.php:144 -msgid "Confirm Address" +msgid "Confirm address" msgstr "" #: actions/confirmaddress.php:159 @@ -913,7 +927,7 @@ msgstr "" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "" @@ -936,12 +950,13 @@ msgstr "" msgid "Delete this application" msgstr "" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "" @@ -995,7 +1010,7 @@ msgid "Delete this user" msgstr "" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:327 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "" @@ -1096,6 +1111,17 @@ msgstr "" msgid "Reset back to default" msgstr "" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "" @@ -1629,7 +1655,7 @@ msgstr "" msgid "A list of the users in this group." msgstr "" -#: actions/groupmembers.php:182 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "" @@ -1885,16 +1911,18 @@ msgstr "" msgid "Optionally add a personal message to the invitation." msgstr "" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +msgctxt "BUTTON" msgid "Send" msgstr "" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "" -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -1963,8 +1991,7 @@ msgstr "" msgid "Error setting user. You are probably not authorized." msgstr "" -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "" @@ -2203,8 +2230,8 @@ msgstr "" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1039 -#: lib/apiaction.php:1067 lib/apiaction.php:1176 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "" @@ -2217,7 +2244,7 @@ msgid "Notice Search" msgstr "" #: actions/othersettings.php:60 -msgid "Other Settings" +msgid "Other settings" msgstr "" #: actions/othersettings.php:71 @@ -2343,7 +2370,7 @@ msgstr "" msgid "Password saved." msgstr "" -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:342 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "" @@ -2376,7 +2403,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:322 msgid "Site" msgstr "" @@ -2652,7 +2678,8 @@ msgstr "" msgid "Couldn't save tags." msgstr "" -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "" @@ -2665,45 +2692,45 @@ msgstr "" msgid "Could not retrieve public stream." msgstr "" -#: actions/public.php:129 +#: actions/public.php:130 #, php-format msgid "Public timeline, page %d" msgstr "" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "" -#: actions/public.php:159 +#: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" msgstr "" -#: actions/public.php:163 +#: actions/public.php:164 msgid "Public Stream Feed (RSS 2.0)" msgstr "" -#: actions/public.php:167 +#: actions/public.php:168 msgid "Public Stream Feed (Atom)" msgstr "" -#: actions/public.php:187 +#: 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:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2712,7 +2739,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:246 +#: actions/public.php:247 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2881,8 +2908,7 @@ msgstr "" msgid "Registration successful" msgstr "" -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "" @@ -3049,47 +3075,47 @@ msgstr "" msgid "Repeated!" msgstr "" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "" -#: actions/replies.php:127 +#: actions/replies.php:128 #, php-format msgid "Replies to %1$s, page %2$d" msgstr "" -#: actions/replies.php:144 +#: actions/replies.php:145 #, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "" -#: actions/replies.php:151 +#: actions/replies.php:152 #, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "" -#: actions/replies.php:158 +#: actions/replies.php:159 #, php-format msgid "Replies feed for %s (Atom)" msgstr "" -#: actions/replies.php:198 +#: actions/replies.php:199 #, 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 "" -#: actions/replies.php:203 +#: 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:205 +#: actions/replies.php:206 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3114,7 +3140,6 @@ msgid "User is already sandboxed." msgstr "" #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:347 msgid "Sessions" msgstr "" @@ -3139,7 +3164,7 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "" @@ -3230,35 +3255,35 @@ msgstr "" msgid "Could not retrieve favorite notices." msgstr "" -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" msgstr "" -#: actions/showfavorites.php:205 +#: 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:207 +#: 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 :)" msgstr "" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3266,7 +3291,7 @@ msgid "" "would add to their favorites :)" msgstr "" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "" @@ -3805,22 +3830,22 @@ msgstr "" msgid "SMS" msgstr "" -#: actions/tag.php:68 +#: actions/tag.php:69 #, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "" -#: actions/tag.php:86 +#: actions/tag.php:87 #, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "" -#: actions/tag.php:92 +#: actions/tag.php:93 #, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "" -#: actions/tag.php:98 +#: actions/tag.php:99 #, php-format msgid "Notice feed for tag %s (Atom)" msgstr "" @@ -3900,70 +3925,71 @@ msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:332 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +msgctxt "TITLE" msgid "User" msgstr "" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "" -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "" -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "" -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "" -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 msgid "New users" msgstr "" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "" -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 msgid "Default subscription" msgstr "" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 msgid "Automatically subscribe new users to this user." msgstr "" -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 msgid "Invitations" msgstr "" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 msgid "Invitations enabled" msgstr "" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "" @@ -4136,7 +4162,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 msgid "Version" msgstr "" @@ -4255,11 +4281,11 @@ msgstr "" msgid "Couldn't delete self-subscription." msgstr "" -#: classes/Subscription.php:179 +#: classes/Subscription.php:179 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "" -#: classes/User.php:372 +#: classes/User.php:373 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" @@ -4269,7 +4295,7 @@ msgid "Could not create group." msgstr "" #: classes/User_group.php:471 -msgid "Could not set group uri." +msgid "Could not set group URI." msgstr "" #: classes/User_group.php:492 @@ -4321,132 +4347,183 @@ msgstr "" msgid "Primary site navigation" msgstr "" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" +msgctxt "TOOLTIP" +msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:439 -msgid "Personal profile and friends timeline" +#: lib/action.php:442 +msgctxt "MENU" +msgid "Personal" msgstr "" -#: lib/action.php:441 +#. TRANS: Tooltip for main menu option "Account" +#: lib/action.php:444 +msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "" -#: lib/action.php:444 -msgid "Connect" +#: lib/action.php:447 +msgctxt "MENU" +msgid "Account" msgstr "" -#: lib/action.php:444 +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 +msgctxt "TOOLTIP" msgid "Connect to services" msgstr "" -#: lib/action.php:448 +#: lib/action.php:453 +msgctxt "MENU" +msgid "Connect" +msgstr "" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 +msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" +#: lib/action.php:460 +msgctxt "MENU" +msgid "Admin" msgstr "" -#: lib/action.php:453 lib/subgroupnav.php:106 +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 #, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "" -#: lib/action.php:458 -msgid "Logout" +#: lib/action.php:467 +msgctxt "MENU" +msgid "Invite" msgstr "" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "" -#: lib/action.php:463 +#: lib/action.php:476 +msgctxt "MENU" +msgid "Logout" +msgstr "" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 +msgctxt "TOOLTIP" msgid "Create an account" msgstr "" -#: lib/action.php:466 +#: lib/action.php:484 +msgctxt "MENU" +msgid "Register" +msgstr "" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" +#: lib/action.php:490 +msgctxt "MENU" +msgid "Login" msgstr "" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 +msgctxt "TOOLTIP" msgid "Help me!" msgstr "" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" +#: lib/action.php:496 +msgctxt "MENU" +msgid "Help" msgstr "" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "" -#: lib/action.php:493 +#: lib/action.php:502 +msgctxt "MENU" +msgid "Search" +msgstr "" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 msgid "Site notice" msgstr "" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "" -#: lib/action.php:625 +#: lib/action.php:656 msgid "Page notice" msgstr "" -#: lib/action.php:727 +#: lib/action.php:758 msgid "Secondary site navigation" msgstr "" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "" + +#: lib/action.php:765 msgid "About" msgstr "" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "" -#: lib/action.php:751 +#: lib/action.php:782 msgid "Badge" msgstr "" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%). " msgstr "" -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "" -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4454,41 +4531,41 @@ msgid "" "org/licensing/licenses/agpl-3.0.html)." msgstr "" -#: lib/action.php:801 +#: lib/action.php:832 msgid "Site content license" msgstr "" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "" -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "" -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "" -#: lib/action.php:1141 +#: lib/action.php:1172 msgid "After" msgstr "" -#: lib/action.php:1149 +#: lib/action.php:1180 msgid "Before" msgstr "" @@ -4504,50 +4581,97 @@ msgstr "" msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." msgstr "" -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 msgid "Changes to that panel are not allowed." msgstr "" -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 msgid "showForm() not implemented." msgstr "" -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 msgid "saveSettings() not implemented." msgstr "" -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 msgid "Unable to delete design setting." msgstr "" -#: lib/adminpanelaction.php:323 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 msgid "Basic site configuration" msgstr "" -#: lib/adminpanelaction.php:328 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +msgctxt "MENU" +msgid "Site" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 msgid "Design configuration" msgstr "" -#: lib/adminpanelaction.php:333 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +msgctxt "MENU" +msgid "Design" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 msgid "User configuration" msgstr "" -#: lib/adminpanelaction.php:338 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +msgctxt "MENU" +msgid "User" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 msgid "Access configuration" msgstr "" -#: lib/adminpanelaction.php:343 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +msgctxt "MENU" +msgid "Access" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 msgid "Paths configuration" msgstr "" -#: lib/adminpanelaction.php:348 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +msgctxt "MENU" +msgid "Paths" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 msgid "Sessions configuration" msgstr "" +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +msgctxt "MENU" +msgid "Sessions" +msgstr "" + #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" @@ -4642,11 +4766,11 @@ msgstr "" msgid "Tags for this attachment" msgstr "" -#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 msgid "Password changing failed" msgstr "" -#: lib/authenticationplugin.php:197 +#: lib/authenticationplugin.php:235 msgid "Password changing is not allowed" msgstr "" @@ -4803,7 +4927,7 @@ msgstr "" msgid "Subscribed to %s" msgstr "" -#: lib/command.php:582 +#: lib/command.php:582 lib/command.php:685 msgid "Specify the name of the user to unsubscribe from" msgstr "" @@ -4841,37 +4965,42 @@ msgstr "" msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" -#: lib/command.php:681 +#: lib/command.php:692 +#, php-format +msgid "Unsubscribed %s" +msgstr "" + +#: lib/command.php:709 msgid "You are not subscribed to anyone." msgstr "" -#: lib/command.php:683 +#: lib/command.php:711 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "" msgstr[1] "" -#: lib/command.php:703 +#: lib/command.php:731 msgid "No one is subscribed to you." msgstr "" -#: lib/command.php:705 +#: lib/command.php:733 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "" msgstr[1] "" -#: lib/command.php:725 +#: lib/command.php:753 msgid "You are not a member of any groups." msgstr "" -#: lib/command.php:727 +#: lib/command.php:755 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "" msgstr[1] "" -#: lib/command.php:741 +#: lib/command.php:769 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -4885,6 +5014,7 @@ msgid "" "d - direct message to user\n" "get - get last notice from user\n" "whois - get profile info on user\n" +"lose - force user to stop following you\n" "fav - add user's last notice as a 'fave'\n" "fav # - add notice with the given id as a 'fave'\n" "repeat # - repeat a notice with a given id\n" @@ -4912,19 +5042,19 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:148 msgid "No configuration file found. " msgstr "" -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:152 msgid "Go to the installer." msgstr "" @@ -5110,23 +5240,23 @@ msgstr "" msgid "Not an image or corrupt file." msgstr "" -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "" -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "" -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "" @@ -5419,6 +5549,11 @@ msgstr "" 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 "" @@ -5539,6 +5674,10 @@ msgstr "" msgid "Favorites" msgstr "" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "" @@ -5648,6 +5787,10 @@ msgstr "" msgid "Keyword(s)" msgstr "" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "" + #: lib/searchaction.php:162 msgid "Search help" msgstr "" @@ -5699,6 +5842,15 @@ msgstr "" 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" @@ -5769,47 +5921,47 @@ msgstr "" msgid "Moderate" msgstr "" -#: lib/util.php:1000 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "" -#: lib/util.php:1002 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "" -#: lib/util.php:1004 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "" -#: lib/util.php:1006 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "" -#: lib/util.php:1008 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "" -#: lib/util.php:1010 +#: lib/util.php:1023 msgid "about a day ago" msgstr "" -#: lib/util.php:1012 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "" -#: lib/util.php:1014 +#: lib/util.php:1027 msgid "about a month ago" msgstr "" -#: lib/util.php:1016 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "" -#: lib/util.php:1018 +#: lib/util.php:1031 msgid "about a year ago" msgstr "" diff --git a/locale/sv/LC_MESSAGES/statusnet.po b/locale/sv/LC_MESSAGES/statusnet.po index b09823e6b..b1ac66f65 100644 --- a/locale/sv/LC_MESSAGES/statusnet.po +++ b/locale/sv/LC_MESSAGES/statusnet.po @@ -9,76 +9,83 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:51:44+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:03:47+0000\n" "Language-Team: Swedish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: sv\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 msgid "Access" msgstr "Åtkomst" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 msgid "Site access settings" msgstr "Inställningar för webbplatsåtkomst" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 msgid "Registration" msgstr "Registrering" -#: actions/accessadminpanel.php:161 -msgid "Private" -msgstr "Privat" - -#: actions/accessadminpanel.php:163 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "" "Skall anonyma användare (inte inloggade) förhindras från att se webbplatsen?" +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -msgid "Invite only" -msgstr "Endast inbjudan" +#, fuzzy +msgctxt "LABEL" +msgid "Private" +msgstr "Privat" -#: actions/accessadminpanel.php:169 +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 msgid "Make registration invitation only." msgstr "Gör så att registrering endast sker genom inbjudan." -#: actions/accessadminpanel.php:173 -msgid "Closed" -msgstr "Stängd" +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 +msgid "Invite only" +msgstr "Endast inbjudan" -#: actions/accessadminpanel.php:175 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 msgid "Disable new registrations." msgstr "Inaktivera nya registreringar." -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "Spara" +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 +msgid "Closed" +msgstr "Stängd" -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 msgid "Save access settings" msgstr "Spara inställningar för åtkomst" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "Spara" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page" msgstr "Ingen sådan sida" -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -92,51 +99,59 @@ msgstr "Ingen sådan sida" #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "Ingen sådan användare." -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s och vänner, sida %2$d" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s och vänner" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Flöden för %ss vänner (RSS 1.0)" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Flöden för %ss vänner (RSS 2.0)" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Flöden för %ss vänner (Atom)" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "Detta är tidslinjen för %s och vänner, men ingen har skrivit något än." -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -145,7 +160,8 @@ msgstr "" "Prova att prenumerera på fler personer, [gå med i en grupp](%%action.groups%" "%) eller skriv något själv." -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " @@ -155,7 +171,7 @@ msgstr "" "någonting för hans eller hennes uppmärksamhet](%%%%action.newnotice%%%%?" "status_textarea=%3$s)." -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -164,7 +180,8 @@ msgstr "" "Varför inte [registrera ett konto](%%%%action.register%%%%) och sedan knuffa " "%s eller skriva en notis för hans eller hennes uppmärksamhet." -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 msgid "You and friends" msgstr "Du och vänner" @@ -182,20 +199,20 @@ msgstr "Uppdateringar från %1$s och vänner på %2$s!" #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 msgid "API method not found." msgstr "API-metod hittades inte." @@ -227,8 +244,9 @@ msgstr "Kunde inte uppdatera användare." #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "Användaren har ingen profil." @@ -254,7 +272,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: 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." @@ -364,69 +382,69 @@ msgstr "Kunde inte fastställa användare hos källan." msgid "Could not find target user." msgstr "Kunde inte hitta målanvändare." -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "" "Smeknamnet får endast innehålla små bokstäver eller siffror, inga mellanslag." -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Smeknamnet används redan. Försök med ett annat." -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Inte ett giltigt smeknamn." -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Hemsida är inte en giltig URL." -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Fullständigt namn är för långt (max 255 tecken)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "Beskrivning är för lång (max 140 tecken)." -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Beskrivning av plats är för lång (max 255 tecken)." -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "För många alias! Maximum %d." -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Ogiltigt alias: \"%s\"" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Alias \"%s\" används redan. Försök med ett annat." -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "Alias kan inte vara samma som smeknamn." @@ -437,15 +455,15 @@ msgstr "Alias kan inte vara samma som smeknamn." msgid "Group not found!" msgstr "Grupp hittades inte!" -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 msgid "You are already a member of that group." msgstr "Du är redan en medlem i denna grupp." -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "Du har blivit blockerad från denna grupp av administratören." -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Kunde inte ansluta användare %1$s till grupp %2$s." @@ -454,7 +472,7 @@ msgstr "Kunde inte ansluta användare %1$s till grupp %2$s." msgid "You are not a member of this group." msgstr "Du är inte en medlem i denna grupp." -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Kunde inte ta bort användare %1$s från grupp %2$s." @@ -485,7 +503,7 @@ msgstr "Ogiltig token." #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -526,7 +544,7 @@ msgstr "Begäran-token %s har nekats och återkallats." #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -552,13 +570,13 @@ msgstr "" "möjligheten att %3$s din %4$s kontoinformation. Du bör bara " "ge tillgång till ditt %4$s-konto till tredje-parter du litar på." -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 msgid "Account" msgstr "Konto" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -640,12 +658,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s uppdateringar markerade som favorit av %2$s / %2$s." #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "%s tidslinje" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -681,7 +699,7 @@ msgstr "Upprepat till %s" msgid "Repeats of %s" msgstr "Upprepningar av %s" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Notiser taggade med %s" @@ -702,8 +720,7 @@ msgstr "Ingen sådan bilaga." #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "Inget smeknamn." @@ -715,7 +732,7 @@ msgstr "Ingen storlek." msgid "Invalid size." msgstr "Ogiltig storlek." -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Avatar" @@ -733,30 +750,30 @@ msgid "User without matching profile" msgstr "Användare utan matchande profil" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Avatarinställningar" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Orginal" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Förhandsgranska" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 msgid "Delete" msgstr "Ta bort" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "Ladda upp" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "Beskär" @@ -764,7 +781,7 @@ msgstr "Beskär" msgid "Pick a square area of the image to be your avatar" msgstr "Välj ett kvadratiskt område i bilden som din avatar" -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Förlorade vår fildata." @@ -799,22 +816,22 @@ msgstr "" "framtiden och du kommer inte bli underrättad om några @-svar från dem." #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "Nej" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 msgid "Do not block this user" msgstr "Blockera inte denna användare" #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Ja" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 msgid "Block this user" msgstr "Blockera denna användare" @@ -822,40 +839,44 @@ msgstr "Blockera denna användare" msgid "Failed to save block information." msgstr "Misslyckades att spara blockeringsinformation." -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 msgid "No such group." msgstr "Ingen sådan grupp." -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, php-format msgid "%s blocked profiles" msgstr "%s blockerade profiler" -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%1$s blockerade profiler, sida %2$d" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." msgstr "" "En lista med de användare som blockerats från att gå med i denna grupp." -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 msgid "Unblock user from group" msgstr "Häv blockering av användare från grupp" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "Häv blockering" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 msgid "Unblock this user" msgstr "Häv blockering av denna användare" @@ -930,7 +951,7 @@ msgstr "Du är inte ägaren av denna applikation." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "Det var ett problem med din sessions-token." @@ -956,12 +977,13 @@ msgstr "Ta inte bort denna applikation" msgid "Delete this application" msgstr "Ta bort denna applikation" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Inte inloggad." @@ -990,7 +1012,7 @@ msgstr "Är du säker på att du vill ta bort denna notis?" msgid "Do not delete this notice" msgstr "Ta inte bort denna notis" -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 msgid "Delete this notice" msgstr "Ta bort denna notis" @@ -1006,7 +1028,7 @@ msgstr "Du kan bara ta bort lokala användare." msgid "Delete user" msgstr "Ta bort användare" -#: actions/deleteuser.php:135 +#: 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." @@ -1014,12 +1036,12 @@ msgstr "" "Är du säker på att du vill ta bort denna användare? Det kommer rensa all " "data om användaren från databasen, utan en säkerhetskopia." -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 msgid "Delete this user" msgstr "Ta bort denna användare" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "Utseende" @@ -1122,6 +1144,17 @@ msgstr "Återställ standardutseende" msgid "Reset back to default" msgstr "Återställ till standardvärde" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "Spara" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "Spara utseende" @@ -1213,29 +1246,29 @@ msgstr "Redigera %s grupp" msgid "You must be logged in to create a group." msgstr "Du måste vara inloggad för att skapa en grupp." -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: 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 måste vara en administratör för att redigera gruppen." -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "Använd detta formulär för att redigera gruppen." -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, php-format msgid "description is too long (max %d chars)." msgstr "beskrivning är för lång (max %d tecken)." -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 msgid "Could not update group." msgstr "Kunde inte uppdatera grupp." -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 msgid "Could not create aliases." msgstr "Kunde inte skapa alias." -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 msgid "Options saved." msgstr "Alternativ sparade." @@ -1576,7 +1609,7 @@ msgstr "Användaren är redan blockerad från grupp." msgid "User is not a member of group." msgstr "Användare är inte en gruppmedlem." -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 msgid "Block user from group" msgstr "Blockera användare från grupp" @@ -1611,31 +1644,31 @@ msgstr "Ingen ID." msgid "You must be logged in to edit a group." msgstr "Du måste vara inloggad för att redigera en grupp." -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 msgid "Group design" msgstr "Gruppens utseende" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." msgstr "" "Anpassa hur din grupp ser ut genom att välja bakgrundbild och färgpalett." -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 msgid "Couldn't update your design." msgstr "Kunde inte uppdatera dina utseendeinställningar." -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 msgid "Design preferences saved." msgstr "Utseendeinställningar sparade." -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "Gruppens logotyp" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." @@ -1643,57 +1676,57 @@ msgstr "" "Du kan ladda upp en logotypbild för din grupp. Den maximala filstorleken är %" "s." -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 msgid "User without matching profile." msgstr "Användare utan matchande profil." -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Välj ett kvadratiskt område i bilden som logotyp" -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 msgid "Logo updated." msgstr "Logtyp uppdaterad." -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 msgid "Failed updating logo." msgstr "Misslyckades uppdatera logtyp." -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "%s gruppmedlemmar" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, php-format msgid "%1$s group members, page %2$d" msgstr "%1$s gruppmedlemmar, sida %2$d" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "En lista av användarna i denna grupp." -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "Administratör" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "Blockera" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 msgid "Make user an admin of the group" msgstr "Gör användare till en administratör för gruppen" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make Admin" msgstr "Gör till administratör" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "Gör denna användare till administratör" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Uppdateringar från medlemmar i %1$s på %2$s!" @@ -1958,16 +1991,19 @@ msgstr "Personligt meddelande" msgid "Optionally add a personal message to the invitation." msgstr "Om du vill, skriv ett personligt meddelande till inbjudan." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" msgstr "Skicka" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s har bjudit in dig att gå med dem på %2$s" -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2028,7 +2064,11 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Du måste vara inloggad för att kunna gå med i en grupp." -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Inget smeknamn eller ID." + +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s gick med i grupp %2$s" @@ -2037,11 +2077,11 @@ msgstr "%1$s gick med i grupp %2$s" msgid "You must be logged in to leave a group." msgstr "Du måste vara inloggad för att lämna en grupp." -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 msgid "You are not a member of that group." msgstr "Du är inte en medlem i den gruppen." -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s lämnade grupp %2$s" @@ -2058,8 +2098,7 @@ msgstr "Felaktigt användarnamn eller lösenord." msgid "Error setting user. You are probably not authorized." msgstr "Fel vid inställning av användare. Du har sannolikt inte tillstånd." -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "Logga in" @@ -2313,8 +2352,8 @@ msgstr "innehållstyp " msgid "Only " msgstr "Bara " -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "Ett dataformat som inte stödjs" @@ -2453,7 +2492,7 @@ msgstr "Kan inte spara nytt lösenord." msgid "Password saved." msgstr "Lösenord sparat." -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "Sökvägar" @@ -2486,7 +2525,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "Ogiltigt SSL-servernamn. Den maximala längden är 255 tecken." #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 msgid "Site" msgstr "Webbplats" @@ -2659,7 +2697,7 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 små bokstäver eller nummer, inga punkter eller mellanslag" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "Fullständigt namn" @@ -2687,7 +2725,7 @@ msgid "Bio" msgstr "Biografi" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2771,7 +2809,8 @@ msgstr "Kunde inte spara profil." msgid "Couldn't save tags." msgstr "Kunde inte spara taggar." -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "Inställningar sparade." @@ -2784,28 +2823,28 @@ msgstr "Bortom sidbegränsningen (%s)" msgid "Could not retrieve public stream." msgstr "Kunde inte hämta publik ström." -#: actions/public.php:129 +#: actions/public.php:130 #, php-format msgid "Public timeline, page %d" msgstr "Publik tidslinje, sida %d" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "Publik tidslinje" -#: actions/public.php:159 +#: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" msgstr "Publikt flöde av ström (RSS 1.0)" -#: actions/public.php:163 +#: actions/public.php:164 msgid "Public Stream Feed (RSS 2.0)" msgstr "Publikt flöde av ström (RSS 2.0)" -#: actions/public.php:167 +#: actions/public.php:168 msgid "Public Stream Feed (Atom)" msgstr "Publikt flöde av ström (Atom)" -#: actions/public.php:187 +#: actions/public.php:188 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " @@ -2814,11 +2853,11 @@ msgstr "" "Detta är den publika tidslinjen för %%site.name%% men ingen har postat något " "än." -#: actions/public.php:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "Bli först att posta!" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" @@ -2826,7 +2865,7 @@ msgstr "" "Varför inte [registrera ett konto](%%action.register%%) och bli först att " "posta!" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2839,7 +2878,7 @@ msgstr "" "net/). [Gå med nu](%%action.register%%) för att dela notiser om dig själv " "med vänner, familj och kollegor! ([Läs mer](%%doc.help%%))" -#: actions/public.php:246 +#: actions/public.php:247 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3018,8 +3057,7 @@ msgstr "Tyvärr, ogiltig inbjudningskod." msgid "Registration successful" msgstr "Registreringen genomförd" -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "Registrera" @@ -3208,7 +3246,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:656 +#: actions/repeat.php:114 lib/noticelist.php:674 msgid "Repeated" msgstr "Upprepad" @@ -3216,33 +3254,33 @@ msgstr "Upprepad" msgid "Repeated!" msgstr "Upprepad!" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "Svarat till %s" -#: actions/replies.php:127 +#: actions/replies.php:128 #, php-format msgid "Replies to %1$s, page %2$d" msgstr "Svar till %1$s, sida %2$s" -#: actions/replies.php:144 +#: actions/replies.php:145 #, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "Flöde med svar för %s (RSS 1.0)" -#: actions/replies.php:151 +#: actions/replies.php:152 #, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "Flöde med svar för %s (RSS 2.0)" -#: actions/replies.php:158 +#: actions/replies.php:159 #, php-format msgid "Replies feed for %s (Atom)" msgstr "Flöde med svar för %s (Atom)" -#: actions/replies.php:198 +#: actions/replies.php:199 #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " @@ -3251,7 +3289,7 @@ msgstr "" "Detta är tidslinjen som visar svar till %s1$ men %2$s har inte tagit emot en " "notis för dennes uppmärksamhet än." -#: actions/replies.php:203 +#: actions/replies.php:204 #, php-format msgid "" "You can engage other users in a conversation, subscribe to more people or " @@ -3260,7 +3298,7 @@ msgstr "" "Du kan engagera andra användare i en konversation, prenumerera på fler " "personer eller [gå med i grupper](%%action.groups%%)." -#: actions/replies.php:205 +#: actions/replies.php:206 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3287,7 +3325,6 @@ msgid "User is already sandboxed." msgstr "Användare är redan flyttad till sandlådan." #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "Sessioner" @@ -3312,7 +3349,7 @@ msgid "Turn on debugging output for sessions." msgstr "Sätt på felsökningsutdata för sessioner." #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Spara webbplatsinställningar" @@ -3342,7 +3379,7 @@ msgstr "Organisation" msgid "Description" msgstr "Beskrivning" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Statistik" @@ -3406,22 +3443,22 @@ msgstr "%1$ss favoritnotiser, sida %2$d" msgid "Could not retrieve favorite notices." msgstr "Kunde inte hämta favoritnotiser." -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "Flöde för %ss favoriter (RSS 1.0)" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "Flöde för %ss favoriter (RSS 2.0)" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" msgstr "Flöde för %ss favoriter (Atom)" -#: actions/showfavorites.php:205 +#: 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." @@ -3430,7 +3467,7 @@ msgstr "" "bredvid någon notis du skulle vilja bokmärka för senare tillfälle eller för " "att sätta strålkastarljuset på." -#: actions/showfavorites.php:207 +#: actions/showfavorites.php:208 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Post something interesting " @@ -3439,7 +3476,7 @@ 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:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3450,7 +3487,7 @@ msgstr "" "[registrera ett konto](%%%%action.register%%%%) och posta något intressant " "de skulle lägga till sina favoriter :)" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "Detta är ett sätt att dela med av det du gillar." @@ -3464,67 +3501,67 @@ msgstr "%s grupp" msgid "%1$s group, page %2$d" msgstr "%1$s grupp, sida %2$d" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 msgid "Group profile" msgstr "Grupprofil" -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "URL" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 msgid "Note" msgstr "Notis" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "Alias" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "Åtgärder för grupp" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Flöde av notiser för %s grupp (RSS 1.0)" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Flöde av notiser för %s grupp (RSS 2.0)" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Flöde av notiser för %s grupp (Atom)" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, php-format msgid "FOAF for %s group" msgstr "FOAF för %s grupp" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 msgid "Members" msgstr "Medlemmar" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Ingen)" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "Alla medlemmar" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 msgid "Created" msgstr "Skapad" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3539,7 +3576,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:454 +#: actions/showgroup.php:462 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3552,7 +3589,7 @@ msgstr "" "[StatusNet](http://status.net/). Dess medlemmar delar korta meddelande om " "sina liv och intressen. " -#: actions/showgroup.php:482 +#: actions/showgroup.php:490 msgid "Admins" msgstr "Administratörer" @@ -3924,17 +3961,15 @@ msgstr "Kunde inte spara prenumeration." #: actions/subscribe.php:77 msgid "This action only accepts POST requests." -msgstr "" +msgstr "Denna åtgärd accepterar endast POST-begäran." #: actions/subscribe.php:107 -#, fuzzy msgid "No such profile." -msgstr "Ingen sådan fil." +msgstr "Ingen sådan profil." #: actions/subscribe.php:117 -#, fuzzy msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." -msgstr "Du är inte prenumerat hos den profilen." +msgstr "Du kan inte prenumerera på en 0MB 0.1-fjärrprofil med denna åtgärd." #: actions/subscribe.php:145 msgid "Subscribed" @@ -4029,22 +4064,22 @@ msgstr "Jabber" msgid "SMS" msgstr "SMS" -#: actions/tag.php:68 +#: actions/tag.php:69 #, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "Notiser taggade med %1$s, sida %2$d" -#: actions/tag.php:86 +#: actions/tag.php:87 #, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "Flöde av notiser för tagg %s (RSS 1.0)" -#: actions/tag.php:92 +#: actions/tag.php:93 #, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "Flöde av notiser för tagg %s (RSS 2.0)" -#: actions/tag.php:98 +#: actions/tag.php:99 #, php-format msgid "Notice feed for tag %s (Atom)" msgstr "Flöde av notiser för tagg %s (Atom)" @@ -4099,7 +4134,7 @@ msgstr "" msgid "No such tag." msgstr "Ingen sådan tagg." -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "API-metoden är under uppbyggnad." @@ -4131,72 +4166,74 @@ msgstr "" "Licensen för lyssnarströmmen '%1$s' är inte förenlig med webbplatslicensen '%" "2$s'." -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +#, fuzzy +msgctxt "TITLE" msgid "User" msgstr "Användare" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "Användarinställningar för denna StatusNet-webbplats" -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "Ogiltig begränsning av biografi. Måste vara numerisk." -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "Ogiltig välkomsttext. Maximal längd är 255 tecken." -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "Ogiltig standardprenumeration: '%1$s' är inte användare." -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "Profil" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "Begränsning av biografi" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "Maximal teckenlängd av profilbiografi." -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 msgid "New users" msgstr "Nya användare" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "Välkomnande av ny användare" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "Välkomsttext för nya användare (max 255 tecken)." -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 msgid "Default subscription" msgstr "Standardprenumerationer" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 msgid "Automatically subscribe new users to this user." msgstr "" "Lägg automatiskt till en prenumeration på denna användare för alla nya " "användare." -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 msgid "Invitations" msgstr "Inbjudningar" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 msgid "Invitations enabled" msgstr "Inbjudningar aktiverade" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "Hurvida användare skall tillåtas bjuda in nya användare." @@ -4392,7 +4429,7 @@ msgstr "" msgid "Plugins" msgstr "Insticksmoduler" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 msgid "Version" msgstr "Version" @@ -4431,6 +4468,10 @@ msgstr "Inte med i grupp." msgid "Group leave failed." msgstr "Grupputträde misslyckades." +#: classes/Local_group.php:41 +msgid "Could not update local group." +msgstr "Kunde inte uppdatera lokal grupp." + #: classes/Login_token.php:76 #, php-format msgid "Could not create login token for %s" @@ -4448,27 +4489,27 @@ msgstr "Kunde inte infoga meddelande." msgid "Could not update message with new URI." msgstr "Kunde inte uppdatera meddelande med ny URI." -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "Databasfel vid infogning av hashtag: %s" -#: classes/Notice.php:222 +#: classes/Notice.php:239 msgid "Problem saving notice. Too long." msgstr "Problem vid sparande av notis. För långt." -#: classes/Notice.php:226 +#: classes/Notice.php:243 msgid "Problem saving notice. Unknown user." msgstr "Problem vid sparande av notis. Okänd användare." -#: classes/Notice.php:231 +#: classes/Notice.php:248 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:237 +#: classes/Notice.php:254 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4476,19 +4517,19 @@ msgstr "" "För många duplicerade meddelanden för snabbt; ta en vilopaus och posta igen " "om ett par minuter." -#: classes/Notice.php:243 +#: classes/Notice.php:260 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:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "Problem med att spara notis." -#: classes/Notice.php:882 +#: classes/Notice.php:911 msgid "Problem saving group inbox." msgstr "Problem med att spara gruppinkorg." -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4517,19 +4558,27 @@ msgstr "Kunde inte ta bort själv-prenumeration." msgid "Couldn't delete subscription." msgstr "Kunde inte ta bort prenumeration." -#: classes/User.php:372 +#: classes/User.php:373 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Välkommen till %1$s, @%2$s!" -#: classes/User_group.php:423 +#: classes/User_group.php:462 msgid "Could not create group." msgstr "Kunde inte skapa grupp." -#: classes/User_group.php:452 +#: classes/User_group.php:471 +msgid "Could not set group URI." +msgstr "Kunde inte ställa in grupp-URI." + +#: classes/User_group.php:492 msgid "Could not set group membership." msgstr "Kunde inte ställa in gruppmedlemskap." +#: classes/User_group.php:506 +msgid "Could not save local group info." +msgstr "Kunde inte spara lokal gruppinformation." + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "Ändra dina profilinställningar" @@ -4571,120 +4620,190 @@ msgstr "Namnlös sida" msgid "Primary site navigation" msgstr "Primär webbplatsnavigation" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "Hem" - -#: lib/action.php:439 +#, fuzzy +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Personlig profil och vänners tidslinje" -#: lib/action.php:441 +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "Personligt" + +#. TRANS: Tooltip for main menu option "Account" +#: lib/action.php:444 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Ändra din e-post, avatar, lösenord, profil" -#: lib/action.php:444 -msgid "Connect" -msgstr "Anslut" +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "Konto" -#: lib/action.php:444 +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 +#, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Anslut till tjänster" -#: lib/action.php:448 +#: lib/action.php:453 +#, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "Anslut" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Ändra webbplatskonfiguration" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" -msgstr "Bjud in" +#: lib/action.php:460 +#, fuzzy +msgctxt "MENU" +msgid "Admin" +msgstr "Administratör" -#: lib/action.php:453 lib/subgroupnav.php:106 -#, php-format +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 +#, fuzzy, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Bjud in vänner och kollegor att gå med dig på %s" -#: lib/action.php:458 -msgid "Logout" -msgstr "Logga ut" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "Bjud in" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +#, fuzzy +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Logga ut från webbplatsen" -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "Logga ut" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 +#, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "Skapa ett konto" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "Registrera" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +#, fuzzy +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Logga in på webbplatsen" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "Hjälp" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "Logga in" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 +#, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "Hjälp mig!" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "Sök" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "Hjälp" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +#, fuzzy +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Sök efter personer eller text" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "Sök" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 msgid "Site notice" msgstr "Webbplatsnotis" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "Lokala vyer" -#: lib/action.php:625 +#: lib/action.php:656 msgid "Page notice" msgstr "Sidnotis" -#: lib/action.php:727 +#: lib/action.php:758 msgid "Secondary site navigation" msgstr "Sekundär webbplatsnavigation" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "Hjälp" + +#: lib/action.php:765 msgid "About" msgstr "Om" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "Frågor & svar" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "Användarvillkor" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "Sekretess" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "Källa" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "Kontakt" -#: lib/action.php:751 +#: lib/action.php:782 msgid "Badge" msgstr "Emblem" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "Programvarulicens för StatusNet" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4693,12 +4812,12 @@ msgstr "" "**%%site.name%%** är en mikrobloggtjänst tillhandahållen av [%%site.broughtby" "%%](%%site.broughtbyurl%%). " -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** är en mikrobloggtjänst. " -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4709,107 +4828,160 @@ msgstr "" "version %s, tillgänglig under [GNU Affero General Public License](http://www." "fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:801 +#: lib/action.php:832 msgid "Site content license" msgstr "Licens för webbplatsinnehåll" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Innehåll och data av %1$s är privat och konfidensiell." -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "Innehåll och data copyright av %1$s. Alla rättigheter reserverade." -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Innehåll och data copyright av medarbetare. Alla rättigheter reserverade." -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "Alla " -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "licens." -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "Numrering av sidor" -#: lib/action.php:1141 +#: lib/action.php:1172 msgid "After" msgstr "Senare" -#: lib/action.php:1149 +#: lib/action.php:1180 msgid "Before" msgstr "Tidigare" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." -msgstr "" +msgstr "Kan inte hantera fjärrinnehåll ännu." -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." -msgstr "" +msgstr "Kan inte hantera inbäddat XML-innehåll ännu." -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." -msgstr "" +msgstr "Kan inte hantera inbäddat Base64-innehåll ännu." -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." msgstr "Du kan inte göra förändringar av denna webbplats." -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 msgid "Changes to that panel are not allowed." msgstr "Ändringar av den panelen tillåts inte." -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 msgid "showForm() not implemented." msgstr "showForm() är inte implementerat." -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 msgid "saveSettings() not implemented." msgstr "saveSetting() är inte implementerat." -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 msgid "Unable to delete design setting." msgstr "Kunde inte ta bort utseendeinställning." -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 msgid "Basic site configuration" msgstr "Grundläggande webbplatskonfiguration" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "Webbplats" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 msgid "Design configuration" msgstr "Konfiguration av utseende" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "Utseende" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 msgid "User configuration" msgstr "Konfiguration av användare" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +#, fuzzy +msgctxt "MENU" +msgid "User" +msgstr "Användare" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 msgid "Access configuration" msgstr "Konfiguration av åtkomst" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "Åtkomst" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 msgid "Paths configuration" msgstr "Konfiguration av sökvägar" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +#, fuzzy +msgctxt "MENU" +msgid "Paths" +msgstr "Sökvägar" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 msgid "Sessions configuration" msgstr "Konfiguration av sessioner" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "Sessioner" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" "API-resursen kräver läs- och skrivrättigheter, men du har bara läsrättighet." -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4902,11 +5074,11 @@ msgstr "Notiser där denna bilaga förekommer" msgid "Tags for this attachment" msgstr "Taggar för denna billaga" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 msgid "Password changing failed" msgstr "Byte av lösenord misslyckades" -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 msgid "Password changing is not allowed" msgstr "Byte av lösenord är inte tillåtet" @@ -5106,9 +5278,9 @@ msgstr "" "Denna länk är endast användbar en gång, och gäller bara i 2 minuter: %s" #: lib/command.php:692 -#, fuzzy, php-format +#, php-format msgid "Unsubscribed %s" -msgstr "Prenumeration hos %s avslutad" +msgstr "Prenumeration avslutad %s" #: lib/command.php:709 msgid "You are not subscribed to anyone." @@ -5141,7 +5313,6 @@ msgstr[0] "Du är en medlem i denna grupp:" msgstr[1] "Du är en medlem i dessa grupper:" #: lib/command.php:769 -#, fuzzy msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5194,6 +5365,7 @@ msgstr "" "d - direktmeddelande till användare\n" "get - hämta senaste notis från användare\n" "whois - hämta profilinformation om användare\n" +"lose - tvinga användare att sluta följa dig\n" "fav - lägg till användarens senaste notis som favorit\n" "fav # - lägg till notis med given id som favorit\n" "repeat # - upprepa en notis med en given id\n" @@ -5220,19 +5392,19 @@ msgstr "" "tracks - inte implementerat än.\n" "tracking - inte implementerat än.\n" -#: lib/common.php:136 +#: lib/common.php:148 msgid "No configuration file found. " msgstr "Ingen konfigurationsfil hittades. " -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "Jag letade efter konfigurationsfiler på följande platser: " -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "Du kanske vill köra installeraren för att åtgärda detta." -#: lib/common.php:140 +#: lib/common.php:152 msgid "Go to the installer." msgstr "Gå till installeraren." @@ -5420,23 +5592,23 @@ msgstr "Systemfel vid uppladdning av fil." msgid "Not an image or corrupt file." msgstr "Inte en bildfil eller så är filen korrupt." -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "Bildfilens format stödjs inte." -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Förlorade vår fil." -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "Okänd filtyp" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "MB" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "kB" @@ -5818,6 +5990,11 @@ msgstr "Till" msgid "Available characters" msgstr "Tillgängliga tecken" +#: lib/messageform.php:178 lib/noticeform.php:236 +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "Skicka" + #: lib/noticeform.php:160 msgid "Send a notice" msgstr "Skicka en notis" @@ -5876,23 +6053,23 @@ msgstr "V" msgid "at" msgstr "på" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 msgid "in context" msgstr "i sammanhang" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 msgid "Repeated by" msgstr "Upprepad av" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 msgid "Reply to this notice" msgstr "Svara på denna notis" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 msgid "Reply" msgstr "Svara" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 msgid "Notice repeated" msgstr "Notis upprepad" @@ -5940,6 +6117,10 @@ msgstr "Svar" msgid "Favorites" msgstr "Favoriter" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "Användare" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Inkorg" @@ -6029,7 +6210,7 @@ msgstr "Upprepa denna notis?" msgid "Repeat this notice" msgstr "Upprepa denna notis" -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "Ingen enskild användare definierad för enanvändarläge." @@ -6049,6 +6230,10 @@ msgstr "Sök webbplats" msgid "Keyword(s)" msgstr "Nyckelord" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "Sök" + #: lib/searchaction.php:162 msgid "Search help" msgstr "Sök hjälp" @@ -6100,6 +6285,15 @@ msgstr "Personer som prenumererar på %s" msgid "Groups %s is a member of" msgstr "Grupper %s är en medlem i" +#: lib/subgroupnav.php:105 +msgid "Invite" +msgstr "Bjud in" + +#: lib/subgroupnav.php:106 +#, php-format +msgid "Invite friends and colleagues to join you on %s" +msgstr "Bjud in vänner och kollegor att gå med dig på %s" + #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 msgid "People Tagcloud as self-tagged" @@ -6170,47 +6364,47 @@ msgstr "Meddelande" msgid "Moderate" msgstr "Moderera" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "ett par sekunder sedan" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "för nån minut sedan" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "för %d minuter sedan" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "för en timma sedan" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "för %d timmar sedan" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "för en dag sedan" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "för %d dagar sedan" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "för en månad sedan" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "för %d månader sedan" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "för ett år sedan" diff --git a/locale/te/LC_MESSAGES/statusnet.po b/locale/te/LC_MESSAGES/statusnet.po index 09ede3d86..f0527f3fa 100644 --- a/locale/te/LC_MESSAGES/statusnet.po +++ b/locale/te/LC_MESSAGES/statusnet.po @@ -1,5 +1,6 @@ # Translation of StatusNet to Telugu # +# Author@translatewiki.net: Brion # Author@translatewiki.net: Veeven # -- # This file is distributed under the same license as the StatusNet package. @@ -8,78 +9,85 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:51:47+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:03:50+0000\n" "Language-Team: Telugu\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: te\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 #, fuzzy msgid "Access" msgstr "అంగీకరించు" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 msgid "Site access settings" msgstr "సైటు అందుబాటు అమరికలు" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 msgid "Registration" msgstr "నమోదు" -#: actions/accessadminpanel.php:161 -msgid "Private" -msgstr "అంతరంగికం" - -#: actions/accessadminpanel.php:163 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "అజ్ఞాత (ప్రవేశించని) వాడుకరులని సైటుని చూడకుండా నిషేధించాలా?" +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -msgid "Invite only" -msgstr "ఆహ్వానితులకు మాత్రమే" +#, fuzzy +msgctxt "LABEL" +msgid "Private" +msgstr "అంతరంగికం" -#: actions/accessadminpanel.php:169 +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 msgid "Make registration invitation only." msgstr "ఆహ్వానితులు మాత్రమే నమోదు అవ్వగలిగేలా చెయ్యి." -#: actions/accessadminpanel.php:173 -#, fuzzy -msgid "Closed" -msgstr "అటువంటి వాడుకరి లేరు." +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 +msgid "Invite only" +msgstr "ఆహ్వానితులకు మాత్రమే" -#: actions/accessadminpanel.php:175 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 msgid "Disable new registrations." msgstr "కొత్త నమోదులను అచేతనంచేయి." -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "భద్రపరచు" +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 +#, fuzzy +msgid "Closed" +msgstr "అటువంటి వాడుకరి లేరు." -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 #, fuzzy msgid "Save access settings" msgstr "సైటు అమరికలను భద్రపరచు" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "భద్రపరచు" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page" msgstr "అటువంటి పేజీ లేదు" -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -93,72 +101,82 @@ msgstr "అటువంటి పేజీ లేదు" #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "అటువంటి వాడుకరి లేరు." -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s మరియు మిత్రులు, పేజీ %2$d" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s మరియు మిత్రులు" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "%s యొక్క మిత్రుల ఫీడు (RSS 1.0)" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "%s యొక్క మిత్రుల ఫీడు (RSS 2.0)" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "%s యొక్క మిత్రుల ఫీడు (ఆటమ్)" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "ఇది %s మరియు మిత్రుల కాలరేఖ కానీ ఇంకా ఎవరూ ఏమీ రాయలేదు." -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "ఇతరులకి చందా చేరండి, [ఏదైనా గుంపులో చేరండి](%%action.groups%%) లేదా మీరే ఏదైనా వ్రాయండి." -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 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." msgstr "" -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 msgid "You and friends" msgstr "మీరు మరియు మీ స్నేహితులు" @@ -176,20 +194,20 @@ msgstr "" #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "నిర్ధారణ సంకేతం కనబడలేదు." @@ -223,8 +241,9 @@ msgstr "వాడుకరిని తాజాకరించలేకున #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "వాడుకరికి ప్రొఫైలు లేదు." @@ -249,7 +268,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: 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." @@ -363,68 +382,68 @@ msgstr "వాడుకరిని తాజాకరించలేకున msgid "Could not find target user." msgstr "లక్ష్యిత వాడుకరిని కనుగొనలేకపోయాం." -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "పేరులో చిన్నబడి అక్షరాలు మరియు అంకెలు మాత్రమే ఖాళీలు లేకుండా ఉండాలి." -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "ఆ పేరుని ఇప్పటికే వాడుతున్నారు. మరోటి ప్రయత్నించండి." -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "సరైన పేరు కాదు." -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "హోమ్ పేజీ URL సరైనది కాదు." -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "పూర్తి పేరు చాలా పెద్దగా ఉంది (గరిష్ఠంగా 255 అక్షరాలు)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "వివరణ చాలా పెద్దగా ఉంది (%d అక్షరాలు గరిష్ఠం)." -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "ప్రాంతం పేరు మరీ పెద్దగా ఉంది (255 అక్షరాలు గరిష్ఠం)." -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "చాలా మారుపేర్లు! %d గరిష్ఠం." -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, php-format msgid "Invalid alias: \"%s\"" msgstr "తప్పుడు మారుపేరు: \"%s\"" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "\"%s\" అన్న మారుపేరుని ఇప్పటికే వాడుతున్నారు. మరొకటి ప్రయత్నించండి." -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "మారుపేరు పేరుతో సమానంగా ఉండకూడదు." @@ -435,15 +454,15 @@ msgstr "మారుపేరు పేరుతో సమానంగా ఉం msgid "Group not found!" msgstr "గుంపు దొరకలేదు!" -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 msgid "You are already a member of that group." msgstr "మీరు ఇప్పటికే ఆ గుంపులో సభ్యులు." -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "నిర్వాహకులు ఆ గుంపు నుండి మిమ్మల్ని నిరోధించారు." -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, fuzzy, php-format msgid "Could not join user %1$s to group %2$s." msgstr "ఓపెన్ఐడీ ఫారమును సృష్టించలేకపోయాం: %s" @@ -452,7 +471,7 @@ msgstr "ఓపెన్ఐడీ ఫారమును సృష్టించ msgid "You are not a member of this group." msgstr "మీరు ఈ గుంపులో సభ్యులు కాదు." -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, fuzzy, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "వాడుకరి %sని %s గుంపు నుండి తొలగించలేకపోయాం." @@ -484,7 +503,7 @@ msgstr "తప్పుడు పరిమాణం." #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -527,7 +546,7 @@ msgstr "" #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -550,13 +569,13 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 msgid "Account" msgstr "ఖాతా" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -638,12 +657,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%s యొక్క మైక్రోబ్లాగు" #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "%s కాలరేఖ" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -679,7 +698,7 @@ msgstr "%sకి స్పందనలు" msgid "Repeats of %s" msgstr "%s యొక్క పునరావృతాలు" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "" @@ -700,8 +719,7 @@ msgstr "అటువంటి జోడింపు లేదు." #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 #, fuzzy msgid "No nickname." msgstr "పేరు లేదు." @@ -714,7 +732,7 @@ msgstr "పరిమాణం లేదు." msgid "Invalid size." msgstr "తప్పుడు పరిమాణం." -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "అవతారం" @@ -731,30 +749,30 @@ msgid "User without matching profile" msgstr "" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "అవతారపు అమరికలు" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "అసలు" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "మునుజూపు" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 msgid "Delete" msgstr "తొలగించు" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "ఎగుమతించు" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "కత్తిరించు" @@ -762,7 +780,7 @@ msgstr "కత్తిరించు" msgid "Pick a square area of the image to be your avatar" msgstr "మీ అవతారానికి గానూ ఈ చిత్రం నుండి ఒక చతురస్రపు ప్రదేశాన్ని ఎంచుకోండి" -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" @@ -794,22 +812,22 @@ msgid "" msgstr "" #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "కాదు" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 msgid "Do not block this user" msgstr "ఈ వాడుకరిని నిరోధించకు" #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "అవును" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 msgid "Block this user" msgstr "ఈ వాడుకరిని నిరోధించు" @@ -817,40 +835,44 @@ msgstr "ఈ వాడుకరిని నిరోధించు" msgid "Failed to save block information." msgstr "నిరోధపు సమాచారాన్ని భద్రపరచడంలో విఫలమయ్యాం." -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 msgid "No such group." msgstr "అటువంటి గుంపు లేదు." -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, fuzzy, php-format msgid "%s blocked profiles" msgstr "వాడుకరికి ప్రొఫైలు లేదు." -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, fuzzy, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%s మరియు మిత్రులు" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." msgstr "ఈ గుంపు లోనికి చేరకుండా నిరోధించిన వాడుకరుల యొక్క జాబితా." -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 #, fuzzy msgid "Unblock user from group" msgstr "అటువంటి వాడుకరి లేరు." -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 #, fuzzy msgid "Unblock this user" msgstr "అటువంటి వాడుకరి లేరు." @@ -926,7 +948,7 @@ msgstr "మీరు ఈ ఉపకరణం యొక్క యజమాని #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "" @@ -951,12 +973,13 @@ msgstr "ఈ ఉపకరణాన్ని తొలగించకు" msgid "Delete this application" msgstr "ఈ ఉపకరణాన్ని తొలగించు" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "లోనికి ప్రవేశించలేదు." @@ -983,7 +1006,7 @@ msgstr "మీరు నిజంగానే ఈ నోటీసుని త msgid "Do not delete this notice" msgstr "ఈ నోటీసుని తొలగించకు" -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 msgid "Delete this notice" msgstr "ఈ నోటీసుని తొలగించు" @@ -999,7 +1022,7 @@ msgstr "మీరు స్థానిక వాడుకరులను మా msgid "Delete user" msgstr "వాడుకరిని తొలగించు" -#: actions/deleteuser.php:135 +#: 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." @@ -1007,12 +1030,12 @@ msgstr "" "మీరు నిజంగానే ఈ వాడుకరిని తొలగించాలనుకుంటున్నారా? ఇది ఆ వాడుకరి భోగట్టాని డాటాబేసు నుండి తొలగిస్తుంది, " "వెనక్కి తేలేకుండా." -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 msgid "Delete this user" msgstr "ఈ వాడుకరిని తొలగించు" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "రూపురేఖలు" @@ -1113,6 +1136,17 @@ msgstr "" msgid "Reset back to default" msgstr "" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "భద్రపరచు" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "రూపురేఖలని భద్రపరచు" @@ -1208,29 +1242,29 @@ msgstr "%s గుంపుని మార్చు" msgid "You must be logged in to create a group." msgstr "గుంపుని సృష్టించడానికి మీరు లోనికి ప్రవేశించాలి." -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: 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 "గుంపుని మార్చడానికి మీరు నిర్వాహకులయి ఉండాలి." -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "గుంపుని మార్చడానికి ఈ ఫారాన్ని ఉపయోగించండి." -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, php-format msgid "description is too long (max %d chars)." msgstr "వివరణ చాలా పెద్దదిగా ఉంది (140 అక్షరాలు గరిష్ఠం)." -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 msgid "Could not update group." msgstr "గుంపుని తాజాకరించలేకున్నాం." -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 msgid "Could not create aliases." msgstr "మారుపేర్లని సృష్టించలేకపోయాం." -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 msgid "Options saved." msgstr "ఎంపికలు భద్రమయ్యాయి." @@ -1560,7 +1594,7 @@ msgstr "వాడుకరిని ఇప్పటికే గుంపున msgid "User is not a member of group." msgstr "వాడుకరి ఈ గుంపులో సభ్యులు కాదు." -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 msgid "Block user from group" msgstr "వాడుకరిని గుంపు నుండి నిరోధించు" @@ -1595,88 +1629,88 @@ msgstr "ఐడీ లేదు." msgid "You must be logged in to edit a group." msgstr "గుంపుని మార్చడానికి మీరు ప్రవేశించి ఉండాలి." -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 msgid "Group design" msgstr "గుంపు అలంకారం" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." msgstr "" -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 msgid "Couldn't update your design." msgstr "మీ రూపురేఖలని తాజాకరించలేకపోయాం." -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 #, fuzzy msgid "Design preferences saved." msgstr "అభిరుచులు భద్రమయ్యాయి." -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "గుంపు చిహ్నం" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "మీ గుంపుకి మీరు ఒక చిహ్నాన్ని ఎక్కించవచ్చు. ఆ ఫైలు యొక్క గరిష్ఠ పరిమాణం %s." -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 #, fuzzy msgid "User without matching profile." msgstr "వాడుకరికి ప్రొఫైలు లేదు." -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "చిహ్నంగా ఉండాల్సిన చతురస్త్ర ప్రదేశాన్ని బొమ్మ నుండి ఎంచుకోండి." -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 msgid "Logo updated." msgstr "చిహ్నాన్ని తాజాకరించాం." -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 msgid "Failed updating logo." msgstr "చిహ్నపు తాజాకరణ విఫలమైంది." -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "%s గుంపు సభ్యులు" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, php-format msgid "%1$s group members, page %2$d" msgstr "%1$s గుంపు సభ్యులు, పేజీ %2$d" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "ఈ గుంపులో వాడుకరులు జాబితా." -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "నిరోధించు" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 msgid "Make user an admin of the group" msgstr "వాడుకరిని గుంపుకి ఒక నిర్వాహకునిగా చేయి" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make Admin" msgstr "నిర్వాహకున్ని చేయి" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "ఈ వాడుకరిని నిర్వాహకున్ని చేయి" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, fuzzy, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "%s యొక్క మైక్రోబ్లాగు" @@ -1921,16 +1955,19 @@ msgstr "వ్యక్తిగత సందేశం" msgid "Optionally add a personal message to the invitation." msgstr "ఐచ్ఛికంగా ఆహ్వానానికి వ్యక్తిగత సందేశం చేర్చండి." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" msgstr "పంపించు" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%2$sలో చేరమని %1$s మిమ్మల్ని ఆహ్వానించారు" -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -1965,7 +2002,12 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "గుంపుల్లో చేరడానికి మీరు ప్రవేశించి ఉండాలి." -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "పేరు లేదు." + +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s %2$s గుంపులో చేరారు" @@ -1974,11 +2016,11 @@ msgstr "%1$s %2$s గుంపులో చేరారు" msgid "You must be logged in to leave a group." msgstr "గుంపుని వదిలివెళ్ళడానికి మీరు ప్రవేశించి ఉండాలి." -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 msgid "You are not a member of that group." msgstr "మీరు ఆ గుంపులో సభ్యులు కాదు." -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%2$s గుంపు నుండి %1$s వైదొలిగారు" @@ -1995,8 +2037,7 @@ msgstr "వాడుకరిపేరు లేదా సంకేతపదం msgid "Error setting user. You are probably not authorized." msgstr "" -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "ప్రవేశించండి" @@ -2190,9 +2231,8 @@ msgid "You must be logged in to list your applications." msgstr "మీ ఉపకరణాలను చూడడానికి మీరు ప్రవేశించి ఉండాలి." #: actions/oauthappssettings.php:74 -#, fuzzy msgid "OAuth applications" -msgstr "ఇతర ఎంపికలు" +msgstr "OAuth ఉపకరణాలు" #: actions/oauthappssettings.php:85 msgid "Applications you have registered" @@ -2245,8 +2285,8 @@ msgstr "విషయ రకం " msgid "Only " msgstr "మాత్రమే " -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "" @@ -2390,7 +2430,7 @@ msgstr "కొత్త సంకేతపదాన్ని భద్రపర msgid "Password saved." msgstr "సంకేతపదం భద్రమయ్యింది." -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "" @@ -2423,7 +2463,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 msgid "Site" msgstr "సైటు" @@ -2601,7 +2640,7 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 చిన్నబడి అక్షరాలు లేదా అంకెలు, విరామచిహ్నాలు మరియు ఖాళీలు తప్ప" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "పూర్తి పేరు" @@ -2629,7 +2668,7 @@ msgid "Bio" msgstr "స్వపరిచయం" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2710,7 +2749,8 @@ msgstr "ప్రొఫైలుని భద్రపరచలేకున్ msgid "Couldn't save tags." msgstr "ట్యాగులని భద్రపరచలేకున్నాం." -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "అమరికలు భద్రమయ్యాయి." @@ -2723,48 +2763,48 @@ msgstr "" msgid "Could not retrieve public stream." msgstr "" -#: actions/public.php:129 +#: actions/public.php:130 #, php-format msgid "Public timeline, page %d" msgstr "ప్రజా కాలరేఖ, పేజీ %d" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "ప్రజా కాలరేఖ" -#: actions/public.php:159 +#: actions/public.php:160 #, fuzzy msgid "Public Stream Feed (RSS 1.0)" msgstr "ప్రజా వాహిని ఫీడు" -#: actions/public.php:163 +#: actions/public.php:164 #, fuzzy msgid "Public Stream Feed (RSS 2.0)" msgstr "ప్రజా వాహిని ఫీడు" -#: actions/public.php:167 +#: actions/public.php:168 #, fuzzy msgid "Public Stream Feed (Atom)" msgstr "ప్రజా వాహిని ఫీడు" -#: actions/public.php:187 +#: 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:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2773,7 +2813,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:246 +#: actions/public.php:247 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2946,8 +2986,7 @@ msgstr "క్షమించండి, తప్పు ఆహ్వాన స msgid "Registration successful" msgstr "నమోదు విజయవంతం" -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "నమోదు" @@ -3122,7 +3161,7 @@ msgstr "ఈ లైసెన్సుకి అంగీకరించకపో msgid "You already repeated that notice." msgstr "మీరు ఇప్పటికే ఆ వాడుకరిని నిరోధించారు." -#: actions/repeat.php:114 lib/noticelist.php:656 +#: actions/repeat.php:114 lib/noticelist.php:674 #, fuzzy msgid "Repeated" msgstr "సృష్టితం" @@ -3132,40 +3171,40 @@ msgstr "సృష్టితం" msgid "Repeated!" msgstr "సృష్టితం" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "%sకి స్పందనలు" -#: actions/replies.php:127 +#: actions/replies.php:128 #, fuzzy, php-format msgid "Replies to %1$s, page %2$d" msgstr "%sకి స్పందనలు" -#: actions/replies.php:144 +#: actions/replies.php:145 #, fuzzy, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "%s యొక్క సందేశముల ఫీడు" -#: actions/replies.php:151 +#: actions/replies.php:152 #, fuzzy, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "%s యొక్క సందేశముల ఫీడు" -#: actions/replies.php:158 +#: actions/replies.php:159 #, fuzzy, php-format msgid "Replies feed for %s (Atom)" msgstr "%s యొక్క సందేశముల ఫీడు" -#: actions/replies.php:198 +#: 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 his attention yet." msgstr "ఇది %s మరియు మిత్రుల కాలరేఖ కానీ ఇంకా ఎవరూ ఏమీ రాయలేదు." -#: actions/replies.php:203 +#: actions/replies.php:204 #, php-format msgid "" "You can engage other users in a conversation, subscribe to more people or " @@ -3174,7 +3213,7 @@ msgstr "" "మీరు ఇతర వాడుకరులతో సంభాషించవచ్చు, మరింత మంది వ్యక్తులకు చందాచేరవచ్చు లేదా [గుంపులలో చేరవచ్చు]" "(%%action.groups%%)." -#: actions/replies.php:205 +#: actions/replies.php:206 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3201,7 +3240,6 @@ msgid "User is already sandboxed." msgstr "వాడుకరిని ఇప్పటికే గుంపునుండి నిరోధించారు." #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "" @@ -3227,7 +3265,7 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "సైటు అమరికలను భద్రపరచు" @@ -3258,7 +3296,7 @@ msgstr "సంస్ధ" msgid "Description" msgstr "వివరణ" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "గణాంకాలు" @@ -3321,35 +3359,35 @@ msgstr "%1$sకి ఇష్టమైన నోటీసులు, పేజీ msgid "Could not retrieve favorite notices." msgstr "" -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, fuzzy, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "%s యొక్క మిత్రుల ఫీడు" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, fuzzy, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "%s యొక్క మిత్రుల ఫీడు" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" msgstr "%s యొక్క ఇష్టాంశాల ఫీడు (ఆటమ్)" -#: actions/showfavorites.php:205 +#: 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:207 +#: 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 :)" msgstr "" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3357,7 +3395,7 @@ msgid "" "would add to their favorites :)" msgstr "" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "మీకు నచ్చినవి పంచుకోడానికి ఇదొక మార్గం." @@ -3371,67 +3409,67 @@ msgstr "%s గుంపు" msgid "%1$s group, page %2$d" msgstr "%1$s గుంపు సభ్యులు, పేజీ %2$d" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 msgid "Group profile" msgstr "గుంపు ప్రొఫైలు" -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 msgid "Note" msgstr "గమనిక" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "మారుపేర్లు" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "గుంపు చర్యలు" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "%s యొక్క సందేశముల ఫీడు" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "%s యొక్క సందేశముల ఫీడు" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "%s యొక్క సందేశముల ఫీడు" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, php-format msgid "FOAF for %s group" msgstr "%s గుంపు" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 msgid "Members" msgstr "సభ్యులు" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(ఏమీలేదు)" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "అందరు సభ్యులూ" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 msgid "Created" msgstr "సృష్టితం" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3441,7 +3479,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:454 +#: actions/showgroup.php:462 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3450,7 +3488,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:482 +#: actions/showgroup.php:490 msgid "Admins" msgstr "నిర్వాహకులు" @@ -3905,22 +3943,22 @@ msgstr "జాబర్" msgid "SMS" msgstr "" -#: actions/tag.php:68 +#: actions/tag.php:69 #, fuzzy, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "%s యొక్క మైక్రోబ్లాగు" -#: actions/tag.php:86 +#: actions/tag.php:87 #, fuzzy, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "%s యొక్క సందేశముల ఫీడు" -#: actions/tag.php:92 +#: actions/tag.php:93 #, fuzzy, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "%s యొక్క సందేశముల ఫీడు" -#: actions/tag.php:98 +#: actions/tag.php:99 #, fuzzy, php-format msgid "Notice feed for tag %s (Atom)" msgstr "%s యొక్క సందేశముల ఫీడు" @@ -3971,7 +4009,7 @@ msgstr "" msgid "No such tag." msgstr "అటువంటి ట్యాగు లేదు." -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "" @@ -4004,71 +4042,73 @@ msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +#, fuzzy +msgctxt "TITLE" msgid "User" msgstr "వాడుకరి" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "ఈ స్టేటస్‌నెట్ సైటుకి వాడుకరి అమరికలు." -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "" -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "" -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "ప్రొఫైలు" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "స్వపరిచయ పరిమితి" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "స్వపరిచయం యొక్క గరిష్ఠ పొడవు, అక్షరాలలో." -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 msgid "New users" msgstr "కొత్త వాడుకరులు" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "కొత్త వాడుకరి స్వాగతం" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "కొత్త వాడుకరులకై స్వాగత సందేశం (255 అక్షరాలు గరిష్ఠం)." -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 msgid "Default subscription" msgstr "అప్రమేయ చందా" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 #, fuzzy msgid "Automatically subscribe new users to this user." msgstr "ఉపయోగించాల్సిన యాంత్రిక కుదింపు సేవ." -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 msgid "Invitations" msgstr "ఆహ్వానాలు" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 msgid "Invitations enabled" msgstr "ఆహ్వానాలని చేతనంచేసాం" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "వాడుకరులను కొత్త వారిని ఆహ్వానించడానికి అనుమతించాలా వద్దా." @@ -4241,7 +4281,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 msgid "Version" msgstr "సంచిక" @@ -4278,6 +4318,11 @@ msgstr "గుంపులో భాగం కాదు." msgid "Group leave failed." msgstr "గుంపు నుండి వైదొలగడం విఫలమైంది." +#: classes/Local_group.php:41 +#, fuzzy +msgid "Could not update local group." +msgstr "గుంపుని తాజాకరించలేకున్నాం." + #: classes/Login_token.php:76 #, fuzzy, php-format msgid "Could not create login token for %s" @@ -4295,46 +4340,46 @@ msgstr "" msgid "Could not update message with new URI." msgstr "" -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "" -#: classes/Notice.php:222 +#: classes/Notice.php:239 #, fuzzy msgid "Problem saving notice. Too long." msgstr "సందేశాన్ని భద్రపరచడంలో పొరపాటు." -#: classes/Notice.php:226 +#: classes/Notice.php:243 #, fuzzy msgid "Problem saving notice. Unknown user." msgstr "సందేశాన్ని భద్రపరచడంలో పొరపాటు." -#: classes/Notice.php:231 +#: classes/Notice.php:248 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:237 +#: classes/Notice.php:254 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:243 +#: classes/Notice.php:260 msgid "You are banned from posting notices on this site." msgstr "ఈ సైటులో నోటీసులు రాయడం నుండి మిమ్మల్ని నిషేధించారు." -#: classes/Notice.php:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "సందేశాన్ని భద్రపరచడంలో పొరపాటు." -#: classes/Notice.php:882 +#: classes/Notice.php:911 #, fuzzy msgid "Problem saving group inbox." msgstr "సందేశాన్ని భద్రపరచడంలో పొరపాటు." -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4365,19 +4410,29 @@ msgstr "చందాని తొలగించలేకపోయాం." msgid "Couldn't delete subscription." msgstr "చందాని తొలగించలేకపోయాం." -#: classes/User.php:372 +#: classes/User.php:373 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "@%2$s, %1$sకి స్వాగతం!" -#: classes/User_group.php:423 +#: classes/User_group.php:462 msgid "Could not create group." msgstr "గుంపుని సృష్టించలేకపోయాం." -#: classes/User_group.php:452 +#: classes/User_group.php:471 +#, fuzzy +msgid "Could not set group URI." +msgstr "గుంపు సభ్యత్వాన్ని అమర్చలేకపోయాం." + +#: classes/User_group.php:492 msgid "Could not set group membership." msgstr "గుంపు సభ్యత్వాన్ని అమర్చలేకపోయాం." +#: classes/User_group.php:506 +#, fuzzy +msgid "Could not save local group info." +msgstr "చందాని సృష్టించలేకపోయాం." + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "" @@ -4420,122 +4475,190 @@ msgstr "" msgid "Primary site navigation" msgstr "" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "ముంగిలి" - -#: lib/action.php:439 +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:441 +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "వ్యక్తిగత" + +#. TRANS: Tooltip for main menu option "Account" +#: lib/action.php:444 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "మీ ఈమెయిలు, అవతారం, సంకేతపదం మరియు ప్రౌఫైళ్ళను మార్చుకోండి" -#: lib/action.php:444 -msgid "Connect" -msgstr "అనుసంధానించు" +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "ఖాతా" -#: lib/action.php:444 +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 +#, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" -msgstr "" +msgstr "అనుసంధానాలు" + +#: lib/action.php:453 +#, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "అనుసంధానించు" -#: lib/action.php:448 +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 #, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "చందాలు" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" -msgstr "ఆహ్వానించు" +#: lib/action.php:460 +#, fuzzy +msgctxt "MENU" +msgid "Admin" +msgstr "నిర్వాహకులు" -#: lib/action.php:453 lib/subgroupnav.php:106 -#, php-format +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 +#, fuzzy, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" -msgstr "" +msgstr "ఈ ఫారాన్ని ఉపయోగించి మీ స్నేహితులను మరియు సహోద్యోగులను ఈ సేవను వినియోగించుకోమని ఆహ్వానించండి." -#: lib/action.php:458 -msgid "Logout" -msgstr "నిష్క్రమించు" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "ఆహ్వానించు" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +#, fuzzy +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "సైటు నుండి నిష్క్రమించు" -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "నిష్క్రమించు" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 +#, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "కొత్త ఖాతా సృష్టించు" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "నమోదు" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +#, fuzzy +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "సైటులోని ప్రవేశించు" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "సహాయం" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "ప్రవేశించండి" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 +#, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "సహాయం కావాలి!" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "వెతుకు" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "సహాయం" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +#, fuzzy +msgctxt "TOOLTIP" msgid "Search for people or text" -msgstr "" +msgstr "మరిన్ని గుంపులకై వెతుకు" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "వెతుకు" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 msgid "Site notice" msgstr "సైటు గమనిక" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "స్థానిక వీక్షణలు" -#: lib/action.php:625 +#: lib/action.php:656 msgid "Page notice" msgstr "పేజీ గమనిక" -#: lib/action.php:727 +#: lib/action.php:758 #, fuzzy msgid "Secondary site navigation" msgstr "చందాలు" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "సహాయం" + +#: lib/action.php:765 msgid "About" msgstr "గురించి" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "ప్రశ్నలు" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "సేవా నియమాలు" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "అంతరంగికత" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "మూలము" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "సంప్రదించు" -#: lib/action.php:751 +#: lib/action.php:782 msgid "Badge" msgstr "బాడ్జి" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "స్టేటస్‌నెట్ మృదూపకరణ లైసెన్సు" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4544,12 +4667,12 @@ msgstr "" "**%%site.name%%** అనేది [%%site.broughtby%%](%%site.broughtbyurl%%) వారు " "అందిస్తున్న మైక్రో బ్లాగింగు సదుపాయం. " -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** అనేది మైక్రో బ్లాగింగు సదుపాయం." -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4560,109 +4683,161 @@ msgstr "" "html) కింద లభ్యమయ్యే [స్టేటస్‌నెట్](http://status.net/) మైక్రోబ్లాగింగ్ ఉపకరణం సంచిక %s " "పై నడుస్తుంది." -#: lib/action.php:801 +#: lib/action.php:832 #, fuzzy msgid "Site content license" msgstr "కొత్త సందేశం" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "అన్నీ " -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "" -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "పేజీకరణ" -#: lib/action.php:1141 +#: lib/action.php:1172 msgid "After" msgstr "తర్వాత" -#: lib/action.php:1149 +#: lib/action.php:1180 msgid "Before" msgstr "ఇంతక్రితం" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." msgstr "ఈ సైటుకి మీరు మార్పులు చేయలేరు." -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 msgid "Changes to that panel are not allowed." msgstr "" -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 msgid "showForm() not implemented." msgstr "" -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 msgid "saveSettings() not implemented." msgstr "" -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 msgid "Unable to delete design setting." msgstr "" -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 msgid "Basic site configuration" msgstr "ప్రాథమిక సైటు స్వరూపణం" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "సైటు" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 msgid "Design configuration" msgstr "రూపకల్పన స్వరూపణం" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "రూపురేఖలు" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 msgid "User configuration" msgstr "వాడుకరి స్వరూపణం" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +#, fuzzy +msgctxt "MENU" +msgid "User" +msgstr "వాడుకరి" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 #, fuzzy msgid "Access configuration" msgstr "SMS నిర్ధారణ" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "అంగీకరించు" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 #, fuzzy msgid "Paths configuration" msgstr "SMS నిర్ధారణ" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +msgctxt "MENU" +msgid "Paths" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 #, fuzzy msgid "Sessions configuration" msgstr "రూపకల్పన స్వరూపణం" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "సంచిక" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4720,11 +4895,11 @@ msgstr "" #: lib/applicationeditform.php:297 msgid "Read-only" -msgstr "" +msgstr "చదవడం-మాత్రమే" #: lib/applicationeditform.php:315 msgid "Read-write" -msgstr "" +msgstr "చదవడం-వ్రాయడం" #: lib/applicationeditform.php:316 msgid "Default access for this application: read-only, or read-write" @@ -4756,12 +4931,12 @@ msgstr "" msgid "Tags for this attachment" msgstr "" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 #, fuzzy msgid "Password changing failed" msgstr "సంకేతపదం మార్పు" -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 #, fuzzy msgid "Password changing is not allowed" msgstr "సంకేతపదం మార్పు" @@ -5041,20 +5216,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:148 #, fuzzy msgid "No configuration file found. " msgstr "నిర్ధారణ సంకేతం లేదు." -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:152 msgid "Go to the installer." msgstr "" @@ -5244,24 +5419,24 @@ msgstr "" msgid "Not an image or corrupt file." msgstr "బొమ్మ కాదు లేదా పాడైపోయిన ఫైలు." -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "" -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 #, fuzzy msgid "Lost our file." msgstr "అటువంటి సందేశమేమీ లేదు." -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "తెలియని ఫైలు రకం" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "మెబై" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "కిబై" @@ -5576,6 +5751,12 @@ msgstr "" msgid "Available characters" msgstr "అందుబాటులో ఉన్న అక్షరాలు" +#: lib/messageform.php:178 lib/noticeform.php:236 +#, fuzzy +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "పంపించు" + #: lib/noticeform.php:160 #, fuzzy msgid "Send a notice" @@ -5635,24 +5816,24 @@ msgstr "ప" msgid "at" msgstr "" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 msgid "in context" msgstr "సందర్భంలో" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 #, fuzzy msgid "Repeated by" msgstr "సృష్టితం" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 msgid "Reply to this notice" msgstr "ఈ నోటీసుపై స్పందించండి" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 msgid "Reply" msgstr "స్పందించండి" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 #, fuzzy msgid "Notice repeated" msgstr "నోటీసుని తొలగించాం." @@ -5703,6 +5884,10 @@ msgstr "స్పందనలు" msgid "Favorites" msgstr "ఇష్టాంశాలు" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "వాడుకరి" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "వచ్చినవి" @@ -5786,16 +5971,14 @@ msgid "Popular" msgstr "ప్రాచుర్యం" #: lib/repeatform.php:107 -#, fuzzy msgid "Repeat this notice?" -msgstr "ఈ నోటీసుపై స్పందించండి" +msgstr "ఈ నోటీసుని పునరావృతించాలా?" #: lib/repeatform.php:132 -#, fuzzy msgid "Repeat this notice" -msgstr "ఈ నోటీసుపై స్పందించండి" +msgstr "ఈ నోటీసుని పునరావృతించు" -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "" @@ -5816,6 +5999,10 @@ msgstr "సైటుని వెతుకు" msgid "Keyword(s)" msgstr "కీపదము(లు)" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "వెతుకు" + #: lib/searchaction.php:162 msgid "Search help" msgstr "సహాయంలో వెతుకు" @@ -5869,6 +6056,15 @@ msgstr "%sకి చందాచేరిన వ్యక్తులు" msgid "Groups %s is a member of" msgstr "%s సభ్యులుగా ఉన్న గుంపులు" +#: 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" @@ -5942,47 +6138,47 @@ msgstr "సందేశం" msgid "Moderate" msgstr "" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "కొన్ని క్షణాల క్రితం" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "ఓ నిమిషం క్రితం" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "%d నిమిషాల క్రితం" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "ఒక గంట క్రితం" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "%d గంటల క్రితం" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "ఓ రోజు క్రితం" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "%d రోజుల క్రితం" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "ఓ నెల క్రితం" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "%d నెలల క్రితం" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "ఒక సంవత్సరం క్రితం" diff --git a/locale/tr/LC_MESSAGES/statusnet.po b/locale/tr/LC_MESSAGES/statusnet.po index 149b21292..71aaa6813 100644 --- a/locale/tr/LC_MESSAGES/statusnet.po +++ b/locale/tr/LC_MESSAGES/statusnet.po @@ -9,82 +9,88 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:51:50+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:03:53+0000\n" "Language-Team: Turkish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tr\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 #, fuzzy msgid "Access" msgstr "Kabul et" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 #, fuzzy msgid "Site access settings" msgstr "Ayarlar" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 #, fuzzy msgid "Registration" msgstr "Kayıt" -#: actions/accessadminpanel.php:161 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 +msgid "Prohibit anonymous users (not logged in) from viewing site?" +msgstr "" + +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. +#: actions/accessadminpanel.php:167 #, fuzzy +msgctxt "LABEL" msgid "Private" msgstr "Gizlilik" -#: actions/accessadminpanel.php:163 -msgid "Prohibit anonymous users (not logged in) from viewing site?" +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 +msgid "Make registration invitation only." msgstr "" -#: actions/accessadminpanel.php:167 +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 msgid "Invite only" msgstr "" -#: actions/accessadminpanel.php:169 -msgid "Make registration invitation only." +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 +msgid "Disable new registrations." msgstr "" -#: actions/accessadminpanel.php:173 +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 #, fuzzy msgid "Closed" msgstr "Böyle bir kullanıcı yok." -#: actions/accessadminpanel.php:175 -msgid "Disable new registrations." -msgstr "" - -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "Kaydet" - -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 #, fuzzy msgid "Save access settings" msgstr "Ayarlar" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "Kaydet" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 #, fuzzy msgid "No such page" msgstr "Böyle bir durum mesajı yok." -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -98,72 +104,82 @@ msgstr "Böyle bir durum mesajı yok." #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "Böyle bir kullanıcı yok." -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, fuzzy, php-format msgid "%1$s and friends, page %2$d" msgstr "%s ve arkadaşları" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s ve arkadaşları" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, fuzzy, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "%s için arkadaş güncellemeleri RSS beslemesi" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, fuzzy, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "%s için arkadaş güncellemeleri RSS beslemesi" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, fuzzy, php-format msgid "Feed for friends of %s (Atom)" msgstr "%s için arkadaş güncellemeleri RSS beslemesi" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 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." msgstr "" -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 #, fuzzy msgid "You and friends" msgstr "%s ve arkadaşları" @@ -182,20 +198,20 @@ msgstr "" #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "Onay kodu bulunamadı." @@ -229,8 +245,9 @@ msgstr "Kullanıcı güncellenemedi." #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "Kullanıcının profili yok." @@ -255,7 +272,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: 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." @@ -373,7 +390,7 @@ msgstr "Kullanıcı güncellenemedi." msgid "Could not find target user." msgstr "Kullanıcı güncellenemedi." -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." @@ -381,62 +398,62 @@ msgstr "" "Takma ad sadece küçük harflerden ve rakamlardan oluşabilir, boşluk " "kullanılamaz. " -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Takma ad kullanımda. Başka bir tane deneyin." -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Geçersiz bir takma ad." -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Başlangıç sayfası adresi geçerli bir URL değil." -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Tam isim çok uzun (azm: 255 karakter)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, fuzzy, php-format msgid "Description is too long (max %d chars)." msgstr "Hakkında bölümü çok uzun (azm 140 karakter)." -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Yer bilgisi çok uzun (azm: 255 karakter)." -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "" -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, fuzzy, php-format msgid "Invalid alias: \"%s\"" msgstr "%s Geçersiz başlangıç sayfası" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, fuzzy, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Takma ad kullanımda. Başka bir tane deneyin." -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "" @@ -448,16 +465,16 @@ msgstr "" msgid "Group not found!" msgstr "İstek bulunamadı!" -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 #, fuzzy msgid "You are already a member of that group." msgstr "Zaten giriş yapmış durumdasıznız!" -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "" -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, fuzzy, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Sunucuya yönlendirme yapılamadı: %s" @@ -467,7 +484,7 @@ msgstr "Sunucuya yönlendirme yapılamadı: %s" msgid "You are not a member of this group." msgstr "Bize o profili yollamadınız" -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, fuzzy, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "OpenID formu yaratılamadı: %s" @@ -499,7 +516,7 @@ msgstr "Geçersiz büyüklük." #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -543,7 +560,7 @@ msgstr "" #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -566,14 +583,14 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 #, fuzzy msgid "Account" msgstr "Hakkında" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -660,12 +677,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%s adli kullanicinin durum mesajlari" #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -701,7 +718,7 @@ msgstr "%s için cevaplar" msgid "Repeats of %s" msgstr "%s için cevaplar" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "" @@ -724,8 +741,7 @@ msgstr "Böyle bir belge yok." #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "Takma ad yok" @@ -737,7 +753,7 @@ msgstr "" msgid "Invalid size." msgstr "Geçersiz büyüklük." -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Avatar" @@ -754,31 +770,31 @@ msgid "User without matching profile" msgstr "" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 #, fuzzy msgid "Avatar settings" msgstr "Ayarlar" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 msgid "Delete" msgstr "" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "Yükle" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "" @@ -786,7 +802,7 @@ msgstr "" msgid "Pick a square area of the image to be your avatar" msgstr "" -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" @@ -821,23 +837,23 @@ msgid "" msgstr "" #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 #, fuzzy msgid "Do not block this user" msgstr "Böyle bir kullanıcı yok." #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 #, fuzzy msgid "Block this user" msgstr "Böyle bir kullanıcı yok." @@ -846,41 +862,45 @@ msgstr "Böyle bir kullanıcı yok." msgid "Failed to save block information." msgstr "" -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 #, fuzzy msgid "No such group." msgstr "Böyle bir durum mesajı yok." -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, fuzzy, php-format msgid "%s blocked profiles" msgstr "Kullanıcının profili yok." -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, fuzzy, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%s ve arkadaşları" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." msgstr "" -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 #, fuzzy msgid "Unblock user from group" msgstr "Böyle bir kullanıcı yok." -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 #, fuzzy msgid "Unblock this user" msgstr "Böyle bir kullanıcı yok." @@ -961,7 +981,7 @@ msgstr "Bize o profili yollamadınız" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "" @@ -987,12 +1007,13 @@ msgstr "Böyle bir durum mesajı yok." msgid "Delete this application" msgstr "Kendinizi ve ilgi alanlarınızı 140 karakter ile anlatın" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Giriş yapılmadı." @@ -1020,7 +1041,7 @@ msgstr "" msgid "Do not delete this notice" msgstr "Böyle bir durum mesajı yok." -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 msgid "Delete this notice" msgstr "" @@ -1038,19 +1059,19 @@ msgstr "Yerel aboneliği kullanabilirsiniz!" msgid "Delete user" msgstr "" -#: actions/deleteuser.php:135 +#: 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 "" -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 #, fuzzy msgid "Delete this user" msgstr "Böyle bir kullanıcı yok." #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "" @@ -1161,6 +1182,17 @@ msgstr "" msgid "Reset back to default" msgstr "" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "Kaydet" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "" @@ -1260,31 +1292,31 @@ msgstr "" msgid "You must be logged in to create a group." msgstr "" -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: 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 "" -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "" -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, fuzzy, php-format msgid "description is too long (max %d chars)." msgstr "Hakkında bölümü çok uzun (azm 140 karakter)." -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 #, fuzzy msgid "Could not update group." msgstr "Kullanıcı güncellenemedi." -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 #, fuzzy msgid "Could not create aliases." msgstr "Avatar bilgisi kaydedilemedi" -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 #, fuzzy msgid "Options saved." msgstr "Ayarlar kaydedildi." @@ -1627,7 +1659,7 @@ msgstr "Kullanıcının profili yok." msgid "User is not a member of group." msgstr "Bize o profili yollamadınız" -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 #, fuzzy msgid "Block user from group" msgstr "Böyle bir kullanıcı yok." @@ -1663,91 +1695,91 @@ msgstr "Kullanıcı numarası yok" msgid "You must be logged in to edit a group." msgstr "" -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 msgid "Group design" msgstr "" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." msgstr "" -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 #, fuzzy msgid "Couldn't update your design." msgstr "Kullanıcı güncellenemedi." -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 #, fuzzy msgid "Design preferences saved." msgstr "Tercihler kaydedildi." -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "" -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 #, fuzzy msgid "User without matching profile." msgstr "Kullanıcının profili yok." -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "" -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 #, fuzzy msgid "Logo updated." msgstr "Avatar güncellendi." -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 #, fuzzy msgid "Failed updating logo." msgstr "Avatar güncellemede hata." -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, php-format msgid "%1$s group members, page %2$d" msgstr "" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "" -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 msgid "Make user an admin of the group" msgstr "" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make Admin" msgstr "" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, fuzzy, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "%s adli kullanicinin durum mesajlari" @@ -2003,16 +2035,19 @@ msgstr "" msgid "Optionally add a personal message to the invitation." msgstr "" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" msgstr "Gönder" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "" -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2047,7 +2082,12 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "" -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "Takma ad yok" + +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "" @@ -2056,12 +2096,12 @@ msgstr "" msgid "You must be logged in to leave a group." msgstr "" -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 #, fuzzy msgid "You are not a member of that group." msgstr "Bize o profili yollamadınız" -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, fuzzy, php-format msgid "%1$s left group %2$s" msgstr "%1$s'in %2$s'deki durum mesajları " @@ -2079,8 +2119,7 @@ msgstr "Yanlış kullanıcı adı veya parola." msgid "Error setting user. You are probably not authorized." msgstr "Yetkilendirilmemiş." -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "Giriş" @@ -2332,8 +2371,8 @@ msgstr "Bağlan" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "" @@ -2481,7 +2520,7 @@ msgstr "Yeni parola kaydedilemedi." msgid "Password saved." msgstr "Parola kaydedildi." -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "" @@ -2514,7 +2553,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 msgid "Site" msgstr "" @@ -2699,7 +2737,7 @@ msgstr "" "verilmez" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "Tam İsim" @@ -2729,7 +2767,7 @@ msgid "Bio" msgstr "Hakkında" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2811,7 +2849,8 @@ msgstr "Profil kaydedilemedi." msgid "Couldn't save tags." msgstr "Profil kaydedilemedi." -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "Ayarlar kaydedildi." @@ -2824,48 +2863,48 @@ msgstr "" msgid "Could not retrieve public stream." msgstr "" -#: actions/public.php:129 +#: actions/public.php:130 #, fuzzy, php-format msgid "Public timeline, page %d" msgstr "Genel zaman çizgisi" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "Genel zaman çizgisi" -#: actions/public.php:159 +#: actions/public.php:160 #, fuzzy msgid "Public Stream Feed (RSS 1.0)" msgstr "Genel Durum Akış RSS Beslemesi" -#: actions/public.php:163 +#: actions/public.php:164 #, fuzzy msgid "Public Stream Feed (RSS 2.0)" msgstr "Genel Durum Akış RSS Beslemesi" -#: actions/public.php:167 +#: actions/public.php:168 #, fuzzy msgid "Public Stream Feed (Atom)" msgstr "Genel Durum Akış RSS Beslemesi" -#: actions/public.php:187 +#: 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:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2874,7 +2913,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:246 +#: actions/public.php:247 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3047,8 +3086,7 @@ msgstr "Onay kodu hatası." msgid "Registration successful" msgstr "" -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "Kayıt" @@ -3216,7 +3254,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:656 +#: actions/repeat.php:114 lib/noticelist.php:674 #, fuzzy msgid "Repeated" msgstr "Yarat" @@ -3226,47 +3264,47 @@ msgstr "Yarat" msgid "Repeated!" msgstr "Yarat" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "%s için cevaplar" -#: actions/replies.php:127 +#: actions/replies.php:128 #, fuzzy, php-format msgid "Replies to %1$s, page %2$d" msgstr "%s için cevaplar" -#: actions/replies.php:144 +#: actions/replies.php:145 #, fuzzy, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "%s için durum RSS beslemesi" -#: actions/replies.php:151 +#: actions/replies.php:152 #, fuzzy, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "%s için durum RSS beslemesi" -#: actions/replies.php:158 +#: actions/replies.php:159 #, fuzzy, php-format msgid "Replies feed for %s (Atom)" msgstr "%s için durum RSS beslemesi" -#: actions/replies.php:198 +#: actions/replies.php:199 #, 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 "" -#: actions/replies.php:203 +#: 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:205 +#: actions/replies.php:206 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3294,7 +3332,6 @@ msgid "User is already sandboxed." msgstr "Kullanıcının profili yok." #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "" @@ -3319,7 +3356,7 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 #, fuzzy msgid "Save site settings" msgstr "Ayarlar" @@ -3354,7 +3391,7 @@ msgstr "Yer" msgid "Description" msgstr "Abonelikler" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "İstatistikler" @@ -3415,35 +3452,35 @@ msgstr "%s ve arkadaşları" msgid "Could not retrieve favorite notices." msgstr "" -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, fuzzy, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "%s için arkadaş güncellemeleri RSS beslemesi" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, fuzzy, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "%s için arkadaş güncellemeleri RSS beslemesi" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, fuzzy, php-format msgid "Feed for favorites of %s (Atom)" msgstr "%s için arkadaş güncellemeleri RSS beslemesi" -#: actions/showfavorites.php:205 +#: 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:207 +#: 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 :)" msgstr "" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3451,7 +3488,7 @@ msgid "" "would add to their favorites :)" msgstr "" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "" @@ -3465,71 +3502,71 @@ msgstr "" msgid "%1$s group, page %2$d" msgstr "Bütün abonelikler" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 #, fuzzy msgid "Group profile" msgstr "Böyle bir durum mesajı yok." -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 #, fuzzy msgid "Note" msgstr "Durum mesajları" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "%s için durum RSS beslemesi" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "%s için durum RSS beslemesi" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "%s için durum RSS beslemesi" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, fuzzy, php-format msgid "FOAF for %s group" msgstr "%s için durum RSS beslemesi" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 #, fuzzy msgid "Members" msgstr "Üyelik başlangıcı" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 #, fuzzy msgid "Created" msgstr "Yarat" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3539,7 +3576,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:454 +#: actions/showgroup.php:462 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3548,7 +3585,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:482 +#: actions/showgroup.php:490 msgid "Admins" msgstr "" @@ -4009,22 +4046,22 @@ msgstr "JabberID yok." msgid "SMS" msgstr "" -#: actions/tag.php:68 +#: actions/tag.php:69 #, fuzzy, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "%s adli kullanicinin durum mesajlari" -#: actions/tag.php:86 +#: actions/tag.php:87 #, fuzzy, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "%s için durum RSS beslemesi" -#: actions/tag.php:92 +#: actions/tag.php:93 #, fuzzy, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "%s için durum RSS beslemesi" -#: actions/tag.php:98 +#: actions/tag.php:99 #, fuzzy, php-format msgid "Notice feed for tag %s (Atom)" msgstr "%s için durum RSS beslemesi" @@ -4078,7 +4115,7 @@ msgstr "" msgid "No such tag." msgstr "Böyle bir durum mesajı yok." -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "" @@ -4113,73 +4150,74 @@ msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +msgctxt "TITLE" msgid "User" msgstr "" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "" -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "" -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "" -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "Profil" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "" -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 msgid "New users" msgstr "" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "" -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 #, fuzzy msgid "Default subscription" msgstr "Bütün abonelikler" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 #, fuzzy msgid "Automatically subscribe new users to this user." msgstr "Takip talebine izin verildi" -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 #, fuzzy msgid "Invitations" msgstr "Yer" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 msgid "Invitations enabled" msgstr "" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "" @@ -4359,7 +4397,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 #, fuzzy msgid "Version" msgstr "Kişisel" @@ -4400,6 +4438,11 @@ msgstr "Kullanıcı güncellenemedi." msgid "Group leave failed." msgstr "Böyle bir durum mesajı yok." +#: classes/Local_group.php:41 +#, fuzzy +msgid "Could not update local group." +msgstr "Kullanıcı güncellenemedi." + #: classes/Login_token.php:76 #, fuzzy, php-format msgid "Could not create login token for %s" @@ -4417,46 +4460,46 @@ msgstr "" msgid "Could not update message with new URI." msgstr "" -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "" -#: classes/Notice.php:222 +#: classes/Notice.php:239 #, fuzzy msgid "Problem saving notice. Too long." msgstr "Durum mesajını kaydederken hata oluştu." -#: classes/Notice.php:226 +#: classes/Notice.php:243 #, fuzzy msgid "Problem saving notice. Unknown user." msgstr "Durum mesajını kaydederken hata oluştu." -#: classes/Notice.php:231 +#: classes/Notice.php:248 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:237 +#: classes/Notice.php:254 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:243 +#: classes/Notice.php:260 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "Durum mesajını kaydederken hata oluştu." -#: classes/Notice.php:882 +#: classes/Notice.php:911 #, fuzzy msgid "Problem saving group inbox." msgstr "Durum mesajını kaydederken hata oluştu." -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4488,21 +4531,31 @@ msgstr "Abonelik silinemedi." msgid "Couldn't delete subscription." msgstr "Abonelik silinemedi." -#: classes/User.php:372 +#: classes/User.php:373 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:423 +#: classes/User_group.php:462 #, fuzzy msgid "Could not create group." msgstr "Avatar bilgisi kaydedilemedi" -#: classes/User_group.php:452 +#: classes/User_group.php:471 +#, fuzzy +msgid "Could not set group URI." +msgstr "Abonelik oluşturulamadı." + +#: classes/User_group.php:492 #, fuzzy msgid "Could not set group membership." msgstr "Abonelik oluşturulamadı." +#: classes/User_group.php:506 +#, fuzzy +msgid "Could not save local group info." +msgstr "Abonelik oluşturulamadı." + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "" @@ -4546,127 +4599,188 @@ msgstr "" msgid "Primary site navigation" msgstr "" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "Başlangıç" - -#: lib/action.php:439 +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:441 -msgid "Change your email, avatar, password, profile" -msgstr "" +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "Kişisel" +#. TRANS: Tooltip for main menu option "Account" #: lib/action.php:444 -msgid "Connect" -msgstr "Bağlan" +#, fuzzy +msgctxt "TOOLTIP" +msgid "Change your email, avatar, password, profile" +msgstr "Parolayı değiştir" -#: lib/action.php:444 +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "Hakkında" + +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 #, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Sunucuya yönlendirme yapılamadı: %s" -#: lib/action.php:448 +#: lib/action.php:453 +#, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "Bağlan" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 #, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Abonelikler" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" +#: lib/action.php:460 +msgctxt "MENU" +msgid "Admin" msgstr "" -#: lib/action.php:453 lib/subgroupnav.php:106 +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 #, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "" -#: lib/action.php:458 -msgid "Logout" -msgstr "Çıkış" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "Geçersiz büyüklük." -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "" -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "Çıkış" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 #, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "Yeni hesap oluştur" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "Kayıt" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "Yardım" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "Giriş" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 #, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "Yardım" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "Ara" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "Yardım" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "Ara" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 #, fuzzy msgid "Site notice" msgstr "Yeni durum mesajı" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "" -#: lib/action.php:625 +#: lib/action.php:656 #, fuzzy msgid "Page notice" msgstr "Yeni durum mesajı" -#: lib/action.php:727 +#: lib/action.php:758 #, fuzzy msgid "Secondary site navigation" msgstr "Abonelikler" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "Yardım" + +#: lib/action.php:765 msgid "About" msgstr "Hakkında" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "SSS" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "Gizlilik" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "Kaynak" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "İletişim" -#: lib/action.php:751 +#: lib/action.php:782 msgid "Badge" msgstr "" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4675,12 +4789,12 @@ msgstr "" "**%%site.name%%** [%%site.broughtby%%](%%site.broughtbyurl%%)\" tarafından " "hazırlanan anında mesajlaşma ağıdır. " -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** bir aninda mesajlaşma sosyal ağıdır." -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4691,114 +4805,165 @@ msgstr "" "licenses/agpl-3.0.html) lisansı ile korunan [StatusNet](http://status.net/) " "microbloglama yazılımının %s. versiyonunu kullanmaktadır." -#: lib/action.php:801 +#: lib/action.php:832 #, fuzzy msgid "Site content license" msgstr "Yeni durum mesajı" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "" -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "" -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "" -#: lib/action.php:1141 +#: lib/action.php:1172 #, fuzzy msgid "After" msgstr "« Sonra" -#: lib/action.php:1149 +#: lib/action.php:1180 #, fuzzy msgid "Before" msgstr "Önce »" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." msgstr "" -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 msgid "Changes to that panel are not allowed." msgstr "" -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 msgid "showForm() not implemented." msgstr "" -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 msgid "saveSettings() not implemented." msgstr "" -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 msgid "Unable to delete design setting." msgstr "" -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 #, fuzzy msgid "Basic site configuration" msgstr "Eposta adresi onayı" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "Yeni durum mesajı" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 #, fuzzy msgid "Design configuration" msgstr "Eposta adresi onayı" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "Kişisel" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 #, fuzzy msgid "User configuration" msgstr "Eposta adresi onayı" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +msgctxt "MENU" +msgid "User" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 #, fuzzy msgid "Access configuration" msgstr "Eposta adresi onayı" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "Kabul et" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 #, fuzzy msgid "Paths configuration" msgstr "Eposta adresi onayı" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +msgctxt "MENU" +msgid "Paths" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 #, fuzzy msgid "Sessions configuration" msgstr "Eposta adresi onayı" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "Kişisel" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4896,12 +5061,12 @@ msgstr "" msgid "Tags for this attachment" msgstr "" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 #, fuzzy msgid "Password changing failed" msgstr "Parola kaydedildi." -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 #, fuzzy msgid "Password changing is not allowed" msgstr "Parola kaydedildi." @@ -5181,20 +5346,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:148 #, fuzzy msgid "No configuration file found. " msgstr "Onay kodu yok." -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:152 msgid "Go to the installer." msgstr "" @@ -5392,24 +5557,24 @@ msgstr "Dosya yüklemede sistem hatası." msgid "Not an image or corrupt file." msgstr "Bu bir resim dosyası değil ya da dosyada hata var" -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "Desteklenmeyen görüntü dosyası biçemi." -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 #, fuzzy msgid "Lost our file." msgstr "Böyle bir durum mesajı yok." -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "" @@ -5714,6 +5879,12 @@ msgstr "" msgid "Available characters" msgstr "6 veya daha fazla karakter" +#: lib/messageform.php:178 lib/noticeform.php:236 +#, fuzzy +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "Gönder" + #: lib/noticeform.php:160 #, fuzzy msgid "Send a notice" @@ -5773,26 +5944,26 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 #, fuzzy msgid "in context" msgstr "İçerik yok!" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 #, fuzzy msgid "Repeated by" msgstr "Yarat" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 #, fuzzy msgid "Reply" msgstr "cevapla" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 #, fuzzy msgid "Notice repeated" msgstr "Durum mesajları" @@ -5842,6 +6013,10 @@ msgstr "Cevaplar" msgid "Favorites" msgstr "" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "" @@ -5936,7 +6111,7 @@ msgstr "Böyle bir durum mesajı yok." msgid "Repeat this notice" msgstr "Böyle bir durum mesajı yok." -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "" @@ -5958,6 +6133,10 @@ msgstr "Ara" msgid "Keyword(s)" msgstr "" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "Ara" + #: lib/searchaction.php:162 #, fuzzy msgid "Search help" @@ -6012,6 +6191,15 @@ msgstr "Uzaktan abonelik" 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" @@ -6086,47 +6274,47 @@ msgstr "" msgid "Moderate" msgstr "" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "birkaç saniye önce" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "yaklaşık bir dakika önce" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "yaklaşık %d dakika önce" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "yaklaşık bir saat önce" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "yaklaşık %d saat önce" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "yaklaşık bir gün önce" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "yaklaşık %d gün önce" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "yaklaşık bir ay önce" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "yaklaşık %d ay önce" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "yaklaşık bir yıl önce" diff --git a/locale/uk/LC_MESSAGES/statusnet.po b/locale/uk/LC_MESSAGES/statusnet.po index c261c310d..fd168ba50 100644 --- a/locale/uk/LC_MESSAGES/statusnet.po +++ b/locale/uk/LC_MESSAGES/statusnet.po @@ -10,78 +10,85 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:51:53+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:03:56+0000\n" "Language-Team: Ukrainian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" "10< =4 && (n%100<10 or n%100>=20) ? 1 : 2);\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 msgid "Access" msgstr "Погодитись" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 msgid "Site access settings" msgstr "Параметри доступу на сайт" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 msgid "Registration" msgstr "Реєстрація" -#: actions/accessadminpanel.php:161 -msgid "Private" -msgstr "Приватно" - -#: actions/accessadminpanel.php:163 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "" "Заборонити анонімним відвідувачам (ті, що не увійшли до системи) переглядати " "сайт?" +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -msgid "Invite only" -msgstr "Лише за запрошеннями" +#, fuzzy +msgctxt "LABEL" +msgid "Private" +msgstr "Приватно" -#: actions/accessadminpanel.php:169 +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 msgid "Make registration invitation only." msgstr "Зробити регістрацію лише за запрошеннями." -#: actions/accessadminpanel.php:173 -msgid "Closed" -msgstr "Закрито" +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 +msgid "Invite only" +msgstr "Лише за запрошеннями" -#: actions/accessadminpanel.php:175 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 msgid "Disable new registrations." msgstr "Скасувати подальшу регістрацію." -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "Зберегти" +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 +msgid "Closed" +msgstr "Закрито" -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 msgid "Save access settings" msgstr "Зберегти параметри доступу" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "Зберегти" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page" msgstr "Немає такої сторінки" -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -95,51 +102,59 @@ msgstr "Немає такої сторінки" #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "Такого користувача немає." -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, php-format msgid "%1$s and friends, page %2$d" msgstr "%1$s та друзі, сторінка %2$d" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s з друзями" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Стрічка дописів для друзів %s (RSS 1.0)" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Стрічка дописів для друзів %s (RSS 2.0)" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "Стрічка дописів для друзів %s (Atom)" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "Це стрічка дописів %s і друзів, але вона поки що порожня." -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " @@ -148,7 +163,8 @@ msgstr "" "Спробуйте до когось підписатись, [приєднатись до групи](%%action.groups%%) " "або напишіть щось самі." -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " @@ -157,7 +173,7 @@ msgstr "" "Ви можете [«розштовхати» %1$s](../%2$s) зі сторінки його профілю або [щось " "йому написати](%%%%action.newnotice%%%%?status_textarea=%3$s)." -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 actions/replies.php:210 actions/showstream.php:211 #, php-format msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " @@ -166,7 +182,8 @@ msgstr "" "Чому б не [зареєструватись](%%%%action.register%%%%) і не спробувати " "«розштовхати» %s або щось йому написати." -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 msgid "You and friends" msgstr "Ви з друзями" @@ -184,20 +201,20 @@ msgstr "Оновлення від %1$s та друзів на %2$s!" #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 msgid "API method not found." msgstr "API метод не знайдено." @@ -230,8 +247,9 @@ msgstr "Не вдалося оновити користувача." #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "Користувач не має профілю." @@ -257,7 +275,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: 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." @@ -368,7 +386,7 @@ msgstr "Не вдалось встановити джерело користув msgid "Could not find target user." msgstr "Не вдалося знайти цільового користувача." -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." @@ -376,62 +394,62 @@ msgstr "" "Ім’я користувача повинно складатись з літер нижнього регістру і цифр, ніяких " "інтервалів." -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Це ім’я вже використовується. Спробуйте інше." -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Це недійсне ім’я користувача." -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Веб-сторінка має недійсну URL-адресу." -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Повне ім’я задовге (255 знаків максимум)" -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, php-format msgid "Description is too long (max %d chars)." msgstr "Опис надто довгий (%d знаків максимум)." -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Локація надто довга (255 знаків максимум)." -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "Забагато додаткових імен! Максимум становить %d." -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, php-format msgid "Invalid alias: \"%s\"" msgstr "Помилкове додаткове ім’я: \"%s\"" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Додаткове ім’я \"%s\" вже використовується. Спробуйте інше." -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "Додаткове ім’я не може бути таким самим що й основне." @@ -442,15 +460,15 @@ msgstr "Додаткове ім’я не може бути таким сами msgid "Group not found!" msgstr "Групу не знайдено!" -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 msgid "You are already a member of that group." msgstr "Ви вже є учасником цієї групи." -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "Адмін цієї групи заблокував Вашу присутність в ній." -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Не вдалось долучити користувача %1$s до групи %2$s." @@ -459,7 +477,7 @@ msgstr "Не вдалось долучити користувача %1$s до г msgid "You are not a member of this group." msgstr "Ви не є учасником цієї групи." -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Не вдалось видалити користувача %1$s з групи %2$s." @@ -490,7 +508,7 @@ msgstr "Невірний токен." #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -534,7 +552,7 @@ msgstr "Токен запиту %s було скасовано і відхиле #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -561,13 +579,13 @@ msgstr "" "на доступ до Вашого акаунту %4$s лише тим стороннім додаткам, яким Ви " "довіряєте." -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 msgid "Account" msgstr "Акаунт" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -651,12 +669,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s оновлення обраних від %2$s / %2$s." #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "%s стрічка" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -692,7 +710,7 @@ msgstr "Вторування за %s" msgid "Repeats of %s" msgstr "Вторування %s" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Дописи позначені з %s" @@ -713,8 +731,7 @@ msgstr "Такого вкладення немає." #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "Немає імені." @@ -726,7 +743,7 @@ msgstr "Немає розміру." msgid "Invalid size." msgstr "Недійсний розмір." -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Аватара" @@ -743,30 +760,30 @@ msgid "User without matching profile" msgstr "Користувач з невідповідним профілем" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Налаштування аватари" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "Оригінал" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Перегляд" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 msgid "Delete" msgstr "Видалити" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "Завантажити" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "Втяти" @@ -774,7 +791,7 @@ msgstr "Втяти" msgid "Pick a square area of the image to be your avatar" msgstr "Оберіть квадратну ділянку зображення, яка й буде Вашою автарою." -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Дані Вашого файлу десь загубились." @@ -809,22 +826,22 @@ msgstr "" "більше не отримуватимете жодних дописів від нього." #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "Ні" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 msgid "Do not block this user" msgstr "Не блокувати цього користувача" #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Так" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 msgid "Block this user" msgstr "Блокувати користувача" @@ -832,39 +849,43 @@ msgstr "Блокувати користувача" msgid "Failed to save block information." msgstr "Збереження інформації про блокування завершилось невдачею." -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 msgid "No such group." msgstr "Такої групи немає." -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, php-format msgid "%s blocked profiles" msgstr "Заблоковані профілі %s" -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "Заблоковані профілі %1$s, сторінка %2$d" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." msgstr "Список користувачів блокованих в цій групі." -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 msgid "Unblock user from group" msgstr "Розблокувати користувача" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "Розблокувати" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 msgid "Unblock this user" msgstr "Розблокувати цього користувача" @@ -939,7 +960,7 @@ msgstr "Ви не є власником цього додатку." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "Виникли певні проблеми з токеном поточної сесії." @@ -965,12 +986,13 @@ msgstr "Не видаляти додаток" msgid "Delete this application" msgstr "Видалити додаток" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Не увійшли." @@ -997,7 +1019,7 @@ msgstr "Ви впевненні, що бажаєте видалити цей д msgid "Do not delete this notice" msgstr "Не видаляти цей допис" -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 msgid "Delete this notice" msgstr "Видалити допис" @@ -1013,7 +1035,7 @@ msgstr "Ви можете видаляти лише локальних кори msgid "Delete user" msgstr "Видалити користувача" -#: actions/deleteuser.php:135 +#: 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." @@ -1021,12 +1043,12 @@ msgstr "" "Впевнені, що бажаєте видалити цього користувача? Усі дані буде знищено без " "можливості відновлення." -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 msgid "Delete this user" msgstr "Видалити цього користувача" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "Дизайн" @@ -1129,6 +1151,17 @@ msgstr "Оновити налаштування за замовчуванням" msgid "Reset back to default" msgstr "Повернутись до початкових налаштувань" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "Зберегти" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "Зберегти дизайн" @@ -1220,29 +1253,29 @@ msgstr "Редагувати групу %s" msgid "You must be logged in to create a group." msgstr "Ви маєте спочатку увійти, аби мати змогу створити групу." -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: 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 "Ви маєте бути наділені правами адмінистратора, аби редагувати групу" -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "Скористайтесь цією формою, щоб відредагувати групу." -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, php-format msgid "description is too long (max %d chars)." msgstr "опис надто довгий (%d знаків максимум)." -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 msgid "Could not update group." msgstr "Не вдалося оновити групу." -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 msgid "Could not create aliases." msgstr "Неможна призначити додаткові імена." -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 msgid "Options saved." msgstr "Опції збережено." @@ -1580,7 +1613,7 @@ msgstr "Користувача заблоковано в цій групі." msgid "User is not a member of group." msgstr "Користувач не є учасником групи." -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 msgid "Block user from group" msgstr "Блокувати користувача в групі" @@ -1615,11 +1648,11 @@ msgstr "Немає ID." msgid "You must be logged in to edit a group." msgstr "Ви маєте спочатку увійти, аби мати змогу редагувати групу." -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 msgid "Group design" msgstr "Дизайн групи" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." @@ -1627,20 +1660,20 @@ msgstr "" "Налаштуйте вигляд сторінки групи, використовуючи фонове зображення і кольори " "на свій смак." -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 msgid "Couldn't update your design." msgstr "Не вдалося оновити дизайн." -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 msgid "Design preferences saved." msgstr "Преференції дизайну збережно." -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "Логотип групи" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." @@ -1648,57 +1681,57 @@ msgstr "" "Ви маєте можливість завантажити логотип для Вашої группи. Максимальний " "розмір файлу %s." -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 msgid "User without matching profile." msgstr "Користувач без відповідного профілю." -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "Оберіть квадратну ділянку зображення, яка й буде логотипом групи." -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 msgid "Logo updated." msgstr "Логотип оновлено." -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 msgid "Failed updating logo." msgstr "Оновлення логотипу завершилось невдачею." -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "Учасники групи %s" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, php-format msgid "%1$s group members, page %2$d" msgstr "Учасники групи %1$s, сторінка %2$d" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "Список учасників цієї групи." -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "Адмін" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "Блок" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 msgid "Make user an admin of the group" msgstr "Надати користувачеві права адміністратора" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make Admin" msgstr "Зробити адміном" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "Надати цьому користувачеві права адміністратора" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Оновлення членів %1$s на %2$s!" @@ -1964,16 +1997,19 @@ msgstr "Особисті повідомлення" msgid "Optionally add a personal message to the invitation." msgstr "Можна додати персональне повідомлення до запрошення (опціонально)." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" -msgstr "Так!" +msgstr "Надіслати" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s запросив(ла) Вас приєднатися до нього(неї) на %2$s" -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2035,7 +2071,11 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Ви повинні спочатку увійти на сайт, аби приєднатися до групи." -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Немає імені або ІД." + +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "%1$s приєднався до групи %2$s" @@ -2044,11 +2084,11 @@ msgstr "%1$s приєднався до групи %2$s" msgid "You must be logged in to leave a group." msgstr "Ви повинні спочатку увійти на сайт, аби залишити групу." -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 msgid "You are not a member of that group." msgstr "Ви не є учасником цієї групи." -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, php-format msgid "%1$s left group %2$s" msgstr "%1$s залишив групу %2$s" @@ -2065,8 +2105,7 @@ msgstr "Неточне ім’я або пароль." msgid "Error setting user. You are probably not authorized." msgstr "Помилка. Можливо, Ви не авторизовані." -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "Увійти" @@ -2322,8 +2361,8 @@ msgstr "тип змісту " msgid "Only " msgstr "Лише " -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "Такий формат даних не підтримується." @@ -2464,7 +2503,7 @@ msgstr "Неможна зберегти новий пароль." msgid "Password saved." msgstr "Пароль збережено." -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "Шлях" @@ -2497,7 +2536,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "Помилковий SSL-сервер. Максимальна довжина 255 знаків." #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 msgid "Site" msgstr "Сайт" @@ -2670,7 +2708,7 @@ msgstr "" "1-64 літери нижнього регістру і цифри, ніякої пунктуації або інтервалів" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "Повне ім’я" @@ -2698,7 +2736,7 @@ msgid "Bio" msgstr "Про себе" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2781,7 +2819,8 @@ msgstr "Не вдалося зберегти профіль." msgid "Couldn't save tags." msgstr "Не вдалося зберегти теґи." -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "Налаштування збережено." @@ -2794,28 +2833,28 @@ msgstr "Досягнуто ліміту сторінки (%s)" msgid "Could not retrieve public stream." msgstr "Не вдається відновити загальну стрічку." -#: actions/public.php:129 +#: actions/public.php:130 #, php-format msgid "Public timeline, page %d" msgstr "Загальний стрічка, сторінка %d" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "Загальна стрічка" -#: actions/public.php:159 +#: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" msgstr "Стрічка публічних дописів (RSS 1.0)" -#: actions/public.php:163 +#: actions/public.php:164 msgid "Public Stream Feed (RSS 2.0)" msgstr "Стрічка публічних дописів (RSS 2.0)" -#: actions/public.php:167 +#: actions/public.php:168 msgid "Public Stream Feed (Atom)" msgstr "Стрічка публічних дописів (Atom)" -#: actions/public.php:187 +#: actions/public.php:188 #, php-format msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " @@ -2823,11 +2862,11 @@ msgid "" msgstr "" "Це публічна стрічка дописів сайту %%site.name%%, але вона поки що порожня." -#: actions/public.php:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "Станьте першим! Напишіть щось!" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" @@ -2835,7 +2874,7 @@ msgstr "" "Чому б не [зареєструватись](%%action.register%%) і не зробити свій перший " "допис!" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2849,7 +2888,7 @@ msgstr "" "розділити своє життя з друзями, родиною і колегами! ([Дізнатися більше](%%" "doc.help%%))" -#: actions/public.php:246 +#: actions/public.php:247 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3029,8 +3068,7 @@ msgstr "Даруйте, помилка у коді запрошення." msgid "Registration successful" msgstr "Реєстрація успішна" -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "Реєстрація" @@ -3215,7 +3253,7 @@ msgstr "Ви не можете вторувати своїм власним до msgid "You already repeated that notice." msgstr "Ви вже вторували цьому допису." -#: actions/repeat.php:114 lib/noticelist.php:656 +#: actions/repeat.php:114 lib/noticelist.php:674 msgid "Repeated" msgstr "Вторування" @@ -3223,33 +3261,33 @@ msgstr "Вторування" msgid "Repeated!" msgstr "Вторувати!" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "Відповіді до %s" -#: actions/replies.php:127 +#: actions/replies.php:128 #, php-format msgid "Replies to %1$s, page %2$d" msgstr "Відповіді до %1$s, сторінка %2$d" -#: actions/replies.php:144 +#: actions/replies.php:145 #, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "Стрічка відповідей до %s (RSS 1.0)" -#: actions/replies.php:151 +#: actions/replies.php:152 #, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "Стрічка відповідей до %s (RSS 2.0)" -#: actions/replies.php:158 +#: actions/replies.php:159 #, php-format msgid "Replies feed for %s (Atom)" msgstr "Стрічка відповідей до %s (Atom)" -#: actions/replies.php:198 +#: actions/replies.php:199 #, php-format msgid "" "This is the timeline showing replies to %1$s but %2$s hasn't received a " @@ -3258,7 +3296,7 @@ msgstr "" "Ця стрічка дописів містить відповіді для %1$s, але %2$s поки що нічого не " "отримав у відповідь." -#: actions/replies.php:203 +#: actions/replies.php:204 #, php-format msgid "" "You can engage other users in a conversation, subscribe to more people or " @@ -3267,7 +3305,7 @@ msgstr "" "Ви можете долучити інших користувачів до спілкування, підписавшись до " "більшої кількості людей або [приєднавшись до груп](%%action.groups%%)." -#: actions/replies.php:205 +#: actions/replies.php:206 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3294,7 +3332,6 @@ msgid "User is already sandboxed." msgstr "Користувача ізольовано доки набереться уму-розуму." #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "Сесії" @@ -3319,7 +3356,7 @@ msgid "Turn on debugging output for sessions." msgstr "Виводити дані сесії наладки." #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Зберегти налаштування сайту" @@ -3349,7 +3386,7 @@ msgstr "Організація" msgid "Description" msgstr "Опис" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Статистика" @@ -3412,22 +3449,22 @@ msgstr "Обрані дописи %1$s, сторінка %2$d" msgid "Could not retrieve favorite notices." msgstr "Не можна відновити обрані дописи." -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "Стрічка обраних дописів %s (RSS 1.0)" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "Стрічка обраних дописів %s (RSS 2.0)" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" msgstr "Стрічка обраних дописів %s (Atom)" -#: actions/showfavorites.php:205 +#: 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." @@ -3436,7 +3473,7 @@ msgstr "" "дописі який Ви вподобали, аби повернутись до нього пізніше, або звернути на " "нього увагу інших." -#: actions/showfavorites.php:207 +#: actions/showfavorites.php:208 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Post something interesting " @@ -3445,7 +3482,7 @@ msgstr "" "%s поки що не вподобав жодних дописів. Може Ви б написали йому щось " "цікаве? :)" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3456,7 +3493,7 @@ msgstr "" "action.register%%%%) і не написати щось цікаве, що мало б сподобатись цьому " "користувачеві :)" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "Це спосіб поділитись з усіма тим, що вам подобається." @@ -3470,67 +3507,67 @@ msgstr "Група %s" msgid "%1$s group, page %2$d" msgstr "Група %1$s, сторінка %2$d" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 msgid "Group profile" msgstr "Профіль групи" -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "URL" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 msgid "Note" msgstr "Зауваження" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "Додаткові імена" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "Діяльність групи" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Стрічка дописів групи %s (RSS 1.0)" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Стрічка дописів групи %s (RSS 2.0)" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Стрічка дописів групи %s (Atom)" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, php-format msgid "FOAF for %s group" msgstr "FOAF для групи %s" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 msgid "Members" msgstr "Учасники" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Пусто)" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "Всі учасники" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 msgid "Created" msgstr "Створено" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3545,7 +3582,7 @@ msgstr "" "короткі дописи про своє життя та інтереси. [Приєднуйтесь](%%action.register%" "%) зараз і долучіться до спілкування! ([Дізнатися більше](%%doc.help%%))" -#: actions/showgroup.php:454 +#: actions/showgroup.php:462 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3558,7 +3595,7 @@ msgstr "" "забезпеченні [StatusNet](http://status.net/). Члени цієї групи роблять " "короткі дописи про своє життя та інтереси. " -#: actions/showgroup.php:482 +#: actions/showgroup.php:490 msgid "Admins" msgstr "Адміни" @@ -3934,17 +3971,15 @@ msgstr "Не вдалося зберегти підписку." #: actions/subscribe.php:77 msgid "This action only accepts POST requests." -msgstr "" +msgstr "Ця дія приймає лише запити POST." #: actions/subscribe.php:107 -#, fuzzy msgid "No such profile." -msgstr "Такого файлу немає." +msgstr "Немає такого профілю." #: actions/subscribe.php:117 -#, fuzzy msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." -msgstr "Ви не підписані до цього профілю." +msgstr "Цією дією Ви не зможете підписатися до віддаленого профілю OMB 0.1." #: actions/subscribe.php:145 msgid "Subscribed" @@ -4039,22 +4074,22 @@ msgstr "Jabber" msgid "SMS" msgstr "СМС" -#: actions/tag.php:68 +#: actions/tag.php:69 #, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "Дописи з теґом %1$s, сторінка %2$d" -#: actions/tag.php:86 +#: actions/tag.php:87 #, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "Стрічка дописів для теґу %s (RSS 1.0)" -#: actions/tag.php:92 +#: actions/tag.php:93 #, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "Стрічка дописів для теґу %s (RSS 2.0)" -#: actions/tag.php:98 +#: actions/tag.php:99 #, php-format msgid "Notice feed for tag %s (Atom)" msgstr "Стрічка дописів для теґу %s (Atom)" @@ -4108,7 +4143,7 @@ msgstr "Скористайтесь цією формою, щоб додати т msgid "No such tag." msgstr "Такого теґу немає." -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "API метод наразі знаходиться у розробці." @@ -4138,70 +4173,72 @@ msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "Ліцензія «%1$s» не відповідає ліцензії сайту «%2$s»." -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +#, fuzzy +msgctxt "TITLE" msgid "User" msgstr "Користувач" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "Власні налаштування користувача для цього сайту StatusNet." -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "Помилкове обмеження біо. Це мають бути цифри." -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "Помилковий текст привітання. Максимальна довжина 255 знаків." -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "Помилкова підписка за замовчуванням: '%1$s' не є користувачем." -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "Профіль" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "Обмеження біо" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "Максимальна довжина біо користувача в знаках." -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 msgid "New users" msgstr "Нові користувачі" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "Привітання нового користувача" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "Текст привітання нових користувачів (255 знаків)." -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 msgid "Default subscription" msgstr "Підписка за замовчуванням" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 msgid "Automatically subscribe new users to this user." msgstr "Автоматично підписувати нових користувачів до цього користувача." -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 msgid "Invitations" msgstr "Запрошення" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 msgid "Invitations enabled" msgstr "Запрошення скасовано" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "" "В той чи інший спосіб дозволити користувачам вітати нових користувачів." @@ -4399,7 +4436,7 @@ msgstr "" msgid "Plugins" msgstr "Додатки" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 msgid "Version" msgstr "Версія" @@ -4438,6 +4475,10 @@ msgstr "Не є частиною групи." msgid "Group leave failed." msgstr "Не вдалося залишити групу." +#: classes/Local_group.php:41 +msgid "Could not update local group." +msgstr "Не вдається оновити локальну групу." + #: classes/Login_token.php:76 #, php-format msgid "Could not create login token for %s" @@ -4455,27 +4496,27 @@ msgstr "Не можна долучити повідомлення." msgid "Could not update message with new URI." msgstr "Не можна оновити повідомлення з новим URI." -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "Помилка бази даних при додаванні теґу: %s" -#: classes/Notice.php:222 +#: classes/Notice.php:239 msgid "Problem saving notice. Too long." msgstr "Проблема при збереженні допису. Надто довге." -#: classes/Notice.php:226 +#: classes/Notice.php:243 msgid "Problem saving notice. Unknown user." msgstr "Проблема при збереженні допису. Невідомий користувач." -#: classes/Notice.php:231 +#: classes/Notice.php:248 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "Дуже багато дописів за короткий термін; ходіть подихайте повітрям і " "повертайтесь за кілька хвилин." -#: classes/Notice.php:237 +#: classes/Notice.php:254 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4483,19 +4524,19 @@ msgstr "" "Дуже багато повідомлень за короткий термін; ходіть подихайте повітрям і " "повертайтесь за кілька хвилин." -#: classes/Notice.php:243 +#: classes/Notice.php:260 msgid "You are banned from posting notices on this site." msgstr "Вам заборонено надсилати дописи до цього сайту." -#: classes/Notice.php:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "Проблема при збереженні допису." -#: classes/Notice.php:882 +#: classes/Notice.php:911 msgid "Problem saving group inbox." msgstr "Проблема при збереженні вхідних дописів для групи." -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4524,19 +4565,27 @@ msgstr "Не можу видалити самопідписку." msgid "Couldn't delete subscription." msgstr "Не вдалося видалити підписку." -#: classes/User.php:372 +#: classes/User.php:373 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Вітаємо на %1$s, @%2$s!" -#: classes/User_group.php:423 +#: classes/User_group.php:462 msgid "Could not create group." msgstr "Не вдалося створити нову групу." -#: classes/User_group.php:452 +#: classes/User_group.php:471 +msgid "Could not set group URI." +msgstr "Не вдалося встановити URI групи." + +#: classes/User_group.php:492 msgid "Could not set group membership." msgstr "Не вдалося встановити членство." +#: classes/User_group.php:506 +msgid "Could not save local group info." +msgstr "Не вдалося зберегти інформацію про локальну групу." + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "Змінити налаштування профілю" @@ -4578,120 +4627,190 @@ msgstr "Сторінка без заголовку" msgid "Primary site navigation" msgstr "Відправна навігація по сайту" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "Дім" - -#: lib/action.php:439 +#, fuzzy +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Персональний профіль і стрічка друзів" -#: lib/action.php:441 +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "Особисте" + +#. TRANS: Tooltip for main menu option "Account" +#: lib/action.php:444 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Змінити електронну адресу, аватару, пароль, профіль" -#: lib/action.php:444 -msgid "Connect" -msgstr "З’єднання" +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "Акаунт" -#: lib/action.php:444 +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 +#, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" msgstr "З’єднання з сервісами" -#: lib/action.php:448 +#: lib/action.php:453 +#, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "З’єднання" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Змінити конфігурацію сайту" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" -msgstr "Запросити" +#: lib/action.php:460 +#, fuzzy +msgctxt "MENU" +msgid "Admin" +msgstr "Адмін" -#: lib/action.php:453 lib/subgroupnav.php:106 -#, php-format +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 +#, fuzzy, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Запросіть друзів та колег приєднатись до Вас на %s" -#: lib/action.php:458 -msgid "Logout" -msgstr "Вийти" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "Запросити" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +#, fuzzy +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Вийти з сайту" -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "Вийти" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 +#, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "Створити новий акаунт" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "Реєстрація" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +#, fuzzy +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Увійти на сайт" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "Допомога" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "Увійти" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 +#, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "Допоможіть!" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "Пошук" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "Допомога" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +#, fuzzy +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Пошук людей або текстів" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "Пошук" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 msgid "Site notice" msgstr "Зауваження сайту" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "Огляд" -#: lib/action.php:625 +#: lib/action.php:656 msgid "Page notice" msgstr "Зауваження сторінки" -#: lib/action.php:727 +#: lib/action.php:758 msgid "Secondary site navigation" msgstr "Другорядна навігація по сайту" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "Допомога" + +#: lib/action.php:765 msgid "About" msgstr "Про" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "ЧаПи" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "Умови" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "Конфіденційність" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "Джерело" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "Контакт" -#: lib/action.php:751 +#: lib/action.php:782 msgid "Badge" msgstr "Бедж" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "Ліцензія програмного забезпечення StatusNet" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4700,12 +4819,12 @@ msgstr "" "**%%site.name%%** — це сервіс мікроблоґів наданий вам [%%site.broughtby%%](%%" "site.broughtbyurl%%). " -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** — це сервіс мікроблоґів. " -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4716,108 +4835,161 @@ msgstr "" "для мікроблоґів, версія %s, доступному під [GNU Affero General Public " "License](http://www.fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:801 +#: lib/action.php:832 msgid "Site content license" msgstr "Ліцензія змісту сайту" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Зміст і дані %1$s є приватними і конфіденційними." -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "Авторські права на зміст і дані належать %1$s. Всі права захищено." -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Авторські права на зміст і дані належать розробникам. Всі права захищено." -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "Всі " -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "ліцензія." -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "Нумерація сторінок" -#: lib/action.php:1141 +#: lib/action.php:1172 msgid "After" msgstr "Вперед" -#: lib/action.php:1149 +#: lib/action.php:1180 msgid "Before" msgstr "Назад" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." -msgstr "" +msgstr "Поки що не можу обробити віддалений контент." -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." -msgstr "" +msgstr "Поки що не можу обробити вбудований XML контент." -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." -msgstr "" +msgstr "Поки що не можу обробити вбудований контент Base64." -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." msgstr "Ви не можете щось змінювати на цьому сайті." -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 msgid "Changes to that panel are not allowed." msgstr "Для цієї панелі зміни не припустимі." -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 msgid "showForm() not implemented." msgstr "showForm() не виконано." -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 msgid "saveSettings() not implemented." msgstr "saveSettings() не виконано." -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 msgid "Unable to delete design setting." msgstr "Немає можливості видалити налаштування дизайну." -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 msgid "Basic site configuration" msgstr "Основна конфігурація сайту" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "Сайт" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 msgid "Design configuration" msgstr "Конфігурація дизайну" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "Дизайн" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 msgid "User configuration" msgstr "Конфігурація користувача" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +#, fuzzy +msgctxt "MENU" +msgid "User" +msgstr "Користувач" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 msgid "Access configuration" msgstr "Прийняти конфігурацію" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "Погодитись" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 msgid "Paths configuration" msgstr "Конфігурація шляху" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +#, fuzzy +msgctxt "MENU" +msgid "Paths" +msgstr "Шлях" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 msgid "Sessions configuration" msgstr "Конфігурація сесій" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "Сесії" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" "API-ресурс вимагає дозвіл типу «читання-запис», але у вас є лише доступ для " "читання." -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4909,11 +5081,11 @@ msgstr "Дописи, до яких прикріплено це вкладенн msgid "Tags for this attachment" msgstr "Теґи для цього вкладення" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 msgid "Password changing failed" msgstr "Не вдалося змінити пароль" -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 msgid "Password changing is not allowed" msgstr "Змінювати пароль не дозволено" @@ -5113,9 +5285,9 @@ msgstr "" "Це посилання можна використати лише раз, воно дійсне протягом 2 хвилин: %s" #: lib/command.php:692 -#, fuzzy, php-format +#, php-format msgid "Unsubscribed %s" -msgstr "Відписано від %s" +msgstr "Відписано %s" #: lib/command.php:709 msgid "You are not subscribed to anyone." @@ -5151,7 +5323,6 @@ msgstr[1] "Ви є учасником таких груп:" msgstr[2] "Ви є учасником таких груп:" #: lib/command.php:769 -#, fuzzy msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5228,19 +5399,19 @@ msgstr "" "tracks — наразі не виконується\n" "tracking — наразі не виконується\n" -#: lib/common.php:136 +#: lib/common.php:148 msgid "No configuration file found. " msgstr "Файлу конфігурації не знайдено. " -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "Шукав файли конфігурації в цих місцях: " -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "Запустіть файл інсталяції, аби полагодити це." -#: lib/common.php:140 +#: lib/common.php:152 msgid "Go to the installer." msgstr "Іти до файлу інсталяції." @@ -5429,23 +5600,23 @@ msgstr "Система відповіла помилкою при заванта msgid "Not an image or corrupt file." msgstr "Це не зображення, або файл зіпсовано." -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "Формат зображення не підтримується." -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Файл втрачено." -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "Тип файлу не підтримується" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "Мб" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "кб" @@ -5827,6 +5998,11 @@ msgstr "До" 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 "Надіслати допис" @@ -5885,23 +6061,23 @@ msgstr "Зах." msgid "at" msgstr "в" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 msgid "in context" msgstr "в контексті" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 msgid "Repeated by" msgstr "Вторуванні" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 msgid "Reply to this notice" msgstr "Відповісти на цей допис" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 msgid "Reply" msgstr "Відповісти" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 msgid "Notice repeated" msgstr "Допис вторували" @@ -5949,6 +6125,10 @@ msgstr "Відповіді" msgid "Favorites" msgstr "Обрані" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "Користувач" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Вхідні" @@ -6038,7 +6218,7 @@ msgstr "Повторити цей допис?" msgid "Repeat this notice" msgstr "Вторувати цьому допису" -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "Користувача для однокористувацького режиму не визначено." @@ -6058,6 +6238,10 @@ msgstr "Пошук" msgid "Keyword(s)" msgstr "Ключові слова" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "Пошук" + #: lib/searchaction.php:162 msgid "Search help" msgstr "Пошук" @@ -6109,6 +6293,15 @@ msgstr "Люди підписані до %s" msgid "Groups %s is a member of" msgstr "%s бере участь в цих групах" +#: lib/subgroupnav.php:105 +msgid "Invite" +msgstr "Запросити" + +#: lib/subgroupnav.php:106 +#, php-format +msgid "Invite friends and colleagues to join you on %s" +msgstr "Запросіть друзів та колег приєднатись до Вас на %s" + #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 msgid "People Tagcloud as self-tagged" @@ -6179,47 +6372,47 @@ msgstr "Повідомлення" msgid "Moderate" msgstr "Модерувати" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "мить тому" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "хвилину тому" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "близько %d хвилин тому" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "годину тому" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "близько %d годин тому" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "день тому" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "близько %d днів тому" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "місяць тому" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "близько %d місяців тому" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "рік тому" diff --git a/locale/vi/LC_MESSAGES/statusnet.po b/locale/vi/LC_MESSAGES/statusnet.po index 4dcc58488..d64fae91d 100644 --- a/locale/vi/LC_MESSAGES/statusnet.po +++ b/locale/vi/LC_MESSAGES/statusnet.po @@ -7,83 +7,89 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:51:57+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:03:59+0000\n" "Language-Team: Vietnamese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: vi\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 #, fuzzy msgid "Access" msgstr "Chấp nhận" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 #, fuzzy msgid "Site access settings" msgstr "Thay đổi hình đại diện" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 #, fuzzy msgid "Registration" msgstr "Đăng ký" -#: actions/accessadminpanel.php:161 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 +msgid "Prohibit anonymous users (not logged in) from viewing site?" +msgstr "" + +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. +#: actions/accessadminpanel.php:167 #, fuzzy +msgctxt "LABEL" msgid "Private" msgstr "Riêng tư" -#: actions/accessadminpanel.php:163 -msgid "Prohibit anonymous users (not logged in) from viewing site?" +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 +msgid "Make registration invitation only." msgstr "" -#: actions/accessadminpanel.php:167 +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 #, fuzzy msgid "Invite only" msgstr "Thư mời" -#: actions/accessadminpanel.php:169 -msgid "Make registration invitation only." +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 +msgid "Disable new registrations." msgstr "" -#: actions/accessadminpanel.php:173 +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 #, fuzzy msgid "Closed" msgstr "Ban user" -#: actions/accessadminpanel.php:175 -msgid "Disable new registrations." -msgstr "" - -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "Lưu" - -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 #, fuzzy msgid "Save access settings" msgstr "Thay đổi hình đại diện" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "Lưu" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 #, fuzzy msgid "No such page" msgstr "Không có tin nhắn nào." -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -97,72 +103,82 @@ msgstr "Không có tin nhắn nào." #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "Không có user nào." -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, fuzzy, php-format msgid "%1$s and friends, page %2$d" msgstr "%s và bạn bè" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s và bạn bè" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, fuzzy, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "Chọn những người bạn của %s" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, fuzzy, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "Chọn những người bạn của %s" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, fuzzy, php-format msgid "Feed for friends of %s (Atom)" msgstr "Chọn những người bạn của %s" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 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." msgstr "" -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 #, fuzzy msgid "You and friends" msgstr "%s và bạn bè" @@ -181,20 +197,20 @@ msgstr "" #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "Phương thức API không tìm thấy!" @@ -228,8 +244,9 @@ msgstr "Không thể cập nhật thành viên." #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "Người dùng không có thông tin." @@ -254,7 +271,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 #, fuzzy @@ -377,68 +394,68 @@ msgstr "Không thể lấy lại các tin nhắn ưa thích" msgid "Could not find target user." msgstr "Không tìm thấy bất kỳ trạng thái nào." -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "Biệt hiệu phải là chữ viết thường hoặc số và không có khoảng trắng." -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Biệt hiệu này đã dùng rồi. Hãy nhập biệt hiệu khác." -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Biệt hiệu không hợp lệ." -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Trang chủ không phải là URL" -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Tên đầy đủ quá dài (tối đa là 255 ký tự)." -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, fuzzy, php-format msgid "Description is too long (max %d chars)." msgstr "Lý lịch quá dài (không quá 140 ký tự)" -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Tên khu vực quá dài (không quá 255 ký tự)." -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "" -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, fuzzy, php-format msgid "Invalid alias: \"%s\"" msgstr "Trang chủ '%s' không hợp lệ" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, fuzzy, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "Biệt hiệu này đã dùng rồi. Hãy nhập biệt hiệu khác." -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "" @@ -450,16 +467,16 @@ msgstr "" msgid "Group not found!" msgstr "Phương thức API không tìm thấy!" -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 #, fuzzy msgid "You are already a member of that group." msgstr "Bạn đã theo những người này:" -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "" -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, fuzzy, php-format msgid "Could not join user %1$s to group %2$s." msgstr "Không thể theo bạn này: %s đã có trong danh sách bạn bè của bạn rồi." @@ -469,7 +486,7 @@ msgstr "Không thể theo bạn này: %s đã có trong danh sách bạn bè c msgid "You are not a member of this group." msgstr "Bạn chưa cập nhật thông tin riêng" -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, fuzzy, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "Không thể theo bạn này: %s đã có trong danh sách bạn bè của bạn rồi." @@ -501,7 +518,7 @@ msgstr "Kích thước không hợp lệ." #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -545,7 +562,7 @@ msgstr "" #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -568,14 +585,14 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 #, fuzzy msgid "Account" msgstr "Giới thiệu" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -661,12 +678,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "Tất cả các cập nhật của %s" #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, fuzzy, php-format msgid "%s timeline" msgstr "Dòng tin nhắn của %s" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -702,7 +719,7 @@ msgstr "Trả lời cho %s" msgid "Repeats of %s" msgstr "Trả lời cho %s" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Thông báo được gắn thẻ %s" @@ -725,8 +742,7 @@ msgstr "Không có tài liệu nào." #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "Không có biệt hiệu." @@ -738,7 +754,7 @@ msgstr "Không có kích thước." msgid "Invalid size." msgstr "Kích thước không hợp lệ." -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Hình đại diện" @@ -758,31 +774,31 @@ msgid "User without matching profile" msgstr "Hồ sơ ở nơi khác không khớp với hồ sơ này của bạn" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "Thay đổi hình đại diện" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "Xem trước" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 #, fuzzy msgid "Delete" msgstr "Xóa tin nhắn" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "Tải file" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 #, fuzzy msgid "Crop" msgstr "Nhóm" @@ -791,7 +807,7 @@ msgstr "Nhóm" msgid "Pick a square area of the image to be your avatar" msgstr "" -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" @@ -826,23 +842,23 @@ msgid "" msgstr "" #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "Không" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 #, fuzzy msgid "Do not block this user" msgstr "Bỏ chặn người dùng này" #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "Có" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 #, fuzzy msgid "Block this user" msgstr "Ban user" @@ -851,41 +867,45 @@ msgstr "Ban user" msgid "Failed to save block information." msgstr "" -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 #, fuzzy msgid "No such group." msgstr "Không có tin nhắn nào." -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, fuzzy, php-format msgid "%s blocked profiles" msgstr "Hồ sơ" -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, fuzzy, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%s và bạn bè" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." msgstr "" -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 #, fuzzy msgid "Unblock user from group" msgstr "Bỏ chặn người dùng này" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "Bỏ chặn" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 msgid "Unblock this user" msgstr "Bỏ chặn người dùng này" @@ -965,7 +985,7 @@ msgstr "Bạn chưa cập nhật thông tin riêng" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 #, fuzzy msgid "There was a problem with your session token." msgstr "Có lỗi xảy ra khi thao tác. Hãy thử lại lần nữa." @@ -992,12 +1012,13 @@ msgstr "Không thể xóa tin nhắn này." msgid "Delete this application" msgstr "Xóa tin nhắn" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "Chưa đăng nhập." @@ -1026,7 +1047,7 @@ msgstr "Bạn có chắc chắn là muốn xóa tin nhắn này không?" msgid "Do not delete this notice" msgstr "Không thể xóa tin nhắn này." -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 #, fuzzy msgid "Delete this notice" msgstr "Xóa tin nhắn" @@ -1046,19 +1067,19 @@ msgstr "Bạn đã không xóa trạng thái của những người khác." msgid "Delete user" msgstr "Xóa tin nhắn" -#: actions/deleteuser.php:135 +#: 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 "" -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 #, fuzzy msgid "Delete this user" msgstr "Xóa tin nhắn" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "" @@ -1173,6 +1194,17 @@ msgstr "" msgid "Reset back to default" msgstr "" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "Lưu" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 #, fuzzy msgid "Save design" @@ -1278,32 +1310,32 @@ msgstr "%s và nhóm" msgid "You must be logged in to create a group." msgstr "Bạn phải đăng nhập vào mới có thể gửi thư mời những " -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: actions/editgroup.php:107 actions/editgroup.php:172 +#: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 #, fuzzy msgid "You must be an admin to edit the group." msgstr "Bạn phải đăng nhập vào mới có thể gửi thư mời những " -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "" -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, fuzzy, php-format msgid "description is too long (max %d chars)." msgstr "Lý lịch quá dài (không quá 140 ký tự)" -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 #, fuzzy msgid "Could not update group." msgstr "Không thể cập nhật thành viên." -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 #, fuzzy msgid "Could not create aliases." msgstr "Không thể tạo favorite." -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 #, fuzzy msgid "Options saved." msgstr "Đã lưu các điều chỉnh." @@ -1667,7 +1699,7 @@ msgstr "Người dùng không có thông tin." msgid "User is not a member of group." msgstr "Bạn chưa cập nhật thông tin riêng" -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 #, fuzzy msgid "Block user from group" msgstr "Ban user" @@ -1704,95 +1736,95 @@ msgstr "Không có id." msgid "You must be logged in to edit a group." msgstr "Bạn phải đăng nhập vào mới có thể gửi thư mời những " -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 #, fuzzy msgid "Group design" msgstr "Nhóm" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." msgstr "" -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 #, fuzzy msgid "Couldn't update your design." msgstr "Không thể cập nhật thành viên." -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 #, fuzzy msgid "Design preferences saved." msgstr "Các tính năng đã được lưu." -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 #, fuzzy msgid "Group logo" msgstr "Mã nhóm" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "" -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 #, fuzzy msgid "User without matching profile." msgstr "Hồ sơ ở nơi khác không khớp với hồ sơ này của bạn" -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "" -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 #, fuzzy msgid "Logo updated." msgstr "Hình đại diện đã được cập nhật." -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 #, fuzzy msgid "Failed updating logo." msgstr "Cập nhật hình đại diện không thành công." -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, fuzzy, php-format msgid "%s group members" msgstr "Thành viên" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, fuzzy, php-format msgid "%1$s group members, page %2$d" msgstr "Thành viên" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "" -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 #, fuzzy msgid "Make user an admin of the group" msgstr "Bạn phải đăng nhập vào mới có thể gửi thư mời những " -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make Admin" msgstr "" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 #, fuzzy msgid "Make this user an admin" msgstr "Kênh mà bạn tham gia" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, fuzzy, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Dòng tin nhắn cho %s" @@ -2056,16 +2088,19 @@ msgstr "Tin nhắn cá nhân" msgid "Optionally add a personal message to the invitation." msgstr "Không bắt buộc phải thêm thông điệp vào thư mời." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" msgstr "Gửi" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s moi ban tham gia vao %2$s" -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2127,7 +2162,12 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "Bạn phải đăng nhập vào mới có thể gửi thư mời những " -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "Không có biệt hiệu." + +#: actions/joingroup.php:141 #, fuzzy, php-format msgid "%1$s joined group %2$s" msgstr "%s và nhóm" @@ -2137,12 +2177,12 @@ msgstr "%s và nhóm" msgid "You must be logged in to leave a group." msgstr "Bạn phải đăng nhập vào mới có thể gửi thư mời những " -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 #, fuzzy msgid "You are not a member of that group." msgstr "Bạn chưa cập nhật thông tin riêng" -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, fuzzy, php-format msgid "%1$s left group %2$s" msgstr "%s và nhóm" @@ -2160,8 +2200,7 @@ msgstr "Sai tên đăng nhập hoặc mật khẩu." msgid "Error setting user. You are probably not authorized." msgstr "Chưa được phép." -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "Đăng nhập" @@ -2421,8 +2460,8 @@ msgstr "Kết nối" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "Không hỗ trợ định dạng dữ liệu này." @@ -2574,7 +2613,7 @@ msgstr "Không thể lưu mật khẩu mới" msgid "Password saved." msgstr "Đã lưu mật khẩu." -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "" @@ -2607,7 +2646,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 #, fuzzy msgid "Site" msgstr "Thư mời" @@ -2796,7 +2834,7 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 chữ cái thường hoặc là chữ số, không có dấu chấm hay " #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "Tên đầy đủ" @@ -2825,7 +2863,7 @@ msgid "Bio" msgstr "Lý lịch" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2909,7 +2947,8 @@ msgstr "Không thể lưu hồ sơ cá nhân." msgid "Couldn't save tags." msgstr "Không thể lưu hồ sơ cá nhân." -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "Đã lưu các điều chỉnh." @@ -2923,48 +2962,48 @@ msgstr "" msgid "Could not retrieve public stream." msgstr "Không thể lấy lại các tin nhắn ưa thích" -#: actions/public.php:129 +#: actions/public.php:130 #, fuzzy, php-format msgid "Public timeline, page %d" msgstr "Dòng tin công cộng" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "Dòng tin công cộng" -#: actions/public.php:159 +#: actions/public.php:160 #, fuzzy msgid "Public Stream Feed (RSS 1.0)" msgstr "Dòng tin công cộng" -#: actions/public.php:163 +#: actions/public.php:164 #, fuzzy msgid "Public Stream Feed (RSS 2.0)" msgstr "Dòng tin công cộng" -#: actions/public.php:167 +#: actions/public.php:168 #, fuzzy msgid "Public Stream Feed (Atom)" msgstr "Dòng tin công cộng" -#: actions/public.php:187 +#: 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:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2973,7 +3012,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:246 +#: actions/public.php:247 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3147,8 +3186,7 @@ msgstr "Lỗi xảy ra với mã xác nhận." msgid "Registration successful" msgstr "Đăng ký thành công" -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "Đăng ký" @@ -3335,7 +3373,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:656 +#: actions/repeat.php:114 lib/noticelist.php:674 #, fuzzy msgid "Repeated" msgstr "Tạo" @@ -3345,47 +3383,47 @@ msgstr "Tạo" msgid "Repeated!" msgstr "Tạo" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "Trả lời cho %s" -#: actions/replies.php:127 +#: actions/replies.php:128 #, fuzzy, php-format msgid "Replies to %1$s, page %2$d" msgstr "%s chào mừng bạn " -#: actions/replies.php:144 +#: actions/replies.php:145 #, fuzzy, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "Dòng tin nhắn cho %s" -#: actions/replies.php:151 +#: actions/replies.php:152 #, fuzzy, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "Dòng tin nhắn cho %s" -#: actions/replies.php:158 +#: actions/replies.php:159 #, fuzzy, php-format msgid "Replies feed for %s (Atom)" msgstr "Dòng tin nhắn cho %s" -#: actions/replies.php:198 +#: actions/replies.php:199 #, 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 "" -#: actions/replies.php:203 +#: 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:205 +#: actions/replies.php:206 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3413,7 +3451,6 @@ msgid "User is already sandboxed." msgstr "Người dùng không có thông tin." #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "" @@ -3438,7 +3475,7 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 #, fuzzy msgid "Save site settings" msgstr "Thay đổi hình đại diện" @@ -3473,7 +3510,7 @@ msgstr "Thư mời đã gửi" msgid "Description" msgstr "Mô tả" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "Số liệu thống kê" @@ -3535,35 +3572,35 @@ msgstr "Những tin nhắn ưa thích của %s" msgid "Could not retrieve favorite notices." msgstr "Không thể lấy lại các tin nhắn ưa thích" -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "Chọn những người bạn của %s" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "Chọn những người bạn của %s" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" msgstr "Chọn những người bạn của %s" -#: actions/showfavorites.php:205 +#: 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:207 +#: 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 :)" msgstr "" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3571,7 +3608,7 @@ msgid "" "would add to their favorites :)" msgstr "" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "" @@ -3585,72 +3622,72 @@ msgstr "%s và nhóm" msgid "%1$s group, page %2$d" msgstr "Thành viên" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 #, fuzzy msgid "Group profile" msgstr "Thông tin nhóm" -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 #, fuzzy msgid "Note" msgstr "Tin nhắn" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 #, fuzzy msgid "Group actions" msgstr "Mã nhóm" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Dòng tin nhắn cho %s" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Dòng tin nhắn cho %s" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "Dòng tin nhắn cho %s" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, php-format msgid "FOAF for %s group" msgstr "Hộp thư đi của %s" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 msgid "Members" msgstr "Thành viên" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 #, fuzzy msgid "All members" msgstr "Thành viên" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 #, fuzzy msgid "Created" msgstr "Tạo" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3660,7 +3697,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:454 +#: actions/showgroup.php:462 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3669,7 +3706,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:482 +#: actions/showgroup.php:490 msgid "Admins" msgstr "" @@ -4148,22 +4185,22 @@ msgstr "Không có Jabber ID." msgid "SMS" msgstr "SMS" -#: actions/tag.php:68 +#: actions/tag.php:69 #, fuzzy, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "Dòng tin nhắn cho %s" -#: actions/tag.php:86 +#: actions/tag.php:87 #, fuzzy, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "Dòng tin nhắn cho %s" -#: actions/tag.php:92 +#: actions/tag.php:93 #, fuzzy, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "Dòng tin nhắn cho %s" -#: actions/tag.php:98 +#: actions/tag.php:99 #, fuzzy, php-format msgid "Notice feed for tag %s (Atom)" msgstr "Dòng tin nhắn cho %s" @@ -4218,7 +4255,7 @@ msgstr "" msgid "No such tag." msgstr "Không có tin nhắn nào." -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "Phương thức API dưới cấu trúc có sẵn." @@ -4253,75 +4290,76 @@ msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +msgctxt "TITLE" msgid "User" msgstr "" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "" -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "" -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "" -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "Hồ sơ " -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "" -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 #, fuzzy msgid "New users" msgstr "Gửi thư mời đến những người chưa có tài khoản" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "" -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 #, fuzzy msgid "Default subscription" msgstr "Tất cả đăng nhận" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 #, fuzzy msgid "Automatically subscribe new users to this user." msgstr "Tự động theo những người nào đăng ký theo tôi" -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 #, fuzzy msgid "Invitations" msgstr "Thư mời đã gửi" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 #, fuzzy msgid "Invitations enabled" msgstr "Thư mời đã gửi" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "" @@ -4508,7 +4546,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 #, fuzzy msgid "Version" msgstr "Cá nhân" @@ -4549,6 +4587,11 @@ msgstr "Không thể cập nhật thành viên." msgid "Group leave failed." msgstr "Thông tin nhóm" +#: classes/Local_group.php:41 +#, fuzzy +msgid "Could not update local group." +msgstr "Không thể cập nhật thành viên." + #: classes/Login_token.php:76 #, fuzzy, php-format msgid "Could not create login token for %s" @@ -4569,46 +4612,46 @@ msgstr "Không thể chèn thêm vào đăng nhận." 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." -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, fuzzy, php-format msgid "DB error inserting hashtag: %s" msgstr "Lỗi cơ sở dữ liệu khi chèn trả lời: %s" -#: classes/Notice.php:222 +#: classes/Notice.php:239 #, fuzzy msgid "Problem saving notice. Too long." msgstr "Có lỗi xảy ra khi lưu tin nhắn." -#: classes/Notice.php:226 +#: classes/Notice.php:243 #, fuzzy msgid "Problem saving notice. Unknown user." msgstr "Có lỗi xảy ra khi lưu tin nhắn." -#: classes/Notice.php:231 +#: classes/Notice.php:248 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:237 +#: classes/Notice.php:254 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:243 +#: classes/Notice.php:260 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "Có lỗi xảy ra khi lưu tin nhắn." -#: classes/Notice.php:882 +#: classes/Notice.php:911 #, fuzzy msgid "Problem saving group inbox." msgstr "Có lỗi xảy ra khi lưu tin nhắn." -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%s (%s)" @@ -4640,21 +4683,31 @@ msgstr "Không thể xóa đăng nhận." msgid "Couldn't delete subscription." msgstr "Không thể xóa đăng nhận." -#: classes/User.php:372 +#: classes/User.php:373 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "%s chào mừng bạn " -#: classes/User_group.php:423 +#: classes/User_group.php:462 #, fuzzy msgid "Could not create group." msgstr "Không thể tạo favorite." -#: classes/User_group.php:452 +#: classes/User_group.php:471 +#, fuzzy +msgid "Could not set group URI." +msgstr "Không thể tạo đăng nhận." + +#: classes/User_group.php:492 #, fuzzy msgid "Could not set group membership." msgstr "Không thể tạo đăng nhận." +#: classes/User_group.php:506 +#, fuzzy +msgid "Could not save local group info." +msgstr "Không thể tạo đăng nhận." + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "Thay đổi các thiết lập trong hồ sơ cá nhân của bạn" @@ -4699,131 +4752,191 @@ msgstr "" msgid "Primary site navigation" msgstr "" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "Trang chủ" - -#: lib/action.php:439 +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:441 +#: lib/action.php:442 #, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "Cá nhân" + +#. TRANS: Tooltip for main menu option "Account" +#: lib/action.php:444 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Thay đổi mật khẩu của bạn" -#: lib/action.php:444 -msgid "Connect" -msgstr "Kết nối" +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "Giới thiệu" -#: lib/action.php:444 +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 #, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Không thể chuyển đến máy chủ: %s" -#: lib/action.php:448 +#: lib/action.php:453 +#, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "Kết nối" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 #, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Tôi theo" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" -msgstr "Thư mời" +#: lib/action.php:460 +msgctxt "MENU" +msgid "Admin" +msgstr "" -#: lib/action.php:453 lib/subgroupnav.php:106 +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 #, fuzzy, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "" "Điền địa chỉ email và nội dung tin nhắn để gửi thư mời bạn bè và đồng nghiệp " "của bạn tham gia vào dịch vụ này." -#: lib/action.php:458 -msgid "Logout" -msgstr "Thoát" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "Thư mời" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "" -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "Thoát" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 #, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "Tạo tài khoản mới" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "Đăng ký" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "Hướng dẫn" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "Đăng nhập" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 #, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "Hướng dẫn" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "Tìm kiếm" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "Hướng dẫn" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "Tìm kiếm" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 #, fuzzy msgid "Site notice" msgstr "Thông báo mới" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "" -#: lib/action.php:625 +#: lib/action.php:656 #, fuzzy msgid "Page notice" msgstr "Thông báo mới" -#: lib/action.php:727 +#: lib/action.php:758 #, fuzzy msgid "Secondary site navigation" msgstr "Tôi theo" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "Hướng dẫn" + +#: lib/action.php:765 msgid "About" msgstr "Giới thiệu" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "FAQ" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "Riêng tư" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "Nguồn" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "Liên hệ" -#: lib/action.php:751 +#: lib/action.php:782 #, fuzzy msgid "Badge" msgstr "Tin đã gửi" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4832,12 +4945,12 @@ msgstr "" "**%%site.name%%** là dịch vụ gửi tin nhắn được cung cấp từ [%%site.broughtby%" "%](%%site.broughtbyurl%%). " -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** là dịch vụ gửi tin nhắn. " -#: lib/action.php:786 +#: lib/action.php:817 #, fuzzy, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4848,117 +4961,168 @@ msgstr "" "quyền [GNU Affero General Public License](http://www.fsf.org/licensing/" "licenses/agpl-3.0.html)." -#: lib/action.php:801 +#: lib/action.php:832 #, fuzzy msgid "Site content license" msgstr "Tìm theo nội dung của tin nhắn" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "" -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "" -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "" -#: lib/action.php:1141 +#: lib/action.php:1172 #, fuzzy msgid "After" msgstr "Sau" -#: lib/action.php:1149 +#: lib/action.php:1180 #, fuzzy msgid "Before" msgstr "Trước" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 #, fuzzy msgid "You cannot make changes to this site." msgstr "Bạn đã theo những người này:" -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 #, fuzzy msgid "Changes to that panel are not allowed." msgstr "Biệt hiệu không được cho phép." -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 msgid "showForm() not implemented." msgstr "" -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 msgid "saveSettings() not implemented." msgstr "" -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 #, fuzzy msgid "Unable to delete design setting." msgstr "Không thể lưu thông tin Twitter của bạn!" -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 #, fuzzy msgid "Basic site configuration" msgstr "Xac nhan dia chi email" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "Thư mời" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 #, fuzzy msgid "Design configuration" msgstr "Xác nhận SMS" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "Cá nhân" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 #, fuzzy msgid "User configuration" msgstr "Xác nhận SMS" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +msgctxt "MENU" +msgid "User" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 #, fuzzy msgid "Access configuration" msgstr "Xác nhận SMS" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "Chấp nhận" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 #, fuzzy msgid "Paths configuration" msgstr "Xác nhận SMS" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +msgctxt "MENU" +msgid "Paths" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 #, fuzzy msgid "Sessions configuration" msgstr "Xác nhận SMS" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "Cá nhân" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5054,12 +5218,12 @@ msgstr "" msgid "Tags for this attachment" msgstr "" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 #, fuzzy msgid "Password changing failed" msgstr "Đã lưu mật khẩu." -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 #, fuzzy msgid "Password changing is not allowed" msgstr "Đã lưu mật khẩu." @@ -5346,20 +5510,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:148 #, fuzzy msgid "No configuration file found. " msgstr "Không có mã số xác nhận." -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:152 msgid "Go to the installer." msgstr "" @@ -5563,25 +5727,25 @@ msgstr "Hệ thống xảy ra lỗi trong khi tải file." msgid "Not an image or corrupt file." msgstr "File hỏng hoặc không phải là file ảnh." -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "Không hỗ trợ kiểu file ảnh này." -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 #, fuzzy msgid "Lost our file." msgstr "Không có tin nhắn nào." -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 #, fuzzy msgid "Unknown file type" msgstr "Không hỗ trợ kiểu file ảnh này." -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "" @@ -5939,6 +6103,12 @@ msgstr "" msgid "Available characters" msgstr "Nhiều hơn 6 ký tự" +#: lib/messageform.php:178 lib/noticeform.php:236 +#, fuzzy +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "Gửi" + #: lib/noticeform.php:160 #, fuzzy msgid "Send a notice" @@ -5999,26 +6169,26 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 #, fuzzy msgid "in context" msgstr "Không có nội dung!" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 #, fuzzy msgid "Repeated by" msgstr "Tạo" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 #, fuzzy msgid "Reply to this notice" msgstr "Trả lời tin nhắn này" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 msgid "Reply" msgstr "Trả lời" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 #, fuzzy msgid "Notice repeated" msgstr "Tin đã gửi" @@ -6071,6 +6241,10 @@ msgstr "Trả lời" msgid "Favorites" msgstr "Ưa thích" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Hộp thư đến" @@ -6169,7 +6343,7 @@ msgstr "Trả lời tin nhắn này" msgid "Repeat this notice" msgstr "Trả lời tin nhắn này" -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "" @@ -6192,6 +6366,10 @@ msgstr "Tìm kiếm" msgid "Keyword(s)" msgstr "" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "Tìm kiếm" + #: lib/searchaction.php:162 #, fuzzy msgid "Search help" @@ -6247,6 +6425,17 @@ msgstr "Theo nhóm này" msgid "Groups %s is a member of" msgstr "" +#: lib/subgroupnav.php:105 +msgid "Invite" +msgstr "Thư mời" + +#: lib/subgroupnav.php:106 +#, fuzzy, php-format +msgid "Invite friends and colleagues to join you on %s" +msgstr "" +"Điền địa chỉ email và nội dung tin nhắn để gửi thư mời bạn bè và đồng nghiệp " +"của bạn tham gia vào dịch vụ này." + #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 msgid "People Tagcloud as self-tagged" @@ -6326,47 +6515,47 @@ msgstr "Tin mới nhất" msgid "Moderate" msgstr "" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "vài giây trước" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "1 phút trước" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "%d phút trước" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "1 giờ trước" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "%d giờ trước" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "1 ngày trước" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "%d ngày trước" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "1 tháng trước" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "%d tháng trước" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "1 năm trước" diff --git a/locale/zh_CN/LC_MESSAGES/statusnet.po b/locale/zh_CN/LC_MESSAGES/statusnet.po index 60ca89d66..45fdfe6dc 100644 --- a/locale/zh_CN/LC_MESSAGES/statusnet.po +++ b/locale/zh_CN/LC_MESSAGES/statusnet.po @@ -10,82 +10,88 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:52:00+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:04:02+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 (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hans\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 #, fuzzy msgid "Access" msgstr "接受" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 #, fuzzy msgid "Site access settings" msgstr "头像设置" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 #, fuzzy msgid "Registration" msgstr "注册" -#: actions/accessadminpanel.php:161 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 +msgid "Prohibit anonymous users (not logged in) from viewing site?" +msgstr "" + +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. +#: actions/accessadminpanel.php:167 #, fuzzy +msgctxt "LABEL" msgid "Private" msgstr "隐私" -#: actions/accessadminpanel.php:163 -msgid "Prohibit anonymous users (not logged in) from viewing site?" +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 +msgid "Make registration invitation only." msgstr "" -#: actions/accessadminpanel.php:167 +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 #, fuzzy msgid "Invite only" msgstr "邀请" -#: actions/accessadminpanel.php:169 -msgid "Make registration invitation only." +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 +msgid "Disable new registrations." msgstr "" -#: actions/accessadminpanel.php:173 +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 #, fuzzy msgid "Closed" msgstr "阻止" -#: actions/accessadminpanel.php:175 -msgid "Disable new registrations." -msgstr "" - -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "保存" - -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 #, fuzzy msgid "Save access settings" msgstr "头像设置" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +#, fuzzy +msgctxt "BUTTON" +msgid "Save" +msgstr "保存" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 msgid "No such page" msgstr "没有该页面" -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -99,72 +105,82 @@ msgstr "没有该页面" #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "没有这个用户。" -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, fuzzy, php-format msgid "%1$s and friends, page %2$d" msgstr "%s 及好友" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s 及好友" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "%s 好友的聚合(RSS 1.0)" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "%s 好友的聚合(RSS 2.0)" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, php-format msgid "Feed for friends of %s (Atom)" msgstr "%s 好友的聚合(Atom)" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "这是 %s 和好友的时间线,但是没有任何人发布内容。" -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 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." msgstr "" -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 #, fuzzy msgid "You and friends" msgstr "%s 及好友" @@ -183,20 +199,20 @@ msgstr "来自%2$s 上 %1$s 和好友的更新!" #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "API 方法未实现!" @@ -230,8 +246,9 @@ msgstr "无法更新用户。" #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "用户没有个人信息。" @@ -256,7 +273,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 #, fuzzy @@ -375,68 +392,68 @@ msgstr "无法获取收藏的通告。" msgid "Could not find target user." msgstr "找不到任何信息。" -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "昵称只能使用小写字母和数字,不包含空格。" -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "昵称已被使用,换一个吧。" -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "不是有效的昵称。" -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "主页的URL不正确。" -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "全名过长(不能超过 255 个字符)。" -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, fuzzy, php-format msgid "Description is too long (max %d chars)." msgstr "描述过长(不能超过140字符)。" -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "位置过长(不能超过255个字符)。" -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "" -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, fuzzy, php-format msgid "Invalid alias: \"%s\"" msgstr "主页'%s'不正确" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, fuzzy, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "昵称已被使用,换一个吧。" -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "" @@ -448,16 +465,16 @@ msgstr "" msgid "Group not found!" msgstr "API 方法未实现!" -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 #, fuzzy msgid "You are already a member of that group." msgstr "您已经是该组成员" -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "" -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, fuzzy, php-format msgid "Could not join user %1$s to group %2$s." msgstr "无法把 %s 用户添加到 %s 组" @@ -467,7 +484,7 @@ msgstr "无法把 %s 用户添加到 %s 组" msgid "You are not a member of this group." msgstr "您未告知此个人信息" -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, fuzzy, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "无法订阅用户:未找到。" @@ -499,7 +516,7 @@ msgstr "大小不正确。" #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -543,7 +560,7 @@ msgstr "" #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -566,13 +583,13 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 msgid "Account" msgstr "帐号" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -659,12 +676,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%s 收藏了 %s 的 %s 通告。" #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "%s 时间表" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -700,7 +717,7 @@ msgstr "%s 的回复" msgid "Repeats of %s" msgstr "%s 的回复" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "带 %s 标签的通告" @@ -723,8 +740,7 @@ msgstr "没有这份文档。" #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "没有昵称。" @@ -736,7 +752,7 @@ msgstr "没有大小。" msgid "Invalid size." msgstr "大小不正确。" -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "头像" @@ -753,31 +769,31 @@ msgid "User without matching profile" msgstr "找不到匹配的用户。" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 msgid "Avatar settings" msgstr "头像设置" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "原来的" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "预览" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 #, fuzzy msgid "Delete" msgstr "删除" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "上传" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "剪裁" @@ -785,7 +801,7 @@ msgstr "剪裁" msgid "Pick a square area of the image to be your avatar" msgstr "请选择一块方形区域作为你的头像" -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "文件数据丢失" @@ -820,23 +836,23 @@ msgid "" msgstr "" #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "否" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 #, fuzzy msgid "Do not block this user" msgstr "取消阻止次用户" #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "是" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 #, fuzzy msgid "Block this user" msgstr "阻止该用户" @@ -845,41 +861,45 @@ msgstr "阻止该用户" msgid "Failed to save block information." msgstr "保存阻止信息失败。" -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 msgid "No such group." msgstr "没有这个组。" -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, fuzzy, php-format msgid "%s blocked profiles" msgstr "用户没有个人信息。" -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, fuzzy, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%s 及好友" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 #, fuzzy msgid "A list of the users blocked from joining this group." msgstr "该组成员列表。" -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 #, fuzzy msgid "Unblock user from group" msgstr "取消阻止用户失败。" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "取消阻止" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 #, fuzzy msgid "Unblock this user" msgstr "取消阻止次用户" @@ -961,7 +981,7 @@ msgstr "您未告知此个人信息" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 #, fuzzy msgid "There was a problem with your session token." msgstr "会话标识有问题,请重试。" @@ -988,12 +1008,13 @@ msgstr "无法删除通告。" msgid "Delete this application" msgstr "删除通告" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "未登录。" @@ -1022,7 +1043,7 @@ msgstr "确定要删除这条消息吗?" msgid "Do not delete this notice" msgstr "无法删除通告。" -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 #, fuzzy msgid "Delete this notice" msgstr "删除通告" @@ -1042,19 +1063,19 @@ msgstr "您不能删除其他用户的状态。" msgid "Delete user" msgstr "删除" -#: actions/deleteuser.php:135 +#: 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 "" -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 #, fuzzy msgid "Delete this user" msgstr "删除通告" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "" @@ -1165,6 +1186,17 @@ msgstr "" msgid "Reset back to default" msgstr "" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "保存" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "" @@ -1267,31 +1299,31 @@ msgstr "编辑 %s 组" msgid "You must be logged in to create a group." msgstr "您必须登录才能创建小组。" -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: actions/editgroup.php:107 actions/editgroup.php:172 +#: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 #, fuzzy msgid "You must be an admin to edit the group." msgstr "只有admin才能编辑这个组" -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "使用这个表单来编辑组" -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, fuzzy, php-format msgid "description is too long (max %d chars)." msgstr "描述过长(不能超过140字符)。" -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 msgid "Could not update group." msgstr "无法更新组" -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 #, fuzzy msgid "Could not create aliases." msgstr "无法创建收藏。" -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 msgid "Options saved." msgstr "选项已保存。" @@ -1645,7 +1677,7 @@ msgstr "用户没有个人信息。" msgid "User is not a member of group." msgstr "您未告知此个人信息" -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 #, fuzzy msgid "Block user from group" msgstr "阻止用户" @@ -1682,94 +1714,94 @@ msgstr "没有ID" msgid "You must be logged in to edit a group." msgstr "您必须登录才能创建小组。" -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 #, fuzzy msgid "Group design" msgstr "组" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." msgstr "" -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 #, fuzzy msgid "Couldn't update your design." msgstr "无法更新用户。" -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 #, fuzzy msgid "Design preferences saved." msgstr "同步选项已保存。" -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "组logo" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, fuzzy, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "你可以给你的组上载一个logo图。" -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 #, fuzzy msgid "User without matching profile." msgstr "找不到匹配的用户。" -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 #, fuzzy msgid "Pick a square area of the image to be the logo." msgstr "请选择一块方形区域作为你的头像" -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 msgid "Logo updated." msgstr "logo已更新。" -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 #, fuzzy msgid "Failed updating logo." msgstr "更新logo失败。" -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "%s 组成员" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, fuzzy, php-format msgid "%1$s group members, page %2$d" msgstr "%s 组成员, 第 %d 页" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "该组成员列表。" -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "admin管理员" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "阻止" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 #, fuzzy msgid "Make user an admin of the group" msgstr "只有admin才能编辑这个组" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 #, fuzzy msgid "Make Admin" msgstr "admin管理员" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, fuzzy, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "%2$s 上 %1$s 的更新!" @@ -2020,16 +2052,19 @@ msgstr "个人消息" msgid "Optionally add a personal message to the invitation." msgstr "在邀请中加几句话(可选)。" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +#, fuzzy +msgctxt "BUTTON" msgid "Send" msgstr "发送" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "%1$s 邀请您加入 %2$s" -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2085,7 +2120,12 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "您必须登录才能加入组。" -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "没有昵称。" + +#: actions/joingroup.php:141 #, fuzzy, php-format msgid "%1$s joined group %2$s" msgstr "%s 加入 %s 组" @@ -2095,12 +2135,12 @@ msgstr "%s 加入 %s 组" msgid "You must be logged in to leave a group." msgstr "您必须登录才能邀请其他人使用 %s" -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 #, fuzzy msgid "You are not a member of that group." msgstr "您未告知此个人信息" -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, fuzzy, php-format msgid "%1$s left group %2$s" msgstr "%s 离开群 %s" @@ -2118,8 +2158,7 @@ msgstr "用户名或密码不正确。" msgid "Error setting user. You are probably not authorized." msgstr "未认证。" -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "登录" @@ -2371,8 +2410,8 @@ msgstr "连接" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "不支持的数据格式。" @@ -2521,7 +2560,7 @@ msgstr "无法保存新密码。" msgid "Password saved." msgstr "密码已保存。" -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "" @@ -2554,7 +2593,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 #, fuzzy msgid "Site" msgstr "邀请" @@ -2737,7 +2775,7 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1 到 64 个小写字母或数字,不包含标点及空白" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "全名" @@ -2766,7 +2804,7 @@ msgid "Bio" msgstr "自述" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2848,7 +2886,8 @@ msgstr "无法保存个人信息。" msgid "Couldn't save tags." msgstr "无法保存个人信息。" -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "设置已保存。" @@ -2862,48 +2901,48 @@ msgstr "" msgid "Could not retrieve public stream." msgstr "无法获取收藏的通告。" -#: actions/public.php:129 +#: actions/public.php:130 #, fuzzy, php-format msgid "Public timeline, page %d" msgstr "公开的时间表" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "公开的时间表" -#: actions/public.php:159 +#: actions/public.php:160 #, fuzzy msgid "Public Stream Feed (RSS 1.0)" msgstr "公开的聚合" -#: actions/public.php:163 +#: actions/public.php:164 #, fuzzy msgid "Public Stream Feed (RSS 2.0)" msgstr "公开的聚合" -#: actions/public.php:167 +#: actions/public.php:168 #, fuzzy msgid "Public Stream Feed (Atom)" msgstr "公开的聚合" -#: actions/public.php:187 +#: 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:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2912,7 +2951,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:246 +#: actions/public.php:247 #, fuzzy, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -3085,8 +3124,7 @@ msgstr "验证码出错。" msgid "Registration successful" msgstr "注册成功。" -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "注册" @@ -3269,7 +3307,7 @@ msgstr "您必须同意此授权方可注册。" msgid "You already repeated that notice." msgstr "您已成功阻止该用户:" -#: actions/repeat.php:114 lib/noticelist.php:656 +#: actions/repeat.php:114 lib/noticelist.php:674 #, fuzzy msgid "Repeated" msgstr "创建" @@ -3279,47 +3317,47 @@ msgstr "创建" msgid "Repeated!" msgstr "创建" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "%s 的回复" -#: actions/replies.php:127 +#: actions/replies.php:128 #, fuzzy, php-format msgid "Replies to %1$s, page %2$d" msgstr "发送给 %1$s 的 %2$s 消息" -#: actions/replies.php:144 +#: actions/replies.php:145 #, fuzzy, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "%s 的通告聚合" -#: actions/replies.php:151 +#: actions/replies.php:152 #, fuzzy, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "%s 的通告聚合" -#: actions/replies.php:158 +#: actions/replies.php:159 #, fuzzy, php-format msgid "Replies feed for %s (Atom)" msgstr "%s 的通告聚合" -#: actions/replies.php:198 +#: 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 his attention yet." msgstr "这是 %s 和好友的时间线,但是没有任何人发布内容。" -#: actions/replies.php:203 +#: 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:205 +#: actions/replies.php:206 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3347,7 +3385,6 @@ msgid "User is already sandboxed." msgstr "用户没有个人信息。" #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "" @@ -3372,7 +3409,7 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 #, fuzzy msgid "Save site settings" msgstr "头像设置" @@ -3408,7 +3445,7 @@ msgstr "分页" msgid "Description" msgstr "描述" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "统计" @@ -3470,35 +3507,35 @@ msgstr "%s 收藏的通告" msgid "Could not retrieve favorite notices." msgstr "无法获取收藏的通告。" -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "%s 好友的聚合" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "%s 好友的聚合" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, php-format msgid "Feed for favorites of %s (Atom)" msgstr "%s 好友的聚合" -#: actions/showfavorites.php:205 +#: 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:207 +#: 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 :)" msgstr "" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3506,7 +3543,7 @@ msgid "" "would add to their favorites :)" msgstr "" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "" @@ -3520,71 +3557,71 @@ msgstr "%s 组" msgid "%1$s group, page %2$d" msgstr "%s 组成员, 第 %d 页" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 #, fuzzy msgid "Group profile" msgstr "组资料" -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "URL 互联网地址" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 #, fuzzy msgid "Note" msgstr "通告" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "组动作" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "%s 的通告聚合" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "%s 的通告聚合" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "%s 的通告聚合" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, php-format msgid "FOAF for %s group" msgstr "%s 的发件箱" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 #, fuzzy msgid "Members" msgstr "注册于" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(没有)" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "所有成员" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 #, fuzzy msgid "Created" msgstr "创建" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3594,7 +3631,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:454 +#: actions/showgroup.php:462 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3605,7 +3642,7 @@ msgstr "" "**%s** 是一个 %%%%site.name%%%% 的用户组,一个微博客服务 [micro-blogging]" "(http://en.wikipedia.org/wiki/Micro-blogging)" -#: actions/showgroup.php:482 +#: actions/showgroup.php:490 #, fuzzy msgid "Admins" msgstr "admin管理员" @@ -4077,22 +4114,22 @@ msgstr "没有 Jabber ID。" msgid "SMS" msgstr "SMS短信" -#: actions/tag.php:68 +#: actions/tag.php:69 #, fuzzy, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "用户自加标签 %s - 第 %d 页" -#: actions/tag.php:86 +#: actions/tag.php:87 #, fuzzy, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "%s 的通告聚合" -#: actions/tag.php:92 +#: actions/tag.php:93 #, fuzzy, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "%s 的通告聚合" -#: actions/tag.php:98 +#: actions/tag.php:99 #, fuzzy, php-format msgid "Notice feed for tag %s (Atom)" msgstr "%s 的通告聚合" @@ -4148,7 +4185,7 @@ msgstr "使用这个表格给你的关注者或你的订阅加注标签。" msgid "No such tag." msgstr "未找到此消息。" -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "API 方法尚未实现。" @@ -4183,75 +4220,77 @@ msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +#, fuzzy +msgctxt "TITLE" msgid "User" msgstr "用户" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "" -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "" -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "" -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "个人信息" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "" -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 #, fuzzy msgid "New users" msgstr "邀请新用户" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "" -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 #, fuzzy msgid "Default subscription" msgstr "所有订阅" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 #, fuzzy msgid "Automatically subscribe new users to this user." msgstr "自动订阅任何订阅我的更新的人(这个选项最适合机器人)" -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 #, fuzzy msgid "Invitations" msgstr "已发送邀请" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 #, fuzzy msgid "Invitations enabled" msgstr "已发送邀请" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "" @@ -4435,7 +4474,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 #, fuzzy msgid "Version" msgstr "个人" @@ -4476,6 +4515,11 @@ msgstr "无法更新组" msgid "Group leave failed." msgstr "组资料" +#: classes/Local_group.php:41 +#, fuzzy +msgid "Could not update local group." +msgstr "无法更新组" + #: classes/Login_token.php:76 #, fuzzy, php-format msgid "Could not create login token for %s" @@ -4494,47 +4538,47 @@ msgstr "无法添加信息。" msgid "Could not update message with new URI." msgstr "无法添加新URI的信息。" -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "添加标签时数据库出错:%s" -#: classes/Notice.php:222 +#: classes/Notice.php:239 #, fuzzy msgid "Problem saving notice. Too long." msgstr "保存通告时出错。" -#: classes/Notice.php:226 +#: classes/Notice.php:243 #, fuzzy msgid "Problem saving notice. Unknown user." msgstr "保存通告时出错。" -#: classes/Notice.php:231 +#: classes/Notice.php:248 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "你在短时间里发布了过多的消息,请深呼吸,过几分钟再发消息。" -#: classes/Notice.php:237 +#: classes/Notice.php:254 #, fuzzy msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "你在短时间里发布了过多的消息,请深呼吸,过几分钟再发消息。" -#: classes/Notice.php:243 +#: classes/Notice.php:260 msgid "You are banned from posting notices on this site." msgstr "在这个网站你被禁止发布消息。" -#: classes/Notice.php:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "保存通告时出错。" -#: classes/Notice.php:882 +#: classes/Notice.php:911 #, fuzzy msgid "Problem saving group inbox." msgstr "保存通告时出错。" -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4567,20 +4611,30 @@ msgstr "无法删除订阅。" msgid "Couldn't delete subscription." msgstr "无法删除订阅。" -#: classes/User.php:372 +#: classes/User.php:373 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "发送给 %1$s 的 %2$s 消息" -#: classes/User_group.php:423 +#: classes/User_group.php:462 msgid "Could not create group." msgstr "无法创建组。" -#: classes/User_group.php:452 +#: classes/User_group.php:471 +#, fuzzy +msgid "Could not set group URI." +msgstr "无法删除订阅。" + +#: classes/User_group.php:492 #, fuzzy msgid "Could not set group membership." msgstr "无法删除订阅。" +#: classes/User_group.php:506 +#, fuzzy +msgid "Could not save local group info." +msgstr "无法删除订阅。" + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "修改您的个人信息" @@ -4623,129 +4677,194 @@ msgstr "无标题页" msgid "Primary site navigation" msgstr "主站导航" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "主页" - -#: lib/action.php:439 +#, fuzzy +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "个人资料及朋友年表" -#: lib/action.php:441 +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "个人" + +#. TRANS: Tooltip for main menu option "Account" +#: lib/action.php:444 #, fuzzy +msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "修改资料" -#: lib/action.php:444 -msgid "Connect" -msgstr "连接" +#: lib/action.php:447 +#, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "帐号" -#: lib/action.php:444 +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 #, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" msgstr "无法重定向到服务器:%s" -#: lib/action.php:448 +#: lib/action.php:453 #, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "连接" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "主站导航" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" -msgstr "邀请" +#: lib/action.php:460 +#, fuzzy +msgctxt "MENU" +msgid "Admin" +msgstr "admin管理员" -#: lib/action.php:453 lib/subgroupnav.php:106 +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 #, fuzzy, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "使用这个表单来邀请好友和同事加入。" -#: lib/action.php:458 -msgid "Logout" -msgstr "登出" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "邀请" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +#, fuzzy +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "登出本站" -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "登出" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 #, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "创建新帐号" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "注册" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +#, fuzzy +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "登入本站" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "帮助" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "登录" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 #, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "帮助" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "搜索" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "帮助" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +#, fuzzy +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "检索人或文字" -#: lib/action.php:493 +#: lib/action.php:502 +#, fuzzy +msgctxt "MENU" +msgid "Search" +msgstr "搜索" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 #, fuzzy msgid "Site notice" msgstr "新通告" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "本地显示" -#: lib/action.php:625 +#: lib/action.php:656 #, fuzzy msgid "Page notice" msgstr "新通告" -#: lib/action.php:727 +#: lib/action.php:758 #, fuzzy msgid "Secondary site navigation" msgstr "次项站导航" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "帮助" + +#: lib/action.php:765 msgid "About" msgstr "关于" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "常见问题FAQ" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "隐私" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "来源" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "联系人" -#: lib/action.php:751 +#: lib/action.php:782 #, fuzzy msgid "Badge" msgstr "呼叫" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "StatusNet软件注册证" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4754,12 +4873,12 @@ msgstr "" "**%%site.name%%** 是一个微博客服务,提供者为 [%%site.broughtby%%](%%site." "broughtbyurl%%)。" -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** 是一个微博客服务。" -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4770,119 +4889,171 @@ msgstr "" "General Public License](http://www.fsf.org/licensing/licenses/agpl-3.0.html)" "授权。" -#: lib/action.php:801 +#: lib/action.php:832 #, fuzzy msgid "Site content license" msgstr "StatusNet软件注册证" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "全部" -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "注册证" -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "分页" -#: lib/action.php:1141 +#: lib/action.php:1172 #, fuzzy msgid "After" msgstr "« 之后" -#: lib/action.php:1149 +#: lib/action.php:1180 #, fuzzy msgid "Before" msgstr "之前 »" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 #, fuzzy msgid "You cannot make changes to this site." msgstr "无法向此用户发送消息。" -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 #, fuzzy msgid "Changes to that panel are not allowed." msgstr "不允许注册。" -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 #, fuzzy msgid "showForm() not implemented." msgstr "命令尚未实现。" -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 #, fuzzy msgid "saveSettings() not implemented." msgstr "命令尚未实现。" -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 #, fuzzy msgid "Unable to delete design setting." msgstr "无法保存 Twitter 设置!" -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 #, fuzzy msgid "Basic site configuration" msgstr "电子邮件地址确认" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "邀请" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 #, fuzzy msgid "Design configuration" msgstr "SMS短信确认" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "个人" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 #, fuzzy msgid "User configuration" msgstr "SMS短信确认" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +#, fuzzy +msgctxt "MENU" +msgid "User" +msgstr "用户" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 #, fuzzy msgid "Access configuration" msgstr "SMS短信确认" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "接受" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 #, fuzzy msgid "Paths configuration" msgstr "SMS短信确认" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +msgctxt "MENU" +msgid "Paths" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 #, fuzzy msgid "Sessions configuration" msgstr "SMS短信确认" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "个人" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4978,12 +5149,12 @@ msgstr "" msgid "Tags for this attachment" msgstr "" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 #, fuzzy msgid "Password changing failed" msgstr "密码已保存。" -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 #, fuzzy msgid "Password changing is not allowed" msgstr "密码已保存。" @@ -5261,20 +5432,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:148 #, fuzzy msgid "No configuration file found. " msgstr "没有验证码" -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:152 #, fuzzy msgid "Go to the installer." msgstr "登入本站" @@ -5474,24 +5645,24 @@ msgstr "上传文件时出错。" msgid "Not an image or corrupt file." msgstr "不是图片文件或文件已损坏。" -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "不支持这种图像格式。" -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 #, fuzzy msgid "Lost our file." msgstr "没有这份通告。" -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "未知文件类型" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "" @@ -5806,6 +5977,12 @@ msgstr "到" msgid "Available characters" msgstr "6 个或更多字符" +#: lib/messageform.php:178 lib/noticeform.php:236 +#, fuzzy +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "发送" + #: lib/noticeform.php:160 #, fuzzy msgid "Send a notice" @@ -5866,27 +6043,27 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 #, fuzzy msgid "in context" msgstr "没有内容!" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 #, fuzzy msgid "Repeated by" msgstr "创建" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 #, fuzzy msgid "Reply to this notice" msgstr "无法删除通告。" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 #, fuzzy msgid "Reply" msgstr "回复" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 #, fuzzy msgid "Notice repeated" msgstr "消息已发布。" @@ -5937,6 +6114,10 @@ msgstr "回复" msgid "Favorites" msgstr "收藏夹" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "用户" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "收件箱" @@ -6034,7 +6215,7 @@ msgstr "无法删除通告。" msgid "Repeat this notice" msgstr "无法删除通告。" -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "" @@ -6057,6 +6238,10 @@ msgstr "搜索" msgid "Keyword(s)" msgstr "" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "搜索" + #: lib/searchaction.php:162 #, fuzzy msgid "Search help" @@ -6112,6 +6297,15 @@ msgstr "订阅 %s" msgid "Groups %s is a member of" msgstr "%s 组是成员组成了" +#: lib/subgroupnav.php:105 +msgid "Invite" +msgstr "邀请" + +#: lib/subgroupnav.php:106 +#, fuzzy, 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" @@ -6192,47 +6386,47 @@ msgstr "新消息" msgid "Moderate" msgstr "" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "几秒前" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "一分钟前" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "%d 分钟前" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "一小时前" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "%d 小时前" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "一天前" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "%d 天前" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "一个月前" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "%d 个月前" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "一年前" diff --git a/locale/zh_TW/LC_MESSAGES/statusnet.po b/locale/zh_TW/LC_MESSAGES/statusnet.po index ff517edec..5cca450ca 100644 --- a/locale/zh_TW/LC_MESSAGES/statusnet.po +++ b/locale/zh_TW/LC_MESSAGES/statusnet.po @@ -7,81 +7,86 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 23:49+0000\n" -"PO-Revision-Date: 2010-02-24 23:52:03+0000\n" +"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"PO-Revision-Date: 2010-03-02 21:04:05+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 (r62925); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hant\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: actions/accessadminpanel.php:54 lib/adminpanelaction.php:326 +#. TRANS: Page title +#: actions/accessadminpanel.php:55 #, fuzzy msgid "Access" msgstr "接受" -#: actions/accessadminpanel.php:65 +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 #, fuzzy msgid "Site access settings" msgstr "線上即時通設定" -#: actions/accessadminpanel.php:158 +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 #, fuzzy msgid "Registration" msgstr "所有訂閱" -#: actions/accessadminpanel.php:161 -msgid "Private" -msgstr "" - -#: actions/accessadminpanel.php:163 +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "" +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -msgid "Invite only" +msgctxt "LABEL" +msgid "Private" msgstr "" -#: actions/accessadminpanel.php:169 +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 msgid "Make registration invitation only." msgstr "" -#: actions/accessadminpanel.php:173 -#, fuzzy -msgid "Closed" -msgstr "無此使用者" +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 +msgid "Invite only" +msgstr "" -#: actions/accessadminpanel.php:175 +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 msgid "Disable new registrations." msgstr "" -#: actions/accessadminpanel.php:189 actions/designadminpanel.php:586 -#: actions/emailsettings.php:195 actions/imsettings.php:163 -#: actions/othersettings.php:126 actions/pathsadminpanel.php:351 -#: actions/profilesettings.php:174 actions/sessionsadminpanel.php:199 -#: actions/siteadminpanel.php:336 actions/smssettings.php:181 -#: actions/subscriptions.php:208 actions/tagother.php:154 -#: actions/useradminpanel.php:293 lib/applicationeditform.php:333 -#: lib/applicationeditform.php:334 lib/designsettings.php:256 -#: lib/groupeditform.php:202 -msgid "Save" -msgstr "" +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 +#, fuzzy +msgid "Closed" +msgstr "無此使用者" -#: actions/accessadminpanel.php:189 +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 #, fuzzy msgid "Save access settings" msgstr "線上即時通設定" -#: actions/all.php:63 actions/public.php:97 actions/replies.php:92 -#: actions/showfavorites.php:137 actions/tag.php:51 +#: actions/accessadminpanel.php:203 +msgctxt "BUTTON" +msgid "Save" +msgstr "" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 #, fuzzy msgid "No such page" msgstr "無此通知" -#: actions/all.php:74 actions/allrss.php:68 +#: actions/all.php:75 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 #: actions/apiaccountupdateprofile.php:105 #: actions/apiaccountupdateprofilebackgroundimage.php:116 @@ -95,72 +100,82 @@ msgstr "無此通知" #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 -#: actions/microsummary.php:62 actions/newmessage.php:116 actions/otp.php:76 -#: actions/remotesubscribe.php:145 actions/remotesubscribe.php:154 -#: actions/replies.php:73 actions/repliesrss.php:38 actions/rsd.php:116 -#: actions/showfavorites.php:105 actions/userbyid.php:74 -#: actions/usergroups.php:91 actions/userrss.php:38 actions/xrds.php:71 -#: lib/command.php:163 lib/command.php:302 lib/command.php:355 -#: lib/command.php:401 lib/command.php:462 lib/command.php:518 -#: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 +#: 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 msgid "No such user." msgstr "無此使用者" -#: actions/all.php:84 +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 #, fuzzy, php-format msgid "%1$s and friends, page %2$d" msgstr "%s與好友" -#: actions/all.php:86 actions/all.php:167 actions/allrss.php:115 +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" msgstr "%s與好友" -#: actions/all.php:99 +#. TRANS: %1$s is user nickname +#: actions/all.php:103 #, fuzzy, php-format msgid "Feed for friends of %s (RSS 1.0)" msgstr "發送給%s好友的訂閱" -#: actions/all.php:107 +#. TRANS: %1$s is user nickname +#: actions/all.php:112 #, fuzzy, php-format msgid "Feed for friends of %s (RSS 2.0)" msgstr "發送給%s好友的訂閱" -#: actions/all.php:115 +#. TRANS: %1$s is user nickname +#: actions/all.php:121 #, fuzzy, php-format msgid "Feed for friends of %s (Atom)" msgstr "發送給%s好友的訂閱" -#: actions/all.php:127 +#. TRANS: %1$s is user nickname +#: actions/all.php:134 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" -#: actions/all.php:132 +#: actions/all.php:139 #, php-format msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -#: actions/all.php:134 +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -#: actions/all.php:137 actions/replies.php:209 actions/showstream.php:211 +#: actions/all.php:145 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." msgstr "" -#: actions/all.php:165 +#. TRANS: H1 text +#: actions/all.php:174 #, fuzzy msgid "You and friends" msgstr "%s與好友" @@ -179,20 +194,20 @@ msgstr "" #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 #: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 #: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 -#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:136 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 #: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 #: actions/apigroupleave.php:141 actions/apigrouplist.php:132 #: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 #: actions/apigroupshow.php:115 actions/apihelptest.php:88 #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 -#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:137 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:195 actions/apitimelinehome.php:184 +#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 #: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:207 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "確認碼遺失" @@ -226,8 +241,9 @@ msgstr "無法更新使用者" #: 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/replies.php:80 -#: actions/usergroups.php:98 lib/galleryaction.php:66 lib/profileaction.php:84 +#: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74 +#: actions/replies.php:80 actions/usergroups.php:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 msgid "User has no profile." msgstr "" @@ -252,7 +268,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 +#: 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." @@ -368,68 +384,68 @@ msgstr "無法更新使用者" msgid "Could not find target user." msgstr "無法更新使用者" -#: actions/apigroupcreate.php:164 actions/editgroup.php:182 +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "暱稱請用小寫字母或數字,勿加空格。" -#: actions/apigroupcreate.php:173 actions/editgroup.php:186 +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "此暱稱已有人使用。再試試看別的吧。" -#: actions/apigroupcreate.php:180 actions/editgroup.php:189 +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "" -#: actions/apigroupcreate.php:196 actions/editapplication.php:215 -#: actions/editgroup.php:195 actions/newapplication.php:203 +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "個人首頁位址錯誤" -#: actions/apigroupcreate.php:205 actions/editgroup.php:198 +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "全名過長(最多255字元)" -#: actions/apigroupcreate.php:213 actions/editapplication.php:190 +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 #: actions/newapplication.php:172 #, fuzzy, php-format msgid "Description is too long (max %d chars)." msgstr "自我介紹過長(共140個字元)" -#: actions/apigroupcreate.php:224 actions/editgroup.php:204 +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "地點過長(共255個字)" -#: actions/apigroupcreate.php:243 actions/editgroup.php:215 +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." msgstr "" -#: actions/apigroupcreate.php:264 actions/editgroup.php:224 +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 #: actions/newgroup.php:168 #, fuzzy, php-format msgid "Invalid alias: \"%s\"" msgstr "個人首頁連結%s無效" -#: actions/apigroupcreate.php:273 actions/editgroup.php:228 +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 #, fuzzy, php-format msgid "Alias \"%s\" already in use. Try another one." msgstr "此暱稱已有人使用。再試試看別的吧。" -#: actions/apigroupcreate.php:286 actions/editgroup.php:234 +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." msgstr "" @@ -441,15 +457,15 @@ msgstr "" msgid "Group not found!" msgstr "目前無請求" -#: actions/apigroupjoin.php:110 actions/joingroup.php:90 +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 msgid "You are already a member of that group." msgstr "" -#: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 msgid "You have been blocked from that group by the admin." msgstr "" -#: actions/apigroupjoin.php:138 actions/joingroup.php:124 +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 #, fuzzy, php-format msgid "Could not join user %1$s to group %2$s." msgstr "無法連結到伺服器:%s" @@ -459,7 +475,7 @@ msgstr "無法連結到伺服器:%s" msgid "You are not a member of this group." msgstr "無法連結到伺服器:%s" -#: actions/apigroupleave.php:124 actions/leavegroup.php:119 +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 #, fuzzy, php-format msgid "Could not remove user %1$s from group %2$s." msgstr "無法從 %s 建立OpenID" @@ -491,7 +507,7 @@ msgstr "尺寸錯誤" #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 -#: actions/groupblock.php:66 actions/grouplogo.php:309 +#: actions/groupblock.php:66 actions/grouplogo.php:312 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 @@ -535,7 +551,7 @@ msgstr "" #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 -#: actions/emailsettings.php:256 actions/grouplogo.php:319 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 #: actions/imsettings.php:220 actions/newapplication.php:121 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 @@ -558,14 +574,14 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 lib/action.php:441 +#: actions/apioauthauthorize.php:310 #, fuzzy msgid "Account" msgstr "關於" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:236 actions/tagother.php:94 +#: actions/showgroup.php:244 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 #: lib/userprofile.php:131 msgid "Nickname" @@ -650,12 +666,12 @@ msgid "%1$s updates favorited by %2$s / %2$s." msgstr "&s的微型部落格" #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:131 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:90 #, php-format msgid "%s timeline" msgstr "" -#: actions/apitimelinegroup.php:114 actions/apitimelineuser.php:126 +#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" @@ -691,7 +707,7 @@ msgstr "" msgid "Repeats of %s" msgstr "" -#: actions/apitimelinetag.php:102 actions/tag.php:66 +#: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "" @@ -714,8 +730,7 @@ msgstr "無此文件" #: 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/joingroup.php:76 actions/leavegroup.php:76 -#: actions/showgroup.php:121 +#: actions/grouprss.php:91 actions/showgroup.php:121 msgid "No nickname." msgstr "無暱稱" @@ -727,7 +742,7 @@ msgstr "無尺寸" msgid "Invalid size." msgstr "尺寸錯誤" -#: actions/avatarsettings.php:67 actions/showgroup.php:221 +#: actions/avatarsettings.php:67 actions/showgroup.php:229 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "個人圖像" @@ -744,31 +759,31 @@ msgid "User without matching profile" msgstr "" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 -#: actions/grouplogo.php:251 +#: actions/grouplogo.php:254 #, fuzzy msgid "Avatar settings" msgstr "線上即時通設定" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 -#: actions/grouplogo.php:199 actions/grouplogo.php:259 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 msgid "Original" msgstr "" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 -#: actions/grouplogo.php:210 actions/grouplogo.php:271 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:637 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 msgid "Delete" msgstr "" -#: actions/avatarsettings.php:166 actions/grouplogo.php:233 +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 msgid "Upload" msgstr "" -#: actions/avatarsettings.php:231 actions/grouplogo.php:286 +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 msgid "Crop" msgstr "" @@ -776,7 +791,7 @@ msgstr "" msgid "Pick a square area of the image to be your avatar" msgstr "" -#: actions/avatarsettings.php:343 actions/grouplogo.php:377 +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" @@ -811,23 +826,23 @@ msgid "" msgstr "" #: actions/block.php:143 actions/deleteapplication.php:153 -#: actions/deletenotice.php:145 actions/deleteuser.php:147 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 #: actions/groupblock.php:178 msgid "No" msgstr "" -#: actions/block.php:143 actions/deleteuser.php:147 +#: actions/block.php:143 actions/deleteuser.php:150 #, fuzzy msgid "Do not block this user" msgstr "無此使用者" #: actions/block.php:144 actions/deleteapplication.php:158 -#: actions/deletenotice.php:146 actions/deleteuser.php:148 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 #: actions/groupblock.php:179 lib/repeatform.php:132 msgid "Yes" msgstr "" -#: actions/block.php:144 actions/groupmembers.php:348 lib/blockform.php:80 +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 #, fuzzy msgid "Block this user" msgstr "無此使用者" @@ -836,41 +851,45 @@ msgstr "無此使用者" msgid "Failed to save block information." msgstr "" -#: actions/blockedfromgroup.php:80 actions/editgroup.php:96 -#: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 -#: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 -#: actions/grouplogo.php:99 actions/groupmembers.php:83 -#: actions/grouprss.php:98 actions/groupunblock.php:86 -#: actions/joingroup.php:83 actions/leavegroup.php:83 actions/makeadmin.php:86 -#: actions/showgroup.php:137 lib/command.php:212 lib/command.php:260 +#: 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:212 +#: lib/command.php:260 #, fuzzy msgid "No such group." msgstr "無此通知" -#: actions/blockedfromgroup.php:90 +#: actions/blockedfromgroup.php:97 #, fuzzy, php-format msgid "%s blocked profiles" msgstr "無此通知" -#: actions/blockedfromgroup.php:93 +#: actions/blockedfromgroup.php:100 #, fuzzy, php-format msgid "%1$s blocked profiles, page %2$d" msgstr "%s與好友" -#: actions/blockedfromgroup.php:108 +#: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." msgstr "" -#: actions/blockedfromgroup.php:281 +#: actions/blockedfromgroup.php:288 #, fuzzy msgid "Unblock user from group" msgstr "無此使用者" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:69 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 msgid "Unblock" msgstr "" -#: actions/blockedfromgroup.php:313 lib/unblockform.php:80 +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 #, fuzzy msgid "Unblock this user" msgstr "無此使用者" @@ -951,7 +970,7 @@ msgstr "無法連結到伺服器:%s" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1197 +#: lib/action.php:1228 msgid "There was a problem with your session token." msgstr "" @@ -977,12 +996,13 @@ msgstr "無此通知" msgid "Delete this application" msgstr "請在140個字以內描述你自己與你的興趣" +#. TRANS: Client error message #: 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:72 lib/profileformaction.php:63 +#: lib/adminpanelaction.php:73 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." msgstr "" @@ -1010,7 +1030,7 @@ msgstr "" msgid "Do not delete this notice" msgstr "無此通知" -#: actions/deletenotice.php:146 lib/noticelist.php:637 +#: actions/deletenotice.php:146 lib/noticelist.php:655 msgid "Delete this notice" msgstr "" @@ -1028,19 +1048,19 @@ msgstr "無此使用者" msgid "Delete user" msgstr "" -#: actions/deleteuser.php:135 +#: 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 "" -#: actions/deleteuser.php:148 lib/deleteuserform.php:77 +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 #, fuzzy msgid "Delete this user" msgstr "無此使用者" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 -#: lib/adminpanelaction.php:316 lib/groupnav.php:119 +#: lib/groupnav.php:119 msgid "Design" msgstr "" @@ -1149,6 +1169,17 @@ msgstr "" msgid "Reset back to default" msgstr "" +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 actions/othersettings.php:126 +#: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "" + #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" msgstr "" @@ -1248,31 +1279,31 @@ msgstr "" msgid "You must be logged in to create a group." msgstr "" -#: actions/editgroup.php:103 actions/editgroup.php:168 -#: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 +#: 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 "" -#: actions/editgroup.php:154 +#: actions/editgroup.php:158 msgid "Use this form to edit the group." msgstr "" -#: actions/editgroup.php:201 actions/newgroup.php:145 +#: actions/editgroup.php:205 actions/newgroup.php:145 #, fuzzy, php-format msgid "description is too long (max %d chars)." msgstr "自我介紹過長(共140個字元)" -#: actions/editgroup.php:253 +#: actions/editgroup.php:258 #, fuzzy msgid "Could not update group." msgstr "無法更新使用者" -#: actions/editgroup.php:259 classes/User_group.php:433 +#: actions/editgroup.php:264 classes/User_group.php:478 #, fuzzy msgid "Could not create aliases." msgstr "無法存取個人圖像資料" -#: actions/editgroup.php:269 +#: actions/editgroup.php:280 msgid "Options saved." msgstr "" @@ -1611,7 +1642,7 @@ msgstr "" msgid "User is not a member of group." msgstr "" -#: actions/groupblock.php:136 actions/groupmembers.php:316 +#: actions/groupblock.php:136 actions/groupmembers.php:323 #, fuzzy msgid "Block user from group" msgstr "無此使用者" @@ -1647,89 +1678,89 @@ msgstr "查無此Jabber ID" msgid "You must be logged in to edit a group." msgstr "" -#: actions/groupdesignsettings.php:141 +#: actions/groupdesignsettings.php:144 msgid "Group design" msgstr "" -#: actions/groupdesignsettings.php:152 +#: actions/groupdesignsettings.php:155 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." msgstr "" -#: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 #, fuzzy msgid "Couldn't update your design." msgstr "無法更新使用者" -#: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 msgid "Design preferences saved." msgstr "" -#: actions/grouplogo.php:139 actions/grouplogo.php:192 +#: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" msgstr "" -#: actions/grouplogo.php:150 +#: actions/grouplogo.php:153 #, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "" -#: actions/grouplogo.php:178 +#: actions/grouplogo.php:181 msgid "User without matching profile." msgstr "" -#: actions/grouplogo.php:362 +#: actions/grouplogo.php:365 msgid "Pick a square area of the image to be the logo." msgstr "" -#: actions/grouplogo.php:396 +#: actions/grouplogo.php:399 #, fuzzy msgid "Logo updated." msgstr "更新個人圖像" -#: actions/grouplogo.php:398 +#: actions/grouplogo.php:401 #, fuzzy msgid "Failed updating logo." msgstr "無法上傳個人圖像" -#: actions/groupmembers.php:93 lib/groupnav.php:92 +#: actions/groupmembers.php:100 lib/groupnav.php:92 #, php-format msgid "%s group members" msgstr "" -#: actions/groupmembers.php:96 +#: actions/groupmembers.php:103 #, php-format msgid "%1$s group members, page %2$d" msgstr "" -#: actions/groupmembers.php:111 +#: actions/groupmembers.php:118 msgid "A list of the users in this group." msgstr "" -#: actions/groupmembers.php:175 lib/action.php:448 lib/groupnav.php:107 +#: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" msgstr "" -#: actions/groupmembers.php:348 lib/blockform.php:69 +#: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" msgstr "" -#: actions/groupmembers.php:443 +#: actions/groupmembers.php:450 msgid "Make user an admin of the group" msgstr "" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make Admin" msgstr "" -#: actions/groupmembers.php:475 +#: actions/groupmembers.php:482 msgid "Make this user an admin" msgstr "" -#: actions/grouprss.php:133 +#: actions/grouprss.php:140 #, fuzzy, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "&s的微型部落格" @@ -1973,16 +2004,18 @@ msgstr "" msgid "Optionally add a personal message to the invitation." msgstr "" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:236 +#. TRANS: Send button for inviting friends +#: actions/invite.php:198 +msgctxt "BUTTON" msgid "Send" msgstr "" -#: actions/invite.php:226 +#: actions/invite.php:227 #, php-format msgid "%1$s has invited you to join them on %2$s" msgstr "" -#: actions/invite.php:228 +#: actions/invite.php:229 #, php-format msgid "" "%1$s has invited you to join them on %2$s (%3$s).\n" @@ -2017,7 +2050,12 @@ msgstr "" msgid "You must be logged in to join a group." msgstr "" -#: actions/joingroup.php:131 +#: actions/joingroup.php:88 actions/leavegroup.php:88 +#, fuzzy +msgid "No nickname or ID." +msgstr "無暱稱" + +#: actions/joingroup.php:141 #, php-format msgid "%1$s joined group %2$s" msgstr "" @@ -2026,11 +2064,11 @@ msgstr "" msgid "You must be logged in to leave a group." msgstr "" -#: actions/leavegroup.php:90 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:265 msgid "You are not a member of that group." msgstr "" -#: actions/leavegroup.php:127 +#: actions/leavegroup.php:137 #, fuzzy, php-format msgid "%1$s left group %2$s" msgstr "%1$s的狀態是%2$s" @@ -2047,8 +2085,7 @@ msgstr "使用者名稱或密碼錯誤" msgid "Error setting user. You are probably not authorized." msgstr "" -#: actions/login.php:188 actions/login.php:241 lib/action.php:466 -#: lib/logingroupnav.php:79 +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" msgstr "登入" @@ -2291,8 +2328,8 @@ msgstr "連結" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1040 -#: lib/api.php:1068 lib/api.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 +#: lib/apiaction.php:1068 lib/apiaction.php:1177 msgid "Not a supported data format." msgstr "" @@ -2438,7 +2475,7 @@ msgstr "無法存取新密碼" msgid "Password saved." msgstr "" -#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:331 +#: actions/pathsadminpanel.php:59 msgid "Paths" msgstr "" @@ -2471,7 +2508,6 @@ msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58 -#: lib/adminpanelaction.php:311 msgid "Site" msgstr "" @@ -2646,7 +2682,7 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64個小寫英文字母或數字,勿加標點符號或空格" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:247 actions/tagother.php:104 +#: actions/showgroup.php:255 actions/tagother.php:104 #: lib/groupeditform.php:157 lib/userprofile.php:149 msgid "Full name" msgstr "全名" @@ -2675,7 +2711,7 @@ msgid "Bio" msgstr "自我介紹" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:256 actions/tagother.php:112 +#: actions/showgroup.php:264 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 #: lib/userprofile.php:164 msgid "Location" @@ -2757,7 +2793,8 @@ msgstr "無法儲存個人資料" msgid "Couldn't save tags." msgstr "無法儲存個人資料" -#: actions/profilesettings.php:391 lib/adminpanelaction.php:137 +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 msgid "Settings saved." msgstr "" @@ -2770,46 +2807,46 @@ msgstr "" msgid "Could not retrieve public stream." msgstr "" -#: actions/public.php:129 +#: actions/public.php:130 #, php-format msgid "Public timeline, page %d" msgstr "" -#: actions/public.php:131 lib/publicgroupnav.php:79 +#: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "" -#: actions/public.php:159 +#: actions/public.php:160 msgid "Public Stream Feed (RSS 1.0)" msgstr "" -#: actions/public.php:163 +#: actions/public.php:164 msgid "Public Stream Feed (RSS 2.0)" msgstr "" -#: actions/public.php:167 +#: actions/public.php:168 #, fuzzy msgid "Public Stream Feed (Atom)" msgstr "%s的公開內容" -#: actions/public.php:187 +#: 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:190 +#: actions/public.php:191 msgid "Be the first to post!" msgstr "" -#: actions/public.php:194 +#: actions/public.php:195 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" -#: actions/public.php:241 +#: actions/public.php:242 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2818,7 +2855,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" -#: actions/public.php:246 +#: actions/public.php:247 #, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" @@ -2988,8 +3025,7 @@ msgstr "確認碼發生錯誤" msgid "Registration successful" msgstr "" -#: actions/register.php:114 actions/register.php:503 lib/action.php:463 -#: lib/logingroupnav.php:85 +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 msgid "Register" msgstr "" @@ -3152,7 +3188,7 @@ msgstr "" msgid "You already repeated that notice." msgstr "無此使用者" -#: actions/repeat.php:114 lib/noticelist.php:656 +#: actions/repeat.php:114 lib/noticelist.php:674 #, fuzzy msgid "Repeated" msgstr "新增" @@ -3162,47 +3198,47 @@ msgstr "新增" msgid "Repeated!" msgstr "新增" -#: actions/replies.php:125 actions/repliesrss.php:68 +#: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 #, php-format msgid "Replies to %s" msgstr "" -#: actions/replies.php:127 +#: actions/replies.php:128 #, fuzzy, php-format msgid "Replies to %1$s, page %2$d" msgstr "&s的微型部落格" -#: actions/replies.php:144 +#: actions/replies.php:145 #, fuzzy, php-format msgid "Replies feed for %s (RSS 1.0)" msgstr "發送給%s好友的訂閱" -#: actions/replies.php:151 +#: actions/replies.php:152 #, fuzzy, php-format msgid "Replies feed for %s (RSS 2.0)" msgstr "發送給%s好友的訂閱" -#: actions/replies.php:158 +#: actions/replies.php:159 #, fuzzy, php-format msgid "Replies feed for %s (Atom)" msgstr "發送給%s好友的訂閱" -#: actions/replies.php:198 +#: actions/replies.php:199 #, 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 "" -#: actions/replies.php:203 +#: 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:205 +#: actions/replies.php:206 #, php-format msgid "" "You can try to [nudge %1$s](../%2$s) or [post something to his or her " @@ -3229,7 +3265,6 @@ msgid "User is already sandboxed." msgstr "" #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 -#: lib/adminpanelaction.php:336 msgid "Sessions" msgstr "" @@ -3254,7 +3289,7 @@ msgid "Turn on debugging output for sessions." msgstr "" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/useradminpanel.php:293 +#: actions/useradminpanel.php:294 #, fuzzy msgid "Save site settings" msgstr "線上即時通設定" @@ -3288,7 +3323,7 @@ msgstr "地點" msgid "Description" msgstr "所有訂閱" -#: actions/showapplication.php:192 actions/showgroup.php:429 +#: actions/showapplication.php:192 actions/showgroup.php:437 #: lib/profileaction.php:174 msgid "Statistics" msgstr "" @@ -3349,35 +3384,35 @@ msgstr "%s與好友" msgid "Could not retrieve favorite notices." msgstr "" -#: actions/showfavorites.php:170 +#: actions/showfavorites.php:171 #, fuzzy, php-format msgid "Feed for favorites of %s (RSS 1.0)" msgstr "發送給%s好友的訂閱" -#: actions/showfavorites.php:177 +#: actions/showfavorites.php:178 #, fuzzy, php-format msgid "Feed for favorites of %s (RSS 2.0)" msgstr "發送給%s好友的訂閱" -#: actions/showfavorites.php:184 +#: actions/showfavorites.php:185 #, fuzzy, php-format msgid "Feed for favorites of %s (Atom)" msgstr "發送給%s好友的訂閱" -#: actions/showfavorites.php:205 +#: 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:207 +#: 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 :)" msgstr "" -#: actions/showfavorites.php:211 +#: actions/showfavorites.php:212 #, php-format msgid "" "%s hasn't added any notices to his favorites yet. Why not [register an " @@ -3385,7 +3420,7 @@ msgid "" "would add to their favorites :)" msgstr "" -#: actions/showfavorites.php:242 +#: actions/showfavorites.php:243 msgid "This is a way to share what you like." msgstr "" @@ -3399,70 +3434,70 @@ msgstr "" msgid "%1$s group, page %2$d" msgstr "所有訂閱" -#: actions/showgroup.php:218 +#: actions/showgroup.php:226 #, fuzzy msgid "Group profile" msgstr "無此通知" -#: actions/showgroup.php:263 actions/tagother.php:118 +#: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" msgstr "" -#: actions/showgroup.php:274 actions/tagother.php:128 +#: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 msgid "Note" msgstr "" -#: actions/showgroup.php:284 lib/groupeditform.php:184 +#: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" msgstr "" -#: actions/showgroup.php:293 +#: actions/showgroup.php:301 msgid "Group actions" msgstr "" -#: actions/showgroup.php:328 +#: actions/showgroup.php:336 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "" -#: actions/showgroup.php:334 +#: actions/showgroup.php:342 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "" -#: actions/showgroup.php:340 +#: actions/showgroup.php:348 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "" -#: actions/showgroup.php:345 +#: actions/showgroup.php:353 #, fuzzy, php-format msgid "FOAF for %s group" msgstr "無此通知" -#: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 +#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 #, fuzzy msgid "Members" msgstr "何時加入會員的呢?" -#: actions/showgroup.php:386 lib/profileaction.php:117 +#: actions/showgroup.php:394 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" -#: actions/showgroup.php:392 +#: actions/showgroup.php:400 msgid "All members" msgstr "" -#: actions/showgroup.php:432 +#: actions/showgroup.php:440 #, fuzzy msgid "Created" msgstr "新增" -#: actions/showgroup.php:448 +#: actions/showgroup.php:456 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3472,7 +3507,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:454 +#: actions/showgroup.php:462 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3481,7 +3516,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:482 +#: actions/showgroup.php:490 msgid "Admins" msgstr "" @@ -3939,22 +3974,22 @@ msgstr "查無此Jabber ID" msgid "SMS" msgstr "" -#: actions/tag.php:68 +#: actions/tag.php:69 #, fuzzy, php-format msgid "Notices tagged with %1$s, page %2$d" msgstr "&s的微型部落格" -#: actions/tag.php:86 +#: actions/tag.php:87 #, php-format msgid "Notice feed for tag %s (RSS 1.0)" msgstr "" -#: actions/tag.php:92 +#: actions/tag.php:93 #, fuzzy, php-format msgid "Notice feed for tag %s (RSS 2.0)" msgstr "發送給%s好友的訂閱" -#: actions/tag.php:98 +#: actions/tag.php:99 #, php-format msgid "Notice feed for tag %s (Atom)" msgstr "" @@ -4008,7 +4043,7 @@ msgstr "" msgid "No such tag." msgstr "無此通知" -#: actions/twitapitrends.php:87 +#: actions/twitapitrends.php:85 msgid "API method under construction." msgstr "" @@ -4041,72 +4076,73 @@ msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -#: actions/useradminpanel.php:58 lib/adminpanelaction.php:321 -#: lib/personalgroupnav.php:115 +#. TRANS: User admin panel title +#: actions/useradminpanel.php:59 +msgctxt "TITLE" msgid "User" msgstr "" -#: actions/useradminpanel.php:69 +#: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." msgstr "" -#: actions/useradminpanel.php:148 +#: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." msgstr "" -#: actions/useradminpanel.php:154 +#: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "" -#: actions/useradminpanel.php:164 +#: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." msgstr "" -#: actions/useradminpanel.php:217 lib/accountsettingsaction.php:108 +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 msgid "Profile" msgstr "" -#: actions/useradminpanel.php:221 +#: actions/useradminpanel.php:222 msgid "Bio Limit" msgstr "" -#: actions/useradminpanel.php:222 +#: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." msgstr "" -#: actions/useradminpanel.php:230 +#: actions/useradminpanel.php:231 msgid "New users" msgstr "" -#: actions/useradminpanel.php:234 +#: actions/useradminpanel.php:235 msgid "New user welcome" msgstr "" -#: actions/useradminpanel.php:235 +#: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." msgstr "" -#: actions/useradminpanel.php:240 +#: actions/useradminpanel.php:241 #, fuzzy msgid "Default subscription" msgstr "所有訂閱" -#: actions/useradminpanel.php:241 +#: actions/useradminpanel.php:242 msgid "Automatically subscribe new users to this user." msgstr "" -#: actions/useradminpanel.php:250 +#: actions/useradminpanel.php:251 #, fuzzy msgid "Invitations" msgstr "地點" -#: actions/useradminpanel.php:255 +#: actions/useradminpanel.php:256 msgid "Invitations enabled" msgstr "" -#: actions/useradminpanel.php:257 +#: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." msgstr "" @@ -4280,7 +4316,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:747 +#: actions/version.php:196 lib/action.php:778 #, fuzzy msgid "Version" msgstr "地點" @@ -4321,6 +4357,11 @@ msgstr "無法更新使用者" msgid "Group leave failed." msgstr "無此通知" +#: classes/Local_group.php:41 +#, fuzzy +msgid "Could not update local group." +msgstr "無法更新使用者" + #: classes/Login_token.php:76 #, fuzzy, php-format msgid "Could not create login token for %s" @@ -4338,46 +4379,46 @@ msgstr "" msgid "Could not update message with new URI." msgstr "" -#: classes/Notice.php:157 +#: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" msgstr "" -#: classes/Notice.php:222 +#: classes/Notice.php:239 #, fuzzy msgid "Problem saving notice. Too long." msgstr "儲存使用者發生錯誤" -#: classes/Notice.php:226 +#: classes/Notice.php:243 #, fuzzy msgid "Problem saving notice. Unknown user." msgstr "儲存使用者發生錯誤" -#: classes/Notice.php:231 +#: classes/Notice.php:248 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:237 +#: classes/Notice.php:254 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:243 +#: classes/Notice.php:260 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:309 classes/Notice.php:335 +#: classes/Notice.php:326 classes/Notice.php:352 msgid "Problem saving notice." msgstr "" -#: classes/Notice.php:882 +#: classes/Notice.php:911 #, fuzzy msgid "Problem saving group inbox." msgstr "儲存使用者發生錯誤" -#: classes/Notice.php:1407 +#: classes/Notice.php:1442 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4408,21 +4449,31 @@ msgstr "無法刪除帳號" msgid "Couldn't delete subscription." msgstr "無法刪除帳號" -#: classes/User.php:372 +#: classes/User.php:373 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:423 +#: classes/User_group.php:462 #, fuzzy msgid "Could not create group." msgstr "無法存取個人圖像資料" -#: classes/User_group.php:452 +#: classes/User_group.php:471 +#, fuzzy +msgid "Could not set group URI." +msgstr "註冊失敗" + +#: classes/User_group.php:492 #, fuzzy msgid "Could not set group membership." msgstr "註冊失敗" +#: classes/User_group.php:506 +#, fuzzy +msgid "Could not save local group info." +msgstr "註冊失敗" + #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" msgstr "" @@ -4466,125 +4517,186 @@ msgstr "" msgid "Primary site navigation" msgstr "" +#. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:439 -msgid "Home" -msgstr "主頁" - -#: lib/action.php:439 +msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:441 -msgid "Change your email, avatar, password, profile" -msgstr "" +#: lib/action.php:442 +#, fuzzy +msgctxt "MENU" +msgid "Personal" +msgstr "地點" +#. TRANS: Tooltip for main menu option "Account" #: lib/action.php:444 -msgid "Connect" -msgstr "連結" +#, fuzzy +msgctxt "TOOLTIP" +msgid "Change your email, avatar, password, profile" +msgstr "更改密碼" -#: lib/action.php:444 +#: lib/action.php:447 #, fuzzy +msgctxt "MENU" +msgid "Account" +msgstr "關於" + +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:450 +#, fuzzy +msgctxt "TOOLTIP" msgid "Connect to services" msgstr "無法連結到伺服器:%s" -#: lib/action.php:448 +#: lib/action.php:453 +#, fuzzy +msgctxt "MENU" +msgid "Connect" +msgstr "連結" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:457 +#, fuzzy +msgctxt "TOOLTIP" msgid "Change site configuration" -msgstr "" +msgstr "確認信箱" -#: lib/action.php:452 lib/subgroupnav.php:105 -msgid "Invite" +#: lib/action.php:460 +msgctxt "MENU" +msgid "Admin" msgstr "" -#: lib/action.php:453 lib/subgroupnav.php:106 +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:464 #, php-format +msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "" -#: lib/action.php:458 -msgid "Logout" -msgstr "登出" +#: lib/action.php:467 +#, fuzzy +msgctxt "MENU" +msgid "Invite" +msgstr "尺寸錯誤" -#: lib/action.php:458 +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:473 +msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "" -#: lib/action.php:463 +#: lib/action.php:476 +#, fuzzy +msgctxt "MENU" +msgid "Logout" +msgstr "登出" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:481 #, fuzzy +msgctxt "TOOLTIP" msgid "Create an account" msgstr "新增帳號" -#: lib/action.php:466 +#: lib/action.php:484 +#, fuzzy +msgctxt "MENU" +msgid "Register" +msgstr "所有訂閱" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:487 +msgctxt "TOOLTIP" msgid "Login to the site" msgstr "" -#: lib/action.php:469 lib/action.php:732 -msgid "Help" -msgstr "求救" +#: lib/action.php:490 +#, fuzzy +msgctxt "MENU" +msgid "Login" +msgstr "登入" -#: lib/action.php:469 +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:493 #, fuzzy +msgctxt "TOOLTIP" msgid "Help me!" msgstr "求救" -#: lib/action.php:472 lib/searchaction.php:127 -msgid "Search" -msgstr "" +#: lib/action.php:496 +#, fuzzy +msgctxt "MENU" +msgid "Help" +msgstr "求救" -#: lib/action.php:472 +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:499 +msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "" -#: lib/action.php:493 +#: lib/action.php:502 +msgctxt "MENU" +msgid "Search" +msgstr "" + +#. TRANS: DT element for site notice. String is hidden in default CSS. +#: lib/action.php:524 #, fuzzy msgid "Site notice" msgstr "新訊息" -#: lib/action.php:559 +#: lib/action.php:590 msgid "Local views" msgstr "" -#: lib/action.php:625 +#: lib/action.php:656 #, fuzzy msgid "Page notice" msgstr "新訊息" -#: lib/action.php:727 +#: lib/action.php:758 msgid "Secondary site navigation" msgstr "" -#: lib/action.php:734 +#: lib/action.php:763 +msgid "Help" +msgstr "求救" + +#: lib/action.php:765 msgid "About" msgstr "關於" -#: lib/action.php:736 +#: lib/action.php:767 msgid "FAQ" msgstr "常見問題" -#: lib/action.php:740 +#: lib/action.php:771 msgid "TOS" msgstr "" -#: lib/action.php:743 +#: lib/action.php:774 msgid "Privacy" msgstr "" -#: lib/action.php:745 +#: lib/action.php:776 msgid "Source" msgstr "" -#: lib/action.php:749 +#: lib/action.php:780 msgid "Contact" msgstr "好友名單" -#: lib/action.php:751 +#: lib/action.php:782 msgid "Badge" msgstr "" -#: lib/action.php:779 +#: lib/action.php:810 msgid "StatusNet software license" msgstr "" -#: lib/action.php:782 +#: lib/action.php:813 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4593,12 +4705,12 @@ msgstr "" "**%%site.name%%**是由[%%site.broughtby%%](%%site.broughtbyurl%%)所提供的微型" "部落格服務" -#: lib/action.php:784 +#: lib/action.php:815 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%**是個微型部落格" -#: lib/action.php:786 +#: lib/action.php:817 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4606,113 +4718,164 @@ msgid "" "org/licensing/licenses/agpl-3.0.html)." msgstr "" -#: lib/action.php:801 +#: lib/action.php:832 #, fuzzy msgid "Site content license" msgstr "新訊息" -#: lib/action.php:806 +#: lib/action.php:837 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:811 +#: lib/action.php:842 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:814 +#: lib/action.php:845 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:827 +#: lib/action.php:858 msgid "All " msgstr "" -#: lib/action.php:833 +#: lib/action.php:864 msgid "license." msgstr "" -#: lib/action.php:1132 +#: lib/action.php:1163 msgid "Pagination" msgstr "" -#: lib/action.php:1141 +#: lib/action.php:1172 msgid "After" msgstr "" -#: lib/action.php:1149 +#: lib/action.php:1180 #, fuzzy msgid "Before" msgstr "之前的內容»" -#: lib/activity.php:382 +#: lib/activity.php:449 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:410 +#: lib/activity.php:477 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:414 +#: lib/activity.php:481 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/adminpanelaction.php:96 +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." msgstr "" -#: lib/adminpanelaction.php:107 +#. TRANS: Client error message +#: lib/adminpanelaction.php:110 msgid "Changes to that panel are not allowed." msgstr "" -#: lib/adminpanelaction.php:206 +#. TRANS: Client error message +#: lib/adminpanelaction.php:211 msgid "showForm() not implemented." msgstr "" -#: lib/adminpanelaction.php:235 +#. TRANS: Client error message +#: lib/adminpanelaction.php:241 msgid "saveSettings() not implemented." msgstr "" -#: lib/adminpanelaction.php:258 +#. TRANS: Client error message +#: lib/adminpanelaction.php:265 msgid "Unable to delete design setting." msgstr "" -#: lib/adminpanelaction.php:312 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:330 #, fuzzy msgid "Basic site configuration" msgstr "確認信箱" -#: lib/adminpanelaction.php:317 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:332 +#, fuzzy +msgctxt "MENU" +msgid "Site" +msgstr "新訊息" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:338 #, fuzzy msgid "Design configuration" msgstr "確認信箱" -#: lib/adminpanelaction.php:322 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:340 +#, fuzzy +msgctxt "MENU" +msgid "Design" +msgstr "地點" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:346 #, fuzzy msgid "User configuration" msgstr "確認信箱" -#: lib/adminpanelaction.php:327 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:348 +msgctxt "MENU" +msgid "User" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:354 #, fuzzy msgid "Access configuration" msgstr "確認信箱" -#: lib/adminpanelaction.php:332 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:356 +#, fuzzy +msgctxt "MENU" +msgid "Access" +msgstr "接受" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:362 #, fuzzy msgid "Paths configuration" msgstr "確認信箱" -#: lib/adminpanelaction.php:337 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:364 +msgctxt "MENU" +msgid "Paths" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:370 #, fuzzy msgid "Sessions configuration" msgstr "確認信箱" -#: lib/apiauth.php:95 +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:372 +#, fuzzy +msgctxt "MENU" +msgid "Sessions" +msgstr "地點" + +#: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:273 +#: lib/apiauth.php:272 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4803,11 +4966,11 @@ msgstr "" msgid "Tags for this attachment" msgstr "" -#: lib/authenticationplugin.php:218 lib/authenticationplugin.php:223 +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 msgid "Password changing failed" msgstr "" -#: lib/authenticationplugin.php:233 +#: lib/authenticationplugin.php:235 msgid "Password changing is not allowed" msgstr "" @@ -5085,20 +5248,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:148 #, fuzzy msgid "No configuration file found. " msgstr "無確認碼" -#: lib/common.php:137 +#: lib/common.php:149 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:151 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:152 msgid "Go to the installer." msgstr "" @@ -5290,24 +5453,24 @@ msgstr "" msgid "Not an image or corrupt file." msgstr "" -#: lib/imagefile.php:105 +#: lib/imagefile.php:109 msgid "Unsupported image file format." msgstr "" -#: lib/imagefile.php:118 +#: lib/imagefile.php:122 #, fuzzy msgid "Lost our file." msgstr "無此通知" -#: lib/imagefile.php:150 lib/imagefile.php:197 +#: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" msgstr "" -#: lib/imagefile.php:217 +#: lib/imagefile.php:251 msgid "MB" msgstr "" -#: lib/imagefile.php:219 +#: lib/imagefile.php:253 msgid "kB" msgstr "" @@ -5612,6 +5775,11 @@ msgstr "" msgid "Available characters" msgstr "6個以上字元" +#: lib/messageform.php:178 lib/noticeform.php:236 +msgctxt "Send button for sending notice" +msgid "Send" +msgstr "" + #: lib/noticeform.php:160 #, fuzzy msgid "Send a notice" @@ -5671,25 +5839,25 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:558 +#: lib/noticelist.php:566 #, fuzzy msgid "in context" msgstr "無內容" -#: lib/noticelist.php:583 +#: lib/noticelist.php:601 #, fuzzy msgid "Repeated by" msgstr "新增" -#: lib/noticelist.php:610 +#: lib/noticelist.php:628 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:611 +#: lib/noticelist.php:629 msgid "Reply" msgstr "" -#: lib/noticelist.php:655 +#: lib/noticelist.php:673 #, fuzzy msgid "Notice repeated" msgstr "更新個人圖像" @@ -5739,6 +5907,10 @@ msgstr "" msgid "Favorites" msgstr "" +#: lib/personalgroupnav.php:115 +msgid "User" +msgstr "" + #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "" @@ -5832,7 +6004,7 @@ msgstr "無此通知" msgid "Repeat this notice" msgstr "無此通知" -#: lib/router.php:665 +#: lib/router.php:668 msgid "No single user defined for single-user mode." msgstr "" @@ -5853,6 +6025,10 @@ msgstr "" msgid "Keyword(s)" msgstr "" +#: lib/searchaction.php:127 +msgid "Search" +msgstr "" + #: lib/searchaction.php:162 msgid "Search help" msgstr "" @@ -5906,6 +6082,15 @@ msgstr "此帳號已註冊" 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" @@ -5980,47 +6165,47 @@ msgstr "" msgid "Moderate" msgstr "" -#: lib/util.php:952 +#: lib/util.php:1013 msgid "a few seconds ago" msgstr "" -#: lib/util.php:954 +#: lib/util.php:1015 msgid "about a minute ago" msgstr "" -#: lib/util.php:956 +#: lib/util.php:1017 #, php-format msgid "about %d minutes ago" msgstr "" -#: lib/util.php:958 +#: lib/util.php:1019 msgid "about an hour ago" msgstr "" -#: lib/util.php:960 +#: lib/util.php:1021 #, php-format msgid "about %d hours ago" msgstr "" -#: lib/util.php:962 +#: lib/util.php:1023 msgid "about a day ago" msgstr "" -#: lib/util.php:964 +#: lib/util.php:1025 #, php-format msgid "about %d days ago" msgstr "" -#: lib/util.php:966 +#: lib/util.php:1027 msgid "about a month ago" msgstr "" -#: lib/util.php:968 +#: lib/util.php:1029 #, php-format msgid "about %d months ago" msgstr "" -#: lib/util.php:970 +#: lib/util.php:1031 msgid "about a year ago" msgstr "" diff --git a/plugins/Facebook/locale/Facebook.po b/plugins/Facebook/locale/Facebook.po index 5b313c8c5..4bc00248c 100644 --- a/plugins/Facebook/locale/Facebook.po +++ b/plugins/Facebook/locale/Facebook.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-07 20:38-0800\n" +"POT-Creation-Date: 2010-03-01 14:58-0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -59,63 +59,31 @@ msgstr "" msgid "Lost or forgotten password?" msgstr "" -#: facebookaction.php:386 facebookhome.php:248 +#: facebookaction.php:330 facebookhome.php:248 msgid "Pagination" msgstr "" -#: facebookaction.php:395 facebookhome.php:257 +#: facebookaction.php:339 facebookhome.php:257 msgid "After" msgstr "" -#: facebookaction.php:403 facebookhome.php:265 +#: facebookaction.php:347 facebookhome.php:265 msgid "Before" msgstr "" -#: facebookaction.php:421 +#: facebookaction.php:365 msgid "No notice content!" msgstr "" -#: facebookaction.php:427 +#: facebookaction.php:371 #, php-format msgid "That's too long. Max notice size is %d chars." msgstr "" -#: facebookaction.php:523 +#: facebookaction.php:430 msgid "Notices" msgstr "" -#: facebookutil.php:280 -#, php-format -msgid "Your %1$s Facebook application access has been disabled." -msgstr "" - -#: facebookutil.php:283 -#, php-format -msgid "" -"Hi, %1$s. We're sorry to inform you that we are unable to update your " -"Facebook status from %2$s, and have disabled the Facebook application for " -"your account. This may be because you have removed the Facebook " -"application's authorization, or have deleted your Facebook account. You can " -"re-enable the Facebook application and automatic status updating by re-" -"installing the %2$s Facebook application.\n" -"\n" -"Regards,\n" -"\n" -"%2$s" -msgstr "" - -#: FBConnectLogin.php:33 -msgid "Already logged in." -msgstr "" - -#: FBConnectLogin.php:41 -msgid "Login with your Facebook Account" -msgstr "" - -#: FBConnectLogin.php:55 -msgid "Facebook Login" -msgstr "" - #: facebookhome.php:111 msgid "Server error - couldn't get user!" msgstr "" @@ -149,50 +117,6 @@ msgstr "" msgid "Skip" msgstr "" -#: facebooksettings.php:74 -msgid "There was a problem saving your sync preferences!" -msgstr "" - -#: facebooksettings.php:76 -msgid "Sync preferences saved." -msgstr "" - -#: facebooksettings.php:99 -msgid "Automatically update my Facebook status with my notices." -msgstr "" - -#: facebooksettings.php:106 -msgid "Send \"@\" replies to Facebook." -msgstr "" - -#: facebooksettings.php:115 -msgid "Prefix" -msgstr "" - -#: facebooksettings.php:117 -msgid "A string to prefix notices with." -msgstr "" - -#: facebooksettings.php:123 -msgid "Save" -msgstr "" - -#: facebooksettings.php:133 -#, php-format -msgid "" -"If you would like %s to automatically update your Facebook status with your " -"latest notice, you need to give it permission." -msgstr "" - -#: facebooksettings.php:146 -#, php-format -msgid "Allow %s to update my Facebook status" -msgstr "" - -#: facebooksettings.php:156 -msgid "Sync preferences" -msgstr "" - #: facebookinvite.php:72 #, php-format msgid "Thanks for inviting your friends to use %s" @@ -221,61 +145,85 @@ msgstr "" msgid "Send invitations" msgstr "" -#: facebookremove.php:58 -msgid "Couldn't remove Facebook user." +#: FacebookPlugin.php:413 FacebookPlugin.php:433 +msgid "Facebook" msgstr "" -#: FBConnectSettings.php:56 FacebookPlugin.php:430 +#: FacebookPlugin.php:414 +msgid "Login or register using Facebook" +msgstr "" + +#: FacebookPlugin.php:434 FBConnectSettings.php:56 msgid "Facebook Connect Settings" msgstr "" -#: FBConnectSettings.php:67 -msgid "Manage how your account connects to Facebook" +#: FacebookPlugin.php:533 +msgid "" +"The Facebook plugin allows you to integrate your StatusNet instance with Facebook and Facebook Connect." msgstr "" -#: FBConnectSettings.php:92 -msgid "There is no Facebook user connected to this account." +#: facebookremove.php:58 +msgid "Couldn't remove Facebook user." msgstr "" -#: FBConnectSettings.php:100 -msgid "Connected Facebook user" +#: facebooksettings.php:74 +msgid "There was a problem saving your sync preferences!" msgstr "" -#: FBConnectSettings.php:119 -msgid "Disconnect my account from Facebook" +#: facebooksettings.php:76 +msgid "Sync preferences saved." msgstr "" -#: FBConnectSettings.php:124 -msgid "" -"Disconnecting your Faceboook would make it impossible to log in! Please " +#: facebooksettings.php:99 +msgid "Automatically update my Facebook status with my notices." msgstr "" -#: FBConnectSettings.php:128 -msgid "set a password" +#: facebooksettings.php:106 +msgid "Send \"@\" replies to Facebook." msgstr "" -#: FBConnectSettings.php:130 -msgid " first." +#: facebooksettings.php:115 +msgid "Prefix" msgstr "" -#: FBConnectSettings.php:142 -msgid "Disconnect" +#: facebooksettings.php:117 +msgid "A string to prefix notices with." msgstr "" -#: FBConnectSettings.php:164 FBConnectAuth.php:90 -msgid "There was a problem with your session token. Try again, please." +#: facebooksettings.php:123 +msgid "Save" msgstr "" -#: FBConnectSettings.php:178 -msgid "Couldn't delete link to Facebook." +#: facebooksettings.php:133 +#, php-format +msgid "" +"If you would like %s to automatically update your Facebook status with your " +"latest notice, you need to give it permission." msgstr "" -#: FBConnectSettings.php:194 -msgid "You have disconnected from Facebook." +#: facebooksettings.php:146 +#, php-format +msgid "Allow %s to update my Facebook status" msgstr "" -#: FBConnectSettings.php:197 -msgid "Not sure what you're trying to do." +#: facebooksettings.php:156 +msgid "Sync preferences" +msgstr "" + +#: facebookutil.php:285 +#, php-format +msgid "" +"Hi, %1$s. We're sorry to inform you that we are unable to update your " +"Facebook status from %2$s, and have disabled the Facebook application for " +"your account. This may be because you have removed the Facebook " +"application's authorization, or have deleted your Facebook account. You can " +"re-enable the Facebook application and automatic status updating by re-" +"installing the %2$s Facebook application.\n" +"\n" +"Regards,\n" +"\n" +"%2$s" msgstr "" #: FBConnectAuth.php:51 @@ -286,6 +234,10 @@ msgstr "" msgid "There is already a local user linked with this Facebook." msgstr "" +#: FBConnectAuth.php:90 FBConnectSettings.php:164 +msgid "There was a problem with your session token. Try again, please." +msgstr "" + #: FBConnectAuth.php:95 msgid "You can't register if you don't agree to the license." msgstr "" @@ -385,10 +337,59 @@ msgstr "" msgid "Invalid username or password." msgstr "" -#: FacebookPlugin.php:409 FacebookPlugin.php:429 -msgid "Facebook" +#: FBConnectLogin.php:33 +msgid "Already logged in." msgstr "" -#: FacebookPlugin.php:410 -msgid "Login or register using Facebook" +#: FBConnectLogin.php:41 +msgid "Login with your Facebook Account" +msgstr "" + +#: FBConnectLogin.php:55 +msgid "Facebook Login" +msgstr "" + +#: FBConnectSettings.php:67 +msgid "Manage how your account connects to Facebook" +msgstr "" + +#: FBConnectSettings.php:92 +msgid "There is no Facebook user connected to this account." +msgstr "" + +#: FBConnectSettings.php:100 +msgid "Connected Facebook user" +msgstr "" + +#: FBConnectSettings.php:119 +msgid "Disconnect my account from Facebook" +msgstr "" + +#: FBConnectSettings.php:124 +msgid "" +"Disconnecting your Faceboook would make it impossible to log in! Please " +msgstr "" + +#: FBConnectSettings.php:128 +msgid "set a password" +msgstr "" + +#: FBConnectSettings.php:130 +msgid " first." +msgstr "" + +#: FBConnectSettings.php:142 +msgid "Disconnect" +msgstr "" + +#: FBConnectSettings.php:178 +msgid "Couldn't delete link to Facebook." +msgstr "" + +#: FBConnectSettings.php:194 +msgid "You have disconnected from Facebook." +msgstr "" + +#: FBConnectSettings.php:197 +msgid "Not sure what you're trying to do." msgstr "" diff --git a/plugins/Gravatar/locale/Gravatar.po b/plugins/Gravatar/locale/Gravatar.po index 1df62b666..d7275b929 100644 --- a/plugins/Gravatar/locale/Gravatar.po +++ b/plugins/Gravatar/locale/Gravatar.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-11 16:27-0800\n" +"POT-Creation-Date: 2010-03-01 14:58-0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -59,3 +59,9 @@ msgstr "" #: GravatarPlugin.php:177 msgid "Gravatar removed." msgstr "" + +#: GravatarPlugin.php:196 +msgid "" +"The Gravatar plugin allows users to use their Gravatar with StatusNet." +msgstr "" diff --git a/plugins/Mapstraction/locale/Mapstraction.po b/plugins/Mapstraction/locale/Mapstraction.po index c1c50bf50..1dd5dbbcc 100644 --- a/plugins/Mapstraction/locale/Mapstraction.po +++ b/plugins/Mapstraction/locale/Mapstraction.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-07 20:38-0800\n" +"POT-Creation-Date: 2010-03-01 14:58-0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -34,15 +34,21 @@ msgstr "" msgid "User has no profile." msgstr "" -#: usermap.php:71 -#, php-format -msgid "%s map, page %d" -msgstr "" - -#: MapstractionPlugin.php:180 +#: MapstractionPlugin.php:182 msgid "Map" msgstr "" -#: MapstractionPlugin.php:191 +#: MapstractionPlugin.php:193 msgid "Full size" msgstr "" + +#: MapstractionPlugin.php:205 +msgid "" +"Show maps of users' and friends' notices with Mapstraction JavaScript library." +msgstr "" + +#: usermap.php:71 +#, php-format +msgid "%s map, page %d" +msgstr "" diff --git a/plugins/OStatus/locale/OStatus.po b/plugins/OStatus/locale/OStatus.po index ee19cf3db..7e33a0eed 100644 --- a/plugins/OStatus/locale/OStatus.po +++ b/plugins/OStatus/locale/OStatus.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-01 14:08-0800\n" +"POT-Creation-Date: 2010-03-01 14:58-0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -223,43 +223,43 @@ msgstr "" msgid "Salmon signature verification failed." msgstr "" -#: lib/salmonaction.php:66 +#: lib/salmonaction.php:67 msgid "Salmon post must be an Atom entry." msgstr "" -#: lib/salmonaction.php:114 +#: lib/salmonaction.php:115 msgid "Unrecognized activity type." msgstr "" -#: lib/salmonaction.php:122 +#: lib/salmonaction.php:123 msgid "This target doesn't understand posts." msgstr "" -#: lib/salmonaction.php:127 +#: lib/salmonaction.php:128 msgid "This target doesn't understand follows." msgstr "" -#: lib/salmonaction.php:132 +#: lib/salmonaction.php:133 msgid "This target doesn't understand unfollows." msgstr "" -#: lib/salmonaction.php:137 +#: lib/salmonaction.php:138 msgid "This target doesn't understand favorites." msgstr "" -#: lib/salmonaction.php:142 +#: lib/salmonaction.php:143 msgid "This target doesn't understand unfavorites." msgstr "" -#: lib/salmonaction.php:147 +#: lib/salmonaction.php:148 msgid "This target doesn't understand share events." msgstr "" -#: lib/salmonaction.php:152 +#: lib/salmonaction.php:153 msgid "This target doesn't understand joins." msgstr "" -#: lib/salmonaction.php:157 +#: lib/salmonaction.php:158 msgid "This target doesn't understand leave events." msgstr "" diff --git a/plugins/OpenID/locale/OpenID.po b/plugins/OpenID/locale/OpenID.po index 34738bc75..7ed879835 100644 --- a/plugins/OpenID/locale/OpenID.po +++ b/plugins/OpenID/locale/OpenID.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-07 20:38-0800\n" +"POT-Creation-Date: 2010-03-01 14:58-0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,73 +16,152 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: openidlogin.php:30 finishopenidlogin.php:34 +#: finishaddopenid.php:67 +msgid "Not logged in." +msgstr "" + +#: finishaddopenid.php:88 finishopenidlogin.php:149 +msgid "OpenID authentication cancelled." +msgstr "" + +#: finishaddopenid.php:92 finishopenidlogin.php:153 +#, php-format +msgid "OpenID authentication failed: %s" +msgstr "" + +#: finishaddopenid.php:112 +msgid "You already have this OpenID!" +msgstr "" + +#: finishaddopenid.php:114 +msgid "Someone else already has this OpenID." +msgstr "" + +#: finishaddopenid.php:126 +msgid "Error connecting user." +msgstr "" + +#: finishaddopenid.php:131 +msgid "Error updating profile" +msgstr "" + +#: finishaddopenid.php:170 openidlogin.php:95 +msgid "OpenID Login" +msgstr "" + +#: finishopenidlogin.php:34 openidlogin.php:30 msgid "Already logged in." msgstr "" -#: openidlogin.php:37 openidsettings.php:194 finishopenidlogin.php:38 +#: finishopenidlogin.php:38 openidlogin.php:37 openidsettings.php:194 msgid "There was a problem with your session token. Try again, please." msgstr "" -#: openidlogin.php:66 +#: finishopenidlogin.php:43 +msgid "You can't register if you don't agree to the license." +msgstr "" + +#: finishopenidlogin.php:52 openidsettings.php:208 +msgid "Something weird happened." +msgstr "" + +#: finishopenidlogin.php:66 #, php-format msgid "" -"For security reasons, please re-login with your [OpenID](%%doc.openid%%) " -"before changing your settings." +"This is the first time you've logged into %s so we must connect your OpenID " +"to a local account. You can either create a new account, or connect with " +"your existing account, if you have one." msgstr "" -#: openidlogin.php:70 -#, php-format -msgid "Login with an [OpenID](%%doc.openid%%) account." +#: finishopenidlogin.php:72 +msgid "OpenID Account Setup" msgstr "" -#: openidlogin.php:95 finishaddopenid.php:170 -msgid "OpenID Login" +#: finishopenidlogin.php:97 +msgid "Create new account" msgstr "" -#: openidlogin.php:112 -msgid "OpenID login" +#: finishopenidlogin.php:99 +msgid "Create a new user with this nickname." msgstr "" -#: openidlogin.php:117 openidsettings.php:107 -msgid "OpenID URL" +#: finishopenidlogin.php:102 +msgid "New nickname" msgstr "" -#: openidlogin.php:119 -msgid "Your OpenID URL" +#: finishopenidlogin.php:104 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "" -#: openidlogin.php:122 -msgid "Remember me" +#: finishopenidlogin.php:114 +msgid "My text and files are available under " msgstr "" -#: openidlogin.php:123 -msgid "Automatically login in the future; not for shared computers!" +#: finishopenidlogin.php:117 +msgid "" +" except this private data: password, email address, IM address, phone number." msgstr "" -#: openidlogin.php:127 -msgid "Login" +#: finishopenidlogin.php:121 +msgid "Create" msgstr "" -#: openidserver.php:106 -#, php-format -msgid "You are not authorized to use the identity %s" +#: finishopenidlogin.php:126 +msgid "Connect existing account" msgstr "" -#: openidserver.php:126 -msgid "Just an OpenID provider. Nothing to see here, move along..." +#: finishopenidlogin.php:128 +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your OpenID." msgstr "" -#: OpenIDPlugin.php:123 OpenIDPlugin.php:135 -msgid "OpenID" +#: finishopenidlogin.php:131 +msgid "Existing nickname" msgstr "" -#: OpenIDPlugin.php:124 -msgid "Login or register with OpenID" +#: finishopenidlogin.php:134 +msgid "Password" msgstr "" -#: OpenIDPlugin.php:136 -msgid "Add or remove OpenIDs" +#: finishopenidlogin.php:137 +msgid "Connect" +msgstr "" + +#: finishopenidlogin.php:215 finishopenidlogin.php:224 +msgid "Registration not allowed." +msgstr "" + +#: finishopenidlogin.php:231 +msgid "Not a valid invitation code." +msgstr "" + +#: finishopenidlogin.php:241 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "" + +#: finishopenidlogin.php:246 +msgid "Nickname not allowed." +msgstr "" + +#: finishopenidlogin.php:251 +msgid "Nickname already in use. Try another one." +msgstr "" + +#: finishopenidlogin.php:258 finishopenidlogin.php:338 +msgid "Stored OpenID not found." +msgstr "" + +#: finishopenidlogin.php:267 +msgid "Creating new account for OpenID that already has a user." +msgstr "" + +#: finishopenidlogin.php:327 +msgid "Invalid username or password." +msgstr "" + +#: finishopenidlogin.php:345 +msgid "Error connecting user to OpenID." msgstr "" #: openid.php:141 @@ -126,57 +205,65 @@ msgstr "" msgid "OpenID Auto-Submit" msgstr "" -#: openidtrust.php:51 -msgid "OpenID Identity Verification" -msgstr "" - -#: openidtrust.php:69 +#: openidlogin.php:66 +#, php-format msgid "" -"This page should only be reached during OpenID processing, not directly." +"For security reasons, please re-login with your [OpenID](%%doc.openid%%) " +"before changing your settings." msgstr "" -#: openidtrust.php:118 +#: openidlogin.php:70 #, php-format -msgid "" -"%s has asked to verify your identity. Click Continue to verify your " -"identity and login without creating a new password." +msgid "Login with an [OpenID](%%doc.openid%%) account." msgstr "" -#: openidtrust.php:136 -msgid "Continue" +#: openidlogin.php:112 +msgid "OpenID login" msgstr "" -#: openidtrust.php:137 -msgid "Cancel" +#: openidlogin.php:117 openidsettings.php:107 +msgid "OpenID URL" msgstr "" -#: finishaddopenid.php:67 -msgid "Not logged in." +#: openidlogin.php:119 +msgid "Your OpenID URL" msgstr "" -#: finishaddopenid.php:88 finishopenidlogin.php:149 -msgid "OpenID authentication cancelled." +#: openidlogin.php:122 +msgid "Remember me" msgstr "" -#: finishaddopenid.php:92 finishopenidlogin.php:153 -#, php-format -msgid "OpenID authentication failed: %s" +#: openidlogin.php:123 +msgid "Automatically login in the future; not for shared computers!" msgstr "" -#: finishaddopenid.php:112 -msgid "You already have this OpenID!" +#: openidlogin.php:127 +msgid "Login" msgstr "" -#: finishaddopenid.php:114 -msgid "Someone else already has this OpenID." +#: OpenIDPlugin.php:123 OpenIDPlugin.php:135 +msgid "OpenID" msgstr "" -#: finishaddopenid.php:126 -msgid "Error connecting user." +#: OpenIDPlugin.php:124 +msgid "Login or register with OpenID" msgstr "" -#: finishaddopenid.php:131 -msgid "Error updating profile" +#: OpenIDPlugin.php:136 +msgid "Add or remove OpenIDs" +msgstr "" + +#: OpenIDPlugin.php:324 +msgid "Use OpenID to login to the site." +msgstr "" + +#: openidserver.php:106 +#, php-format +msgid "You are not authorized to use the identity %s." +msgstr "" + +#: openidserver.php:126 +msgid "Just an OpenID provider. Nothing to see here, move along..." msgstr "" #: openidsettings.php:59 @@ -224,10 +311,6 @@ msgstr "" msgid "Remove" msgstr "" -#: openidsettings.php:208 finishopenidlogin.php:52 -msgid "Something weird happened." -msgstr "" - #: openidsettings.php:228 msgid "No such OpenID." msgstr "" @@ -240,105 +323,26 @@ msgstr "" msgid "OpenID removed." msgstr "" -#: finishopenidlogin.php:43 -msgid "You can't register if you don't agree to the license." -msgstr "" - -#: finishopenidlogin.php:66 -#, php-format -msgid "" -"This is the first time you've logged into %s so we must connect your OpenID " -"to a local account. You can either create a new account, or connect with " -"your existing account, if you have one." -msgstr "" - -#: finishopenidlogin.php:72 -msgid "OpenID Account Setup" -msgstr "" - -#: finishopenidlogin.php:97 -msgid "Create new account" -msgstr "" - -#: finishopenidlogin.php:99 -msgid "Create a new user with this nickname." -msgstr "" - -#: finishopenidlogin.php:102 -msgid "New nickname" -msgstr "" - -#: finishopenidlogin.php:104 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" -msgstr "" - -#: finishopenidlogin.php:114 -msgid "My text and files are available under " +#: openidtrust.php:51 +msgid "OpenID Identity Verification" msgstr "" -#: finishopenidlogin.php:117 +#: openidtrust.php:69 msgid "" -" except this private data: password, email address, IM address, phone number." -msgstr "" - -#: finishopenidlogin.php:121 -msgid "Create" -msgstr "" - -#: finishopenidlogin.php:126 -msgid "Connect existing account" +"This page should only be reached during OpenID processing, not directly." msgstr "" -#: finishopenidlogin.php:128 +#: openidtrust.php:118 +#, php-format msgid "" -"If you already have an account, login with your username and password to " -"connect it to your OpenID." -msgstr "" - -#: finishopenidlogin.php:131 -msgid "Existing nickname" -msgstr "" - -#: finishopenidlogin.php:134 -msgid "Password" -msgstr "" - -#: finishopenidlogin.php:137 -msgid "Connect" -msgstr "" - -#: finishopenidlogin.php:215 finishopenidlogin.php:224 -msgid "Registration not allowed." -msgstr "" - -#: finishopenidlogin.php:231 -msgid "Not a valid invitation code." -msgstr "" - -#: finishopenidlogin.php:241 -msgid "Nickname must have only lowercase letters and numbers and no spaces." -msgstr "" - -#: finishopenidlogin.php:246 -msgid "Nickname not allowed." -msgstr "" - -#: finishopenidlogin.php:251 -msgid "Nickname already in use. Try another one." -msgstr "" - -#: finishopenidlogin.php:258 finishopenidlogin.php:338 -msgid "Stored OpenID not found." -msgstr "" - -#: finishopenidlogin.php:267 -msgid "Creating new account for OpenID that already has a user." +"%s has asked to verify your identity. Click Continue to verify your " +"identity and login without creating a new password." msgstr "" -#: finishopenidlogin.php:327 -msgid "Invalid username or password." +#: openidtrust.php:136 +msgid "Continue" msgstr "" -#: finishopenidlogin.php:345 -msgid "Error connecting user to OpenID." +#: openidtrust.php:137 +msgid "Cancel" msgstr "" diff --git a/plugins/PoweredByStatusNet/locale/PoweredByStatusNet.po b/plugins/PoweredByStatusNet/locale/PoweredByStatusNet.po index bd39124ef..8f8434a85 100644 --- a/plugins/PoweredByStatusNet/locale/PoweredByStatusNet.po +++ b/plugins/PoweredByStatusNet/locale/PoweredByStatusNet.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-22 15:03-0800\n" +"POT-Creation-Date: 2010-03-01 14:58-0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,16 +16,16 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: PoweredByStatusNetPlugin.php:49 +#: PoweredByStatusNetPlugin.php:50 #, php-format msgid "powered by %s" msgstr "" -#: PoweredByStatusNetPlugin.php:51 +#: PoweredByStatusNetPlugin.php:52 msgid "StatusNet" msgstr "" -#: PoweredByStatusNetPlugin.php:64 +#: PoweredByStatusNetPlugin.php:65 msgid "" "Outputs powered by StatusNet after site " "name." diff --git a/plugins/Sample/locale/Sample.po b/plugins/Sample/locale/Sample.po index e0d2aa853..a52c4ec01 100644 --- a/plugins/Sample/locale/Sample.po +++ b/plugins/Sample/locale/Sample.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-02-24 16:33-0800\n" +"POT-Creation-Date: 2010-03-01 14:58-0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/TwitterBridge/locale/TwitterBridge.po b/plugins/TwitterBridge/locale/TwitterBridge.po index 14c30f1c9..eff125579 100644 --- a/plugins/TwitterBridge/locale/TwitterBridge.po +++ b/plugins/TwitterBridge/locale/TwitterBridge.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-07 20:38-0800\n" +"POT-Creation-Date: 2010-03-01 14:58-0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,23 +16,48 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: twitterauthorization.php:81 -msgid "Not logged in." +#: twitter.php:320 +msgid "Your Twitter bridge has been disabled." msgstr "" -#: twitterauthorization.php:131 twitterauthorization.php:150 -#: twitterauthorization.php:170 twitterauthorization.php:217 +#: twitter.php:324 +#, php-format +msgid "" +"Hi, %1$s. We're sorry to inform you that your link to Twitter has been " +"disabled. We no longer seem to have permission to update your Twitter " +"status. (Did you revoke %3$s's access?)\n" +"\n" +"You can re-enable your Twitter bridge by visiting your Twitter settings " +"page:\n" +"\n" +"\t%2$s\n" +"\n" +"Regards,\n" +"%3$s\n" +msgstr "" + +#: twitterauthorization.php:181 twitterauthorization.php:229 msgid "Couldn't link your Twitter account." msgstr "" -#: TwitterBridgePlugin.php:89 +#: twitterauthorization.php:201 +msgid "Couldn't link your Twitter account: oauth_token mismatch." +msgstr "" + +#: TwitterBridgePlugin.php:114 msgid "Twitter" msgstr "" -#: TwitterBridgePlugin.php:90 +#: TwitterBridgePlugin.php:115 msgid "Twitter integration options" msgstr "" +#: TwitterBridgePlugin.php:207 +msgid "" +"The Twitter \"bridge\" plugin allows you to integrate your StatusNet " +"instance with Twitter." +msgstr "" + #: twittersettings.php:59 msgid "Twitter settings" msgstr "" @@ -51,78 +76,81 @@ msgstr "" msgid "Connected Twitter account" msgstr "" -#: twittersettings.php:125 -msgid "Remove" +#: twittersettings.php:128 +msgid "Disconnect my account from Twitter" +msgstr "" + +#: twittersettings.php:133 +msgid "Disconnecting your Twitter could make it impossible to log in! Please " +msgstr "" + +#: twittersettings.php:137 +msgid "set a password" msgstr "" -#: twittersettings.php:131 +#: twittersettings.php:139 +msgid " first." +msgstr "" + +#: twittersettings.php:143 +#, php-format +msgid "" +"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " +"password to log in." +msgstr "" + +#: twittersettings.php:151 +msgid "Disconnect" +msgstr "" + +#: twittersettings.php:158 msgid "Preferences" msgstr "" -#: twittersettings.php:135 +#: twittersettings.php:162 msgid "Automatically send my notices to Twitter." msgstr "" -#: twittersettings.php:142 +#: twittersettings.php:169 msgid "Send local \"@\" replies to Twitter." msgstr "" -#: twittersettings.php:149 +#: twittersettings.php:176 msgid "Subscribe to my Twitter friends here." msgstr "" -#: twittersettings.php:158 +#: twittersettings.php:185 msgid "Import my Friends Timeline." msgstr "" -#: twittersettings.php:174 +#: twittersettings.php:201 msgid "Save" msgstr "" -#: twittersettings.php:176 +#: twittersettings.php:203 msgid "Add" msgstr "" -#: twittersettings.php:201 +#: twittersettings.php:228 msgid "There was a problem with your session token. Try again, please." msgstr "" -#: twittersettings.php:211 +#: twittersettings.php:238 msgid "Unexpected form submission." msgstr "" -#: twittersettings.php:230 +#: twittersettings.php:257 msgid "Couldn't remove Twitter user." msgstr "" -#: twittersettings.php:234 -msgid "Twitter account removed." +#: twittersettings.php:261 +msgid "Twitter account disconnected." msgstr "" -#: twittersettings.php:255 twittersettings.php:265 +#: twittersettings.php:282 twittersettings.php:292 msgid "Couldn't save Twitter preferences." msgstr "" -#: twittersettings.php:269 +#: twittersettings.php:296 msgid "Twitter preferences saved." msgstr "" - -#: twitter.php:333 -msgid "Your Twitter bridge has been disabled." -msgstr "" - -#: twitter.php:337 -#, php-format -msgid "" -"Hi, %1$s. We're sorry to inform you that your link to Twitter has been " -"disabled. We no longer seem to have permission to update your Twitter " -"status. (Did you revoke %3$s's access?)\n" -"\n" -"You can re-enable your Twitter bridge by visiting your Twitter settings " -"page:\n" -"\n" -"\t%2$s\n" -"\n" -"Regards,\n" -"%3$s\n" -msgstr "" -- cgit v1.2.3-54-g00ecf From bf0e29b4657043c416fa8d5b8c5b1f9f932d4a5b Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 4 Mar 2010 13:21:11 -0500 Subject: change lacuser/lacpassword to statusnet-like ones --- README | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README b/README index 9d40b8a7b..3eb94b508 100644 --- a/README +++ b/README @@ -291,10 +291,10 @@ especially if you've previously installed PHP/MySQL packages. MySQL shell: GRANT ALL on statusnet.* - TO 'lacuser'@'localhost' - IDENTIFIED BY 'lacpassword'; + TO 'statusnetuser'@'localhost' + IDENTIFIED BY 'statusnetpassword'; - You should change 'lacuser' and 'lacpassword' to your preferred new + You should change 'statusnetuser' and 'statusnetpassword' to your preferred new username and password. You may want to test logging in to MySQL as this new user. @@ -406,7 +406,7 @@ For this to work, there *must* be a domain or sub-domain for which all 1. Run the SQL script carrier.sql in your StatusNet database. This will usually work: - mysql -u "lacuser" --password="lacpassword" statusnet < db/carrier.sql + mysql -u "statusnetuser" --password="statusnetpassword" statusnet < db/carrier.sql This will populate your database with a list of wireless carriers that support email SMS gateways. -- cgit v1.2.3-54-g00ecf From 80b58db172ab3bf0e3caf5f02dfd91a45e31a6ac Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 4 Mar 2010 13:22:45 -0500 Subject: change 'mublog' to 'statusnet' in README --- README | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/README b/README index 3eb94b508..bdd2b8b75 100644 --- a/README +++ b/README @@ -241,34 +241,34 @@ especially if you've previously installed PHP/MySQL packages. 2. Move the tarball to a directory of your choosing in your Web root directory. Usually something like this will work: - mv statusnet-0.9.0 /var/www/mublog + mv statusnet-0.9.0 /var/www/statusnet - This will make your StatusNet instance available in the mublog path of - your server, like "http://example.net/mublog". "microblog" or + This will make your StatusNet instance available in the statusnet path of + your server, like "http://example.net/statusnet". "microblog" or "statusnet" might also be good path names. If you know how to configure virtual hosts on your web server, you can try setting up "http://micro.example.net/" or the like. 3. Make your target directory writeable by the Web server. - chmod a+w /var/www/mublog/ + chmod a+w /var/www/statusnet/ On some systems, this will probably work: - chgrp www-data /var/www/mublog/ - chmod g+w /var/www/mublog/ + chgrp www-data /var/www/statusnet/ + chmod g+w /var/www/statusnet/ If your Web server runs as another user besides "www-data", try that user's default group instead. As a last resort, you can create - a new group like "mublog" and add the Web server's user to the group. + a new group like "statusnet" and add the Web server's user to the group. 4. You should also take this moment to make your avatar, background, and file subdirectories writeable by the Web server. An insecure way to do this is: - chmod a+w /var/www/mublog/avatar - chmod a+w /var/www/mublog/background - chmod a+w /var/www/mublog/file + chmod a+w /var/www/statusnet/avatar + chmod a+w /var/www/statusnet/background + chmod a+w /var/www/statusnet/file You can also make the avatar, background, and file directories writeable by the Web server group, as noted above. @@ -300,7 +300,7 @@ especially if you've previously installed PHP/MySQL packages. 7. In a browser, navigate to the StatusNet install script; something like: - http://yourserver.example.com/mublog/install.php + http://yourserver.example.com/statusnet/install.php Enter the database connection information and your site name. The install program will configure your site and install the initial, @@ -320,16 +320,16 @@ By default, StatusNet will use URLs that include the main PHP program's name in them. For example, a user's home profile might be found at: - http://example.org/mublog/index.php/mublog/fred + http://example.org/statusnet/index.php/statusnet/fred On certain systems that don't support this kind of syntax, they'll look like this: - http://example.org/mublog/index.php?p=mublog/fred + http://example.org/statusnet/index.php?p=statusnet/fred It's possible to configure the software so it looks like this instead: - http://example.org/mublog/fred + http://example.org/statusnet/fred These "fancy URLs" are more readable and memorable for users. To use fancy URLs, you must either have Apache 2.x with .htaccess enabled and @@ -354,7 +354,7 @@ your server. You should now be able to navigate to a "fancy" URL on your server, like: - http://example.net/mublog/main/register + http://example.net/statusnet/main/register If you changed your HTTP server configuration, you may need to restart the server first. @@ -632,17 +632,17 @@ Access to file attachments can also be restricted to logged-in users only. 1. Add a directory outside the web root where your file uploads will be stored. Usually a command like this will work: - mkdir /var/www/mublog-files + mkdir /var/www/statusnet-files 2. Make the file uploads directory writeable by the web server. An insecure way to do this is: - chmod a+x /var/www/mublog-files + chmod a+x /var/www/statusnet-files 3. Tell StatusNet to use this directory for file uploads. Add a line like this to your config.php: - $config['attachments']['dir'] = '/var/www/mublog-files'; + $config['attachments']['dir'] = '/var/www/statusnet-files'; Upgrading ========= @@ -677,8 +677,8 @@ instructions; read to the end first before trying them. maildaemon.php file, and running something like "newaliases". 5. Once all writing processes to your site are turned off, make a final backup of the Web directory and database. -6. Move your StatusNet directory to a backup spot, like "mublog.bak". -7. Unpack your StatusNet 0.9.0 tarball and move it to "mublog" or +6. Move your StatusNet directory to a backup spot, like "statusnet.bak". +7. Unpack your StatusNet 0.9.0 tarball and move it to "statusnet" or wherever your code used to be. 8. Copy the config.php file and avatar directory from your old directory to your new directory. @@ -788,7 +788,7 @@ This section is a catch-all for site-wide variables. name: the name of your site, like 'YourCompany Microblog'. server: the server part of your site's URLs, like 'example.net'. -path: The path part of your site's URLs, like 'mublog' or '' +path: The path part of your site's URLs, like 'statusnet' or '' (installed in root). fancy: whether or not your site uses fancy URLs (see Fancy URLs section above). Default is false. -- cgit v1.2.3-54-g00ecf From 1f15e52483366f834ea06e951b077d03f72bfaea Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 4 Mar 2010 13:24:29 -0500 Subject: change lede so it doesn't talk about Laconica --- README | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README b/README index bdd2b8b75..10792c155 100644 --- a/README +++ b/README @@ -5,10 +5,10 @@ README StatusNet 0.9.0 ("Stand") 4 Mar 2010 -This is the README file for StatusNet (formerly Laconica), the Open -Source microblogging platform. It includes installation instructions, -descriptions of options you can set, warnings, tips, and general info -for administrators. Information on using StatusNet can be found in the +This is the README file for StatusNet, the Open Source microblogging +platform. It includes installation instructions, descriptions of +options you can set, warnings, tips, and general info for +administrators. Information on using StatusNet can be found in the "doc" subdirectory or in the "help" section on-line. About -- cgit v1.2.3-54-g00ecf From 15aaae67d68baf3f65970e38b41a26cb516a085a Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 4 Mar 2010 13:28:26 -0500 Subject: Another update to admin navigation alignment --- theme/base/css/display.css | 14 ++++++-------- theme/base/css/ie.css | 4 ++++ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/theme/base/css/display.css b/theme/base/css/display.css index 964755832..bbbe4910c 100644 --- a/theme/base/css/display.css +++ b/theme/base/css/display.css @@ -364,15 +364,11 @@ width:100%; } body[id$=adminpanel] #site_nav_local_views { -float:right; -margin-right:18.9%; - -margin-right:189px; position:relative; -width:14.01%; - -width:141px; z-index:9; +float:right; +margin-right:18.65%; +width:14.25%; } body[id$=adminpanel] #site_nav_local_views li { width:100%; @@ -381,7 +377,9 @@ margin-bottom:7px; } body[id$=adminpanel] #site_nav_local_views a { display:block; -width:100%; +width:80%; +padding-right:10%; +padding-left:10%; border-radius-toprleft:0; -moz-border-radius-topleft:0; -webkit-border-top-left-radius:0; diff --git a/theme/base/css/ie.css b/theme/base/css/ie.css index 70a6fd11a..41d053ac4 100644 --- a/theme/base/css/ie.css +++ b/theme/base/css/ie.css @@ -47,3 +47,7 @@ z-index:9999; .notice .thumbnail img { z-index:9999; } + +.form_settings fieldset fieldset legend { +line-height:auto; +} -- cgit v1.2.3-54-g00ecf From 938c5954fbbdbe77e651794a00e87d5f47b26c9f Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 4 Mar 2010 13:29:09 -0500 Subject: add blacklist and throttle plugin notes --- README | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README b/README index 10792c155..44bdd8fe2 100644 --- a/README +++ b/README @@ -115,6 +115,8 @@ Notable changes this version: - Plugin to support RSSCloud - A framework for adding advertisements to a public site, and plugins for Google AdSense and OpenX server +- Plugins to throttle excessive subscriptions and registrations. +- A plugin to blacklist particular URLs or nicknames. There are also literally thousands of bugs fixed and minor features added. A full changelog is available at http://status.net/wiki/StatusNet_0.9.0. -- cgit v1.2.3-54-g00ecf From 36d86463e4c1812955394931dc9808b4657fc804 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 4 Mar 2010 13:31:49 -0500 Subject: Increased admin navigation width to handle longer text length --- theme/base/css/display.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/theme/base/css/display.css b/theme/base/css/display.css index bbbe4910c..0246065a7 100644 --- a/theme/base/css/display.css +++ b/theme/base/css/display.css @@ -367,8 +367,8 @@ body[id$=adminpanel] #site_nav_local_views { position:relative; z-index:9; float:right; -margin-right:18.65%; -width:14.25%; +margin-right:10.65%; +width:22.25%; } body[id$=adminpanel] #site_nav_local_views li { width:100%; -- cgit v1.2.3-54-g00ecf From b98fcffcd20eca741e3089bfcc87cbc4b95dbf22 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 4 Mar 2010 13:34:05 -0500 Subject: some more editorial on README --- README | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/README b/README index 44bdd8fe2..cfc05246c 100644 --- a/README +++ b/README @@ -621,14 +621,10 @@ not visible to non-logged-in users. This might be useful for workgroups who want to share a microblogging site for project management, but host it on a public server. -Note that this is an experimental feature; total privacy is not -guaranteed or ensured. Also, privacy is all-or-nothing for a site; you -can't have some accounts or notices private, and others public. -Finally, the interaction of private sites with OStatus is -undefined. Remote users won't be able to subscribe to users on a -private site, but users of the private site may be able to subscribe -to users on a remote site. (Or not... it's not well tested.) The -"proper behaviour" hasn't been defined here, so handle with care. +Total privacy is not guaranteed or ensured. Also, privacy is +all-or-nothing for a site; you can't have some accounts or notices +private, and others public. The interaction of private sites +with OStatus is undefined. Access to file attachments can also be restricted to logged-in users only. 1. Add a directory outside the web root where your file uploads will be @@ -693,10 +689,10 @@ instructions; read to the end first before trying them. reversed. YOU CAN EASILY DESTROY YOUR SITE WITH THIS STEP. Don't do it without a known-good backup! - If your database is at version 0.7.4, you can run a special upgrade - script: + If your database is at version 0.8.0 or above, you can run a + special upgrade script: - mysql -u -p db/074to080.sql + mysql -u -p db/08to09.sql Otherwise, go to your StatusNet directory and AFTER YOU MAKE A BACKUP run the rebuilddb.sh script like this: @@ -761,10 +757,17 @@ Configuration options The main configuration file for StatusNet (excepting configurations for dependency software) is config.php in your StatusNet directory. If you -edit any other file in the directory, like lib/common.php (where most +edit any other file in the directory, like lib/default.php (where most of the defaults are defined), you will lose your configuration options in any upgrade, and you will wish that you had been more careful. +Starting with version 0.9.0, a Web based configuration panel has been +added to StatusNet. The preferred method for changing config options is +to use this panel. + +A command-line script, setconfig.php, can be used to set individual +configuration options. It's in the scripts/ directory. + Starting with version 0.7.1, you can put config files in the /etc/statusnet/ directory on your server, if it exists. Config files will be included in this order: -- cgit v1.2.3-54-g00ecf From 8242dba179e9b025974a54bfea666d5eecb4c0e6 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Thu, 4 Mar 2010 10:34:12 -0800 Subject: Fix link to StatusNet bug tracker in README --- README | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README b/README index 44bdd8fe2..d59d77033 100644 --- a/README +++ b/README @@ -1543,8 +1543,8 @@ Feedback * Microblogging messages to http://support.status.net/ are very welcome. * The microblogging group http://identi.ca/group/statusnet is a good place to discuss the software. -* StatusNet's Trac server has a bug tracker for any defects you may find, - or ideas for making things better. http://status.net/trac/ +* StatusNet has a bug tracker for any defects you may find, or ideas for + making things better. http://status.net/bugs Credits ======= -- cgit v1.2.3-54-g00ecf From 22c06337a07196af5512630f3a8d1ee3ee5e715b Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Thu, 4 Mar 2010 10:41:07 -0800 Subject: updates to queue info in readme --- README | 55 ++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 46 insertions(+), 9 deletions(-) diff --git a/README b/README index 10792c155..670ab25a5 100644 --- a/README +++ b/README @@ -496,7 +496,7 @@ consider setting up queues and daemons. Queues and daemons ------------------ -Some activities that StatusNet needs to do, like broadcast OMB, SMS, +Some activities that StatusNet needs to do, like broadcast OStatus, SMS, and XMPP messages, can be 'queued' and done by off-line bots instead. For this to work, you must be able to run long-running offline processes, either on your main Web server or on another server you @@ -522,14 +522,12 @@ server is probably a good idea for high-volume sites. options, you'll need to create that user and/or group by hand. They're not created automatically. -4. On the queues server, run the command scripts/startdaemons.sh. It - needs as a parameter the install path; if you run it from the - StatusNet dir, "." should suffice. +4. On the queues server, run the command scripts/startdaemons.sh. This will run the queue handlers: * queuedaemon.php - polls for queued items for inbox processing and - pushing out to OMB, SMS, XMPP, etc. + pushing out to OStatus, SMS, XMPP, etc. * xmppdaemon.php - listens for new XMPP messages from users and stores them as notices in the database; also pulls queued XMPP output from queuedaemon.php to push out to clients. @@ -538,6 +536,9 @@ These two daemons will automatically restart in most cases of failure including memory leaks (if a memory_limit is set), but may still die or behave oddly if they lose connections to the XMPP or queue servers. +Additional daemons may be also started by this script for certain +plugins, such as the Twitter bridge. + It may be a good idea to use a daemon-monitoring service, like 'monit', to check their status and keep them running. @@ -546,9 +547,11 @@ default. This can be useful for starting, stopping, and monitoring the daemons. Since version 0.8.0, it's now possible to use a STOMP server instead of -our kind of hacky home-grown DB-based queue solution. See the "queues" -config section below for how to configure to use STOMP. As of this -writing, the software has been tested with ActiveMQ. +our kind of hacky home-grown DB-based queue solution. This is strongly +recommended for best response time, especially when using XMPP. + +See the "queues" config section below for how to configure to use STOMP. +As of this writing, the software has been tested with ActiveMQ 5.3. Themes ------ @@ -940,11 +943,45 @@ stomp_server: "broker URI" for stomp server. Something like possible; see your stomp server's documentation for details. queue_basename: a root name to use for queues (stomp only). Typically - something like '/queue/sitename/' makes sense. + something like '/queue/sitename/' makes sense. If running + multiple instances on the same server, make sure that + either this setting or $config['site']['nickname'] are + unique for each site to keep them separate. + stomp_username: username for connecting to the stomp server; defaults to null. stomp_password: password for connecting to the stomp server; defaults to null. + +stomp_persistent: keep items across queue server restart, if enabled. + +softlimit: an absolute or relative "soft memory limit"; daemons will + restart themselves gracefully when they find they've hit + this amount of memory usage. Defaults to 90% of PHP's global + memory_limit setting. + +inboxes: delivery of messages to receiver's inboxes can be delayed to + queue time for best interactive performance on the sender. + This may however be annoyingly slow when using the DB queues, + so you can set this to false if it's causing trouble. + +breakout: for stomp, individual queues are by default grouped up for + best scalability. If some need to be run by separate daemons, + etc they can be manually adjusted here. + + Default will share all queues for all sites within each group. + Specify as / or //, + using nickname identifier as site. + + 'main/distrib' separate "distrib" queue covering all sites + 'xmpp/xmppout/mysite' separate "xmppout" queue covering just 'mysite' + +max_retries: for stomp, drop messages after N failed attempts to process. + Defaults to 10. + +dead_letter_dir: for stomp, optional directory to dump data on failed + queue processing events after discarding them. + license ------- -- cgit v1.2.3-54-g00ecf From a4ec64ff457f9d4a645e4ecae8b2c696e379c0ab Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 4 Mar 2010 13:43:28 -0500 Subject: Slight right alignment for remote button in minilists --- plugins/OStatus/theme/base/css/ostatus.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/OStatus/theme/base/css/ostatus.css b/plugins/OStatus/theme/base/css/ostatus.css index f7d9853cf..c2d724158 100644 --- a/plugins/OStatus/theme/base/css/ostatus.css +++ b/plugins/OStatus/theme/base/css/ostatus.css @@ -46,6 +46,7 @@ position:relative; .section .entity_actions { margin-bottom:0; +margin-right:7px; } #entity_remote_subscribe .dialogbox { @@ -70,5 +71,4 @@ background-color:transparent; background-position:0 -1183px; padding:0 0 0 23px; border:0; - } -- cgit v1.2.3-54-g00ecf From 1b49e9d278038bc59fab48072cb9d192ebb4bdbd Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 4 Mar 2010 13:45:31 -0500 Subject: banned no longer supported --- README | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README b/README index cfc05246c..742d7683a 100644 --- a/README +++ b/README @@ -1192,10 +1192,6 @@ profile Profile management. -banned: an array of usernames and/or profile IDs of 'banned' profiles. - The site will reject any notices by these users -- they will - not be accepted at all. (Compare with blacklisted users above, - whose posts just won't show up in the public stream.) biolimit: max character length of bio; 0 means no limit; null means to use the site text limit default. -- cgit v1.2.3-54-g00ecf From 7d1ba4ff3b00cb42c85f2720d3b2aab82a3a560b Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Thu, 4 Mar 2010 10:48:37 -0800 Subject: Remove reference to $config['profile']['banned'] -- superceded by blacklist --- README | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README b/README index b90ec8c45..09d667857 100644 --- a/README +++ b/README @@ -1229,10 +1229,6 @@ profile Profile management. -banned: an array of usernames and/or profile IDs of 'banned' profiles. - The site will reject any notices by these users -- they will - not be accepted at all. (Compare with blacklisted users above, - whose posts just won't show up in the public stream.) biolimit: max character length of bio; 0 means no limit; null means to use the site text limit default. -- cgit v1.2.3-54-g00ecf From 96c06dd75ddce11fd7509dec407e35ce99792e51 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 4 Mar 2010 13:56:02 -0500 Subject: note betas are obsolete now --- README | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README b/README index 09d667857..e729769f8 100644 --- a/README +++ b/README @@ -78,7 +78,8 @@ New this version ================ This is a major feature release since version 0.8.3, released Feb 1 -2010. It is the final release version of 0.9.0. +2010. It is the final release version of 0.9.0, replacing any beta +versions. Notable changes this version: @@ -952,7 +953,7 @@ queue_basename: a root name to use for queues (stomp only). Typically multiple instances on the same server, make sure that either this setting or $config['site']['nickname'] are unique for each site to keep them separate. - + stomp_username: username for connecting to the stomp server; defaults to null. stomp_password: password for connecting to the stomp server; defaults -- cgit v1.2.3-54-g00ecf From e6f379f8a3e125c1f5057ff4564278007c2bdaba Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Thu, 4 Mar 2010 10:57:35 -0800 Subject: Normalize whitespace in the README -- all tabs to (4) spaces --- README | 252 ++++++++++++++++++++++++++++++++--------------------------------- 1 file changed, 126 insertions(+), 126 deletions(-) diff --git a/README b/README index e729769f8..0518e9a5a 100644 --- a/README +++ b/README @@ -234,7 +234,7 @@ especially if you've previously installed PHP/MySQL packages. 1. Unpack the tarball you downloaded on your Web server. Usually a command like this will work: - tar zxf statusnet-0.9.0.tar.gz + tar zxf statusnet-0.9.0.tar.gz ...which will make a statusnet-0.9.0 subdirectory in your current directory. (If you don't have shell access on your Web server, you @@ -244,7 +244,7 @@ especially if you've previously installed PHP/MySQL packages. 2. Move the tarball to a directory of your choosing in your Web root directory. Usually something like this will work: - mv statusnet-0.9.0 /var/www/statusnet + mv statusnet-0.9.0 /var/www/statusnet This will make your StatusNet instance available in the statusnet path of your server, like "http://example.net/statusnet". "microblog" or @@ -254,12 +254,12 @@ especially if you've previously installed PHP/MySQL packages. 3. Make your target directory writeable by the Web server. - chmod a+w /var/www/statusnet/ + chmod a+w /var/www/statusnet/ On some systems, this will probably work: - chgrp www-data /var/www/statusnet/ - chmod g+w /var/www/statusnet/ + chgrp www-data /var/www/statusnet/ + chmod g+w /var/www/statusnet/ If your Web server runs as another user besides "www-data", try that user's default group instead. As a last resort, you can create @@ -269,9 +269,9 @@ especially if you've previously installed PHP/MySQL packages. file subdirectories writeable by the Web server. An insecure way to do this is: - chmod a+w /var/www/statusnet/avatar - chmod a+w /var/www/statusnet/background - chmod a+w /var/www/statusnet/file + chmod a+w /var/www/statusnet/avatar + chmod a+w /var/www/statusnet/background + chmod a+w /var/www/statusnet/file You can also make the avatar, background, and file directories writeable by the Web server group, as noted above. @@ -279,7 +279,7 @@ especially if you've previously installed PHP/MySQL packages. 5. Create a database to hold your microblog data. Something like this should work: - mysqladmin -u "username" --password="password" create statusnet + mysqladmin -u "username" --password="password" create statusnet Note that StatusNet must have its own database; you can't share the database with another program. You can name it whatever you want, @@ -294,8 +294,8 @@ especially if you've previously installed PHP/MySQL packages. MySQL shell: GRANT ALL on statusnet.* - TO 'statusnetuser'@'localhost' - IDENTIFIED BY 'statusnetpassword'; + TO 'statusnetuser'@'localhost' + IDENTIFIED BY 'statusnetpassword'; You should change 'statusnetuser' and 'statusnetpassword' to your preferred new username and password. You may want to test logging in to MySQL as @@ -409,14 +409,14 @@ For this to work, there *must* be a domain or sub-domain for which all 1. Run the SQL script carrier.sql in your StatusNet database. This will usually work: - mysql -u "statusnetuser" --password="statusnetpassword" statusnet < db/carrier.sql + mysql -u "statusnetuser" --password="statusnetpassword" statusnet < db/carrier.sql This will populate your database with a list of wireless carriers that support email SMS gateways. 2. Make sure the maildaemon.php file is executable: - chmod +x scripts/maildaemon.php + chmod +x scripts/maildaemon.php Note that "daemon" is kind of a misnomer here; the script is more of a filter than a daemon. @@ -577,15 +577,15 @@ following files: display.css: a CSS2 file for "default" styling for all browsers. ie6.css: a CSS2 file for override styling for fixing up Internet - Explorer 6. + Explorer 6. ie7.css: a CSS2 file for override styling for fixing up Internet - Explorer 7. + Explorer 7. logo.png: a logo image for the site. default-avatar-profile.png: a 96x96 pixel image to use as the avatar for - users who don't upload their own. + users who don't upload their own. default-avatar-stream.png: Ditto, but 48x48. For streams of notices. default-avatar-mini.png: Ditto ditto, but 24x24. For subscriptions - listing on profile pages. + listing on profile pages. You may want to start by copying the files from the default theme to your own directory. @@ -802,13 +802,13 @@ path: The path part of your site's URLs, like 'statusnet' or '' fancy: whether or not your site uses fancy URLs (see Fancy URLs section above). Default is false. logfile: full path to a file for StatusNet to save logging - information to. You may want to use this if you don't have - access to syslog. + information to. You may want to use this if you don't have + access to syslog. logdebug: whether to log additional debug info like backtraces on hard errors. Default false. locale_path: full path to the directory for locale data. Unless you - store all your locale data in one place, you probably - don't need to use this. + store all your locale data in one place, you probably + don't need to use this. language: default language for your site. Defaults to US English. Note that this is overridden if a user is logged in and has selected a different language. It is also overridden if the @@ -817,10 +817,10 @@ language: default language for your site. Defaults to US English. language, that means that changing this setting has little or no effect in practice. languages: A list of languages supported on your site. Typically you'd - only change this if you wanted to disable support for one - or another language: - "unset($config['site']['languages']['de'])" will disable - support for German. + only change this if you wanted to disable support for one + or another language: + "unset($config['site']['languages']['de'])" will disable + support for German. theme: Theme for your site (see Theme section). Two themes are provided by default: 'default' and 'stoica' (the one used by Identi.ca). It's appreciated if you don't use the 'stoica' theme @@ -828,26 +828,26 @@ theme: Theme for your site (see Theme section). Two themes are email: contact email address for your site. By default, it's extracted from your Web server environment; you may want to customize it. broughtbyurl: name of an organization or individual who provides the - service. Each page will include a link to this name in the - footer. A good way to link to the blog, forum, wiki, - corporate portal, or whoever is making the service available. + service. Each page will include a link to this name in the + footer. A good way to link to the blog, forum, wiki, + corporate portal, or whoever is making the service available. broughtby: text used for the "brought by" link. timezone: default timezone for message display. Users can set their - own time zone. Defaults to 'UTC', which is a pretty good default. + own time zone. Defaults to 'UTC', which is a pretty good default. closed: If set to 'true', will disallow registration on your site. - This is a cheap way to restrict accounts to only one - individual or group; just register the accounts you want on - the service, *then* set this variable to 'true'. + This is a cheap way to restrict accounts to only one + individual or group; just register the accounts you want on + the service, *then* set this variable to 'true'. inviteonly: If set to 'true', will only allow registration if the user - was invited by an existing user. + was invited by an existing user. private: If set to 'true', anonymous users will be redirected to the 'login' page. Also, API methods that normally require no authentication will require it. Note that this does not turn off registration; use 'closed' or 'inviteonly' for the behaviour you want. notice: A plain string that will appear on every page. A good place - to put introductory information about your service, or info about - upgrades and outages, or other community info. Any HTML will + to put introductory information about your service, or info about + upgrades and outages, or other community info. Any HTML will be escaped. logo: URL of an image file to use as the logo for the site. Overrides the logo in the theme, if any. @@ -879,17 +879,17 @@ DB_DataObject (see ). The ones that you may want to set are listed below for clarity. database: a DSN (Data Source Name) for your StatusNet database. This is - in the format 'protocol://username:password@hostname/databasename', - where 'protocol' is 'mysql' or 'mysqli' (or possibly 'postgresql', if you - really know what you're doing), 'username' is the username, - 'password' is the password, and etc. + in the format 'protocol://username:password@hostname/databasename', + where 'protocol' is 'mysql' or 'mysqli' (or possibly 'postgresql', if you + really know what you're doing), 'username' is the username, + 'password' is the password, and etc. ini_yourdbname: if your database is not named 'statusnet', you'll need - to set this to point to the location of the - statusnet.ini file. Note that the real name of your database - should go in there, not literally 'yourdbname'. + to set this to point to the location of the + statusnet.ini file. Note that the real name of your database + should go in there, not literally 'yourdbname'. db_driver: You can try changing this to 'MDB2' to use the other driver - type for DB_DataObject, but note that it breaks the OpenID - libraries, which only support PEAR::DB. + type for DB_DataObject, but note that it breaks the OpenID + libraries, which only support PEAR::DB. debug: On a database error, you may get a message saying to set this value to 5 to see debug messages in the browser. This breaks just about all pages, and will also expose the username and @@ -898,13 +898,13 @@ quote_identifiers: Set this to true if you're using postgresql. type: either 'mysql' or 'postgresql' (used for some bits of database-type-specific SQL in the code). Defaults to mysql. mirror: you can set this to an array of DSNs, like the above - 'database' value. If it's set, certain read-only actions will - use a random value out of this array for the database, rather - than the one in 'database' (actually, 'database' is overwritten). - You can offload a busy DB server by setting up MySQL replication - and adding the slaves to this array. Note that if you want some - requests to go to the 'database' (master) server, you'll need - to include it in this array, too. + 'database' value. If it's set, certain read-only actions will + use a random value out of this array for the database, rather + than the one in 'database' (actually, 'database' is overwritten). + You can offload a busy DB server by setting up MySQL replication + and adding the slaves to this array. Note that if you want some + requests to go to the 'database' (master) server, you'll need + to include it in this array, too. utf8: whether to talk to the database in UTF-8 mode. This is the default with new installations, but older sites may want to turn it off until they get their databases fixed up. See "UTF-8 database" @@ -925,9 +925,9 @@ By default, StatusNet sites log error messages to the syslog facility. (You can override this using the 'logfile' parameter described above). appname: The name that StatusNet uses to log messages. By default it's - "statusnet", but if you have more than one installation on the - server, you may want to change the name for each instance so - you can track log messages more easily. + "statusnet", but if you have more than one installation on the + server, you may want to change the name for each instance so + you can track log messages more easily. priority: level to log at. Currently ignored. facility: what syslog facility to used. Defaults to LOG_USER, only reset if you know what syslog is and have a good reason @@ -1013,9 +1013,9 @@ This is for configuring out-going email. We use PEAR's Mail module, see: http://pear.php.net/manual/en/package.mail.mail.factory.php backend: the backend to use for mail, one of 'mail', 'sendmail', and - 'smtp'. Defaults to PEAR's default, 'mail'. + 'smtp'. Defaults to PEAR's default, 'mail'. params: if the mail backend requires any parameters, you can provide - them in an associative array. + them in an associative array. nickname -------- @@ -1023,14 +1023,14 @@ nickname This is for configuring nicknames in the service. blacklist: an array of strings for usernames that may not be - registered. A default array exists for strings that are - used by StatusNet (e.g. 'doc', 'main', 'avatar', 'theme') - but you may want to add others if you have other software - installed in a subdirectory of StatusNet or if you just - don't want certain words used as usernames. + registered. A default array exists for strings that are + used by StatusNet (e.g. 'doc', 'main', 'avatar', 'theme') + but you may want to add others if you have other software + installed in a subdirectory of StatusNet or if you just + don't want certain words used as usernames. featured: an array of nicknames of 'featured' users of the site. - Can be useful to draw attention to well-known users, or - interesting people, or whatever. + Can be useful to draw attention to well-known users, or + interesting people, or whatever. avatar ------ @@ -1038,19 +1038,19 @@ avatar For configuring avatar access. dir: Directory to look for avatar files and to put them into. - Defaults to avatar subdirectory of install directory; if - you change it, make sure to change path, too. -path: Path to avatars. Defaults to path for avatar subdirectory, - but you can change it if you wish. Note that this will - be included with the avatar server, too. + Defaults to avatar subdirectory of install directory; if + you change it, make sure to change path, too. +path: Path to avatars. Defaults to path for avatar subdirectory, + but you can change it if you wish. Note that this will + be included with the avatar server, too. server: If set, defines another server where avatars are stored in the - root directory. Note that the 'avatar' subdir still has to be - writeable. You'd typically use this to split HTTP requests on - the client to speed up page loading, either with another - virtual server or with an NFS or SAMBA share. Clients - typically only make 2 connections to a single server at a - time , so this can parallelize the job. - Defaults to null. + root directory. Note that the 'avatar' subdir still has to be + writeable. You'd typically use this to split HTTP requests on + the client to speed up page loading, either with another + virtual server or with an NFS or SAMBA share. Clients + typically only make 2 connections to a single server at a + time , so this can parallelize the job. + Defaults to null. ssl: Whether to access avatars using HTTPS. Defaults to null, meaning to guess based on site-wide SSL settings. @@ -1060,11 +1060,11 @@ public For configuring the public stream. localonly: If set to true, only messages posted by users of this - service (rather than other services, filtered through OMB) - are shown in the public stream. Default true. + service (rather than other services, filtered through OMB) + are shown in the public stream. Default true. blacklist: An array of IDs of users to hide from the public stream. - Useful if you have someone making excessive Twitterfeed posts - to the site, other kinds of automated posts, testing bots, etc. + Useful if you have someone making excessive Twitterfeed posts + to the site, other kinds of automated posts, testing bots, etc. autosource: Sources of notices that are from automatic posters, and thus should be kept off the public timeline. Default empty. @@ -1072,29 +1072,29 @@ theme ----- server: Like avatars, you can speed up page loading by pointing the - theme file lookup to another server (virtual or real). - Defaults to NULL, meaning to use the site server. + theme file lookup to another server (virtual or real). + Defaults to NULL, meaning to use the site server. dir: Directory where theme files are stored. Used to determine - whether to show parts of a theme file. Defaults to the theme - subdirectory of the install directory. -path: Path part of theme URLs, before the theme name. Relative to the - theme server. It may make sense to change this path when upgrading, - (using version numbers as the path) to make sure that all files are - reloaded by caching clients or proxies. Defaults to null, - which means to use the site path + '/theme'. -ssl: Whether to use SSL for theme elements. Default is null, which means - guess based on site SSL settings. + whether to show parts of a theme file. Defaults to the theme + subdirectory of the install directory. +path: Path part of theme URLs, before the theme name. Relative to the + theme server. It may make sense to change this path when upgrading, + (using version numbers as the path) to make sure that all files are + reloaded by caching clients or proxies. Defaults to null, + which means to use the site path + '/theme'. +ssl: Whether to use SSL for theme elements. Default is null, which means + guess based on site SSL settings. javascript ---------- server: You can speed up page loading by pointing the - theme file lookup to another server (virtual or real). - Defaults to NULL, meaning to use the site server. -path: Path part of Javascript URLs. Defaults to null, - which means to use the site path + '/js/'. -ssl: Whether to use SSL for JavaScript files. Default is null, which means - guess based on site SSL settings. + theme file lookup to another server (virtual or real). + Defaults to NULL, meaning to use the site server. +path: Path part of Javascript URLs. Defaults to null, + which means to use the site path + '/js/'. +ssl: Whether to use SSL for JavaScript files. Default is null, which means + guess based on site SSL settings. xmpp ---- @@ -1108,23 +1108,23 @@ port: connection port for clients. Default 5222, which you probably user: username for the client connection. Users will receive messages from 'user'@'server'. resource: a unique identifier for the connection to the server. This - is actually used as a prefix for each XMPP component in the system. + is actually used as a prefix for each XMPP component in the system. password: password for the user account. host: some XMPP domains are served by machines with a different hostname. (For example, @gmail.com GTalk users connect to talk.google.com). Set this to the correct hostname if that's the case with your server. encryption: Whether to encrypt the connection between StatusNet and the - XMPP server. Defaults to true, but you can get - considerably better performance turning it off if you're - connecting to a server on the same machine or on a - protected network. + XMPP server. Defaults to true, but you can get + considerably better performance turning it off if you're + connecting to a server on the same machine or on a + protected network. debug: if turned on, this will make the XMPP library blurt out all of the incoming and outgoing messages as XML stanzas. Use as a last resort, and never turn it on if you don't have queues enabled, since it will spit out sensitive data to the browser. public: an array of JIDs to send _all_ notices to. This is useful for - participating in third-party search and archiving services. + participating in third-party search and archiving services. invite ------ @@ -1139,8 +1139,8 @@ tag Miscellaneous tagging stuff. dropoff: Decay factor for tag listing, in seconds. - Defaults to exponential decay over ten days; you can twiddle - with it to try and get better results for your site. + Defaults to exponential decay over ten days; you can twiddle + with it to try and get better results for your site. popular ------- @@ -1148,8 +1148,8 @@ popular Settings for the "popular" section of the site. dropoff: Decay factor for popularity listing, in seconds. - Defaults to exponential decay over ten days; you can twiddle - with it to try and get better results for your site. + Defaults to exponential decay over ten days; you can twiddle + with it to try and get better results for your site. daemon ------ @@ -1157,8 +1157,8 @@ daemon For daemon processes. piddir: directory that daemon processes should write their PID file - (process ID) to. Defaults to /var/run/, which is where this - stuff should usually go on Unix-ish systems. + (process ID) to. Defaults to /var/run/, which is where this + stuff should usually go on Unix-ish systems. user: If set, the daemons will try to change their effective user ID to this user before running. Probably a good idea, especially if you start the daemons as root. Note: user name, like 'daemon', @@ -1174,7 +1174,7 @@ database data in memcached . enabled: Set to true to enable. Default false. server: a string with the hostname of the memcached server. Can also - be an array of hostnames, if you've got more than one server. + be an array of hostnames, if you've got more than one server. base: memcached uses key-value pairs to store data. We build long, funny-looking keys to make sure we don't have any conflicts. The base of the key is usually a simplified version of the site name @@ -1212,7 +1212,7 @@ inboxes For notice inboxes. enabled: No longer used. If you set this to something other than true, - StatusNet will no longer run. + StatusNet will no longer run. throttle -------- @@ -1239,7 +1239,7 @@ newuser Options with new users. default: nickname of a user account to automatically subscribe new - users to. Typically this would be system account for e.g. + users to. Typically this would be system account for e.g. service updates or announcements. Users are able to unsub if they want. Default is null; no auto subscribe. welcome: nickname of a user account that sends welcome messages to new @@ -1292,9 +1292,9 @@ supported: an array of mime types you accept to store and distribute, support. uploads: false to disable uploading files with notices (true by default). filecommand: The required MIME_Type library may need to use the 'file' - command. It tries the one in the Web server's path, but if - you're having problems with uploads, try setting this to the - correct value. Note: 'file' must accept '-b' and '-i' options. + command. It tries the one in the Web server's path, but if + you're having problems with uploads, try setting this to the + correct value. Note: 'file' must accept '-b' and '-i' options. For quotas, be sure you've set the upload_max_filesize and post_max_size in php.ini to be large enough to handle your upload. In httpd.conf @@ -1359,9 +1359,9 @@ sessions Session handling. handle: boolean. Whether we should register our own PHP session-handling - code (using the database and memcache if enabled). Defaults to false. - Setting this to true makes some sense on large or multi-server - sites, but it probably won't hurt for smaller ones, either. + code (using the database and memcache if enabled). Defaults to false. + Setting this to true makes some sense on large or multi-server + sites, but it probably won't hurt for smaller ones, either. debug: whether to output debugging info for session storage. Can help with weird session bugs, sometimes. Default false. @@ -1428,14 +1428,14 @@ logincommand Configuration options for the login command. disabled: whether to enable this command. If enabled, users who send - the text 'login' to the site through any channel will - receive a link to login to the site automatically in return. - Possibly useful for users who primarily use an XMPP or SMS - interface and can't be bothered to remember their site - password. Note that the security implications of this are - pretty serious and have not been thoroughly tested. You - should enable it only after you've convinced yourself that - it is safe. Default is 'false'. + the text 'login' to the site through any channel will + receive a link to login to the site automatically in return. + Possibly useful for users who primarily use an XMPP or SMS + interface and can't be bothered to remember their site + password. Note that the security implications of this are + pretty serious and have not been thoroughly tested. You + should enable it only after you've convinced yourself that + it is safe. Default is 'false'. singleuser ---------- @@ -1550,7 +1550,7 @@ If you're adventurous or impatient, you may want to install the development version of StatusNet. To get it, use the git version control tool like so: - git clone git@gitorious.org:statusnet/mainline.git + git clone git@gitorious.org:statusnet/mainline.git This is the version of the software that runs on Identi.ca and the status.net hosted service. Using it is a mixed bag. On the positive -- cgit v1.2.3-54-g00ecf From 89833ce1ff187e29de4250787c5dca4cf4f5ab6b Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Thu, 4 Mar 2010 11:00:02 -0800 Subject: Set up subscription to update@status.net for admin user on new installation, if OStatus is set up and working. (Will fail gracefully on a behind-the-firewall site.) --- install.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/install.php b/install.php index bb53e2b55..8c9b6138b 100644 --- a/install.php +++ b/install.php @@ -865,6 +865,19 @@ function registerInitialUser($nickname, $password, $email) $user->grantRole('owner'); $user->grantRole('moderator'); $user->grantRole('administrator'); + + // Attempt to do a remote subscribe to update@status.net + // Will fail if instance is on a private network. + + if (class_exists('Ostatus_profile')) { + try { + $oprofile = Ostatus_profile::ensureProfile('http://update.status.net/'); + Subscription::start($user->getProfile(), $oprofile->localProfile()); + updateStatus("Set up subscription to update@status.net."); + } catch (Exception $e) { + updateStatus("Could not set up subscription to update@status.net."); + } + } return true; } -- cgit v1.2.3-54-g00ecf From 0bb06261d9dc204919574a90c5d864963849e5b3 Mon Sep 17 00:00:00 2001 From: Siebrand Mazeland Date: Thu, 4 Mar 2010 20:00:40 +0100 Subject: Localisation updates for !StatusNet from !translatewiki.net !sntrans Signed-off-by: Siebrand Mazeland --- locale/ar/LC_MESSAGES/statusnet.po | 659 +++++++++++++++++++--------------- locale/arz/LC_MESSAGES/statusnet.po | 597 +++++++++++++++++------------- locale/bg/LC_MESSAGES/statusnet.po | 591 +++++++++++++++++------------- locale/ca/LC_MESSAGES/statusnet.po | 598 +++++++++++++++++------------- locale/cs/LC_MESSAGES/statusnet.po | 581 +++++++++++++++++------------- locale/de/LC_MESSAGES/statusnet.po | 589 +++++++++++++++++------------- locale/el/LC_MESSAGES/statusnet.po | 577 ++++++++++++++++------------- locale/en_GB/LC_MESSAGES/statusnet.po | 590 +++++++++++++++++------------- locale/es/LC_MESSAGES/statusnet.po | 598 +++++++++++++++++------------- locale/fa/LC_MESSAGES/statusnet.po | 596 +++++++++++++++++------------- locale/fi/LC_MESSAGES/statusnet.po | 590 +++++++++++++++++------------- locale/fr/LC_MESSAGES/statusnet.po | 638 +++++++++++++++++--------------- locale/ga/LC_MESSAGES/statusnet.po | 585 +++++++++++++++++------------- locale/he/LC_MESSAGES/statusnet.po | 585 +++++++++++++++++------------- locale/hsb/LC_MESSAGES/statusnet.po | 599 +++++++++++++++++------------- locale/ia/LC_MESSAGES/statusnet.po | 600 ++++++++++++++++++------------- locale/is/LC_MESSAGES/statusnet.po | 585 +++++++++++++++++------------- locale/it/LC_MESSAGES/statusnet.po | 600 ++++++++++++++++++------------- locale/ja/LC_MESSAGES/statusnet.po | 598 +++++++++++++++++------------- locale/ko/LC_MESSAGES/statusnet.po | 586 +++++++++++++++++------------- locale/mk/LC_MESSAGES/statusnet.po | 639 +++++++++++++++++--------------- locale/nb/LC_MESSAGES/statusnet.po | 582 +++++++++++++++++------------- locale/nl/LC_MESSAGES/statusnet.po | 639 +++++++++++++++++--------------- locale/nn/LC_MESSAGES/statusnet.po | 586 +++++++++++++++++------------- locale/pl/LC_MESSAGES/statusnet.po | 600 ++++++++++++++++++------------- locale/pt/LC_MESSAGES/statusnet.po | 600 ++++++++++++++++++------------- locale/pt_BR/LC_MESSAGES/statusnet.po | 600 ++++++++++++++++++------------- locale/ru/LC_MESSAGES/statusnet.po | 630 ++++++++++++++++++-------------- locale/statusnet.po | 549 ++++++++++++++++------------ locale/sv/LC_MESSAGES/statusnet.po | 625 ++++++++++++++++++-------------- locale/te/LC_MESSAGES/statusnet.po | 596 +++++++++++++++++------------- locale/tr/LC_MESSAGES/statusnet.po | 581 +++++++++++++++++------------- locale/uk/LC_MESSAGES/statusnet.po | 627 ++++++++++++++++++-------------- locale/vi/LC_MESSAGES/statusnet.po | 584 +++++++++++++++++------------- locale/zh_CN/LC_MESSAGES/statusnet.po | 586 +++++++++++++++++------------- locale/zh_TW/LC_MESSAGES/statusnet.po | 579 ++++++++++++++++------------- 36 files changed, 12390 insertions(+), 9155 deletions(-) diff --git a/locale/ar/LC_MESSAGES/statusnet.po b/locale/ar/LC_MESSAGES/statusnet.po index 578f0d250..3e2f7c7b4 100644 --- a/locale/ar/LC_MESSAGES/statusnet.po +++ b/locale/ar/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:02:06+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:55:52+0000\n" "Language-Team: Arabic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ar\n" "X-Message-Group: out-statusnet\n" @@ -22,7 +22,8 @@ msgstr "" "&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 msgid "Access" msgstr "نفاذ" @@ -43,7 +44,6 @@ msgstr "أأمنع المستخدمين المجهولين (غير الوالج #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -#, fuzzy msgctxt "LABEL" msgid "Private" msgstr "خاص" @@ -74,10 +74,9 @@ msgid "Save access settings" msgstr "حفظ إعدادت الوصول" #: actions/accessadminpanel.php:203 -#, fuzzy msgctxt "BUTTON" msgid "Save" -msgstr "أرسل" +msgstr "احفظ" #. TRANS: Server error when page not found (404) #: actions/all.php:64 actions/public.php:98 actions/replies.php:93 @@ -119,7 +118,7 @@ msgstr "%1$s والأصدقاء, الصفحة %2$d" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -174,7 +173,7 @@ msgid "" msgstr "" #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 msgid "You and friends" msgstr "أنت والأصدقاء" @@ -201,11 +200,11 @@ msgstr "" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 msgid "API method not found." msgstr "لم يتم العثور على وسيلة API." @@ -304,7 +303,7 @@ msgstr "رسالة مباشرة %s" #: actions/apidirectmessage.php:105 #, php-format msgid "All the direct messages sent to %s" -msgstr "" +msgstr "كل الرسائل المباشرة التي أرسلت إلى %s" #: actions/apidirectmessagenew.php:126 msgid "No message text!" @@ -560,7 +559,7 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 msgid "Account" msgstr "الحساب" @@ -647,18 +646,6 @@ msgstr "" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "" -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "مسار %s الزمني" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "" - #: actions/apitimelinementions.php:117 #, php-format msgid "%1$s / Updates mentioning %2$s" @@ -669,12 +656,12 @@ msgstr "" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "مسار %s الزمني العام" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "" @@ -917,19 +904,17 @@ msgid "Conversation" msgstr "محادثة" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "الإشعارات" #: actions/deleteapplication.php:63 -#, fuzzy msgid "You must be logged in to delete an application." -msgstr "يجب أن تكون مسجل الدخول لتعدل تطبيقا." +msgstr "يجب أن تسجل الدخول لتحذف تطبيقا." #: actions/deleteapplication.php:71 -#, fuzzy msgid "Application not found." -msgstr "لم يوجد رمز التأكيد." +msgstr "لم يوجد التطبيق." #: actions/deleteapplication.php:78 actions/editapplication.php:77 #: actions/showapplication.php:94 @@ -938,7 +923,7 @@ msgstr "أنت لست مالك هذا التطبيق." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "" @@ -1125,8 +1110,9 @@ msgstr "ارجع إلى المبدئي" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1242,7 +1228,7 @@ msgstr "" msgid "Could not update group." msgstr "تعذر تحديث المجموعة." -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 msgid "Could not create aliases." msgstr "تعذّر إنشاء الكنى." @@ -1362,7 +1348,7 @@ msgid "Cannot normalize that email address" msgstr "" #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "ليس عنوان بريد صالح." @@ -1473,7 +1459,7 @@ msgstr "إشعارات %s المُفضلة" #: actions/favoritesrss.php:115 #, php-format msgid "Updates favored by %1$s on %2$s!" -msgstr "" +msgstr "الإشعارات التي فضلها %1$s في %2$s!" #: actions/featured.php:69 lib/featureduserssection.php:87 #: lib/publicgroupnav.php:89 @@ -1546,6 +1532,25 @@ msgstr "لا ملف كهذا." msgid "Cannot read file." msgstr "تعذّرت قراءة الملف." +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "حجم غير صالح." + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "لا يمكنك إسكات المستخدمين على هذا الموقع." + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "المستخدم مسكت من قبل." + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1624,7 +1629,7 @@ msgstr "تعذّر تحديث تصميمك." #: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 msgid "Design preferences saved." -msgstr "" +msgstr "حُفظت تفضيلات التصميم." #: actions/grouplogo.php:142 actions/grouplogo.php:195 msgid "Group logo" @@ -1676,7 +1681,7 @@ msgstr "امنع" #: actions/groupmembers.php:450 msgid "Make user an admin of the group" -msgstr "" +msgstr "اجعل المستخدم إداريًا في المجموعة" #: actions/groupmembers.php:482 msgid "Make Admin" @@ -1686,12 +1691,18 @@ msgstr "" msgid "Make this user an admin" msgstr "اجعل هذا المستخدم إداريًا" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "مسار %s الزمني" + #: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "مجموعات" @@ -1924,7 +1935,6 @@ msgstr "" #. TRANS: Send button for inviting friends #: actions/invite.php:198 -#, fuzzy msgctxt "BUTTON" msgid "Send" msgstr "أرسل" @@ -2246,8 +2256,8 @@ msgstr "نوع المحتوى " msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "ليس نسق بيانات مدعوم." @@ -2386,7 +2396,8 @@ msgstr "تعذّر حفظ كلمة السر الجديدة." msgid "Password saved." msgstr "حُفظت كلمة السر." -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "المسارات" @@ -2506,7 +2517,7 @@ msgstr "دليل الخلفيات" msgid "SSL" msgstr "SSL" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 msgid "Never" msgstr "مطلقا" @@ -2557,13 +2568,13 @@ msgstr "ليس وسم أشخاص صالح: %s" #: actions/peopletag.php:144 #, php-format msgid "Users self-tagged with %1$s - page %2$d" -msgstr "" +msgstr "المستخدمون الذين وسموا أنفسهم ب%1$s - الصفحة %2$d" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "محتوى إشعار غير صالح" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" @@ -2640,7 +2651,7 @@ msgid "" msgstr "" "سِم نفسك (حروف وأرقام و \"-\" و \".\" و \"_\")، افصلها بفاصلة (',') أو مسافة." -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "اللغة" @@ -2666,7 +2677,7 @@ msgstr "اشترك تلقائيًا بأي شخص يشترك بي (يفضل أن msgid "Bio is too long (max %d chars)." msgstr "" -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "لم تُختر المنطقة الزمنية." @@ -2970,7 +2981,7 @@ msgid "Same as password above. Required." msgstr "نفس كلمة السر أعلاه. مطلوب." #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "البريد الإلكتروني" @@ -3054,7 +3065,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "اشترك" @@ -3150,6 +3161,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "" +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "لا يمكنك إسكات المستخدمين على هذا الموقع." + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "المستخدم بدون ملف مطابق." + #: actions/rsd.php:146 actions/version.php:157 msgid "StatusNet" msgstr "ستاتس نت" @@ -3162,7 +3183,9 @@ msgstr "" msgid "User is already sandboxed." msgstr "" +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "الجلسات" @@ -3187,7 +3210,7 @@ msgstr "تنقيح الجلسة" msgid "Turn on debugging output for sessions." msgstr "مكّن تنقيح مُخرجات الجلسة." -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "اذف إعدادت الموقع" @@ -3218,8 +3241,8 @@ msgstr "المنظمة" msgid "Description" msgstr "الوصف" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "إحصاءات" @@ -3356,45 +3379,45 @@ msgstr "الكنى" msgid "Group actions" msgstr "" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, php-format msgid "FOAF for %s group" msgstr "" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 msgid "Members" msgstr "الأعضاء" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(لا شيء)" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "جميع الأعضاء" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 msgid "Created" msgstr "أنشئ" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3404,7 +3427,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:462 +#: actions/showgroup.php:463 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3413,7 +3436,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "الإداريون" @@ -3523,146 +3546,137 @@ msgid "User is already silenced." msgstr "المستخدم مسكت من قبل." #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +#, fuzzy +msgid "Basic settings for this StatusNet site" msgstr "الإعدادات الأساسية لموقع StatusNet هذا." -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "يجب ألا يكون طول اسم الموقع صفرًا." -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 msgid "You must have a valid contact email address." msgstr "يجب أن تملك عنوان بريد إلكتروني صحيح." -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "لغة غير معروفة \"%s\"." #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "" - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "" - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "" - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "حد النص الأدنى هو 140 حرفًا." -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "" -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "عام" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 msgid "Site name" msgstr "اسم الموقع" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "اسم موقعك، \"التدوين المصغر لشركتك\" مثلا" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 msgid "Contact email address for your site" msgstr "عنوان البريد الإلكتروني للاتصال بموقعك" -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 msgid "Local" msgstr "محلي" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "المنطقة الزمنية المبدئية" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "المنطقة الزمنية المبدئية للموقع؛ ت‌ع‌م عادة." -#: actions/siteadminpanel.php:281 -msgid "Default site language" +#: actions/siteadminpanel.php:262 +#, fuzzy +msgid "Default language" msgstr "لغة الموقع المبدئية" -#: actions/siteadminpanel.php:289 -msgid "Snapshots" -msgstr "" - -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" -msgstr "" - -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" -msgstr "في مهمة مُجدولة" - -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" -msgstr "" - -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" -msgstr "" - -#: actions/siteadminpanel.php:301 -msgid "Frequency" -msgstr "التكرار" - -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" -msgstr "" - -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "بلّغ عن المسار" - -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" msgstr "" -#: actions/siteadminpanel.php:315 +#: actions/siteadminpanel.php:271 msgid "Limits" msgstr "الحدود" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Text limit" msgstr "حد النص" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Maximum number of characters for notices." msgstr "أقصى عدد للحروف في الإشعارات." -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "Dupe limit" msgstr "" -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "إشعار الموقع" + +#: actions/sitenoticeadminpanel.php:67 +#, fuzzy +msgid "Edit site-wide message" +msgstr "رسالة جديدة" + +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +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 +#, fuzzy +msgid "Site notice text" +msgstr "إشعار الموقع" + +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" +msgstr "" + +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "إشعار الموقع" + #: actions/smssettings.php:58 msgid "SMS settings" msgstr "إعدادات الرسائل القصيرة" @@ -3755,6 +3769,66 @@ msgstr "" msgid "No code entered" msgstr "لم تدخل رمزًا" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +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 +#, fuzzy +msgid "Save snapshot settings" +msgstr "اذف إعدادت الموقع" + #: actions/subedit.php:70 msgid "You are not subscribed to that profile." msgstr "" @@ -3948,7 +4022,7 @@ msgstr "" msgid "Unsubscribed" msgstr "" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -3956,7 +4030,6 @@ msgstr "" #. TRANS: User admin panel title #: actions/useradminpanel.php:59 -#, fuzzy msgctxt "TITLE" msgid "User" msgstr "المستخدم" @@ -4139,16 +4212,22 @@ msgstr "%1$s أعضاء المجموعة, الصفحة %2$d" msgid "Search for more groups" msgstr "ابحث عن المزيد من المجموعات" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, php-format msgid "%s is not a member of any group." msgstr "%s ليس عضوًا في أي مجموعة." -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "" + #: actions/version.php:73 #, php-format msgid "StatusNet %s" @@ -4194,7 +4273,7 @@ msgstr "" msgid "Plugins" msgstr "الملحقات" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 msgid "Version" msgstr "النسخة" @@ -4257,39 +4336,39 @@ msgstr "" msgid "DB error inserting hashtag: %s" msgstr "" -#: classes/Notice.php:239 +#: classes/Notice.php:241 msgid "Problem saving notice. Too long." msgstr "مشكلة في حفظ الإشعار. طويل جدًا." -#: classes/Notice.php:243 +#: classes/Notice.php:245 msgid "Problem saving notice. Unknown user." msgstr "مشكلة في حفظ الإشعار. مستخدم غير معروف." -#: classes/Notice.php:248 +#: classes/Notice.php:250 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:254 +#: classes/Notice.php:256 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:260 +#: classes/Notice.php:262 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "مشكلة أثناء حفظ الإشعار." -#: classes/Notice.php:911 +#: classes/Notice.php:927 #, fuzzy msgid "Problem saving group inbox." msgstr "مشكلة أثناء حفظ الإشعار." -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, php-format msgid "RT @%1$s %2$s" msgstr "آر تي @%1$s %2$s" @@ -4314,7 +4393,12 @@ msgstr "غير مشترك!" msgid "Couldn't delete self-subscription." msgstr "لم يمكن حذف اشتراك ذاتي." -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "تعذّر حذف الاشتراك." + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "تعذّر حذف الاشتراك." @@ -4323,20 +4407,20 @@ msgstr "تعذّر حذف الاشتراك." msgid "Welcome to %1$s, @%2$s!" msgstr "أهلا بكم في %1$s يا @%2$s!" -#: classes/User_group.php:462 +#: classes/User_group.php:477 msgid "Could not create group." msgstr "تعذّر إنشاء المجموعة." -#: classes/User_group.php:471 +#: classes/User_group.php:486 #, fuzzy msgid "Could not set group URI." msgstr "تعذّر ضبط عضوية المجموعة." -#: classes/User_group.php:492 +#: classes/User_group.php:507 msgid "Could not set group membership." msgstr "تعذّر ضبط عضوية المجموعة." -#: classes/User_group.php:506 +#: classes/User_group.php:521 #, fuzzy msgid "Could not save local group info." msgstr "تعذّر حفظ الاشتراك." @@ -4378,194 +4462,176 @@ msgstr "%1$s - %2$s" msgid "Untitled page" msgstr "صفحة غير مُعنونة" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 -#, fuzzy +#: lib/action.php:430 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "الملف الشخصي ومسار الأصدقاء الزمني" -#: lib/action.php:442 -#, fuzzy +#: lib/action.php:433 msgctxt "MENU" msgid "Personal" -msgstr "شخصية" +msgstr "الصفحة الشخصية" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 +#: lib/action.php:435 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "غير كلمة سرّك" -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "الحساب" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 +#: lib/action.php:440 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "اتصالات" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "اتصل" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 +#: lib/action.php:446 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "غيّر ضبط الموقع" -#: lib/action.php:460 -#, fuzzy +#: lib/action.php:449 msgctxt "MENU" msgid "Admin" msgstr "إداري" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 -#, fuzzy, php-format +#: lib/action.php:453 +#, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" -msgstr "استخدم هذا النموذج لدعوة أصدقائك وزملائك لاستخدام هذه الخدمة." +msgstr "ادعُ أصدقائك وزملائك للانضمام إليك في %s" -#: lib/action.php:467 -#, fuzzy +#: lib/action.php:456 msgctxt "MENU" msgid "Invite" msgstr "ادعُ" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 +#: lib/action.php:462 #, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "اخرج من الموقع" -#: lib/action.php:476 -#, fuzzy +#: lib/action.php:465 msgctxt "MENU" msgid "Logout" msgstr "اخرج" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 +#: lib/action.php:470 #, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "أنشئ حسابًا" -#: lib/action.php:484 -#, fuzzy +#: lib/action.php:473 msgctxt "MENU" msgid "Register" msgstr "سجّل" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 -#, fuzzy +#: lib/action.php:476 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "لُج إلى الموقع" -#: lib/action.php:490 -#, fuzzy +#: lib/action.php:479 msgctxt "MENU" msgid "Login" msgstr "لُج" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 -#, fuzzy +#: lib/action.php:482 msgctxt "TOOLTIP" msgid "Help me!" msgstr "ساعدني!" -#: lib/action.php:496 -#, fuzzy +#: lib/action.php:485 msgctxt "MENU" msgid "Help" msgstr "مساعدة" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 -#, fuzzy +#: lib/action.php:488 msgctxt "TOOLTIP" msgid "Search for people or text" -msgstr "ابحث عن أشخاص أو نص" +msgstr "ابحث عن أشخاص أو نصوص" -#: lib/action.php:502 -#, fuzzy +#: lib/action.php:491 msgctxt "MENU" msgid "Search" msgstr "ابحث" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 msgid "Site notice" msgstr "إشعار الموقع" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "المشاهدات المحلية" -#: lib/action.php:656 +#: lib/action.php:645 msgid "Page notice" msgstr "إشعار الصفحة" -#: lib/action.php:758 +#: lib/action.php:747 msgid "Secondary site navigation" msgstr "" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "مساعدة" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "عن" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "الأسئلة المكررة" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "الشروط" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "خصوصية" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "المصدر" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "اتصل" -#: lib/action.php:782 +#: lib/action.php:771 msgid "Badge" msgstr "الجسر" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "رخصة برنامج StatusNet" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4574,12 +4640,12 @@ msgstr "" "**%%site.name%%** خدمة تدوين مصغر يقدمها لك [%%site.broughtby%%](%%site." "broughtbyurl%%). " -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "" -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4590,53 +4656,53 @@ msgstr "" "المتوفر تحت [رخصة غنو أفيرو العمومية](http://www.fsf.org/licensing/licenses/" "agpl-3.0.html)." -#: lib/action.php:832 +#: lib/action.php:821 msgid "Site content license" msgstr "رخصة محتوى الموقع" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "" -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "الرخصة." -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "" -#: lib/action.php:1172 +#: lib/action.php:1161 msgid "After" msgstr "بعد" -#: lib/action.php:1180 +#: lib/action.php:1169 msgid "Before" msgstr "قبل" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "" @@ -4651,92 +4717,78 @@ msgid "Changes to that panel are not allowed." msgstr "التغييرات لهذه اللوحة غير مسموح بها." #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 msgid "showForm() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 msgid "saveSettings() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 msgid "Unable to delete design setting." msgstr "تعذّر حذف إعدادات التصميم." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 msgid "Basic site configuration" msgstr "ضبط الموقع الأساسي" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 -#, fuzzy +#: lib/adminpanelaction.php:350 msgctxt "MENU" msgid "Site" msgstr "الموقع" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 msgid "Design configuration" msgstr "ضبط التصميم" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 -#, fuzzy +#: lib/adminpanelaction.php:358 msgctxt "MENU" msgid "Design" msgstr "التصميم" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 -#, fuzzy +#: lib/adminpanelaction.php:364 msgid "User configuration" -msgstr "ضبط المسارات" +msgstr "ضبط المستخدم" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -#, fuzzy -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "المستخدم" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 msgid "Access configuration" msgstr "ضبط الحساب" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "نفاذ" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 msgid "Paths configuration" msgstr "ضبط المسارات" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -#, fuzzy -msgctxt "MENU" -msgid "Paths" -msgstr "المسارات" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 msgid "Sessions configuration" msgstr "ضبط الجلسات" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "الجلسات" +msgid "Edit site notice" +msgstr "إشعار الموقع" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "ضبط المسارات" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5233,6 +5285,11 @@ msgstr "" 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 "" @@ -5362,11 +5419,11 @@ msgstr "غادر" #: lib/logingroupnav.php:80 msgid "Login with a username and password" -msgstr "" +msgstr "لُج باسم مستخدم وكلمة سر" #: lib/logingroupnav.php:86 msgid "Sign up for a new account" -msgstr "" +msgstr "سجّل حسابًا جديدًا" #: lib/mail.php:172 msgid "Email address confirmation" @@ -5427,7 +5484,7 @@ msgstr "السيرة: %s" #: lib/mail.php:286 #, php-format msgid "New email address for posting to %s" -msgstr "" +msgstr "عنوان بريد إلكتروني جديد للإرسال إلى %s" #: lib/mail.php:289 #, php-format @@ -5449,12 +5506,12 @@ msgstr "حالة %s" #: lib/mail.php:439 msgid "SMS confirmation" -msgstr "" +msgstr "تأكيد الرسالة القصيرة" #: lib/mail.php:463 #, php-format msgid "You've been nudged by %s" -msgstr "" +msgstr "لقد نبهك %s" #: lib/mail.php:467 #, php-format @@ -5499,7 +5556,7 @@ msgstr "" #: lib/mail.php:559 #, php-format msgid "%s (@%s) added your notice as a favorite" -msgstr "" +msgstr "لقد أضاف %s (@%s) إشعارك إلى مفضلاته" #: lib/mail.php:561 #, php-format @@ -5525,7 +5582,7 @@ msgstr "" #: lib/mail.php:624 #, php-format msgid "%s (@%s) sent a notice to your attention" -msgstr "" +msgstr "لقد أرسل %s (@%s) إشعارًا إليك" #: lib/mail.php:626 #, php-format @@ -5642,7 +5699,6 @@ msgid "Available characters" msgstr "المحارف المتوفرة" #: lib/messageform.php:178 lib/noticeform.php:236 -#, fuzzy msgctxt "Send button for sending notice" msgid "Send" msgstr "أرسل" @@ -5767,10 +5823,6 @@ msgstr "الردود" msgid "Favorites" msgstr "المفضلات" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "المستخدم" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "صندوق الوارد" @@ -5796,7 +5848,7 @@ msgstr "وسوم في إشعارات %s" msgid "Unknown" msgstr "غير معروفة" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "الاشتراكات" @@ -5804,23 +5856,23 @@ msgstr "الاشتراكات" msgid "All subscriptions" msgstr "جميع الاشتراكات" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "المشتركون" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 msgid "All subscribers" msgstr "جميع المشتركين" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 msgid "User ID" msgstr "هوية المستخدم" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "عضو منذ" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "كل المجموعات" @@ -5860,7 +5912,12 @@ msgstr "أأكرّر هذا الإشعار؟ّ" msgid "Repeat this notice" msgstr "كرّر هذا الإشعار" -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, fuzzy, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "امنع هذا المستخدم من هذه المجموعة" + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "" @@ -6014,47 +6071,63 @@ msgstr "رسالة" msgid "Moderate" msgstr "" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "ملف المستخدم الشخصي" + +#: lib/userprofile.php:354 +#, fuzzy +msgctxt "role" +msgid "Administrator" +msgstr "الإداريون" + +#: lib/userprofile.php:355 +msgctxt "role" +msgid "Moderator" +msgstr "" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "قبل لحظات قليلة" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "قبل دقيقة تقريبًا" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "قبل ساعة تقريبًا" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "قبل يوم تقريبا" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "قبل شهر تقريبًا" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "قبل سنة تقريبًا" diff --git a/locale/arz/LC_MESSAGES/statusnet.po b/locale/arz/LC_MESSAGES/statusnet.po index 3ce1fbc4e..dd00dbf7d 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-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:02:09+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:55:56+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 (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: arz\n" "X-Message-Group: out-statusnet\n" @@ -23,7 +23,8 @@ msgstr "" "&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 msgid "Access" msgstr "نفاذ" @@ -123,7 +124,7 @@ msgstr "%1$s و الصحاب, صفحه %2$d" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -178,7 +179,7 @@ msgid "" msgstr "" #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 msgid "You and friends" msgstr "أنت والأصدقاء" @@ -205,11 +206,11 @@ msgstr "" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 msgid "API method not found." msgstr "الـ API method مش موجوده." @@ -564,7 +565,7 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 msgid "Account" msgstr "الحساب" @@ -651,18 +652,6 @@ msgstr "" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "" -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "مسار %s الزمني" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "" - #: actions/apitimelinementions.php:117 #, php-format msgid "%1$s / Updates mentioning %2$s" @@ -673,12 +662,12 @@ msgstr "" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "مسار %s الزمنى العام" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "" @@ -921,7 +910,7 @@ msgid "Conversation" msgstr "محادثة" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "الإشعارات" @@ -942,7 +931,7 @@ msgstr "انت مش بتملك الapplication دى." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "" @@ -1132,8 +1121,9 @@ msgstr "ارجع إلى المبدئي" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1250,7 +1240,7 @@ msgstr "" msgid "Could not update group." msgstr "تعذر تحديث المجموعه." -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 msgid "Could not create aliases." msgstr "تعذّر إنشاء الكنى." @@ -1370,7 +1360,7 @@ msgid "Cannot normalize that email address" msgstr "" #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "ليس عنوان بريد صالح." @@ -1554,6 +1544,25 @@ msgstr "لا ملف كهذا." msgid "Cannot read file." msgstr "تعذّرت قراءه الملف." +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "حجم غير صالح." + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "لا يمكنك إسكات المستخدمين على هذا الموقع." + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "المستخدم مسكت من قبل." + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1694,12 +1703,18 @@ msgstr "" msgid "Make this user an admin" msgstr "اجعل هذا المستخدم إداريًا" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "مسار %s الزمني" + #: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "مجموعات" @@ -2252,8 +2267,8 @@ msgstr "نوع المحتوى " msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr " مش نظام بيانات مدعوم." @@ -2392,7 +2407,8 @@ msgstr "تعذّر حفظ كلمه السر الجديده." msgid "Password saved." msgstr "حُفظت كلمه السر." -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "المسارات" @@ -2512,7 +2528,7 @@ msgstr "دليل الخلفيات" msgid "SSL" msgstr "SSL" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 msgid "Never" msgstr "مطلقا" @@ -2565,11 +2581,11 @@ msgstr "ليس وسم أشخاص صالح: %s" msgid "Users self-tagged with %1$s - page %2$d" msgstr "" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "محتوى إشعار غير صالح" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" @@ -2645,7 +2661,7 @@ msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "اللغة" @@ -2671,7 +2687,7 @@ msgstr "" msgid "Bio is too long (max %d chars)." msgstr "" -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "لم تُختر المنطقه الزمنيه." @@ -2975,7 +2991,7 @@ msgid "Same as password above. Required." msgstr "نفس كلمه السر أعلاه. مطلوب." #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "البريد الإلكتروني" @@ -3059,7 +3075,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "اشترك" @@ -3155,6 +3171,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "" +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "لا يمكنك إسكات المستخدمين على هذا الموقع." + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "يوزر من-غير پروفايل زيّه." + #: actions/rsd.php:146 actions/version.php:157 msgid "StatusNet" msgstr "StatusNet" @@ -3167,7 +3193,9 @@ msgstr "" msgid "User is already sandboxed." msgstr "" +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "الجلسات" @@ -3192,7 +3220,7 @@ msgstr "تنقيح الجلسة" msgid "Turn on debugging output for sessions." msgstr "مكّن تنقيح مُخرجات الجلسه." -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "اذف إعدادت الموقع" @@ -3223,8 +3251,8 @@ msgstr "المنظمه" msgid "Description" msgstr "الوصف" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "إحصاءات" @@ -3361,45 +3389,45 @@ msgstr "الكنى" msgid "Group actions" msgstr "" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, php-format msgid "FOAF for %s group" msgstr "" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 msgid "Members" msgstr "الأعضاء" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(لا شيء)" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "جميع الأعضاء" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 msgid "Created" msgstr "أنشئ" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3409,7 +3437,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:462 +#: actions/showgroup.php:463 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3418,7 +3446,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "الإداريون" @@ -3528,146 +3556,137 @@ msgid "User is already silenced." msgstr "المستخدم مسكت من قبل." #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +#, fuzzy +msgid "Basic settings for this StatusNet site" msgstr "الإعدادات الأساسيه لموقع StatusNet هذا." -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "يجب ألا يكون طول اسم الموقع صفرًا." -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 msgid "You must have a valid contact email address." msgstr "لازم يكون عندك عنوان ايميل صالح." -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "لغه مش معروفه \"%s\"." #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "" - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "" - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "" - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "حد النص الأدنى هو 140 حرفًا." -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "" -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "عام" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 msgid "Site name" msgstr "اسم الموقع" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "اسم موقعك، \"التدوين المصغر لشركتك\" مثلا" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 msgid "Contact email address for your site" msgstr "عنوان البريد الإلكترونى للاتصال بموقعك" -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 msgid "Local" msgstr "محلي" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "المنطقه الزمنيه المبدئية" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "المنطقه الزمنيه المبدئيه للموقع؛ ت‌ع‌م عاده." -#: actions/siteadminpanel.php:281 -msgid "Default site language" +#: actions/siteadminpanel.php:262 +#, fuzzy +msgid "Default language" msgstr "لغه الموقع المبدئية" -#: actions/siteadminpanel.php:289 -msgid "Snapshots" -msgstr "" - -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" -msgstr "" - -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" -msgstr "فى مهمه مُجدولة" - -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" -msgstr "" - -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" -msgstr "" - -#: actions/siteadminpanel.php:301 -msgid "Frequency" -msgstr "التكرار" - -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" -msgstr "" - -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "بلّغ عن المسار" - -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" msgstr "" -#: actions/siteadminpanel.php:315 +#: actions/siteadminpanel.php:271 msgid "Limits" msgstr "الحدود" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Text limit" msgstr "حد النص" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Maximum number of characters for notices." msgstr "أقصى عدد للحروف فى الإشعارات." -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "Dupe limit" msgstr "" -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "إشعار الموقع" + +#: actions/sitenoticeadminpanel.php:67 +#, fuzzy +msgid "Edit site-wide message" +msgstr "رساله جديدة" + +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +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 +#, fuzzy +msgid "Site notice text" +msgstr "إشعار الموقع" + +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" +msgstr "" + +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "إشعار الموقع" + #: actions/smssettings.php:58 msgid "SMS settings" msgstr "تظبيطات الـSMS" @@ -3760,6 +3779,66 @@ msgstr "" msgid "No code entered" msgstr "" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +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 +#, fuzzy +msgid "Save snapshot settings" +msgstr "اذف إعدادت الموقع" + #: actions/subedit.php:70 msgid "You are not subscribed to that profile." msgstr "" @@ -3954,7 +4033,7 @@ msgstr "" msgid "Unsubscribed" msgstr "" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4145,16 +4224,22 @@ msgstr "%1$s أعضاء المجموعة, الصفحه %2$d" msgid "Search for more groups" msgstr "" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, php-format msgid "%s is not a member of any group." msgstr "" -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "" + #: actions/version.php:73 #, php-format msgid "StatusNet %s" @@ -4198,7 +4283,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 msgid "Version" msgstr "النسخه" @@ -4262,39 +4347,39 @@ msgstr "" msgid "DB error inserting hashtag: %s" msgstr "" -#: classes/Notice.php:239 +#: classes/Notice.php:241 msgid "Problem saving notice. Too long." msgstr "مشكله فى حفظ الإشعار. طويل جدًا." -#: classes/Notice.php:243 +#: classes/Notice.php:245 msgid "Problem saving notice. Unknown user." msgstr "مشكله فى حفظ الإشعار. مستخدم غير معروف." -#: classes/Notice.php:248 +#: classes/Notice.php:250 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:254 +#: classes/Notice.php:256 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:260 +#: classes/Notice.php:262 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "مشكله أثناء حفظ الإشعار." -#: classes/Notice.php:911 +#: classes/Notice.php:927 #, fuzzy msgid "Problem saving group inbox." msgstr "مشكله أثناء حفظ الإشعار." -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, php-format msgid "RT @%1$s %2$s" msgstr "آر تى @%1$s %2$s" @@ -4319,7 +4404,12 @@ msgstr "غير مشترك!" msgid "Couldn't delete self-subscription." msgstr "ما نفعش يمسح الاشتراك الشخصى." -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "تعذّر حذف الاشتراك." + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "تعذّر حذف الاشتراك." @@ -4328,20 +4418,20 @@ msgstr "تعذّر حذف الاشتراك." msgid "Welcome to %1$s, @%2$s!" msgstr "أهلا بكم فى %1$s يا @%2$s!" -#: classes/User_group.php:462 +#: classes/User_group.php:477 msgid "Could not create group." msgstr "تعذّر إنشاء المجموعه." -#: classes/User_group.php:471 +#: classes/User_group.php:486 #, fuzzy msgid "Could not set group URI." msgstr "تعذّر ضبط عضويه المجموعه." -#: classes/User_group.php:492 +#: classes/User_group.php:507 msgid "Could not set group membership." msgstr "تعذّر ضبط عضويه المجموعه." -#: classes/User_group.php:506 +#: classes/User_group.php:521 #, fuzzy msgid "Could not save local group info." msgstr "تعذّر حفظ الاشتراك." @@ -4383,194 +4473,188 @@ msgstr "%1$s - %2$s" msgid "Untitled page" msgstr "صفحه غير مُعنونة" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 +#: lib/action.php:430 #, fuzzy msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "الملف الشخصى ومسار الأصدقاء الزمني" -#: lib/action.php:442 +#: lib/action.php:433 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "شخصية" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 +#: lib/action.php:435 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "غير كلمه سرّك" -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "الحساب" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 +#: lib/action.php:440 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "كونيكشونات (Connections)" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "اتصل" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 +#: lib/action.php:446 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "غيّر ضبط الموقع" -#: lib/action.php:460 +#: lib/action.php:449 #, fuzzy msgctxt "MENU" msgid "Admin" msgstr "إداري" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 +#: lib/action.php:453 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "" -#: lib/action.php:467 +#: lib/action.php:456 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "ادعُ" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 +#: lib/action.php:462 #, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "اخرج من الموقع" -#: lib/action.php:476 +#: lib/action.php:465 #, fuzzy msgctxt "MENU" msgid "Logout" msgstr "اخرج" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 +#: lib/action.php:470 #, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "أنشئ حسابًا" -#: lib/action.php:484 +#: lib/action.php:473 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "سجّل" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 +#: lib/action.php:476 #, fuzzy msgctxt "TOOLTIP" msgid "Login to the site" msgstr "لُج إلى الموقع" -#: lib/action.php:490 +#: lib/action.php:479 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "لُج" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 +#: lib/action.php:482 #, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "ساعدني!" -#: lib/action.php:496 +#: lib/action.php:485 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "مساعدة" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 +#: lib/action.php:488 #, fuzzy msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "ابحث عن أشخاص أو نص" -#: lib/action.php:502 +#: lib/action.php:491 #, fuzzy msgctxt "MENU" msgid "Search" msgstr "ابحث" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 msgid "Site notice" msgstr "إشعار الموقع" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "المشاهدات المحلية" -#: lib/action.php:656 +#: lib/action.php:645 msgid "Page notice" msgstr "إشعار الصفحة" -#: lib/action.php:758 +#: lib/action.php:747 msgid "Secondary site navigation" msgstr "" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "مساعدة" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "عن" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "الأسئله المكررة" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "الشروط" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "خصوصية" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "المصدر" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "اتصل" -#: lib/action.php:782 +#: lib/action.php:771 msgid "Badge" msgstr "" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4579,12 +4663,12 @@ msgstr "" "**%%site.name%%** خدمه تدوين مصغر يقدمها لك [%%site.broughtby%%](%%site." "broughtbyurl%%). " -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "" -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4595,53 +4679,53 @@ msgstr "" "المتوفر تحت [رخصه غنو أفيرو العمومية](http://www.fsf.org/licensing/licenses/" "agpl-3.0.html)." -#: lib/action.php:832 +#: lib/action.php:821 msgid "Site content license" msgstr "رخصه محتوى الموقع" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "" -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "الرخصه." -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "" -#: lib/action.php:1172 +#: lib/action.php:1161 msgid "After" msgstr "بعد" -#: lib/action.php:1180 +#: lib/action.php:1169 msgid "Before" msgstr "قبل" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "" @@ -4656,94 +4740,83 @@ msgid "Changes to that panel are not allowed." msgstr "التغييرات مش مسموحه للـ لوحه دى." #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 msgid "showForm() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 msgid "saveSettings() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 msgid "Unable to delete design setting." msgstr "تعذّر حذف إعدادات التصميم." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 msgid "Basic site configuration" msgstr "ضبط الموقع الأساسي" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 +#: lib/adminpanelaction.php:350 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "الموقع" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 msgid "Design configuration" msgstr "ضبط التصميم" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 +#: lib/adminpanelaction.php:358 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "التصميم" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 #, fuzzy msgid "User configuration" msgstr "ضبط المسارات" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -#, fuzzy -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "المستخدم" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 #, fuzzy msgid "Access configuration" msgstr "ضبط التصميم" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "نفاذ" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 msgid "Paths configuration" msgstr "ضبط المسارات" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -#, fuzzy -msgctxt "MENU" -msgid "Paths" -msgstr "المسارات" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 #, fuzzy msgid "Sessions configuration" msgstr "ضبط التصميم" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "الجلسات" +msgid "Edit site notice" +msgstr "إشعار الموقع" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "ضبط المسارات" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5240,6 +5313,11 @@ msgstr "" 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 "" @@ -5764,10 +5842,6 @@ msgstr "الردود" msgid "Favorites" msgstr "المفضلات" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "المستخدم" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "صندوق الوارد" @@ -5793,7 +5867,7 @@ msgstr "" msgid "Unknown" msgstr "مش معروف" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "الاشتراكات" @@ -5801,23 +5875,23 @@ msgstr "الاشتراكات" msgid "All subscriptions" msgstr "جميع الاشتراكات" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "المشتركون" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 msgid "All subscribers" msgstr "جميع المشتركين" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 msgid "User ID" msgstr "هويه المستخدم" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "عضو منذ" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "كل المجموعات" @@ -5857,7 +5931,12 @@ msgstr "كرر هذا الإشعار؟" msgid "Repeat this notice" msgstr "كرر هذا الإشعار" -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, fuzzy, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "امنع هذا المستخدم من هذه المجموعة" + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "" @@ -6011,47 +6090,63 @@ msgstr "رسالة" msgid "Moderate" msgstr "" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "ملف المستخدم الشخصي" + +#: lib/userprofile.php:354 +#, fuzzy +msgctxt "role" +msgid "Administrator" +msgstr "الإداريون" + +#: lib/userprofile.php:355 +msgctxt "role" +msgid "Moderator" +msgstr "" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "قبل لحظات قليلة" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "قبل دقيقه تقريبًا" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "قبل ساعه تقريبًا" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "قبل يوم تقريبا" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "قبل شهر تقريبًا" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "قبل سنه تقريبًا" diff --git a/locale/bg/LC_MESSAGES/statusnet.po b/locale/bg/LC_MESSAGES/statusnet.po index abf1998d8..e24c60c5a 100644 --- a/locale/bg/LC_MESSAGES/statusnet.po +++ b/locale/bg/LC_MESSAGES/statusnet.po @@ -9,19 +9,20 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:02:12+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:55:59+0000\n" "Language-Team: Bulgarian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: bg\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 msgid "Access" msgstr "Достъп" @@ -118,7 +119,7 @@ msgstr "%1$s и приятели, страница %2$d" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -173,7 +174,7 @@ msgid "" msgstr "" #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 msgid "You and friends" msgstr "Вие и приятелите" @@ -200,11 +201,11 @@ msgstr "Бележки от %1$s и приятели в %2$s." #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 msgid "API method not found." msgstr "Не е открит методът в API." @@ -570,7 +571,7 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 msgid "Account" msgstr "Сметка" @@ -658,18 +659,6 @@ msgstr "%s / Отбелязани като любими от %s" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%s бележки отбелязани като любими от %s / %s." -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "Поток на %s" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "Бележки от %1$s в %2$s." - #: actions/apitimelinementions.php:117 #, fuzzy, php-format msgid "%1$s / Updates mentioning %2$s" @@ -680,12 +669,12 @@ msgstr "%1$s / Реплики на %2$s" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s реплики на съобщения от %2$s / %3$s." -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "Общ поток на %s" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "" @@ -932,7 +921,7 @@ msgid "Conversation" msgstr "Разговор" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Бележки" @@ -954,7 +943,7 @@ msgstr "Не членувате в тази група." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "Имаше проблем със сесията ви в сайта." @@ -1149,8 +1138,9 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1278,7 +1268,7 @@ msgstr "Описанието е твърде дълго (до %d символа) msgid "Could not update group." msgstr "Грешка при обновяване на групата." -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 #, fuzzy msgid "Could not create aliases." msgstr "Грешка при отбелязване като любима." @@ -1402,7 +1392,7 @@ msgid "Cannot normalize that email address" msgstr "Грешка при нормализиране адреса на е-пощата" #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Неправилен адрес на е-поща." @@ -1595,6 +1585,25 @@ msgstr "Няма такъв файл." msgid "Cannot read file." msgstr "Грешка при четене на файла." +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "Неправилен размер." + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "Не може да изпращате съобщения до този потребител." + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "Потребителят вече е заглушен." + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1744,12 +1753,18 @@ msgstr "" msgid "Make this user an admin" msgstr "" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "Поток на %s" + #: actions/grouprss.php:140 #, fuzzy, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Бележки от %1$s в %2$s." -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Групи" @@ -2362,8 +2377,8 @@ msgstr "вид съдържание " msgid "Only " msgstr "Само " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "Неподдържан формат на данните" @@ -2509,7 +2524,8 @@ msgstr "Грешка при запазване на новата парола." msgid "Password saved." msgstr "Паролата е записана." -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "Пътища" @@ -2629,7 +2645,7 @@ msgstr "Директория на фона" msgid "SSL" msgstr "SSL" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 msgid "Never" msgstr "Никога" @@ -2684,11 +2700,11 @@ msgstr "Това не е правилен адрес на е-поща." msgid "Users self-tagged with %1$s - page %2$d" msgstr "Бележки с етикет %s, страница %d" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "Невалидно съдържание на бележка" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" @@ -2764,7 +2780,7 @@ msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "Език" @@ -2792,7 +2808,7 @@ msgstr "" msgid "Bio is too long (max %d chars)." msgstr "Биографията е твърде дълга (до %d символа)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Не е избран часови пояс" @@ -3097,7 +3113,7 @@ msgid "Same as password above. Required." msgstr "Същото като паролата по-горе. Задължително поле." #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "Е-поща" @@ -3202,7 +3218,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "Адрес на профила ви в друга, съвместима услуга за микроблогване" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "Абониране" @@ -3300,6 +3316,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Отговори до %1$s в %2$s!" +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "Не можете да заглушавате потребители на този сайт." + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "Потребител без съответстващ профил" + #: actions/rsd.php:146 actions/version.php:157 msgid "StatusNet" msgstr "StatusNet" @@ -3314,7 +3340,9 @@ msgstr "Не може да изпращате съобщения до този msgid "User is already sandboxed." msgstr "Потребителят ви е блокирал." +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "Сесии" @@ -3339,7 +3367,7 @@ msgstr "" msgid "Turn on debugging output for sessions." msgstr "" -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Запазване настройките на сайта" @@ -3372,8 +3400,8 @@ msgstr "Организация" msgid "Description" msgstr "Описание" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "Статистики" @@ -3507,45 +3535,45 @@ msgstr "Псевдоними" msgid "Group actions" msgstr "" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Емисия с бележки на %s" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Емисия с бележки на %s" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "Емисия с бележки на %s" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, php-format msgid "FOAF for %s group" msgstr "Изходяща кутия за %s" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 msgid "Members" msgstr "Членове" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "Всички членове" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 msgid "Created" msgstr "Създадена на" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3555,7 +3583,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:462 +#: actions/showgroup.php:463 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3564,7 +3592,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "Администратори" @@ -3674,147 +3702,138 @@ msgid "User is already silenced." msgstr "Потребителят вече е заглушен." #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +#, fuzzy +msgid "Basic settings for this StatusNet site" msgstr "Основни настройки на тази инсталация на StatusNet." -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "Името на сайта е задължително." -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 #, fuzzy msgid "You must have a valid contact email address." msgstr "Адресът на е-поща за контакт е задължителен" -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "Непознат език \"%s\"." #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "" - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "" - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "" - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "Минималното ограничение на текста е 140 знака." -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "" -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "Общи" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 msgid "Site name" msgstr "Име на сайта" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 msgid "Contact email address for your site" msgstr "Адрес на е-поща за контакт със сайта" -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 #, fuzzy msgid "Local" msgstr "Местоположение" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "Часови пояс по подразбиране" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "Часови пояс по подразбиране за сайта (обикновено UTC)." -#: actions/siteadminpanel.php:281 -msgid "Default site language" +#: actions/siteadminpanel.php:262 +#, fuzzy +msgid "Default language" msgstr "Език по подразбиране за сайта" -#: actions/siteadminpanel.php:289 -msgid "Snapshots" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" msgstr "" -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" -msgstr "" +#: actions/siteadminpanel.php:271 +msgid "Limits" +msgstr "Ограничения" -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" +#: actions/siteadminpanel.php:274 +msgid "Text limit" msgstr "" -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" +#: actions/siteadminpanel.php:274 +msgid "Maximum number of characters for notices." msgstr "" -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" +#: actions/siteadminpanel.php:278 +msgid "Dupe limit" msgstr "" -#: actions/siteadminpanel.php:301 -msgid "Frequency" -msgstr "Честота" - -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" +#: actions/siteadminpanel.php:278 +msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "" +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "Нова бележка" -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" -msgstr "" +#: actions/sitenoticeadminpanel.php:67 +#, fuzzy +msgid "Edit site-wide message" +msgstr "Ново съобщение" -#: actions/siteadminpanel.php:315 -msgid "Limits" -msgstr "Ограничения" +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +msgid "Unable to save site notice." +msgstr "Грешка при записване настройките за Twitter" -#: actions/siteadminpanel.php:318 -msgid "Text limit" +#: actions/sitenoticeadminpanel.php:113 +msgid "Max length for the site-wide notice is 255 chars" msgstr "" -#: actions/siteadminpanel.php:318 -msgid "Maximum number of characters for notices." -msgstr "" +#: actions/sitenoticeadminpanel.php:176 +#, fuzzy +msgid "Site notice text" +msgstr "Нова бележка" -#: actions/siteadminpanel.php:322 -msgid "Dupe limit" +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" msgstr "" -#: actions/siteadminpanel.php:322 -msgid "How long users must wait (in seconds) to post the same thing again." -msgstr "" +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "Нова бележка" #: actions/smssettings.php:58 msgid "SMS settings" @@ -3917,6 +3936,66 @@ msgstr "" msgid "No code entered" msgstr "Не е въведен код." +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +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 +#, fuzzy +msgid "Save snapshot settings" +msgstr "Запазване настройките на сайта" + #: actions/subedit.php:70 msgid "You are not subscribed to that profile." msgstr "Не сте абонирани за този профил" @@ -4119,7 +4198,7 @@ msgstr "Сървърът не е върнал адрес на профила." msgid "Unsubscribed" msgstr "Отписване" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4325,16 +4404,22 @@ msgstr "Членове на групата %s, страница %d" msgid "Search for more groups" msgstr "Търсене на още групи" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, php-format msgid "%s is not a member of any group." msgstr "%s не членува в никоя група." -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "Бележки от %1$s в %2$s." + #: actions/version.php:73 #, php-format msgid "StatusNet %s" @@ -4378,7 +4463,7 @@ msgstr "" msgid "Plugins" msgstr "Приставки" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 msgid "Version" msgstr "Версия" @@ -4446,23 +4531,23 @@ msgstr "Грешка при обновяване на бележката с но msgid "DB error inserting hashtag: %s" msgstr "" -#: classes/Notice.php:239 +#: classes/Notice.php:241 #, fuzzy msgid "Problem saving notice. Too long." msgstr "Проблем при записване на бележката." -#: classes/Notice.php:243 +#: classes/Notice.php:245 msgid "Problem saving notice. Unknown user." msgstr "Грешка при записване на бележката. Непознат потребител." -#: classes/Notice.php:248 +#: classes/Notice.php:250 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "Твърде много бележки за кратко време. Спрете, поемете дъх и публикувайте " "отново след няколко минути." -#: classes/Notice.php:254 +#: classes/Notice.php:256 #, fuzzy msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " @@ -4471,20 +4556,20 @@ msgstr "" "Твърде много бележки за кратко време. Спрете, поемете дъх и публикувайте " "отново след няколко минути." -#: classes/Notice.php:260 +#: classes/Notice.php:262 msgid "You are banned from posting notices on this site." msgstr "Забранено ви е да публикувате бележки в този сайт." -#: classes/Notice.php:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "Проблем при записване на бележката." -#: classes/Notice.php:911 +#: classes/Notice.php:927 #, fuzzy msgid "Problem saving group inbox." msgstr "Проблем при записване на бележката." -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4512,7 +4597,12 @@ msgstr "Не сте абонирани!" msgid "Couldn't delete self-subscription." msgstr "Грешка при изтриване на абонамента." -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "Грешка при изтриване на абонамента." + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "Грешка при изтриване на абонамента." @@ -4521,21 +4611,21 @@ msgstr "Грешка при изтриване на абонамента." msgid "Welcome to %1$s, @%2$s!" msgstr "Добре дошли в %1$s, @%2$s!" -#: classes/User_group.php:462 +#: classes/User_group.php:477 msgid "Could not create group." msgstr "Грешка при създаване на групата." -#: classes/User_group.php:471 +#: classes/User_group.php:486 #, fuzzy msgid "Could not set group URI." msgstr "Грешка при създаване на нов абонамент." -#: classes/User_group.php:492 +#: classes/User_group.php:507 #, fuzzy msgid "Could not set group membership." msgstr "Грешка при създаване на нов абонамент." -#: classes/User_group.php:506 +#: classes/User_group.php:521 #, fuzzy msgid "Could not save local group info." msgstr "Грешка при създаване на нов абонамент." @@ -4578,196 +4668,190 @@ msgstr "%1$s - %2$s" msgid "Untitled page" msgstr "Неозаглавена страница" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 +#: lib/action.php:430 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:442 +#: lib/action.php:433 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "Лично" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 +#: lib/action.php:435 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Промяна на поща, аватар, парола, профил" -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "Сметка" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 +#: lib/action.php:440 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Свързване към услуги" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "Свързване" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 +#: lib/action.php:446 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Промяна настройките на сайта" -#: lib/action.php:460 +#: lib/action.php:449 #, fuzzy msgctxt "MENU" msgid "Admin" msgstr "Настройки" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 +#: lib/action.php:453 #, fuzzy, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Поканете приятели и колеги да се присъединят към вас в %s" -#: lib/action.php:467 +#: lib/action.php:456 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "Покани" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 +#: lib/action.php:462 #, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Излизане от сайта" -#: lib/action.php:476 +#: lib/action.php:465 #, fuzzy msgctxt "MENU" msgid "Logout" msgstr "Изход" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 +#: lib/action.php:470 #, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "Създаване на нова сметка" -#: lib/action.php:484 +#: lib/action.php:473 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "Регистриране" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 +#: lib/action.php:476 #, fuzzy msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Влизане в сайта" -#: lib/action.php:490 +#: lib/action.php:479 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "Вход" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 +#: lib/action.php:482 #, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "Помощ" -#: lib/action.php:496 +#: lib/action.php:485 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "Помощ" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 +#: lib/action.php:488 #, fuzzy msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Търсене за хора или бележки" -#: lib/action.php:502 +#: lib/action.php:491 #, fuzzy msgctxt "MENU" msgid "Search" msgstr "Търсене" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 #, fuzzy msgid "Site notice" msgstr "Нова бележка" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "" -#: lib/action.php:656 +#: lib/action.php:645 #, fuzzy msgid "Page notice" msgstr "Нова бележка" -#: lib/action.php:758 +#: lib/action.php:747 #, fuzzy msgid "Secondary site navigation" msgstr "Абонаменти" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "Помощ" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "Относно" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "Въпроси" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "Условия" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "Поверителност" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "Изходен код" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "Контакт" -#: lib/action.php:782 +#: lib/action.php:771 msgid "Badge" msgstr "Табелка" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "Лиценз на програмата StatusNet" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4776,12 +4860,12 @@ msgstr "" "**%%site.name%%** е услуга за микроблогване, предоставена ви от [%%site." "broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** е услуга за микроблогване. " -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4792,53 +4876,53 @@ msgstr "" "достъпна под [GNU Affero General Public License](http://www.fsf.org/" "licensing/licenses/agpl-3.0.html)." -#: lib/action.php:832 +#: lib/action.php:821 msgid "Site content license" msgstr "Лиценз на съдържанието" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "Всички " -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "лиценз." -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "Страниране" -#: lib/action.php:1172 +#: lib/action.php:1161 msgid "After" msgstr "След" -#: lib/action.php:1180 +#: lib/action.php:1169 msgid "Before" msgstr "Преди" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "" @@ -4854,97 +4938,86 @@ msgid "Changes to that panel are not allowed." msgstr "Записването не е позволено." #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 #, fuzzy msgid "showForm() not implemented." msgstr "Командата все още не се поддържа." #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 #, fuzzy msgid "saveSettings() not implemented." msgstr "Командата все още не се поддържа." #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 #, fuzzy msgid "Unable to delete design setting." msgstr "Грешка при записване настройките за Twitter" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 msgid "Basic site configuration" msgstr "Основна настройка на сайта" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 +#: lib/adminpanelaction.php:350 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "Сайт" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 msgid "Design configuration" msgstr "Настройка на оформлението" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 +#: lib/adminpanelaction.php:358 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "Версия" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 #, fuzzy msgid "User configuration" msgstr "Настройка на пътищата" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -#, fuzzy -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "Потребител" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 #, fuzzy msgid "Access configuration" msgstr "Настройка на оформлението" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "Достъп" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 msgid "Paths configuration" msgstr "Настройка на пътищата" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -#, fuzzy -msgctxt "MENU" -msgid "Paths" -msgstr "Пътища" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 #, fuzzy msgid "Sessions configuration" msgstr "Настройка на оформлението" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "Сесии" +msgid "Edit site notice" +msgstr "Нова бележка" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "Настройка на пътищата" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5443,6 +5516,11 @@ msgstr "Изберете етикет за конкретизиране" 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 "Адрес на страница, блог или профил в друг сайт на групата" @@ -5983,10 +6061,6 @@ msgstr "Отговори" msgid "Favorites" msgstr "Любими" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "Потребител" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Входящи" @@ -6013,7 +6087,7 @@ msgstr "Етикети в бележките на %s" msgid "Unknown" msgstr "Непознато действие" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Абонаменти" @@ -6021,24 +6095,24 @@ msgstr "Абонаменти" msgid "All subscriptions" msgstr "Всички абонаменти" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Абонати" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 msgid "All subscribers" msgstr "Всички абонати" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 #, fuzzy msgid "User ID" msgstr "Потребител" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "Участник от" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "Всички групи" @@ -6079,7 +6153,12 @@ msgstr "Повтаряне на тази бележка" msgid "Repeat this notice" msgstr "Повтаряне на тази бележка" -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, fuzzy, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "Списък с потребителите в тази група." + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "" @@ -6239,47 +6318,63 @@ msgstr "Съобщение" msgid "Moderate" msgstr "" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "Потребителски профил" + +#: lib/userprofile.php:354 +#, fuzzy +msgctxt "role" +msgid "Administrator" +msgstr "Администратори" + +#: lib/userprofile.php:355 +msgctxt "role" +msgid "Moderator" +msgstr "" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "преди няколко секунди" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "преди около минута" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "преди около %d минути" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "преди около час" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "преди около %d часа" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "преди около ден" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "преди около %d дни" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "преди около месец" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "преди около %d месеца" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "преди около година" diff --git a/locale/ca/LC_MESSAGES/statusnet.po b/locale/ca/LC_MESSAGES/statusnet.po index 8b12f44a9..f38b97ccf 100644 --- a/locale/ca/LC_MESSAGES/statusnet.po +++ b/locale/ca/LC_MESSAGES/statusnet.po @@ -10,19 +10,20 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:02:15+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:56:02+0000\n" "Language-Team: Catalan\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ca\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 msgid "Access" msgstr "Accés" @@ -124,7 +125,7 @@ msgstr "%s perfils blocats, pàgina %d" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -181,7 +182,7 @@ msgid "" msgstr "" #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 msgid "You and friends" msgstr "Un mateix i amics" @@ -208,11 +209,11 @@ msgstr "Actualitzacions de %1$s i amics a %2$s!" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "No s'ha trobat el mètode API!" @@ -586,7 +587,7 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 msgid "Account" msgstr "Compte" @@ -677,18 +678,6 @@ msgstr "%s / Preferits de %s" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%s actualitzacions favorites per %s / %s." -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "%s línia temporal" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "Actualitzacions de %1$s a %2$s!" - #: actions/apitimelinementions.php:117 #, fuzzy, php-format msgid "%1$s / Updates mentioning %2$s" @@ -699,12 +688,12 @@ msgstr "%1$s / Notificacions contestant a %2$s" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s notificacions que responen a notificacions de %2$s / %3$s." -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "%s línia temporal pública" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s notificacions de tots!" @@ -952,7 +941,7 @@ msgid "Conversation" msgstr "Conversa" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Avisos" @@ -974,7 +963,7 @@ msgstr "No sou un membre del grup." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "Ha ocorregut algun problema amb la teva sessió." @@ -1169,8 +1158,9 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1298,7 +1288,7 @@ msgstr "la descripció és massa llarga (màx. %d caràcters)." msgid "Could not update group." msgstr "No s'ha pogut actualitzar el grup." -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 msgid "Could not create aliases." msgstr "No s'han pogut crear els àlies." @@ -1427,7 +1417,7 @@ msgid "Cannot normalize that email address" msgstr "No es pot normalitzar l'adreça electrònica." #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Adreça de correu electrònic no vàlida." @@ -1616,6 +1606,25 @@ msgstr "No existeix el fitxer." msgid "Cannot read file." msgstr "No es pot llegir el fitxer." +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "Mida invàlida." + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "No pots enviar un missatge a aquest usuari." + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "L'usuari ja està silenciat." + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1763,12 +1772,18 @@ msgstr "Fes-lo administrador" msgid "Make this user an admin" msgstr "Fes l'usuari administrador" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "%s línia temporal" + #: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Actualitzacions dels membres de %1$s el %2$s!" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Grups" @@ -2387,8 +2402,8 @@ msgstr "tipus de contingut " msgid "Only " msgstr "Només " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "Format de data no suportat." @@ -2534,7 +2549,8 @@ msgstr "No es pot guardar la nova contrasenya." msgid "Password saved." msgstr "Contrasenya guardada." -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "Camins" @@ -2654,7 +2670,7 @@ msgstr "Directori de fons" msgid "SSL" msgstr "SSL" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 msgid "Never" msgstr "Mai" @@ -2711,11 +2727,11 @@ msgstr "Etiqueta no vàlida per a la gent: %s" msgid "Users self-tagged with %1$s - page %2$d" msgstr "Usuaris que s'han etiquetat %s - pàgina %d" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "El contingut de l'avís és invàlid" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" @@ -2797,7 +2813,7 @@ msgstr "" "Etiquetes per a tu mateix (lletres, números, -, ., i _), per comes o separat " "por espais" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "Idioma" @@ -2825,7 +2841,7 @@ msgstr "" msgid "Bio is too long (max %d chars)." msgstr "La biografia és massa llarga (màx. %d caràcters)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Franja horària no seleccionada." @@ -3138,7 +3154,7 @@ msgid "Same as password above. Required." msgstr "Igual a la contrasenya de dalt. Requerit." #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "Correu electrònic" @@ -3244,7 +3260,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL del teu perfil en un altre servei de microblogging compatible" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "Subscriure's" @@ -3349,6 +3365,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Respostes a %1$s el %2$s!" +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "No podeu silenciar els usuaris d'aquest lloc." + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "Usuari sense perfil coincident" + #: actions/rsd.php:146 actions/version.php:157 #, fuzzy msgid "StatusNet" @@ -3364,7 +3390,9 @@ msgstr "No pots enviar un missatge a aquest usuari." msgid "User is already sandboxed." msgstr "Un usuari t'ha bloquejat." +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "Sessions" @@ -3389,7 +3417,7 @@ msgstr "Depuració de la sessió" msgid "Turn on debugging output for sessions." msgstr "Activa la sortida de depuració per a les sessions." -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Desa els paràmetres del lloc" @@ -3423,8 +3451,8 @@ msgstr "Paginació" msgid "Description" msgstr "Descripció" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "Estadístiques" @@ -3558,45 +3586,45 @@ msgstr "Àlies" msgid "Group actions" msgstr "Accions del grup" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Feed d'avisos del grup %s" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Feed d'avisos del grup %s" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "Feed d'avisos del grup %s" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, php-format msgid "FOAF for %s group" msgstr "Safata de sortida per %s" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 msgid "Members" msgstr "Membres" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Cap)" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "Tots els membres" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 msgid "Created" msgstr "S'ha creat" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3606,7 +3634,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:462 +#: actions/showgroup.php:463 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3617,7 +3645,7 @@ msgstr "" "**%s** és un grup d'usuaris a %%%%site.name%%%%, un servei de [microblogging]" "(http://ca.wikipedia.org/wiki/Microblogging)" -#: actions/showgroup.php:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "Administradors" @@ -3732,149 +3760,140 @@ msgid "User is already silenced." msgstr "L'usuari ja està silenciat." #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +#, fuzzy +msgid "Basic settings for this StatusNet site" msgstr "Paràmetres bàsic d'aquest lloc basat en l'StatusNet." -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "El nom del lloc ha de tenir una longitud superior a zero." -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 #, fuzzy msgid "You must have a valid contact email address." msgstr "Heu de tenir una adreça electrònica de contacte vàlida" -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, fuzzy, php-format msgid "Unknown language \"%s\"." msgstr "Llengua desconeguda «%s»" #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "" - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "" - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "" - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "" -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "" -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "General" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 msgid "Site name" msgstr "Nom del lloc" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "El nom del vostre lloc, com ara «El microblog de l'empresa»" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "El text que s'utilitza a l'enllaç dels crèdits al peu de cada pàgina" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 msgid "Contact email address for your site" msgstr "Adreça electrònica de contacte del vostre lloc" -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 msgid "Local" msgstr "Local" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "Fus horari per defecte" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "Fus horari per defecte del lloc; normalment UTC." -#: actions/siteadminpanel.php:281 -msgid "Default site language" +#: actions/siteadminpanel.php:262 +#, fuzzy +msgid "Default language" msgstr "Llengua per defecte del lloc" -#: actions/siteadminpanel.php:289 -msgid "Snapshots" -msgstr "Instantànies" - -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" -msgstr "" - -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" -msgstr "En una tasca planificada" - -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" -msgstr "Instantànies de dades" - -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" -msgstr "" - -#: actions/siteadminpanel.php:301 -msgid "Frequency" -msgstr "Freqüència" - -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" -msgstr "" - -#: actions/siteadminpanel.php:307 -msgid "Report URL" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" msgstr "" -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" -msgstr "Les instantànies s'enviaran a aquest URL" - -#: actions/siteadminpanel.php:315 +#: actions/siteadminpanel.php:271 msgid "Limits" msgstr "Límits" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Text limit" msgstr "Límits del text" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Maximum number of characters for notices." msgstr "" -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "Dupe limit" msgstr "Límit de duplicats" -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" "Quant de temps cal que esperin els usuaris (en segons) per enviar el mateix " "de nou." +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "Avís del lloc" + +#: actions/sitenoticeadminpanel.php:67 +#, fuzzy +msgid "Edit site-wide message" +msgstr "Nou missatge" + +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +msgid "Unable to save site notice." +msgstr "No s'ha pogut guardar la teva configuració de Twitter!" + +#: actions/sitenoticeadminpanel.php:113 +msgid "Max length for the site-wide notice is 255 chars" +msgstr "" + +#: actions/sitenoticeadminpanel.php:176 +#, fuzzy +msgid "Site notice text" +msgstr "Avís del lloc" + +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" +msgstr "" + +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "Avís del lloc" + #: actions/smssettings.php:58 msgid "SMS settings" msgstr "Paràmetres de l'SMS" @@ -3978,6 +3997,66 @@ msgstr "" msgid "No code entered" msgstr "No hi ha cap codi entrat" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "Instantànies" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +msgid "Manage snapshot configuration" +msgstr "Canvia la configuració del lloc" + +#: 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 "En una tasca planificada" + +#: actions/snapshotadminpanel.php:206 +msgid "Data snapshots" +msgstr "Instantànies de dades" + +#: actions/snapshotadminpanel.php:208 +msgid "When to send statistical data to status.net servers" +msgstr "" + +#: actions/snapshotadminpanel.php:217 +msgid "Frequency" +msgstr "Freqüència" + +#: 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 "Les instantànies s'enviaran a aquest URL" + +#: actions/snapshotadminpanel.php:248 +#, fuzzy +msgid "Save snapshot settings" +msgstr "Desa els paràmetres del lloc" + #: actions/subedit.php:70 msgid "You are not subscribed to that profile." msgstr "No estàs subscrit a aquest perfil." @@ -4185,7 +4264,7 @@ msgstr "No id en el perfil sol·licitat." msgid "Unsubscribed" msgstr "No subscrit" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4389,16 +4468,22 @@ msgstr "%s membre/s en el grup, pàgina %d" msgid "Search for more groups" msgstr "Cerca més grups" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, php-format msgid "%s is not a member of any group." msgstr "%s no és membre de cap grup." -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "Actualitzacions de %1$s a %2$s!" + #: actions/version.php:73 #, fuzzy, php-format msgid "StatusNet %s" @@ -4442,7 +4527,7 @@ msgstr "" msgid "Plugins" msgstr "Connectors" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 #, fuzzy msgid "Version" msgstr "Sessions" @@ -4511,23 +4596,23 @@ msgstr "No s'ha pogut inserir el missatge amb la nova URI." msgid "DB error inserting hashtag: %s" msgstr "Hashtag de l'error de la base de dades:%s" -#: classes/Notice.php:239 +#: classes/Notice.php:241 #, fuzzy msgid "Problem saving notice. Too long." msgstr "Problema en guardar l'avís." -#: classes/Notice.php:243 +#: classes/Notice.php:245 msgid "Problem saving notice. Unknown user." msgstr "Problema al guardar la notificació. Usuari desconegut." -#: classes/Notice.php:248 +#: classes/Notice.php:250 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "Masses notificacions massa ràpid; pren un respir i publica de nou en uns " "minuts." -#: classes/Notice.php:254 +#: classes/Notice.php:256 #, fuzzy msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " @@ -4536,20 +4621,20 @@ msgstr "" "Masses notificacions massa ràpid; pren un respir i publica de nou en uns " "minuts." -#: classes/Notice.php:260 +#: classes/Notice.php:262 msgid "You are banned from posting notices on this site." msgstr "Ha estat bandejat de publicar notificacions en aquest lloc." -#: classes/Notice.php:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "Problema en guardar l'avís." -#: classes/Notice.php:911 +#: classes/Notice.php:927 #, fuzzy msgid "Problem saving group inbox." msgstr "Problema en guardar l'avís." -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4576,7 +4661,12 @@ msgstr "No estàs subscrit!" msgid "Couldn't delete self-subscription." msgstr "No s'ha pogut eliminar la subscripció." -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "No s'ha pogut eliminar la subscripció." + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "No s'ha pogut eliminar la subscripció." @@ -4585,20 +4675,20 @@ msgstr "No s'ha pogut eliminar la subscripció." msgid "Welcome to %1$s, @%2$s!" msgstr "Us donem la benvinguda a %1$s, @%2$s!" -#: classes/User_group.php:462 +#: classes/User_group.php:477 msgid "Could not create group." msgstr "No s'ha pogut crear el grup." -#: classes/User_group.php:471 +#: classes/User_group.php:486 #, fuzzy msgid "Could not set group URI." msgstr "No s'ha pogut establir la pertinença d'aquest grup." -#: classes/User_group.php:492 +#: classes/User_group.php:507 msgid "Could not set group membership." msgstr "No s'ha pogut establir la pertinença d'aquest grup." -#: classes/User_group.php:506 +#: classes/User_group.php:521 #, fuzzy msgid "Could not save local group info." msgstr "No s'ha pogut guardar la subscripció." @@ -4641,194 +4731,188 @@ msgstr "%1$s (%2$s)" msgid "Untitled page" msgstr "Pàgina sense titol" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "Navegació primària del lloc" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 +#: lib/action.php:430 #, fuzzy msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Perfil personal i línia temporal dels amics" -#: lib/action.php:442 +#: lib/action.php:433 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "Personal" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 +#: lib/action.php:435 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Canviar correu electrònic, avatar, contrasenya, perfil" -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "Compte" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 +#: lib/action.php:440 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "No s'ha pogut redirigir al servidor: %s" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "Connexió" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 +#: lib/action.php:446 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Canvia la configuració del lloc" -#: lib/action.php:460 +#: lib/action.php:449 #, fuzzy msgctxt "MENU" msgid "Admin" msgstr "Admin" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 +#: lib/action.php:453 #, fuzzy, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Convidar amics i companys perquè participin a %s" -#: lib/action.php:467 +#: lib/action.php:456 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "Convida" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 +#: lib/action.php:462 #, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Finalitza la sessió del lloc" -#: lib/action.php:476 +#: lib/action.php:465 #, fuzzy msgctxt "MENU" msgid "Logout" msgstr "Finalitza la sessió" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 +#: lib/action.php:470 #, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "Crea un compte" -#: lib/action.php:484 +#: lib/action.php:473 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "Registre" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 +#: lib/action.php:476 #, fuzzy msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Inicia una sessió al lloc" -#: lib/action.php:490 +#: lib/action.php:479 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "Inici de sessió" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 +#: lib/action.php:482 #, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "Ajuda'm" -#: lib/action.php:496 +#: lib/action.php:485 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "Ajuda" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 +#: lib/action.php:488 #, fuzzy msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Cerca gent o text" -#: lib/action.php:502 +#: lib/action.php:491 #, fuzzy msgctxt "MENU" msgid "Search" msgstr "Cerca" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 msgid "Site notice" msgstr "Avís del lloc" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "Vistes locals" -#: lib/action.php:656 +#: lib/action.php:645 msgid "Page notice" msgstr "Notificació pàgina" -#: lib/action.php:758 +#: lib/action.php:747 msgid "Secondary site navigation" msgstr "Navegació del lloc secundària" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "Ajuda" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "Quant a" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "Preguntes més freqüents" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "Privadesa" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "Font" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "Contacte" -#: lib/action.php:782 +#: lib/action.php:771 msgid "Badge" msgstr "Insígnia" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "Llicència del programari StatusNet" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4837,12 +4921,12 @@ msgstr "" "**%%site.name%%** és un servei de microblogging de [%%site.broughtby%%**](%%" "site.broughtbyurl%%)." -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** és un servei de microblogging." -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4853,53 +4937,53 @@ msgstr "" "%s, disponible sota la [GNU Affero General Public License](http://www.fsf." "org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:832 +#: lib/action.php:821 msgid "Site content license" msgstr "Llicència de contingut del lloc" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "Tot " -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "llicència." -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "Paginació" -#: lib/action.php:1172 +#: lib/action.php:1161 msgid "After" msgstr "Posteriors" -#: lib/action.php:1180 +#: lib/action.php:1169 msgid "Before" msgstr "Anteriors" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "" @@ -4915,97 +4999,86 @@ msgid "Changes to that panel are not allowed." msgstr "Registre no permès." #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 #, fuzzy msgid "showForm() not implemented." msgstr "Comanda encara no implementada." #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 #, fuzzy msgid "saveSettings() not implemented." msgstr "Comanda encara no implementada." #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 #, fuzzy msgid "Unable to delete design setting." msgstr "No s'ha pogut guardar la teva configuració de Twitter!" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 msgid "Basic site configuration" msgstr "Configuració bàsica del lloc" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 +#: lib/adminpanelaction.php:350 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "Lloc" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 msgid "Design configuration" msgstr "Configuració del disseny" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 +#: lib/adminpanelaction.php:358 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "Disseny" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 #, fuzzy msgid "User configuration" msgstr "Configuració dels camins" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -#, fuzzy -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "Usuari" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 #, fuzzy msgid "Access configuration" msgstr "Configuració del disseny" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "Accés" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 msgid "Paths configuration" msgstr "Configuració dels camins" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -#, fuzzy -msgctxt "MENU" -msgid "Paths" -msgstr "Camins" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 #, fuzzy msgid "Sessions configuration" msgstr "Configuració del disseny" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "Sessions" +msgid "Edit site notice" +msgstr "Avís del lloc" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "Configuració dels camins" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5500,6 +5573,11 @@ msgstr "Elegeix una etiqueta para reduir la llista" msgid "Go" msgstr "Vés-hi" +#: 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 "URL del teu web, blog del grup u tema" @@ -6047,10 +6125,6 @@ msgstr "Respostes" msgid "Favorites" msgstr "Preferits" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "Usuari" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Safata d'entrada" @@ -6077,7 +6151,7 @@ msgstr "Etiquetes en les notificacions de %s's" msgid "Unknown" msgstr "Acció desconeguda" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Subscripcions" @@ -6085,23 +6159,23 @@ msgstr "Subscripcions" msgid "All subscriptions" msgstr "Totes les subscripcions" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Subscriptors" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 msgid "All subscribers" msgstr "Tots els subscriptors" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 msgid "User ID" msgstr "ID de l'usuari" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "Membre des de" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "Tots els grups" @@ -6143,7 +6217,12 @@ msgstr "Repeteix l'avís" msgid "Repeat this notice" msgstr "Repeteix l'avís" -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, fuzzy, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "Bloca l'usuari del grup" + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "" @@ -6300,47 +6379,64 @@ msgstr "Missatge" msgid "Moderate" msgstr "Modera" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "Perfil de l'usuari" + +#: lib/userprofile.php:354 +#, fuzzy +msgctxt "role" +msgid "Administrator" +msgstr "Administradors" + +#: lib/userprofile.php:355 +#, fuzzy +msgctxt "role" +msgid "Moderator" +msgstr "Modera" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "fa pocs segons" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "fa un minut" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "fa %d minuts" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "fa una hora" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "fa %d hores" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "fa un dia" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "fa %d dies" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "fa un mes" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "fa %d mesos" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "fa un any" diff --git a/locale/cs/LC_MESSAGES/statusnet.po b/locale/cs/LC_MESSAGES/statusnet.po index 9137d3708..f4d284ee9 100644 --- a/locale/cs/LC_MESSAGES/statusnet.po +++ b/locale/cs/LC_MESSAGES/statusnet.po @@ -9,19 +9,20 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:02:27+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:56:05+0000\n" "Language-Team: Czech\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: cs\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n< =4) ? 1 : 2 ;\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 #, fuzzy msgid "Access" msgstr "Přijmout" @@ -124,7 +125,7 @@ msgstr "%s a přátelé" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -179,7 +180,7 @@ msgid "" msgstr "" #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 #, fuzzy msgid "You and friends" msgstr "%s a přátelé" @@ -207,11 +208,11 @@ msgstr "" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "Potvrzující kód nebyl nalezen" @@ -580,7 +581,7 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 #, fuzzy msgid "Account" msgstr "O nás" @@ -673,18 +674,6 @@ msgstr "%1 statusů na %2" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "Mikroblog od %s" -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "" - #: actions/apitimelinementions.php:117 #, fuzzy, php-format msgid "%1$s / Updates mentioning %2$s" @@ -695,12 +684,12 @@ msgstr "%1 statusů na %2" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "" @@ -954,7 +943,7 @@ msgid "Conversation" msgstr "Umístění" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Sdělení" @@ -976,7 +965,7 @@ msgstr "Neodeslal jste nám profil" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "" @@ -1175,8 +1164,9 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1301,7 +1291,7 @@ msgstr "Text je příliš dlouhý (maximální délka je 140 zanků)" msgid "Could not update group." msgstr "Nelze aktualizovat uživatele" -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 #, fuzzy msgid "Could not create aliases." msgstr "Nelze uložin informace o obrázku" @@ -1424,7 +1414,7 @@ msgid "Cannot normalize that email address" msgstr "" #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Není platnou mailovou adresou." @@ -1619,6 +1609,25 @@ msgstr "Žádné takové oznámení." msgid "Cannot read file." msgstr "Žádné takové oznámení." +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "Neplatná velikost" + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "Neodeslal jste nám profil" + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "Uživatel nemá profil." + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1770,12 +1779,18 @@ msgstr "" msgid "Make this user an admin" msgstr "" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "" + #: actions/grouprss.php:140 #, fuzzy, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Mikroblog od %s" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Skupiny" @@ -2357,8 +2372,8 @@ msgstr "Připojit" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "" @@ -2506,7 +2521,8 @@ msgstr "Nelze uložit nové heslo" msgid "Password saved." msgstr "Heslo uloženo" -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "" @@ -2632,7 +2648,7 @@ msgstr "" msgid "SSL" msgstr "" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 #, fuzzy msgid "Never" msgstr "Obnovit" @@ -2691,11 +2707,11 @@ msgstr "Není platnou mailovou adresou." msgid "Users self-tagged with %1$s - page %2$d" msgstr "Mikroblog od %s" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "Neplatný obsah sdělení" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" @@ -2774,7 +2790,7 @@ msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "Jazyk" @@ -2800,7 +2816,7 @@ msgstr "" msgid "Bio is too long (max %d chars)." msgstr "Text je příliš dlouhý (maximální délka je 140 zanků)" -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "" @@ -3107,7 +3123,7 @@ msgid "Same as password above. Required." msgstr "" #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "Email" @@ -3198,7 +3214,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "Adresa profilu na jiných kompatibilních mikroblozích." #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "Odebírat" @@ -3301,6 +3317,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Odpovědi na %s" +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "Neodeslal jste nám profil" + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "Uživatel nemá profil." + #: actions/rsd.php:146 actions/version.php:157 #, fuzzy msgid "StatusNet" @@ -3316,7 +3342,9 @@ msgstr "Neodeslal jste nám profil" msgid "User is already sandboxed." msgstr "Uživatel nemá profil." +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "" @@ -3340,7 +3368,7 @@ msgstr "" msgid "Turn on debugging output for sessions." msgstr "" -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 #, fuzzy msgid "Save site settings" @@ -3376,8 +3404,8 @@ msgstr "Umístění" msgid "Description" msgstr "Odběry" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "Statistiky" @@ -3510,47 +3538,47 @@ msgstr "" msgid "Group actions" msgstr "" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Feed sdělení pro %s" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Feed sdělení pro %s" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "Feed sdělení pro %s" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, fuzzy, php-format msgid "FOAF for %s group" msgstr "Feed sdělení pro %s" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 #, fuzzy msgid "Members" msgstr "Členem od" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 #, fuzzy msgid "Created" msgstr "Vytvořit" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3560,7 +3588,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:462 +#: actions/showgroup.php:463 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3569,7 +3597,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "" @@ -3681,149 +3709,137 @@ msgid "User is already silenced." msgstr "Uživatel nemá profil." #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +msgid "Basic settings for this StatusNet site" msgstr "" -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "" -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 #, fuzzy msgid "You must have a valid contact email address." msgstr "Není platnou mailovou adresou." -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "" #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "" - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "" - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "" - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "" -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "" -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 #, fuzzy msgid "Site name" msgstr "Nové sdělení" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 #, fuzzy msgid "Contact email address for your site" msgstr "Žádný registrovaný email pro tohoto uživatele." -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 #, fuzzy msgid "Local" msgstr "Umístění" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "" -#: actions/siteadminpanel.php:281 -msgid "Default site language" -msgstr "" - -#: actions/siteadminpanel.php:289 -msgid "Snapshots" +#: actions/siteadminpanel.php:262 +msgid "Default language" msgstr "" -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" msgstr "" -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" +#: actions/siteadminpanel.php:271 +msgid "Limits" msgstr "" -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" +#: actions/siteadminpanel.php:274 +msgid "Text limit" msgstr "" -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" +#: actions/siteadminpanel.php:274 +msgid "Maximum number of characters for notices." msgstr "" -#: actions/siteadminpanel.php:301 -msgid "Frequency" +#: actions/siteadminpanel.php:278 +msgid "Dupe limit" msgstr "" -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" +#: actions/siteadminpanel.php:278 +msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "" +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "Nové sdělení" -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" +#: actions/sitenoticeadminpanel.php:67 +msgid "Edit site-wide message" msgstr "" -#: actions/siteadminpanel.php:315 -msgid "Limits" -msgstr "" +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +msgid "Unable to save site notice." +msgstr "Problém při ukládání sdělení" -#: actions/siteadminpanel.php:318 -msgid "Text limit" +#: actions/sitenoticeadminpanel.php:113 +msgid "Max length for the site-wide notice is 255 chars" msgstr "" -#: actions/siteadminpanel.php:318 -msgid "Maximum number of characters for notices." -msgstr "" +#: actions/sitenoticeadminpanel.php:176 +#, fuzzy +msgid "Site notice text" +msgstr "Nové sdělení" -#: actions/siteadminpanel.php:322 -msgid "Dupe limit" +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" msgstr "" -#: actions/siteadminpanel.php:322 -msgid "How long users must wait (in seconds) to post the same thing again." -msgstr "" +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "Nové sdělení" #: actions/smssettings.php:58 #, fuzzy @@ -3921,6 +3937,66 @@ msgstr "" msgid "No code entered" msgstr "" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +msgid "Manage snapshot configuration" +msgstr "Odběry" + +#: 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 +#, fuzzy +msgid "Save snapshot settings" +msgstr "Nastavení" + #: actions/subedit.php:70 #, fuzzy msgid "You are not subscribed to that profile." @@ -4129,7 +4205,7 @@ msgstr "Nebylo vráceno žádné URL profilu od servu." msgid "Unsubscribed" msgstr "Odhlásit" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4336,16 +4412,22 @@ msgstr "Všechny odběry" msgid "Search for more groups" msgstr "" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, fuzzy, php-format msgid "%s is not a member of any group." msgstr "Neodeslal jste nám profil" -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "" + #: actions/version.php:73 #, fuzzy, php-format msgid "StatusNet %s" @@ -4389,7 +4471,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 #, fuzzy msgid "Version" msgstr "Osobní" @@ -4457,41 +4539,41 @@ msgstr "" msgid "DB error inserting hashtag: %s" msgstr "" -#: classes/Notice.php:239 +#: classes/Notice.php:241 #, fuzzy msgid "Problem saving notice. Too long." msgstr "Problém při ukládání sdělení" -#: classes/Notice.php:243 +#: classes/Notice.php:245 #, fuzzy msgid "Problem saving notice. Unknown user." msgstr "Problém při ukládání sdělení" -#: classes/Notice.php:248 +#: classes/Notice.php:250 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:254 +#: classes/Notice.php:256 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:260 +#: classes/Notice.php:262 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "Problém při ukládání sdělení" -#: classes/Notice.php:911 +#: classes/Notice.php:927 #, fuzzy msgid "Problem saving group inbox." msgstr "Problém při ukládání sdělení" -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4519,7 +4601,12 @@ msgstr "Nepřihlášen!" msgid "Couldn't delete self-subscription." msgstr "Nelze smazat odebírání" -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "Nelze smazat odebírání" + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "Nelze smazat odebírání" @@ -4528,22 +4615,22 @@ msgstr "Nelze smazat odebírání" msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:462 +#: classes/User_group.php:477 #, fuzzy msgid "Could not create group." msgstr "Nelze uložin informace o obrázku" -#: classes/User_group.php:471 +#: classes/User_group.php:486 #, fuzzy msgid "Could not set group URI." msgstr "Nelze vytvořit odebírat" -#: classes/User_group.php:492 +#: classes/User_group.php:507 #, fuzzy msgid "Could not set group membership." msgstr "Nelze vytvořit odebírat" -#: classes/User_group.php:506 +#: classes/User_group.php:521 #, fuzzy msgid "Could not save local group info." msgstr "Nelze vytvořit odebírat" @@ -4587,192 +4674,186 @@ msgstr "%1 statusů na %2" msgid "Untitled page" msgstr "" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 +#: lib/action.php:430 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:442 +#: lib/action.php:433 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "Osobní" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 +#: lib/action.php:435 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Změnit heslo" -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "O nás" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 +#: lib/action.php:440 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Nelze přesměrovat na server: %s" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "Připojit" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 +#: lib/action.php:446 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Odběry" -#: lib/action.php:460 +#: lib/action.php:449 msgctxt "MENU" msgid "Admin" msgstr "" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 +#: lib/action.php:453 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "" -#: lib/action.php:467 +#: lib/action.php:456 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "Neplatná velikost" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 +#: lib/action.php:462 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "" -#: lib/action.php:476 +#: lib/action.php:465 #, fuzzy msgctxt "MENU" msgid "Logout" msgstr "Odhlásit" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 +#: lib/action.php:470 #, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "Vytvořit nový účet" -#: lib/action.php:484 +#: lib/action.php:473 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "Registrovat" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 +#: lib/action.php:476 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "" -#: lib/action.php:490 +#: lib/action.php:479 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "Přihlásit" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 +#: lib/action.php:482 #, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "Pomoci mi!" -#: lib/action.php:496 +#: lib/action.php:485 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "Nápověda" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 +#: lib/action.php:488 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "" -#: lib/action.php:502 +#: lib/action.php:491 #, fuzzy msgctxt "MENU" msgid "Search" msgstr "Hledat" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 #, fuzzy msgid "Site notice" msgstr "Nové sdělení" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "" -#: lib/action.php:656 +#: lib/action.php:645 #, fuzzy msgid "Page notice" msgstr "Nové sdělení" -#: lib/action.php:758 +#: lib/action.php:747 #, fuzzy msgid "Secondary site navigation" msgstr "Odběry" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "Nápověda" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "O nás" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "FAQ" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "Soukromí" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "Zdroj" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "Kontakt" -#: lib/action.php:782 +#: lib/action.php:771 msgid "Badge" msgstr "" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4781,12 +4862,12 @@ msgstr "" "**%%site.name%%** je služba microblogů, kterou pro vás poskytuje [%%site." "broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** je služba mikroblogů." -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4797,56 +4878,56 @@ msgstr "" "dostupná pod [GNU Affero General Public License](http://www.fsf.org/" "licensing/licenses/agpl-3.0.html)." -#: lib/action.php:832 +#: lib/action.php:821 #, fuzzy msgid "Site content license" msgstr "Nové sdělení" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "" -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "" -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "" -#: lib/action.php:1172 +#: lib/action.php:1161 #, fuzzy msgid "After" msgstr "« Novější" -#: lib/action.php:1180 +#: lib/action.php:1169 #, fuzzy msgid "Before" msgstr "Starší »" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "" @@ -4861,95 +4942,86 @@ msgid "Changes to that panel are not allowed." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 msgid "showForm() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 msgid "saveSettings() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 msgid "Unable to delete design setting." msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 #, fuzzy msgid "Basic site configuration" msgstr "Potvrzení emailové adresy" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 +#: lib/adminpanelaction.php:350 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "Nové sdělení" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 #, fuzzy msgid "Design configuration" msgstr "Potvrzení emailové adresy" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 +#: lib/adminpanelaction.php:358 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "Vzhled" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 #, fuzzy msgid "User configuration" msgstr "Potvrzení emailové adresy" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 #, fuzzy msgid "Access configuration" msgstr "Potvrzení emailové adresy" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "Přijmout" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 #, fuzzy msgid "Paths configuration" msgstr "Potvrzení emailové adresy" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -msgctxt "MENU" -msgid "Paths" -msgstr "" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 #, fuzzy msgid "Sessions configuration" msgstr "Potvrzení emailové adresy" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "Osobní" +msgid "Edit site notice" +msgstr "Nové sdělení" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "Potvrzení emailové adresy" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5456,6 +5528,11 @@ msgstr "" msgid "Go" msgstr "" +#: lib/grantroleform.php:91 +#, php-format +msgid "Grant this user the \"%s\" role" +msgstr "" + #: lib/groupeditform.php:163 #, fuzzy msgid "URL of the homepage or blog of the group or topic" @@ -6005,10 +6082,6 @@ msgstr "Odpovědi" msgid "Favorites" msgstr "Oblíbené" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "" @@ -6034,7 +6107,7 @@ msgstr "" msgid "Unknown" msgstr "" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Odběry" @@ -6042,23 +6115,23 @@ msgstr "Odběry" msgid "All subscriptions" msgstr "Všechny odběry" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Odběratelé" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 msgid "All subscribers" msgstr "Všichni odběratelé" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 msgid "User ID" msgstr "" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "Členem od" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "" @@ -6102,7 +6175,12 @@ msgstr "Odstranit toto oznámení" msgid "Repeat this notice" msgstr "Odstranit toto oznámení" -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, fuzzy, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "Žádný takový uživatel." + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "" @@ -6264,47 +6342,62 @@ msgstr "Zpráva" msgid "Moderate" msgstr "" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "Uživatel nemá profil." + +#: lib/userprofile.php:354 +msgctxt "role" +msgid "Administrator" +msgstr "" + +#: lib/userprofile.php:355 +msgctxt "role" +msgid "Moderator" +msgstr "" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "před pár sekundami" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "asi před minutou" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "asi před %d minutami" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "asi před hodinou" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "asi před %d hodinami" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "asi přede dnem" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "před %d dny" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "asi před měsícem" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "asi před %d mesíci" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "asi před rokem" diff --git a/locale/de/LC_MESSAGES/statusnet.po b/locale/de/LC_MESSAGES/statusnet.po index a00ec2611..f71b407d5 100644 --- a/locale/de/LC_MESSAGES/statusnet.po +++ b/locale/de/LC_MESSAGES/statusnet.po @@ -14,19 +14,20 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:02:31+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:56:08+0000\n" "Language-Team: German\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 msgid "Access" msgstr "Zugang" @@ -124,7 +125,7 @@ msgstr "%1$s und Freunde, Seite% 2$d" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -189,7 +190,7 @@ msgstr "" "erregen?" #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 msgid "You and friends" msgstr "Du und Freunde" @@ -216,11 +217,11 @@ msgstr "Aktualisierungen von %1$s und Freunden auf %2$s!" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 msgid "API method not found." msgstr "API-Methode nicht gefunden." @@ -581,7 +582,7 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 msgid "Account" msgstr "Konto" @@ -672,18 +673,6 @@ msgstr "%s / Favoriten von %s" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%s Aktualisierung in den Favoriten von %s / %s." -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "%s Zeitleiste" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "Aktualisierungen von %1$s auf %2$s!" - #: actions/apitimelinementions.php:117 #, php-format msgid "%1$s / Updates mentioning %2$s" @@ -694,12 +683,12 @@ msgstr "%1$s / Aktualisierungen erwähnen %2$s" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "Nachrichten von %1$, die auf Nachrichten von %2$ / %3$ antworten." -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "%s öffentliche Zeitleiste" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s Nachrichten von allen!" @@ -945,7 +934,7 @@ msgid "Conversation" msgstr "Unterhaltung" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Nachrichten" @@ -967,7 +956,7 @@ msgstr "Du bist kein Mitglied dieser Gruppe." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "Es gab ein Problem mit deinem Sessiontoken." @@ -1161,8 +1150,9 @@ msgstr "Standard wiederherstellen" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1281,7 +1271,7 @@ msgstr "Die Beschreibung ist zu lang (max. %d Zeichen)." msgid "Could not update group." msgstr "Konnte Gruppe nicht aktualisieren." -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 msgid "Could not create aliases." msgstr "Konnte keinen Favoriten erstellen." @@ -1407,7 +1397,7 @@ msgid "Cannot normalize that email address" msgstr "Konnte diese E-Mail-Adresse nicht normalisieren" #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Ungültige E-Mail-Adresse." @@ -1594,6 +1584,25 @@ msgstr "Datei nicht gefunden." msgid "Cannot read file." msgstr "Datei konnte nicht gelesen werden." +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "Ungültige Größe." + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "Du kannst diesem Benutzer keine Nachricht schicken." + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "Nutzer ist bereits ruhig gestellt." + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1738,12 +1747,18 @@ msgstr "Zum Admin ernennen" msgid "Make this user an admin" msgstr "Diesen Benutzer zu einem Admin ernennen" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "%s Zeitleiste" + #: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Aktualisierungen von %1$s auf %2$s!" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Gruppen" @@ -2369,8 +2384,8 @@ msgstr "Content-Typ " msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "Kein unterstütztes Datenformat." @@ -2514,7 +2529,8 @@ msgstr "Konnte neues Passwort nicht speichern" msgid "Password saved." msgstr "Passwort gespeichert." -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "" @@ -2634,7 +2650,7 @@ msgstr "Hintergrund Verzeichnis" msgid "SSL" msgstr "SSL" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 msgid "Never" msgstr "Nie" @@ -2690,11 +2706,11 @@ msgstr "Ungültiger Personen-Tag: %s" msgid "Users self-tagged with %1$s - page %2$d" msgstr "Benutzer die sich selbst mit %1$s getagged haben - Seite %2$d" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "Ungültiger Nachrichteninhalt" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" @@ -2777,7 +2793,7 @@ msgstr "" "Tags über dich selbst (Buchstaben, Zahlen, -, ., und _) durch Kommas oder " "Leerzeichen getrennt" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "Sprache" @@ -2805,7 +2821,7 @@ msgstr "" msgid "Bio is too long (max %d chars)." msgstr "Die Biografie ist zu lang (max. %d Zeichen)" -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Keine Zeitzone ausgewählt." @@ -3115,7 +3131,7 @@ msgid "Same as password above. Required." msgstr "Gleiches Passwort wie zuvor. Pflichteingabe." #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "E-Mail" @@ -3224,7 +3240,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "Profil-URL bei einem anderen kompatiblen Microbloggingdienst" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "Abonnieren" @@ -3329,6 +3345,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Antworten an %1$s auf %2$s!" +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "Du kannst Nutzer dieser Seite nicht ruhig stellen." + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "Benutzer ohne passendes Profil" + #: actions/rsd.php:146 actions/version.php:157 msgid "StatusNet" msgstr "StatusNet" @@ -3343,7 +3369,9 @@ msgstr "Du kannst diesem Benutzer keine Nachricht schicken." msgid "User is already sandboxed." msgstr "Dieser Benutzer hat dich blockiert." +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "" @@ -3368,7 +3396,7 @@ msgstr "" msgid "Turn on debugging output for sessions." msgstr "" -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Site-Einstellungen speichern" @@ -3402,8 +3430,8 @@ msgstr "Seitenerstellung" msgid "Description" msgstr "Beschreibung" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "Statistiken" @@ -3537,45 +3565,45 @@ msgstr "" msgid "Group actions" msgstr "Gruppenaktionen" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Nachrichtenfeed der Gruppe %s (RSS 1.0)" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Nachrichtenfeed der Gruppe %s (RSS 2.0)" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Nachrichtenfeed der Gruppe %s (Atom)" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, php-format msgid "FOAF for %s group" msgstr "Postausgang von %s" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 msgid "Members" msgstr "Mitglieder" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Kein)" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "Alle Mitglieder" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 msgid "Created" msgstr "Erstellt" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3585,7 +3613,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:462 +#: actions/showgroup.php:463 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3598,7 +3626,7 @@ msgstr "" "Freien Software [StatusNet](http://status.net/). Seine Mitglieder erstellen " "kurze Nachrichten über Ihr Leben und Interessen. " -#: actions/showgroup.php:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "Administratoren" @@ -3716,147 +3744,137 @@ msgid "User is already silenced." msgstr "Nutzer ist bereits ruhig gestellt." #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +#, fuzzy +msgid "Basic settings for this StatusNet site" msgstr "Grundeinstellungen für diese StatusNet Seite." -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "Der Seiten Name darf nicht leer sein." -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 msgid "You must have a valid contact email address." msgstr "Du musst eine gültige E-Mail-Adresse haben." -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "Unbekannte Sprache „%s“" #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "" - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "" - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "" - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "Minimale Textlänge ist 140 Zeichen." -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "" -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 msgid "Site name" msgstr "Seitenname" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "Der Name deiner Seite, sowas wie \"DeinUnternehmen Mircoblog\"" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 msgid "Contact email address for your site" msgstr "Kontakt-E-Mail-Adresse für Deine Site." -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 #, fuzzy msgid "Local" msgstr "Lokale Ansichten" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "" -#: actions/siteadminpanel.php:281 +#: actions/siteadminpanel.php:262 #, fuzzy -msgid "Default site language" +msgid "Default language" msgstr "Bevorzugte Sprache" -#: actions/siteadminpanel.php:289 -msgid "Snapshots" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" msgstr "" -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" +#: actions/siteadminpanel.php:271 +msgid "Limits" msgstr "" -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" +#: actions/siteadminpanel.php:274 +msgid "Text limit" msgstr "" -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" +#: actions/siteadminpanel.php:274 +msgid "Maximum number of characters for notices." msgstr "" -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" +#: actions/siteadminpanel.php:278 +msgid "Dupe limit" msgstr "" -#: actions/siteadminpanel.php:301 -msgid "Frequency" -msgstr "Frequenz" - -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" +#: actions/siteadminpanel.php:278 +msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "" +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "Seitennachricht" -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" -msgstr "" +#: actions/sitenoticeadminpanel.php:67 +#, fuzzy +msgid "Edit site-wide message" +msgstr "Neue Nachricht" -#: actions/siteadminpanel.php:315 -msgid "Limits" -msgstr "" +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +msgid "Unable to save site notice." +msgstr "Konnte Twitter-Einstellungen nicht speichern." -#: actions/siteadminpanel.php:318 -msgid "Text limit" +#: actions/sitenoticeadminpanel.php:113 +msgid "Max length for the site-wide notice is 255 chars" msgstr "" -#: actions/siteadminpanel.php:318 -msgid "Maximum number of characters for notices." -msgstr "" +#: actions/sitenoticeadminpanel.php:176 +#, fuzzy +msgid "Site notice text" +msgstr "Seitennachricht" -#: actions/siteadminpanel.php:322 -msgid "Dupe limit" +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" msgstr "" -#: actions/siteadminpanel.php:322 -msgid "How long users must wait (in seconds) to post the same thing again." -msgstr "" +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "Seitennachricht" #: actions/smssettings.php:58 #, fuzzy @@ -3961,6 +3979,66 @@ msgstr "" msgid "No code entered" msgstr "Kein Code eingegeben" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +msgid "Manage snapshot configuration" +msgstr "Hauptnavigation" + +#: 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 "Frequenz" + +#: 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 +#, fuzzy +msgid "Save snapshot settings" +msgstr "Site-Einstellungen speichern" + #: actions/subedit.php:70 msgid "You are not subscribed to that profile." msgstr "Du hast dieses Profil nicht abonniert." @@ -4168,7 +4246,7 @@ msgstr "Keine Profil-ID in der Anfrage." msgid "Unsubscribed" msgstr "Abbestellt" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, fuzzy, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4373,16 +4451,22 @@ msgstr "%s Gruppen-Mitglieder, Seite %d" msgid "Search for more groups" msgstr "Suche nach weiteren Gruppen" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, php-format msgid "%s is not a member of any group." msgstr "%s ist in keiner Gruppe Mitglied." -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "Aktualisierungen von %1$s auf %2$s!" + #: actions/version.php:73 #, fuzzy, php-format msgid "StatusNet %s" @@ -4426,7 +4510,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 #, fuzzy msgid "Version" msgstr "Eigene" @@ -4496,22 +4580,22 @@ msgstr "Konnte Nachricht nicht mit neuer URI versehen." msgid "DB error inserting hashtag: %s" msgstr "Datenbankfehler beim Einfügen des Hashtags: %s" -#: classes/Notice.php:239 +#: classes/Notice.php:241 msgid "Problem saving notice. Too long." msgstr "Problem bei Speichern der Nachricht. Sie ist zu lang." -#: classes/Notice.php:243 +#: classes/Notice.php:245 msgid "Problem saving notice. Unknown user." msgstr "Problem bei Speichern der Nachricht. Unbekannter Benutzer." -#: classes/Notice.php:248 +#: classes/Notice.php:250 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:254 +#: classes/Notice.php:256 #, fuzzy msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " @@ -4520,21 +4604,21 @@ msgstr "" "Zu schnell zu viele Nachrichten; atme kurz durch und schicke sie erneut in " "ein paar Minuten ab." -#: classes/Notice.php:260 +#: classes/Notice.php:262 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:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "Problem bei Speichern der Nachricht." -#: classes/Notice.php:911 +#: classes/Notice.php:927 #, fuzzy msgid "Problem saving group inbox." msgstr "Problem bei Speichern der Nachricht." -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4561,7 +4645,12 @@ msgstr "Nicht abonniert!" msgid "Couldn't delete self-subscription." msgstr "Konnte Abonnement nicht löschen." -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "Konnte Abonnement nicht löschen." + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "Konnte Abonnement nicht löschen." @@ -4570,20 +4659,20 @@ msgstr "Konnte Abonnement nicht löschen." msgid "Welcome to %1$s, @%2$s!" msgstr "Herzlich willkommen bei %1$s, @%2$s!" -#: classes/User_group.php:462 +#: classes/User_group.php:477 msgid "Could not create group." msgstr "Konnte Gruppe nicht erstellen." -#: classes/User_group.php:471 +#: classes/User_group.php:486 #, fuzzy msgid "Could not set group URI." msgstr "Konnte Gruppenmitgliedschaft nicht setzen." -#: classes/User_group.php:492 +#: classes/User_group.php:507 msgid "Could not set group membership." msgstr "Konnte Gruppenmitgliedschaft nicht setzen." -#: classes/User_group.php:506 +#: classes/User_group.php:521 #, fuzzy msgid "Could not save local group info." msgstr "Konnte Abonnement nicht erstellen." @@ -4626,195 +4715,189 @@ msgstr "%1$s (%2$s)" msgid "Untitled page" msgstr "Seite ohne Titel" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "Hauptnavigation" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 +#: lib/action.php:430 #, fuzzy msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Persönliches Profil und Freundes-Zeitleiste" -#: lib/action.php:442 +#: lib/action.php:433 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "Eigene" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 +#: lib/action.php:435 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Ändere deine E-Mail, dein Avatar, Passwort, Profil" -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "Konto" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 +#: lib/action.php:440 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Konnte nicht zum Server umleiten: %s" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "Verbinden" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 +#: lib/action.php:446 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Hauptnavigation" -#: lib/action.php:460 +#: lib/action.php:449 #, fuzzy msgctxt "MENU" msgid "Admin" msgstr "Admin" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 +#: lib/action.php:453 #, fuzzy, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Lade Freunde und Kollegen ein dir auf %s zu folgen" -#: lib/action.php:467 +#: lib/action.php:456 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "Einladen" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 +#: lib/action.php:462 #, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Von der Seite abmelden" -#: lib/action.php:476 +#: lib/action.php:465 #, fuzzy msgctxt "MENU" msgid "Logout" msgstr "Abmelden" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 +#: lib/action.php:470 #, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "Neues Konto erstellen" -#: lib/action.php:484 +#: lib/action.php:473 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "Registrieren" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 +#: lib/action.php:476 #, fuzzy msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Auf der Seite anmelden" -#: lib/action.php:490 +#: lib/action.php:479 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "Anmelden" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 +#: lib/action.php:482 #, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "Hilf mir!" -#: lib/action.php:496 +#: lib/action.php:485 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "Hilfe" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 +#: lib/action.php:488 #, fuzzy msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Suche nach Leuten oder Text" -#: lib/action.php:502 +#: lib/action.php:491 #, fuzzy msgctxt "MENU" msgid "Search" msgstr "Suchen" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 msgid "Site notice" msgstr "Seitennachricht" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "Lokale Ansichten" -#: lib/action.php:656 +#: lib/action.php:645 msgid "Page notice" msgstr "Neue Nachricht" -#: lib/action.php:758 +#: lib/action.php:747 msgid "Secondary site navigation" msgstr "Unternavigation" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "Hilfe" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "Über" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "FAQ" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "AGB" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "Privatsphäre" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "Quellcode" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "Kontakt" -#: lib/action.php:782 +#: lib/action.php:771 #, fuzzy msgid "Badge" msgstr "Stups" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "StatusNet-Software-Lizenz" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4823,12 +4906,12 @@ msgstr "" "**%%site.name%%** ist ein Microbloggingdienst von [%%site.broughtby%%](%%" "site.broughtbyurl%%)." -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** ist ein Microbloggingdienst." -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4839,54 +4922,54 @@ msgstr "" "(Version %s) betrieben, die unter der [GNU Affero General Public License]" "(http://www.fsf.org/licensing/licenses/agpl-3.0.html) erhältlich ist." -#: lib/action.php:832 +#: lib/action.php:821 msgid "Site content license" msgstr "StatusNet-Software-Lizenz" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:858 +#: lib/action.php:847 #, fuzzy msgid "All " msgstr "Alle " -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "Lizenz." -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "Seitenerstellung" -#: lib/action.php:1172 +#: lib/action.php:1161 msgid "After" msgstr "Später" -#: lib/action.php:1180 +#: lib/action.php:1169 msgid "Before" msgstr "Vorher" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "" @@ -4903,97 +4986,86 @@ msgid "Changes to that panel are not allowed." msgstr "Registrierung nicht gestattet" #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 msgid "showForm() not implemented." msgstr "showForm() noch nicht implementiert." #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 msgid "saveSettings() not implemented." msgstr "saveSettings() noch nicht implementiert." #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 msgid "Unable to delete design setting." msgstr "Konnte die Design Einstellungen nicht löschen." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 #, fuzzy msgid "Basic site configuration" msgstr "Bestätigung der E-Mail-Adresse" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 +#: lib/adminpanelaction.php:350 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "Seite" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 #, fuzzy msgid "Design configuration" msgstr "SMS-Konfiguration" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 +#: lib/adminpanelaction.php:358 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "Eigene" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 #, fuzzy msgid "User configuration" msgstr "SMS-Konfiguration" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -#, fuzzy -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "Benutzer" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 #, fuzzy msgid "Access configuration" msgstr "SMS-Konfiguration" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "Zugang" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 #, fuzzy msgid "Paths configuration" msgstr "SMS-Konfiguration" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -#, fuzzy -msgctxt "MENU" -msgid "Paths" -msgstr "Pfad" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 #, fuzzy msgid "Sessions configuration" msgstr "SMS-Konfiguration" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "Eigene" +msgid "Edit site notice" +msgstr "Seitennachricht" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "SMS-Konfiguration" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5491,6 +5563,11 @@ msgstr "Wähle einen Tag, um die Liste einzuschränken" msgid "Go" msgstr "Los geht's" +#: lib/grantroleform.php:91 +#, php-format +msgid "Grant this user the \"%s\" role" +msgstr "" + #: lib/groupeditform.php:163 #, fuzzy msgid "URL of the homepage or blog of the group or topic" @@ -6086,10 +6163,6 @@ msgstr "Antworten" msgid "Favorites" msgstr "Favoriten" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "Benutzer" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Posteingang" @@ -6116,7 +6189,7 @@ msgstr "Tags in %ss Nachrichten" msgid "Unknown" msgstr "Unbekannter Befehl" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Abonnements" @@ -6124,23 +6197,23 @@ msgstr "Abonnements" msgid "All subscriptions" msgstr "Alle Abonnements" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Abonnenten" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 msgid "All subscribers" msgstr "Alle Abonnenten" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 msgid "User ID" msgstr "Nutzer ID" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "Mitglied seit" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "Alle Gruppen" @@ -6181,7 +6254,12 @@ msgstr "Diese Nachricht wiederholen?" msgid "Repeat this notice" msgstr "Diese Nachricht wiederholen" -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, fuzzy, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "Diesen Nutzer von der Gruppe sperren" + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "" @@ -6336,47 +6414,64 @@ msgstr "Nachricht" msgid "Moderate" msgstr "Moderieren" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "Benutzerprofil" + +#: lib/userprofile.php:354 +#, fuzzy +msgctxt "role" +msgid "Administrator" +msgstr "Administratoren" + +#: lib/userprofile.php:355 +#, fuzzy +msgctxt "role" +msgid "Moderator" +msgstr "Moderieren" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "vor wenigen Sekunden" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "vor einer Minute" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "vor %d Minuten" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "vor einer Stunde" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "vor %d Stunden" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "vor einem Tag" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "vor %d Tagen" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "vor einem Monat" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "vor %d Monaten" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "vor einem Jahr" diff --git a/locale/el/LC_MESSAGES/statusnet.po b/locale/el/LC_MESSAGES/statusnet.po index ed9ab7803..6b5c3973f 100644 --- a/locale/el/LC_MESSAGES/statusnet.po +++ b/locale/el/LC_MESSAGES/statusnet.po @@ -9,19 +9,20 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:02:33+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:56:10+0000\n" "Language-Team: Greek\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: el\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 msgid "Access" msgstr "Πρόσβαση" @@ -120,7 +121,7 @@ msgstr "%s και οι φίλοι του/της" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -175,7 +176,7 @@ msgid "" msgstr "" #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 msgid "You and friends" msgstr "Εσείς και οι φίλοι σας" @@ -202,11 +203,11 @@ msgstr "" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "Η μέθοδος του ΑΡΙ δε βρέθηκε!" @@ -570,7 +571,7 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 msgid "Account" msgstr "Λογαριασμός" @@ -659,18 +660,6 @@ msgstr "" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "" -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "χρονοδιάγραμμα του χρήστη %s" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "" - #: actions/apitimelinementions.php:117 #, php-format msgid "%1$s / Updates mentioning %2$s" @@ -681,12 +670,12 @@ msgstr "" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "" @@ -934,7 +923,7 @@ msgid "Conversation" msgstr "Συζήτηση" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "" @@ -956,7 +945,7 @@ msgstr "Ομάδες με τα περισσότερα μέλη" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "" @@ -1152,8 +1141,9 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1278,7 +1268,7 @@ msgstr "Το βιογραφικό είναι πολύ μεγάλο (μέγιστ msgid "Could not update group." msgstr "Αδύνατη η αποθήκευση του προφίλ." -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 #, fuzzy msgid "Could not create aliases." msgstr "Αδύνατη η αποθήκευση του προφίλ." @@ -1404,7 +1394,7 @@ msgid "Cannot normalize that email address" msgstr "Αδυναμία κανονικοποίησης αυτής της email διεύθυνσης" #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "" @@ -1596,6 +1586,24 @@ msgstr "Αδύνατη η αποθήκευση του προφίλ." msgid "Cannot read file." msgstr "Αδύνατη η αποθήκευση του προφίλ." +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "Μήνυμα" + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "Ομάδες με τα περισσότερα μέλη" + +#: actions/grantrole.php:82 +msgid "User already has this role." +msgstr "" + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1740,12 +1748,18 @@ msgstr "Διαχειριστής" msgid "Make this user an admin" msgstr "" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "χρονοδιάγραμμα του χρήστη %s" + #: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "" @@ -2314,8 +2328,8 @@ msgstr "Σύνδεση" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "" @@ -2461,7 +2475,8 @@ msgstr "Αδύνατη η αποθήκευση του νέου κωδικού" msgid "Password saved." msgstr "Ο κωδικός αποθηκεύτηκε." -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "" @@ -2586,7 +2601,7 @@ msgstr "" msgid "SSL" msgstr "" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 #, fuzzy msgid "Never" msgstr "Αποχώρηση" @@ -2641,11 +2656,11 @@ msgstr "" msgid "Users self-tagged with %1$s - page %2$d" msgstr "" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" @@ -2722,7 +2737,7 @@ msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "" @@ -2751,7 +2766,7 @@ msgstr "" msgid "Bio is too long (max %d chars)." msgstr "Το βιογραφικό είναι πολύ μεγάλο (μέγιστο 140 χαρακτ.)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "" @@ -3054,7 +3069,7 @@ msgid "Same as password above. Required." msgstr "" #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "Email" @@ -3159,7 +3174,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "" @@ -3260,6 +3275,15 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "" +#: actions/revokerole.php:75 +#, fuzzy +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:157 #, fuzzy msgid "StatusNet" @@ -3273,7 +3297,9 @@ msgstr "" msgid "User is already sandboxed." msgstr "" +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "" @@ -3297,7 +3323,7 @@ msgstr "" msgid "Turn on debugging output for sessions." msgstr "" -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 #, fuzzy msgid "Save site settings" @@ -3331,8 +3357,8 @@ msgstr "Προσκλήσεις" msgid "Description" msgstr "Περιγραφή" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "" @@ -3466,45 +3492,45 @@ msgstr "" msgid "Group actions" msgstr "" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, fuzzy, php-format msgid "FOAF for %s group" msgstr "Αδύνατη η αποθήκευση του προφίλ." -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 msgid "Members" msgstr "Μέλη" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 msgid "Created" msgstr "Δημιουργημένος" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3514,7 +3540,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:462 +#: actions/showgroup.php:463 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3523,7 +3549,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "Διαχειριστές" @@ -3634,147 +3660,134 @@ msgid "User is already silenced." msgstr "" #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +msgid "Basic settings for this StatusNet site" msgstr "" -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "" -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 #, fuzzy msgid "You must have a valid contact email address." msgstr "Αδυναμία κανονικοποίησης αυτής της email διεύθυνσης" -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "" #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "" - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "" - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "" - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "" -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "" -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 msgid "Site name" msgstr "" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 #, fuzzy msgid "Contact email address for your site" msgstr "Η διεύθυνση του εισερχόμενου email αφαιρέθηκε." -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 msgid "Local" msgstr "Τοπικός" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "" -#: actions/siteadminpanel.php:281 -msgid "Default site language" +#: actions/siteadminpanel.php:262 +msgid "Default language" msgstr "" -#: actions/siteadminpanel.php:289 -msgid "Snapshots" -msgstr "" - -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" msgstr "" -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" +#: actions/siteadminpanel.php:271 +msgid "Limits" msgstr "" -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" +#: actions/siteadminpanel.php:274 +msgid "Text limit" msgstr "" -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" +#: actions/siteadminpanel.php:274 +msgid "Maximum number of characters for notices." msgstr "" -#: actions/siteadminpanel.php:301 -msgid "Frequency" +#: actions/siteadminpanel.php:278 +msgid "Dupe limit" msgstr "" -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" +#: actions/siteadminpanel.php:278 +msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "" +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "Διαγραφή μηνύματος" -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" +#: actions/sitenoticeadminpanel.php:67 +msgid "Edit site-wide message" msgstr "" -#: actions/siteadminpanel.php:315 -msgid "Limits" +#: actions/sitenoticeadminpanel.php:103 +msgid "Unable to save site notice." msgstr "" -#: actions/siteadminpanel.php:318 -msgid "Text limit" +#: actions/sitenoticeadminpanel.php:113 +msgid "Max length for the site-wide notice is 255 chars" msgstr "" -#: actions/siteadminpanel.php:318 -msgid "Maximum number of characters for notices." -msgstr "" +#: actions/sitenoticeadminpanel.php:176 +#, fuzzy +msgid "Site notice text" +msgstr "Διαγραφή μηνύματος" -#: actions/siteadminpanel.php:322 -msgid "Dupe limit" +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" msgstr "" -#: actions/siteadminpanel.php:322 -msgid "How long users must wait (in seconds) to post the same thing again." -msgstr "" +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "Ρυθμίσεις OpenID" #: actions/smssettings.php:58 #, fuzzy @@ -3874,6 +3887,66 @@ msgstr "" msgid "No code entered" msgstr "" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +msgid "Manage snapshot configuration" +msgstr "Επιβεβαίωση διεύθυνσης email" + +#: 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 +#, fuzzy +msgid "Save snapshot settings" +msgstr "Ρυθμίσεις OpenID" + #: actions/subedit.php:70 msgid "You are not subscribed to that profile." msgstr "" @@ -4071,7 +4144,7 @@ msgstr "" msgid "Unsubscribed" msgstr "" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4266,16 +4339,22 @@ msgstr "Αδύνατη η αποθήκευση των νέων πληροφορ msgid "Search for more groups" msgstr "" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, php-format msgid "%s is not a member of any group." msgstr "" -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "" + #: actions/version.php:73 #, php-format msgid "StatusNet %s" @@ -4319,7 +4398,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 #, fuzzy msgid "Version" msgstr "Προσωπικά" @@ -4387,38 +4466,38 @@ msgstr "" msgid "DB error inserting hashtag: %s" msgstr "Σφάλμα στη βάση δεδομένων κατά την εισαγωγή hashtag: %s" -#: classes/Notice.php:239 +#: classes/Notice.php:241 msgid "Problem saving notice. Too long." msgstr "" -#: classes/Notice.php:243 +#: classes/Notice.php:245 msgid "Problem saving notice. Unknown user." msgstr "" -#: classes/Notice.php:248 +#: classes/Notice.php:250 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:254 +#: classes/Notice.php:256 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:260 +#: classes/Notice.php:262 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "" -#: classes/Notice.php:911 +#: classes/Notice.php:927 msgid "Problem saving group inbox." msgstr "" -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4445,7 +4524,12 @@ msgstr "Απέτυχε η συνδρομή." msgid "Couldn't delete self-subscription." msgstr "Απέτυχε η διαγραφή συνδρομής." -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "Απέτυχε η διαγραφή συνδρομής." + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "Απέτυχε η διαγραφή συνδρομής." @@ -4454,21 +4538,21 @@ msgstr "Απέτυχε η διαγραφή συνδρομής." msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:462 +#: classes/User_group.php:477 msgid "Could not create group." msgstr "Δεν ήταν δυνατή η δημιουργία ομάδας." -#: classes/User_group.php:471 +#: classes/User_group.php:486 #, fuzzy msgid "Could not set group URI." msgstr "Αδύνατη η αποθήκευση των νέων πληροφοριών του προφίλ" -#: classes/User_group.php:492 +#: classes/User_group.php:507 #, fuzzy msgid "Could not set group membership." msgstr "Αδύνατη η αποθήκευση των νέων πληροφοριών του προφίλ" -#: classes/User_group.php:506 +#: classes/User_group.php:521 #, fuzzy msgid "Could not save local group info." msgstr "Αδύνατη η αποθήκευση των νέων πληροφοριών του προφίλ" @@ -4510,189 +4594,183 @@ msgstr "" msgid "Untitled page" msgstr "" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 +#: lib/action.php:430 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:442 +#: lib/action.php:433 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "Προσωπικά" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 +#: lib/action.php:435 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Αλλάξτε τον κωδικό σας" -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "Λογαριασμός" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 +#: lib/action.php:440 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Αδυναμία ανακατεύθηνσης στο διακομιστή: %s" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "Σύνδεση" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 +#: lib/action.php:446 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Επιβεβαίωση διεύθυνσης email" -#: lib/action.php:460 +#: lib/action.php:449 #, fuzzy msgctxt "MENU" msgid "Admin" msgstr "Διαχειριστής" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 +#: lib/action.php:453 #, fuzzy, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Προσκάλεσε φίλους και συναδέλφους σου να γίνουν μέλη στο %s" -#: lib/action.php:467 +#: lib/action.php:456 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "Μήνυμα" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 +#: lib/action.php:462 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "" -#: lib/action.php:476 +#: lib/action.php:465 #, fuzzy msgctxt "MENU" msgid "Logout" msgstr "Αποσύνδεση" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 +#: lib/action.php:470 #, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "Δημιουργία ενός λογαριασμού" -#: lib/action.php:484 +#: lib/action.php:473 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "Περιγραφή" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 +#: lib/action.php:476 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "" -#: lib/action.php:490 +#: lib/action.php:479 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "Σύνδεση" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 +#: lib/action.php:482 #, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "Βοηθήστε με!" -#: lib/action.php:496 +#: lib/action.php:485 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "Βοήθεια" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 +#: lib/action.php:488 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "" -#: lib/action.php:502 +#: lib/action.php:491 msgctxt "MENU" msgid "Search" msgstr "" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 msgid "Site notice" msgstr "" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "" -#: lib/action.php:656 +#: lib/action.php:645 msgid "Page notice" msgstr "" -#: lib/action.php:758 +#: lib/action.php:747 msgid "Secondary site navigation" msgstr "" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "Βοήθεια" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "Περί" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "Συχνές ερωτήσεις" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "Επικοινωνία" -#: lib/action.php:782 +#: lib/action.php:771 msgid "Badge" msgstr "" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "" -#: lib/action.php:813 +#: lib/action.php:802 #, fuzzy, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4701,13 +4779,13 @@ msgstr "" "To **%%site.name%%** είναι μία υπηρεσία microblogging (μικρο-ιστολογίου) που " "έφερε κοντά σας το [%%site.broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:815 +#: lib/action.php:804 #, fuzzy, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "" "Το **%%site.name%%** είναι μία υπηρεσία microblogging (μικρο-ιστολογίου). " -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4715,53 +4793,53 @@ msgid "" "org/licensing/licenses/agpl-3.0.html)." msgstr "" -#: lib/action.php:832 +#: lib/action.php:821 msgid "Site content license" msgstr "" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "" -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "" -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "" -#: lib/action.php:1172 +#: lib/action.php:1161 msgid "After" msgstr "" -#: lib/action.php:1180 +#: lib/action.php:1169 msgid "Before" msgstr "" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "" @@ -4776,94 +4854,85 @@ msgid "Changes to that panel are not allowed." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 msgid "showForm() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 msgid "saveSettings() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 msgid "Unable to delete design setting." msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 #, fuzzy msgid "Basic site configuration" msgstr "Επιβεβαίωση διεύθυνσης email" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 +#: lib/adminpanelaction.php:350 msgctxt "MENU" msgid "Site" msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 #, fuzzy msgid "Design configuration" msgstr "Επιβεβαίωση διεύθυνσης email" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 +#: lib/adminpanelaction.php:358 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "Προσωπικά" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 #, fuzzy msgid "User configuration" msgstr "Επιβεβαίωση διεύθυνσης email" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 #, fuzzy msgid "Access configuration" msgstr "Επιβεβαίωση διεύθυνσης email" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "Πρόσβαση" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 #, fuzzy msgid "Paths configuration" msgstr "Επιβεβαίωση διεύθυνσης email" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -msgctxt "MENU" -msgid "Paths" -msgstr "" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 #, fuzzy msgid "Sessions configuration" msgstr "Επιβεβαίωση διεύθυνσης email" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "Προσωπικά" +msgid "Edit site notice" +msgstr "Διαγραφή μηνύματος" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "Επιβεβαίωση διεύθυνσης email" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5356,6 +5425,11 @@ msgstr "" 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 "" @@ -5887,10 +5961,6 @@ msgstr "" msgid "Favorites" msgstr "" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "" @@ -5916,7 +5986,7 @@ msgstr "" msgid "Unknown" msgstr "" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "" @@ -5924,23 +5994,23 @@ msgstr "" msgid "All subscriptions" msgstr "Όλες οι συνδρομές" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 msgid "All subscribers" msgstr "" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 msgid "User ID" msgstr "" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "Μέλος από" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "" @@ -5982,7 +6052,12 @@ msgstr "Αδυναμία διαγραφής αυτού του μηνύματος msgid "Repeat this notice" msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "" + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "" @@ -6140,47 +6215,63 @@ msgstr "Μήνυμα" msgid "Moderate" msgstr "" -#: lib/util.php:1013 -msgid "a few seconds ago" +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "Προφίλ χρήστη" + +#: lib/userprofile.php:354 +#, fuzzy +msgctxt "role" +msgid "Administrator" +msgstr "Διαχειριστές" + +#: lib/userprofile.php:355 +msgctxt "role" +msgid "Moderator" msgstr "" #: lib/util.php:1015 -msgid "about a minute ago" +msgid "a few seconds ago" msgstr "" #: lib/util.php:1017 +msgid "about a minute ago" +msgstr "" + +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "" diff --git a/locale/en_GB/LC_MESSAGES/statusnet.po b/locale/en_GB/LC_MESSAGES/statusnet.po index d0ba439ba..cac1893e8 100644 --- a/locale/en_GB/LC_MESSAGES/statusnet.po +++ b/locale/en_GB/LC_MESSAGES/statusnet.po @@ -9,19 +9,20 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:02:36+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:56:13+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 (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: en-gb\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 msgid "Access" msgstr "Access" @@ -118,7 +119,7 @@ msgstr "%1$s and friends, page %2$d" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -180,7 +181,7 @@ msgstr "" "post a notice to his or her attention." #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 msgid "You and friends" msgstr "You and friends" @@ -207,11 +208,11 @@ msgstr "Updates from %1$s and friends on %2$s!" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 msgid "API method not found." msgstr "API method not found." @@ -574,7 +575,7 @@ msgstr "" "the ability to %3$s your %4$s account data. You should only " "give access to your %4$s account to third parties you trust." -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 msgid "Account" msgstr "Account" @@ -661,18 +662,6 @@ msgstr "%1$s / Favourites from %2$s" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s updates favourited by %2$s / %2$s." -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "%s timeline" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "Updates from %1$s on %2$s!" - #: actions/apitimelinementions.php:117 #, php-format msgid "%1$s / Updates mentioning %2$s" @@ -683,12 +672,12 @@ msgstr "%1$s / Updates mentioning %2$s" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s updates that reply to updates from %2$s / %3$s." -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "%s public timeline" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s updates from everyone!" @@ -934,7 +923,7 @@ msgid "Conversation" msgstr "Conversation" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Notices" @@ -953,7 +942,7 @@ msgstr "You are not the owner of this application." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "There was a problem with your session token." @@ -1149,8 +1138,9 @@ msgstr "Reset back to default" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1266,7 +1256,7 @@ msgstr "description is too long (max %d chars)." msgid "Could not update group." msgstr "Could not update group." -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 msgid "Could not create aliases." msgstr "Could not create aliases" @@ -1388,7 +1378,7 @@ msgid "Cannot normalize that email address" msgstr "Cannot normalise that e-mail address" #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Not a valid e-mail address." @@ -1579,6 +1569,25 @@ msgstr "No such file." msgid "Cannot read file." msgstr "Cannot read file." +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "Invalid token." + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "You cannot sandbox users on this site." + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "User is already silenced." + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1725,12 +1734,18 @@ msgstr "Make admin" msgid "Make this user an admin" msgstr "Make this user an admin" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "%s timeline" + #: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Updates from members of %1$s on %2$s!" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Groups" @@ -2339,8 +2354,8 @@ msgstr "content type " msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "Not a supported data format." @@ -2479,7 +2494,8 @@ msgstr "Can't save new password." msgid "Password saved." msgstr "Password saved." -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "" @@ -2599,7 +2615,7 @@ msgstr "" msgid "SSL" msgstr "SSL" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 msgid "Never" msgstr "Never" @@ -2654,11 +2670,11 @@ msgstr "Not a valid people tag: %s" msgid "Users self-tagged with %1$s - page %2$d" msgstr "Users self-tagged with %1$s - page %2$d" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "Invalid notice content" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "Notice licence ‘1%$s’ is not compatible with site licence ‘%2$s’." @@ -2736,7 +2752,7 @@ msgid "" msgstr "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "Language" @@ -2763,7 +2779,7 @@ msgstr "" msgid "Bio is too long (max %d chars)." msgstr "Bio is too long (max %d chars)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Timezone not selected." @@ -3072,7 +3088,7 @@ msgid "Same as password above. Required." msgstr "Same as password above. Required." #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "E-mail" @@ -3177,7 +3193,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL of your profile on another compatible microblogging service" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "Subscribe" @@ -3277,6 +3293,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Replies to %1$s on %2$s!" +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "You cannot silence users on this site." + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "User without matching profile." + #: actions/rsd.php:146 actions/version.php:157 msgid "StatusNet" msgstr "StatusNet" @@ -3289,7 +3315,9 @@ msgstr "You cannot sandbox users on this site." msgid "User is already sandboxed." msgstr "User is already sandboxed." +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "" @@ -3313,7 +3341,7 @@ msgstr "" msgid "Turn on debugging output for sessions." msgstr "" -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Save site settings" @@ -3344,8 +3372,8 @@ msgstr "Organization" msgid "Description" msgstr "Description" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "Statistics" @@ -3484,45 +3512,45 @@ msgstr "" msgid "Group actions" msgstr "Group actions" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Notice feed for %s group (RSS 1.0)" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Notice feed for %s group (RSS 2.0)" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Notice feed for %s group (Atom)" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, php-format msgid "FOAF for %s group" msgstr "Outbox for %s" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 msgid "Members" msgstr "Members" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(None)" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "All members" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 msgid "Created" msgstr "Created" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3537,7 +3565,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:462 +#: actions/showgroup.php:463 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3550,7 +3578,7 @@ msgstr "" "[StatusNet](http://status.net/) tool. Its members share short messages about " "their life and interests. " -#: actions/showgroup.php:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "Admins" @@ -3665,145 +3693,136 @@ msgid "User is already silenced." msgstr "User is already silenced." #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." -msgstr "" +#, fuzzy +msgid "Basic settings for this StatusNet site" +msgstr "Design settings for this StausNet site." -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "" -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 msgid "You must have a valid contact email address." msgstr "You must have a valid contact email address." -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "" #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "" - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "" - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "" - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "Minimum text limit is 140 characters." -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "" -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 msgid "Site name" msgstr "Site name" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 msgid "Contact email address for your site" msgstr "Contact e-mail address for your site" -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 msgid "Local" msgstr "Local" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "" -#: actions/siteadminpanel.php:281 -msgid "Default site language" +#: actions/siteadminpanel.php:262 +#, fuzzy +msgid "Default language" msgstr "Default site language" -#: actions/siteadminpanel.php:289 -msgid "Snapshots" -msgstr "" - -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" msgstr "" -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" +#: actions/siteadminpanel.php:271 +msgid "Limits" msgstr "" -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" +#: actions/siteadminpanel.php:274 +msgid "Text limit" msgstr "" -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" +#: actions/siteadminpanel.php:274 +msgid "Maximum number of characters for notices." msgstr "" -#: actions/siteadminpanel.php:301 -msgid "Frequency" +#: actions/siteadminpanel.php:278 +msgid "Dupe limit" msgstr "" -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" +#: actions/siteadminpanel.php:278 +msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "" +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "Site notice" -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" -msgstr "" +#: actions/sitenoticeadminpanel.php:67 +#, fuzzy +msgid "Edit site-wide message" +msgstr "New message" -#: actions/siteadminpanel.php:315 -msgid "Limits" -msgstr "" +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +msgid "Unable to save site notice." +msgstr "Unable to save your design settings!" -#: actions/siteadminpanel.php:318 -msgid "Text limit" +#: actions/sitenoticeadminpanel.php:113 +msgid "Max length for the site-wide notice is 255 chars" msgstr "" -#: actions/siteadminpanel.php:318 -msgid "Maximum number of characters for notices." -msgstr "" +#: actions/sitenoticeadminpanel.php:176 +#, fuzzy +msgid "Site notice text" +msgstr "Site notice" -#: actions/siteadminpanel.php:322 -msgid "Dupe limit" +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" msgstr "" -#: actions/siteadminpanel.php:322 -msgid "How long users must wait (in seconds) to post the same thing again." -msgstr "" +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "Site notice" #: actions/smssettings.php:58 msgid "SMS settings" @@ -3904,6 +3923,66 @@ msgstr "" msgid "No code entered" msgstr "No code entered" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +msgid "Manage snapshot configuration" +msgstr "Change site configuration" + +#: 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 +#, fuzzy +msgid "Save snapshot settings" +msgstr "Save site settings" + #: actions/subedit.php:70 msgid "You are not subscribed to that profile." msgstr "You are not subscribed to that profile." @@ -4100,7 +4179,7 @@ msgstr "No profile id in request." msgid "Unsubscribed" msgstr "Unsubscribed" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4301,16 +4380,22 @@ msgstr "%1$s groups, page %2$d" msgid "Search for more groups" msgstr "Search for more groups" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, php-format msgid "%s is not a member of any group." msgstr "%s is not a member of any group." -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "Updates from %1$s on %2$s!" + #: actions/version.php:73 #, php-format msgid "StatusNet %s" @@ -4364,7 +4449,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 msgid "Version" msgstr "Version" @@ -4427,21 +4512,21 @@ msgstr "Could not update message with new URI." msgid "DB error inserting hashtag: %s" msgstr "DB error inserting hashtag: %s" -#: classes/Notice.php:239 +#: classes/Notice.php:241 msgid "Problem saving notice. Too long." msgstr "Problem saving notice. Too long." -#: classes/Notice.php:243 +#: classes/Notice.php:245 msgid "Problem saving notice. Unknown user." msgstr "Problem saving notice. Unknown user." -#: classes/Notice.php:248 +#: classes/Notice.php:250 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:254 +#: classes/Notice.php:256 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4449,19 +4534,19 @@ msgstr "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." -#: classes/Notice.php:260 +#: classes/Notice.php:262 msgid "You are banned from posting notices on this site." msgstr "You are banned from posting notices on this site." -#: classes/Notice.php:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "Problem saving notice." -#: classes/Notice.php:911 +#: classes/Notice.php:927 msgid "Problem saving group inbox." msgstr "Problem saving group inbox." -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4487,7 +4572,12 @@ msgstr "Not subscribed!" msgid "Couldn't delete self-subscription." msgstr "Couldn't delete self-subscription." -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "Couldn't delete subscription." + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "Couldn't delete subscription." @@ -4496,19 +4586,19 @@ msgstr "Couldn't delete subscription." msgid "Welcome to %1$s, @%2$s!" msgstr "Welcome to %1$s, @%2$s!" -#: classes/User_group.php:462 +#: classes/User_group.php:477 msgid "Could not create group." msgstr "Could not create group." -#: classes/User_group.php:471 +#: classes/User_group.php:486 msgid "Could not set group URI." msgstr "Could not set group URI." -#: classes/User_group.php:492 +#: classes/User_group.php:507 msgid "Could not set group membership." msgstr "Could not set group membership." -#: classes/User_group.php:506 +#: classes/User_group.php:521 msgid "Could not save local group info." msgstr "Could not save local group info." @@ -4549,194 +4639,188 @@ msgstr "%1$s - %2$s" msgid "Untitled page" msgstr "Untitled page" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "Primary site navigation" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 +#: lib/action.php:430 #, fuzzy msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Personal profile and friends timeline" -#: lib/action.php:442 +#: lib/action.php:433 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "Personal" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 +#: lib/action.php:435 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Change your e-mail, avatar, password, profile" -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "Account" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 +#: lib/action.php:440 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Connect to services" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "Connect" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 +#: lib/action.php:446 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Change site configuration" -#: lib/action.php:460 +#: lib/action.php:449 #, fuzzy msgctxt "MENU" msgid "Admin" msgstr "Admin" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 +#: lib/action.php:453 #, fuzzy, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Invite friends and colleagues to join you on %s" -#: lib/action.php:467 +#: lib/action.php:456 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "Invite" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 +#: lib/action.php:462 #, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Logout from the site" -#: lib/action.php:476 +#: lib/action.php:465 #, fuzzy msgctxt "MENU" msgid "Logout" msgstr "Logout" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 +#: lib/action.php:470 #, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "Create an account" -#: lib/action.php:484 +#: lib/action.php:473 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "Register" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 +#: lib/action.php:476 #, fuzzy msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Login to the site" -#: lib/action.php:490 +#: lib/action.php:479 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "Login" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 +#: lib/action.php:482 #, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "Help me!" -#: lib/action.php:496 +#: lib/action.php:485 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "Help" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 +#: lib/action.php:488 #, fuzzy msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Search for people or text" -#: lib/action.php:502 +#: lib/action.php:491 #, fuzzy msgctxt "MENU" msgid "Search" msgstr "Search" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 msgid "Site notice" msgstr "Site notice" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "Local views" -#: lib/action.php:656 +#: lib/action.php:645 msgid "Page notice" msgstr "Page notice" -#: lib/action.php:758 +#: lib/action.php:747 msgid "Secondary site navigation" msgstr "Secondary site navigation" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "Help" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "About" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "F.A.Q." -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "Privacy" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "Source" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "Contact" -#: lib/action.php:782 +#: lib/action.php:771 msgid "Badge" msgstr "Badge" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "StatusNet software licence" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4745,12 +4829,12 @@ msgstr "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%)." -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** is a microblogging service." -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4761,53 +4845,53 @@ msgstr "" "s, available under the [GNU Affero General Public Licence](http://www.fsf." "org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:832 +#: lib/action.php:821 msgid "Site content license" msgstr "Site content license" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "All " -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "licence." -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "Pagination" -#: lib/action.php:1172 +#: lib/action.php:1161 msgid "After" msgstr "After" -#: lib/action.php:1180 +#: lib/action.php:1169 msgid "Before" msgstr "Before" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "" @@ -4822,90 +4906,80 @@ msgid "Changes to that panel are not allowed." msgstr "Changes to that panel are not allowed." #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 msgid "showForm() not implemented." msgstr "showForm() not implemented." #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 msgid "saveSettings() not implemented." msgstr "saveSettings() not implemented." #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 msgid "Unable to delete design setting." msgstr "Unable to delete design setting." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 msgid "Basic site configuration" msgstr "Basic site configuration" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 +#: lib/adminpanelaction.php:350 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "Site" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 msgid "Design configuration" msgstr "Design configuration" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 +#: lib/adminpanelaction.php:358 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "Design" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 msgid "User configuration" msgstr "User configuration" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -#, fuzzy -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "User" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 msgid "Access configuration" msgstr "Access configuration" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "Access" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 msgid "Paths configuration" msgstr "Paths configuration" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -msgctxt "MENU" -msgid "Paths" -msgstr "" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 msgid "Sessions configuration" msgstr "Sessions configuration" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "Version" +msgid "Edit site notice" +msgstr "Site notice" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "Paths configuration" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5387,6 +5461,11 @@ msgstr "Choose a tag to narrow list" msgid "Go" msgstr "Go" +#: 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 "URL of the homepage or blog of the group or topic" @@ -5929,10 +6008,6 @@ msgstr "Replies" msgid "Favorites" msgstr "Favourites" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "User" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Inbox" @@ -5958,7 +6033,7 @@ msgstr "Tags in %s's notices" msgid "Unknown" msgstr "Unknown" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Subscriptions" @@ -5966,23 +6041,23 @@ msgstr "Subscriptions" msgid "All subscriptions" msgstr "All subscriptions" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Subscribers" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 msgid "All subscribers" msgstr "All subscribers" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 msgid "User ID" msgstr "User ID" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "Member since" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "All groups" @@ -6022,7 +6097,12 @@ msgstr "Repeat this notice?" msgid "Repeat this notice" msgstr "Repeat this notice" -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, fuzzy, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "Block this user from this group" + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "" @@ -6176,47 +6256,63 @@ msgstr "Message" msgid "Moderate" msgstr "" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "User profile" + +#: lib/userprofile.php:354 +#, fuzzy +msgctxt "role" +msgid "Administrator" +msgstr "Admins" + +#: lib/userprofile.php:355 +msgctxt "role" +msgid "Moderator" +msgstr "" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "a few seconds ago" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "about a minute ago" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "about %d minutes ago" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "about an hour ago" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "about %d hours ago" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "about a day ago" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "about %d days ago" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "about a month ago" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "about %d months ago" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "about a year ago" diff --git a/locale/es/LC_MESSAGES/statusnet.po b/locale/es/LC_MESSAGES/statusnet.po index fe861905d..4aa92796a 100644 --- a/locale/es/LC_MESSAGES/statusnet.po +++ b/locale/es/LC_MESSAGES/statusnet.po @@ -13,19 +13,20 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:02:39+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:56:16+0000\n" "Language-Team: Spanish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: es\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 msgid "Access" msgstr "Acceder" @@ -122,7 +123,7 @@ msgstr "%1$s y amigos, página %2$d" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -185,7 +186,7 @@ msgstr "" "su atención ](%%%%action.newnotice%%%%?status_textarea=%3$s)." #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 msgid "You and friends" msgstr "Tú y amigos" @@ -212,11 +213,11 @@ msgstr "¡Actualizaciones de %1$s y amigos en %2$s!" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 msgid "API method not found." msgstr "Método de API no encontrado." @@ -582,7 +583,7 @@ msgstr "" "permiso para %3$s la información de tu cuenta %4$s. Sólo " "debes dar acceso a tu cuenta %4$s a terceras partes en las que confíes." -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 msgid "Account" msgstr "Cuenta" @@ -671,18 +672,6 @@ msgstr "%1$s / Favoritos de %2$s" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s actualizaciones favoritas de %2$s / %2$s." -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "línea temporal de %s" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "¡Actualizaciones de %1$s en %2$s!" - #: actions/apitimelinementions.php:117 #, php-format msgid "%1$s / Updates mentioning %2$s" @@ -693,12 +682,12 @@ msgstr "%1$s / Actualizaciones que mencionan %2$s" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "actualizaciones de %1$s en respuesta a las de %2$s / %3$s" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "línea temporal pública de %s" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "¡Actualizaciones de todos en %s!" @@ -945,7 +934,7 @@ msgid "Conversation" msgstr "Conversación" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Avisos" @@ -964,7 +953,7 @@ msgstr "No eres el propietario de esta aplicación." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "Hubo problemas con tu clave de sesión." @@ -1160,8 +1149,9 @@ msgstr "Volver a los valores predeterminados" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1277,7 +1267,7 @@ msgstr "La descripción es muy larga (máx. %d caracteres)." msgid "Could not update group." msgstr "No se pudo actualizar el grupo." -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 msgid "Could not create aliases." msgstr "No fue posible crear alias." @@ -1402,7 +1392,7 @@ msgid "Cannot normalize that email address" msgstr "No se puede normalizar esta dirección de correo electrónico." #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Correo electrónico no válido" @@ -1595,6 +1585,25 @@ msgstr "No existe tal archivo." msgid "Cannot read file." msgstr "No se puede leer archivo." +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "Token inválido." + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "No puedes enviar mensaje a este usuario." + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "El usuario te ha bloqueado." + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1744,12 +1753,18 @@ msgstr "Convertir en administrador" msgid "Make this user an admin" msgstr "Convertir a este usuario en administrador" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "línea temporal de %s" + #: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "¡Actualizaciones de miembros de %1$s en %2$s!" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Grupos" @@ -2374,8 +2389,8 @@ msgstr "tipo de contenido " msgid "Only " msgstr "Sólo " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "No es un formato de dato soportado" @@ -2515,7 +2530,8 @@ msgstr "No se puede guardar la nueva contraseña." msgid "Password saved." msgstr "Se guardó Contraseña." -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "Rutas" @@ -2637,7 +2653,7 @@ msgstr "Directorio del fondo" msgid "SSL" msgstr "SSL" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 msgid "Never" msgstr "Nunca" @@ -2693,11 +2709,11 @@ msgstr "No es una etiqueta válida para personas: %s" msgid "Users self-tagged with %1$s - page %2$d" msgstr "Usuarios auto marcados con %s - página %d" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "El contenido del aviso es inválido" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" @@ -2776,7 +2792,7 @@ msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "Tags para ti (letras, números, -, ., y _), coma - o espacio - separado" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "Idioma" @@ -2804,7 +2820,7 @@ msgstr "" msgid "Bio is too long (max %d chars)." msgstr "La biografía es muy larga (máx. %d caracteres)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Zona horaria no seleccionada" @@ -3121,7 +3137,7 @@ msgid "Same as password above. Required." msgstr "Igual a la contraseña de arriba. Requerida" #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "Correo electrónico" @@ -3228,7 +3244,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "El URL de tu perfil en otro servicio de microblogueo compatible" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "Suscribirse" @@ -3326,6 +3342,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Respuestas a %1$s en %2$s!" +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "No puedes enviar mensaje a este usuario." + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "Usuario sin perfil coincidente." + #: actions/rsd.php:146 actions/version.php:157 msgid "StatusNet" msgstr "StatusNet" @@ -3340,7 +3366,9 @@ msgstr "No puedes enviar mensaje a este usuario." msgid "User is already sandboxed." msgstr "El usuario te ha bloqueado." +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "Sesiones" @@ -3364,7 +3392,7 @@ msgstr "" msgid "Turn on debugging output for sessions." msgstr "" -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Guardar la configuración del sitio" @@ -3396,8 +3424,8 @@ msgstr "Organización" msgid "Description" msgstr "Descripción" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "Estadísticas" @@ -3530,46 +3558,46 @@ msgstr "Alias" msgid "Group actions" msgstr "Acciones del grupo" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Feed de avisos de grupo %s" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Feed de avisos de grupo %s" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "Feed de avisos de grupo %s" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, php-format msgid "FOAF for %s group" msgstr "Bandeja de salida para %s" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 #, fuzzy msgid "Members" msgstr "Miembros" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Ninguno)" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "Todos los miembros" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 msgid "Created" msgstr "Creado" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3579,7 +3607,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:462 +#: actions/showgroup.php:463 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3590,7 +3618,7 @@ msgstr "" "**%s** es un grupo de usuarios en %%%%site.name%%%%, un servicio [micro-" "blogging](http://en.wikipedia.org/wiki/Micro-blogging) " -#: actions/showgroup.php:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "Administradores" @@ -3705,149 +3733,140 @@ msgid "User is already silenced." msgstr "El usuario te ha bloqueado." #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +#, fuzzy +msgid "Basic settings for this StatusNet site" msgstr "Configuración básica de este sitio StatusNet." -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "" -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 #, fuzzy msgid "You must have a valid contact email address." msgstr "No es una dirección de correo electrónico válida" -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "Idioma desconocido \"%s\"." #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "" - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "" - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "La frecuencia de captura debe ser un número." - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "" -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "" -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "General" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 msgid "Site name" msgstr "Nombre del sitio" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 #, fuzzy msgid "Contact email address for your site" msgstr "Nueva dirección de correo para postear a %s" -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 #, fuzzy msgid "Local" msgstr "Vistas locales" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "Zona horaria predeterminada" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "Zona horaria predeterminada del sitio; generalmente UTC." -#: actions/siteadminpanel.php:281 -msgid "Default site language" +#: actions/siteadminpanel.php:262 +#, fuzzy +msgid "Default language" msgstr "Idioma predeterminado del sitio" -#: actions/siteadminpanel.php:289 -msgid "Snapshots" -msgstr "Capturas" - -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" -msgstr "" - -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" -msgstr "En un trabajo programado" - -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" -msgstr "Capturas de datos" - -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" -msgstr "" - -#: actions/siteadminpanel.php:301 -msgid "Frequency" -msgstr "Frecuencia" - -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" -msgstr "" - -#: actions/siteadminpanel.php:307 -msgid "Report URL" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" msgstr "" -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" -msgstr "Las capturas se enviarán a este URL" - -#: actions/siteadminpanel.php:315 +#: actions/siteadminpanel.php:271 msgid "Limits" msgstr "Límites" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Text limit" msgstr "Límite de texto" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Maximum number of characters for notices." msgstr "Cantidad máxima de caracteres para los mensajes." -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "Dupe limit" msgstr "" -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "How long users must wait (in seconds) to post the same thing again." msgstr "Cuántos segundos es necesario esperar para publicar lo mismo de nuevo." +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "Aviso de sitio" + +#: actions/sitenoticeadminpanel.php:67 +#, fuzzy +msgid "Edit site-wide message" +msgstr "Nuevo Mensaje " + +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +msgid "Unable to save site notice." +msgstr "No se pudo grabar tu configuración de diseño." + +#: actions/sitenoticeadminpanel.php:113 +msgid "Max length for the site-wide notice is 255 chars" +msgstr "" + +#: actions/sitenoticeadminpanel.php:176 +#, fuzzy +msgid "Site notice text" +msgstr "Aviso de sitio" + +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" +msgstr "" + +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "Aviso de sitio" + #: actions/smssettings.php:58 msgid "SMS settings" msgstr "Configuración de SMS" @@ -3950,6 +3969,66 @@ msgstr "" msgid "No code entered" msgstr "No ingresó código" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "Capturas" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +msgid "Manage snapshot configuration" +msgstr "Cambiar la configuración del sitio" + +#: actions/snapshotadminpanel.php:127 +msgid "Invalid snapshot run value." +msgstr "" + +#: actions/snapshotadminpanel.php:133 +msgid "Snapshot frequency must be a number." +msgstr "La frecuencia de captura debe ser un número." + +#: 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 "En un trabajo programado" + +#: actions/snapshotadminpanel.php:206 +msgid "Data snapshots" +msgstr "Capturas de datos" + +#: actions/snapshotadminpanel.php:208 +msgid "When to send statistical data to status.net servers" +msgstr "" + +#: actions/snapshotadminpanel.php:217 +msgid "Frequency" +msgstr "Frecuencia" + +#: 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 "Las capturas se enviarán a este URL" + +#: actions/snapshotadminpanel.php:248 +#, fuzzy +msgid "Save snapshot settings" +msgstr "Guardar la configuración del sitio" + #: actions/subedit.php:70 msgid "You are not subscribed to that profile." msgstr "No te has suscrito a ese perfil." @@ -4152,7 +4231,7 @@ msgstr "No hay id de perfil solicitado." msgid "Unsubscribed" msgstr "Desuscrito" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4354,16 +4433,22 @@ msgstr "Miembros del grupo %s, página %d" msgid "Search for more groups" msgstr "Buscar más grupos" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, fuzzy, php-format msgid "%s is not a member of any group." msgstr "No eres miembro de ese grupo" -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "¡Actualizaciones de %1$s en %2$s!" + #: actions/version.php:73 #, fuzzy, php-format msgid "StatusNet %s" @@ -4409,7 +4494,7 @@ msgstr "" msgid "Plugins" msgstr "Complementos" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 #, fuzzy msgid "Version" msgstr "Sesiones" @@ -4476,22 +4561,22 @@ msgstr "No se pudo actualizar mensaje con nuevo URI." msgid "DB error inserting hashtag: %s" msgstr "Error de la BD al insertar la etiqueta clave: %s" -#: classes/Notice.php:239 +#: classes/Notice.php:241 msgid "Problem saving notice. Too long." msgstr "Ha habido un problema al guardar el mensaje. Es muy largo." -#: classes/Notice.php:243 +#: classes/Notice.php:245 msgid "Problem saving notice. Unknown user." msgstr "Ha habido un problema al guardar el mensaje. Usuario desconocido." -#: classes/Notice.php:248 +#: classes/Notice.php:250 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:254 +#: classes/Notice.php:256 #, fuzzy msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " @@ -4500,20 +4585,20 @@ msgstr "" "Demasiados avisos demasiado rápido; para y publicar nuevamente en unos " "minutos." -#: classes/Notice.php:260 +#: classes/Notice.php:262 msgid "You are banned from posting notices on this site." msgstr "Tienes prohibido publicar avisos en este sitio." -#: classes/Notice.php:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "Hubo un problema al guardar el aviso." -#: classes/Notice.php:911 +#: classes/Notice.php:927 #, fuzzy msgid "Problem saving group inbox." msgstr "Hubo un problema al guardar el aviso." -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4540,7 +4625,12 @@ msgstr "¡No estás suscrito!" msgid "Couldn't delete self-subscription." msgstr "No se pudo eliminar la suscripción." -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "No se pudo eliminar la suscripción." + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "No se pudo eliminar la suscripción." @@ -4549,21 +4639,21 @@ msgstr "No se pudo eliminar la suscripción." msgid "Welcome to %1$s, @%2$s!" msgstr "Bienvenido a %1$s, @%2$s!" -#: classes/User_group.php:462 +#: classes/User_group.php:477 msgid "Could not create group." msgstr "No se pudo crear grupo." -#: classes/User_group.php:471 +#: classes/User_group.php:486 #, fuzzy msgid "Could not set group URI." msgstr "No se pudo configurar miembros de grupo." -#: classes/User_group.php:492 +#: classes/User_group.php:507 #, fuzzy msgid "Could not set group membership." msgstr "No se pudo configurar miembros de grupo." -#: classes/User_group.php:506 +#: classes/User_group.php:521 #, fuzzy msgid "Could not save local group info." msgstr "No se ha podido guardar la suscripción." @@ -4605,194 +4695,188 @@ msgstr "%1$s - %2$s" msgid "Untitled page" msgstr "Página sin título" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "Navegación de sitio primario" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 +#: lib/action.php:430 #, fuzzy msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Perfil personal y línea de tiempo de amigos" -#: lib/action.php:442 +#: lib/action.php:433 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "Personal" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 +#: lib/action.php:435 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Cambia tu correo electrónico, avatar, contraseña, perfil" -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "Cuenta" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 +#: lib/action.php:440 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Conectar a los servicios" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "Conectarse" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 +#: lib/action.php:446 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Cambiar la configuración del sitio" -#: lib/action.php:460 +#: lib/action.php:449 #, fuzzy msgctxt "MENU" msgid "Admin" msgstr "Admin" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 +#: lib/action.php:453 #, fuzzy, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Invita a amigos y colegas a unirse a %s" -#: lib/action.php:467 +#: lib/action.php:456 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "Invitar" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 +#: lib/action.php:462 #, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Salir de sitio" -#: lib/action.php:476 +#: lib/action.php:465 #, fuzzy msgctxt "MENU" msgid "Logout" msgstr "Salir" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 +#: lib/action.php:470 #, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "Crear una cuenta" -#: lib/action.php:484 +#: lib/action.php:473 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "Registrarse" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 +#: lib/action.php:476 #, fuzzy msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Ingresar a sitio" -#: lib/action.php:490 +#: lib/action.php:479 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "Inicio de sesión" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 +#: lib/action.php:482 #, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "Ayúdame!" -#: lib/action.php:496 +#: lib/action.php:485 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "Ayuda" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 +#: lib/action.php:488 #, fuzzy msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Buscar personas o texto" -#: lib/action.php:502 +#: lib/action.php:491 #, fuzzy msgctxt "MENU" msgid "Search" msgstr "Buscar" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 msgid "Site notice" msgstr "Aviso de sitio" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "Vistas locales" -#: lib/action.php:656 +#: lib/action.php:645 msgid "Page notice" msgstr "Aviso de página" -#: lib/action.php:758 +#: lib/action.php:747 msgid "Secondary site navigation" msgstr "Navegación de sitio secundario" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "Ayuda" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "Acerca de" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "Preguntas Frecuentes" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "Privacidad" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "Fuente" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "Ponerse en contacto" -#: lib/action.php:782 +#: lib/action.php:771 msgid "Badge" msgstr "Insignia" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "Licencia de software de StatusNet" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4801,12 +4885,12 @@ msgstr "" "**%%site.name%%** es un servicio de microblogueo de [%%site.broughtby%%**](%%" "site.broughtbyurl%%)." -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** es un servicio de microblogueo." -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4817,55 +4901,55 @@ msgstr "" "disponible bajo la [GNU Affero General Public License](http://www.fsf.org/" "licensing/licenses/agpl-3.0.html)." -#: lib/action.php:832 +#: lib/action.php:821 msgid "Site content license" msgstr "Licencia de contenido del sitio" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Derechos de autor de contenido y datos por los colaboradores. Todos los " "derechos reservados." -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "Todo" -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "Licencia." -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "Paginación" -#: lib/action.php:1172 +#: lib/action.php:1161 msgid "After" msgstr "Después" -#: lib/action.php:1180 +#: lib/action.php:1169 msgid "Before" msgstr "Antes" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "" @@ -4881,95 +4965,84 @@ msgid "Changes to that panel are not allowed." msgstr "Registro de usuario no permitido." #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 #, fuzzy msgid "showForm() not implemented." msgstr "Todavía no se implementa comando." #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 #, fuzzy msgid "saveSettings() not implemented." msgstr "Todavía no se implementa comando." #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 #, fuzzy msgid "Unable to delete design setting." msgstr "¡No se pudo guardar tu configuración de Twitter!" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 msgid "Basic site configuration" msgstr "Configuración básica del sitio" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 +#: lib/adminpanelaction.php:350 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "Sitio" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 msgid "Design configuration" msgstr "Configuración del diseño" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 +#: lib/adminpanelaction.php:358 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "Diseño" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 msgid "User configuration" msgstr "Configuración de usuario" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -#, fuzzy -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "Usuario" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 msgid "Access configuration" msgstr "Configuración de acceso" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "Acceder" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 #, fuzzy msgid "Paths configuration" msgstr "SMS confirmación" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -#, fuzzy -msgctxt "MENU" -msgid "Paths" -msgstr "Rutas" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 msgid "Sessions configuration" msgstr "Configuración de sesiones" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "Sesiones" +msgid "Edit site notice" +msgstr "Aviso de sitio" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "SMS confirmación" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5462,6 +5535,11 @@ msgstr "Elegir tag para reducir lista" msgid "Go" msgstr "Ir" +#: lib/grantroleform.php:91 +#, php-format +msgid "Grant this user the \"%s\" role" +msgstr "" + #: lib/groupeditform.php:163 #, fuzzy msgid "URL of the homepage or blog of the group or topic" @@ -6012,10 +6090,6 @@ msgstr "Respuestas" msgid "Favorites" msgstr "Favoritos" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "Usuario" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Bandeja de Entrada" @@ -6042,7 +6116,7 @@ msgstr "Tags en avisos de %s" msgid "Unknown" msgstr "Acción desconocida" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Suscripciones" @@ -6050,24 +6124,24 @@ msgstr "Suscripciones" msgid "All subscriptions" msgstr "Todas las suscripciones" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Suscriptores" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 #, fuzzy msgid "All subscribers" msgstr "Todos los suscriptores" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 msgid "User ID" msgstr "ID de usuario" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "Miembro desde" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "Todos los grupos" @@ -6110,7 +6184,12 @@ msgstr "Responder este aviso." msgid "Repeat this notice" msgstr "Responder este aviso." -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, fuzzy, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "Bloquear este usuario de este grupo" + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "" @@ -6271,47 +6350,64 @@ msgstr "Mensaje" msgid "Moderate" msgstr "Moderar" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "Perfil de usuario" + +#: lib/userprofile.php:354 +#, fuzzy +msgctxt "role" +msgid "Administrator" +msgstr "Administradores" + +#: lib/userprofile.php:355 +#, fuzzy +msgctxt "role" +msgid "Moderator" +msgstr "Moderar" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "hace unos segundos" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "hace un minuto" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "hace %d minutos" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "hace una hora" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "hace %d horas" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "hace un día" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "hace %d días" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "hace un mes" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "hace %d meses" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "hace un año" diff --git a/locale/fa/LC_MESSAGES/statusnet.po b/locale/fa/LC_MESSAGES/statusnet.po index bb453f582..a68568600 100644 --- a/locale/fa/LC_MESSAGES/statusnet.po +++ b/locale/fa/LC_MESSAGES/statusnet.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:02:45+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:56:22+0000\n" "Last-Translator: Ahmad Sufi Mahmudi\n" "Language-Team: Persian\n" "MIME-Version: 1.0\n" @@ -20,11 +20,12 @@ msgstr "" "X-Language-Code: fa\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 msgid "Access" msgstr "دسترسی" @@ -124,7 +125,7 @@ msgstr "%s کاربران مسدود شده، صفحه‌ی %d" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -185,7 +186,7 @@ msgstr "" "را جلب کنید." #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 msgid "You and friends" msgstr "شما و دوستان" @@ -212,11 +213,11 @@ msgstr "به روز رسانی از %1$ و دوستان در %2$" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 msgid "API method not found." msgstr "رابط مورد نظر پیدا نشد." @@ -574,7 +575,7 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 msgid "Account" msgstr "حساب کاربری" @@ -663,18 +664,6 @@ msgstr "%s / دوست داشتنی از %s" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%s به روز رسانی های دوست داشتنی %s / %s" -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "خط زمانی %s" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "به روز رسانی‌های %1$s در %2$s" - #: actions/apitimelinementions.php:117 #, php-format msgid "%1$s / Updates mentioning %2$s" @@ -685,12 +674,12 @@ msgstr "%$1s / به روز رسانی های شامل %2$s" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s به روز رسانی هایی که در پاسخ به $2$s / %3$s" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "%s خط‌زمانی عمومی" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s به روز رسانی های عموم" @@ -939,7 +928,7 @@ msgid "Conversation" msgstr "مکالمه" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "پیام‌ها" @@ -961,7 +950,7 @@ msgstr "شما یک عضو این گروه نیستید." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "" @@ -1160,8 +1149,9 @@ msgstr "برگشت به حالت پیش گزیده" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1287,7 +1277,7 @@ msgstr "توصیف بسیار زیاد است (حداکثر %d حرف)." msgid "Could not update group." msgstr "نمی‌توان گروه را به‌هنگام‌سازی کرد." -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 msgid "Could not create aliases." msgstr "نمی‌توان نام‌های مستعار را ساخت." @@ -1410,7 +1400,7 @@ msgid "Cannot normalize that email address" msgstr "نمی‌توان نشانی را قانونی کرد" #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "یک آدرس ایمیل معتبر نیست." @@ -1600,6 +1590,25 @@ msgstr "چنین پرونده‌ای وجود ندارد." msgid "Cannot read file." msgstr "نمی‌توان پرونده را خواند." +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "اندازه‌ی نادرست" + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "شما نمی توانید کاربری را در این سایت ساکت کنید." + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "کاربر قبلا ساکت شده است." + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1741,12 +1750,18 @@ msgstr "مدیر شود" msgid "Make this user an admin" msgstr "این کاربر یک مدیر شود" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "خط زمانی %s" + #: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "به روز رسانی کابران %1$s در %2$s" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "گروه‌ها" @@ -2340,8 +2355,8 @@ msgstr "نوع محتوا " msgid "Only " msgstr " فقط" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "یک قالب دادهٔ پشتیبانی‌شده نیست." @@ -2487,7 +2502,8 @@ msgstr "نمی‌توان گذرواژه جدید را ذخیره کرد." msgid "Password saved." msgstr "گذرواژه ذخیره شد." -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "مسیر ها" @@ -2607,7 +2623,7 @@ msgstr "شاخهٔ تصاویر پیش‌زمینه" msgid "SSL" msgstr "" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 msgid "Never" msgstr "هیچ وقت" @@ -2663,11 +2679,11 @@ msgstr "یک برچسب کاربری معتبر نیست: %s" msgid "Users self-tagged with %1$s - page %2$d" msgstr "کاربران خود برچسب‌گذاری شده با %s - صفحهٔ %d" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "محتوای آگهی نامعتبر" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" @@ -2745,7 +2761,7 @@ msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "زبان" @@ -2771,7 +2787,7 @@ msgstr "" msgid "Bio is too long (max %d chars)." msgstr "" -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "منطقه‌ی زمانی انتخاب نشده است." @@ -3073,7 +3089,7 @@ msgid "Same as password above. Required." msgstr "" #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "پست الکترونیکی" @@ -3161,7 +3177,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "" @@ -3259,6 +3275,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "" +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "شما نمی توانید کاربری را در این سایت ساکت کنید." + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "کاربر بدون مشخصات" + #: actions/rsd.php:146 actions/version.php:157 #, fuzzy msgid "StatusNet" @@ -3272,7 +3298,9 @@ msgstr "" msgid "User is already sandboxed." msgstr "" +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "" @@ -3297,7 +3325,7 @@ msgstr "" msgid "Turn on debugging output for sessions." msgstr "" -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "" @@ -3332,8 +3360,8 @@ msgstr "صفحه بندى" msgid "Description" msgstr "" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "آمار" @@ -3467,45 +3495,45 @@ msgstr "نام های مستعار" msgid "Group actions" msgstr "" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, php-format msgid "FOAF for %s group" msgstr "" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 msgid "Members" msgstr "اعضا" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "هیچ" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "همه ی اعضا" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 msgid "Created" msgstr "ساخته شد" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3515,7 +3543,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:462 +#: actions/showgroup.php:463 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3524,7 +3552,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "" @@ -3638,149 +3666,140 @@ msgid "User is already silenced." msgstr "کاربر قبلا ساکت شده است." #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +#, fuzzy +msgid "Basic settings for this StatusNet site" msgstr "تنظیمات پایه ای برای این سایت StatusNet." -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "نام سایت باید طولی غیر صفر داشته باشد." -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 #, fuzzy msgid "You must have a valid contact email address." msgstr "شما باید یک آدرس ایمیل قابل قبول برای ارتباط داشته باشید" -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "" #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "" - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "" - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "" - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "" -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "" -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 msgid "Site name" msgstr "نام وب‌گاه" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "نام وب‌گاه شما، مانند «میکروبلاگ شرکت شما»" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "أورده شده به وسیله ی" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 msgid "Contact email address for your site" msgstr "" -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 msgid "Local" msgstr "محلی" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "منطقه ی زمانی پیش فرض" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "منظقه ی زمانی پیش فرض برای سایت؛ معمولا UTC." -#: actions/siteadminpanel.php:281 -msgid "Default site language" +#: actions/siteadminpanel.php:262 +#, fuzzy +msgid "Default language" msgstr "زبان پیش فرض سایت" -#: actions/siteadminpanel.php:289 -msgid "Snapshots" -msgstr "" - -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" -msgstr "" - -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" -msgstr "" - -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" -msgstr "" - -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" -msgstr "" - -#: actions/siteadminpanel.php:301 -msgid "Frequency" -msgstr "" - -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" -msgstr "" - -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "" - -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" msgstr "" -#: actions/siteadminpanel.php:315 +#: actions/siteadminpanel.php:271 msgid "Limits" msgstr "محدودیت ها" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Text limit" msgstr "محدودیت متن" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Maximum number of characters for notices." msgstr "بیشینهٔ تعداد حروف برای آگهی‌ها" -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "Dupe limit" msgstr "" -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" "چه مدت کاربران باید منتظر بمانند ( به ثانیه ) تا همان چیز را مجددا ارسال " "کنند." +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "خبر سایت" + +#: actions/sitenoticeadminpanel.php:67 +#, fuzzy +msgid "Edit site-wide message" +msgstr "پیام جدید" + +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +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 +#, fuzzy +msgid "Site notice text" +msgstr "خبر سایت" + +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" +msgstr "" + +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "خبر سایت" + #: actions/smssettings.php:58 #, fuzzy msgid "SMS settings" @@ -3877,6 +3896,66 @@ msgstr "" msgid "No code entered" msgstr "کدی وارد نشد" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +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 +#, fuzzy +msgid "Save snapshot settings" +msgstr "تنظیمات چهره" + #: actions/subedit.php:70 msgid "You are not subscribed to that profile." msgstr "شما به این پروفيل متعهد نشدید" @@ -4072,7 +4151,7 @@ msgstr "" msgid "Unsubscribed" msgstr "" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4263,16 +4342,22 @@ msgstr "اعضای گروه %s، صفحهٔ %d" msgid "Search for more groups" msgstr "جستجو برای گروه های بیشتر" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, php-format msgid "%s is not a member of any group." msgstr "" -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "به روز رسانی‌های %1$s در %2$s" + #: actions/version.php:73 #, fuzzy, php-format msgid "StatusNet %s" @@ -4316,7 +4401,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 #, fuzzy msgid "Version" msgstr "شخصی" @@ -4383,22 +4468,22 @@ msgstr "" msgid "DB error inserting hashtag: %s" msgstr "" -#: classes/Notice.php:239 +#: classes/Notice.php:241 msgid "Problem saving notice. Too long." msgstr "مشکل در ذخیره کردن پیام. بسیار طولانی." -#: classes/Notice.php:243 +#: classes/Notice.php:245 msgid "Problem saving notice. Unknown user." msgstr "مشکل در ذخیره کردن پیام. کاربر نا شناخته." -#: classes/Notice.php:248 +#: classes/Notice.php:250 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "تعداد خیلی زیاد آگهی و بسیار سریع؛ استراحت کنید و مجددا دقایقی دیگر ارسال " "کنید." -#: classes/Notice.php:254 +#: classes/Notice.php:256 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4406,20 +4491,20 @@ msgstr "" "تعداد زیاد پیام های دو نسخه ای و بسرعت؛ استراحت کنید و دقایقی دیگر مجددا " "ارسال کنید." -#: classes/Notice.php:260 +#: classes/Notice.php:262 msgid "You are banned from posting notices on this site." msgstr "شما از فرستادن پست در این سایت مردود شدید ." -#: classes/Notice.php:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "مشکل در ذخیره کردن آگهی." -#: classes/Notice.php:911 +#: classes/Notice.php:927 #, fuzzy msgid "Problem saving group inbox." msgstr "مشکل در ذخیره کردن آگهی." -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4444,7 +4529,12 @@ msgstr "تایید نشده!" msgid "Couldn't delete self-subscription." msgstr "" -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "نمی‌توان تصدیق پست الکترونیک را پاک کرد." + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "" @@ -4453,20 +4543,20 @@ msgstr "" msgid "Welcome to %1$s, @%2$s!" msgstr "خوش امدید به %1$s , @%2$s!" -#: classes/User_group.php:462 +#: classes/User_group.php:477 msgid "Could not create group." msgstr "نمیتوان گروه را تشکیل داد" -#: classes/User_group.php:471 +#: classes/User_group.php:486 #, fuzzy msgid "Could not set group URI." msgstr "نمیتوان گروه را تشکیل داد" -#: classes/User_group.php:492 +#: classes/User_group.php:507 msgid "Could not set group membership." msgstr "" -#: classes/User_group.php:506 +#: classes/User_group.php:521 #, fuzzy msgid "Could not save local group info." msgstr "نمی‌توان شناس‌نامه را ذخیره کرد." @@ -4508,205 +4598,199 @@ msgstr "%s گروه %s را ترک کرد." msgid "Untitled page" msgstr "صفحه ی بدون عنوان" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 +#: lib/action.php:430 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:442 +#: lib/action.php:433 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "شخصی" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 +#: lib/action.php:435 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "آدرس ایمیل، آواتار، کلمه ی عبور، پروفایل خود را تغییر دهید" -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "حساب کاربری" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 +#: lib/action.php:440 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "متصل شدن به خدمات" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "وصل‌شدن" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 +#: lib/action.php:446 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "تغییر پیکربندی سایت" -#: lib/action.php:460 +#: lib/action.php:449 #, fuzzy msgctxt "MENU" msgid "Admin" msgstr "مدیر" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 +#: lib/action.php:453 #, fuzzy, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr " به شما ملحق شوند %s دوستان و همکاران را دعوت کنید تا در" -#: lib/action.php:467 +#: lib/action.php:456 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "دعوت‌کردن" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 +#: lib/action.php:462 #, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "خارج شدن از سایت ." -#: lib/action.php:476 +#: lib/action.php:465 #, fuzzy msgctxt "MENU" msgid "Logout" msgstr "خروج" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 +#: lib/action.php:470 #, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "یک حساب کاربری بسازید" -#: lib/action.php:484 +#: lib/action.php:473 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "ثبت نام" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 +#: lib/action.php:476 #, fuzzy msgctxt "TOOLTIP" msgid "Login to the site" msgstr "ورود به وب‌گاه" -#: lib/action.php:490 +#: lib/action.php:479 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "ورود" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 +#: lib/action.php:482 #, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "به من کمک کنید!" -#: lib/action.php:496 +#: lib/action.php:485 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "کمک" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 +#: lib/action.php:488 #, fuzzy msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "جستجو برای شخص با متن" -#: lib/action.php:502 +#: lib/action.php:491 #, fuzzy msgctxt "MENU" msgid "Search" msgstr "جست‌وجو" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 msgid "Site notice" msgstr "خبر سایت" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "دید محلی" -#: lib/action.php:656 +#: lib/action.php:645 msgid "Page notice" msgstr "خبر صفحه" -#: lib/action.php:758 +#: lib/action.php:747 msgid "Secondary site navigation" msgstr "" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "کمک" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "دربارهٔ" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "سوال‌های رایج" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "خصوصی" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "منبع" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "تماس" -#: lib/action.php:782 +#: lib/action.php:771 msgid "Badge" msgstr "" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "StatusNet مجوز نرم افزار" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%). " msgstr "" -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "" -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4714,53 +4798,53 @@ msgid "" "org/licensing/licenses/agpl-3.0.html)." msgstr "" -#: lib/action.php:832 +#: lib/action.php:821 msgid "Site content license" msgstr "مجوز محتویات سایت" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "همه " -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "مجوز." -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "صفحه بندى" -#: lib/action.php:1172 +#: lib/action.php:1161 msgid "After" msgstr "بعد از" -#: lib/action.php:1180 +#: lib/action.php:1169 msgid "Before" msgstr "قبل از" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "" @@ -4776,94 +4860,83 @@ msgid "Changes to that panel are not allowed." msgstr "اجازه‌ی ثبت نام داده نشده است." #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 msgid "showForm() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 msgid "saveSettings() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 msgid "Unable to delete design setting." msgstr "نمی توان تنظیمات طراحی شده را پاک کرد ." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 msgid "Basic site configuration" msgstr "پیکره بندی اصلی سایت" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 +#: lib/adminpanelaction.php:350 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "سایت" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 msgid "Design configuration" msgstr "" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 +#: lib/adminpanelaction.php:358 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "طرح" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 #, fuzzy msgid "User configuration" msgstr "پیکره بندی اصلی سایت" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -#, fuzzy -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "کاربر" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 #, fuzzy msgid "Access configuration" msgstr "پیکره بندی اصلی سایت" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "دسترسی" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 msgid "Paths configuration" msgstr "" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -#, fuzzy -msgctxt "MENU" -msgid "Paths" -msgstr "مسیر ها" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 #, fuzzy msgid "Sessions configuration" msgstr "پیکره بندی اصلی سایت" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "شخصی" +msgid "Edit site notice" +msgstr "خبر سایت" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "پیکره بندی اصلی سایت" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5354,6 +5427,11 @@ msgstr "" 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 "" @@ -5889,10 +5967,6 @@ msgstr "پاسخ ها" msgid "Favorites" msgstr "چیزهای مورد علاقه" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "کاربر" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "صندوق دریافتی" @@ -5918,7 +5992,7 @@ msgstr "" msgid "Unknown" msgstr "" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "اشتراک‌ها" @@ -5926,23 +6000,23 @@ msgstr "اشتراک‌ها" msgid "All subscriptions" msgstr "تمام اشتراک‌ها" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "مشترک‌ها" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 msgid "All subscribers" msgstr "تمام مشترک‌ها" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 msgid "User ID" msgstr "شناسه کاربر" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "عضو شده از" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "تمام گروه‌ها" @@ -5983,7 +6057,12 @@ msgstr "به این آگهی جواب دهید" msgid "Repeat this notice" msgstr "" -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, fuzzy, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "دسترسی کاربر را به گروه مسدود کن" + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "" @@ -6137,47 +6216,62 @@ msgstr "پیام" msgid "Moderate" msgstr "" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "پروفایل کاربر" + +#: lib/userprofile.php:354 +msgctxt "role" +msgid "Administrator" +msgstr "" + +#: lib/userprofile.php:355 +msgctxt "role" +msgid "Moderator" +msgstr "" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "چند ثانیه پیش" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "حدود یک دقیقه پیش" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "حدود %d دقیقه پیش" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "حدود یک ساعت پیش" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "حدود %d ساعت پیش" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "حدود یک روز پیش" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "حدود %d روز پیش" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "حدود یک ماه پیش" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "حدود %d ماه پیش" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "حدود یک سال پیش" diff --git a/locale/fi/LC_MESSAGES/statusnet.po b/locale/fi/LC_MESSAGES/statusnet.po index 97ab7038b..b4978769f 100644 --- a/locale/fi/LC_MESSAGES/statusnet.po +++ b/locale/fi/LC_MESSAGES/statusnet.po @@ -10,19 +10,20 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:02:42+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:56:19+0000\n" "Language-Team: Finnish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fi\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 #, fuzzy msgid "Access" msgstr "Hyväksy" @@ -125,7 +126,7 @@ msgstr "%s ja kaverit, sivu %d" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -186,7 +187,7 @@ msgid "" msgstr "" #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 msgid "You and friends" msgstr "Sinä ja kaverit" @@ -213,11 +214,11 @@ msgstr "Käyttäjän %1$s ja kavereiden päivitykset palvelussa %2$s!" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "API-metodia ei löytynyt!" @@ -589,7 +590,7 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 msgid "Account" msgstr "Käyttäjätili" @@ -680,18 +681,6 @@ msgstr "%s / Käyttäjän %s suosikit" msgid "%1$s updates favorited by %2$s / %2$s." msgstr " Palvelun %s päivitykset, jotka %s / %s on merkinnyt suosikikseen." -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "%s aikajana" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "Käyttäjän %1$s päivitykset palvelussa %2$s!" - #: actions/apitimelinementions.php:117 #, fuzzy, php-format msgid "%1$s / Updates mentioning %2$s" @@ -703,12 +692,12 @@ msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" "%1$s -päivitykset, jotka on vastauksia käyttäjän %2$s / %3$s päivityksiin." -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "%s julkinen aikajana" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s päivitykset kaikilta!" @@ -954,7 +943,7 @@ msgid "Conversation" msgstr "Keskustelu" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Päivitykset" @@ -977,7 +966,7 @@ msgstr "Sinä et kuulu tähän ryhmään." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "Istuntoavaimesi kanssa oli ongelma." @@ -1178,8 +1167,9 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1308,7 +1298,7 @@ msgstr "kuvaus on liian pitkä (max %d merkkiä)." msgid "Could not update group." msgstr "Ei voitu päivittää ryhmää." -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 msgid "Could not create aliases." msgstr "Ei voitu lisätä aliasta." @@ -1435,7 +1425,7 @@ msgid "Cannot normalize that email address" msgstr "Ei voida normalisoida sähköpostiosoitetta" #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Tuo ei ole kelvollinen sähköpostiosoite." @@ -1629,6 +1619,25 @@ msgstr "Tiedostoa ei ole." msgid "Cannot read file." msgstr "Tiedostoa ei voi lukea." +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "Koko ei kelpaa." + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "Et voi lähettää viestiä tälle käyttäjälle." + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "Käyttäjä on asettanut eston sinulle." + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1773,12 +1782,18 @@ msgstr "Tee ylläpitäjäksi" msgid "Make this user an admin" msgstr "Tee tästä käyttäjästä ylläpitäjä" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "%s aikajana" + #: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Ryhmän %1$s käyttäjien päivitykset palvelussa %2$s!" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Ryhmät" @@ -2403,8 +2418,8 @@ msgstr "Yhdistä" msgid "Only " msgstr "Vain " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "Tuo ei ole tuettu tietomuoto." @@ -2550,7 +2565,8 @@ msgstr "Uutta salasanaa ei voida tallentaa." msgid "Password saved." msgstr "Salasana tallennettu." -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "Polut" @@ -2678,7 +2694,7 @@ msgstr "Taustakuvan hakemisto" msgid "SSL" msgstr "SMS" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 #, fuzzy msgid "Never" msgstr "Palauta" @@ -2739,11 +2755,11 @@ msgstr "Ei sallittu henkilötagi: %s" msgid "Users self-tagged with %1$s - page %2$d" msgstr "Käyttäjät joilla henkilötagi %s - sivu %d" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "Päivityksen sisältö ei kelpaa" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" @@ -2825,7 +2841,7 @@ msgstr "" "Kuvaa itseäsi henkilötageilla (sanoja joissa voi olla muita kirjaimia kuin " "ääkköset, numeroita, -, ., ja _), pilkulla tai välilyönnillä erotettuna" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "Kieli" @@ -2853,7 +2869,7 @@ msgstr "" msgid "Bio is too long (max %d chars)." msgstr "\"Tietoja\" on liian pitkä (max 140 merkkiä)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Aikavyöhykettä ei ole valittu." @@ -3162,7 +3178,7 @@ msgid "Same as password above. Required." msgstr "Sama kuin ylläoleva salasana. Pakollinen." #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "Sähköposti" @@ -3272,7 +3288,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "Profiilisi URL-osoite toisessa yhteensopivassa mikroblogauspalvelussa" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "Tilaa" @@ -3382,6 +3398,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Viesti käyttäjälle %1$s, %2$s" +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "Et voi lähettää viestiä tälle käyttäjälle." + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "Käyttäjälle ei löydy profiilia" + #: actions/rsd.php:146 actions/version.php:157 #, fuzzy msgid "StatusNet" @@ -3397,7 +3423,9 @@ msgstr "Et voi lähettää viestiä tälle käyttäjälle." msgid "User is already sandboxed." msgstr "Käyttäjä on asettanut eston sinulle." +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "" @@ -3422,7 +3450,7 @@ msgstr "" msgid "Turn on debugging output for sessions." msgstr "" -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 #, fuzzy msgid "Save site settings" @@ -3458,8 +3486,8 @@ msgstr "Sivutus" msgid "Description" msgstr "Kuvaus" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "Tilastot" @@ -3592,45 +3620,45 @@ msgstr "Aliakset" msgid "Group actions" msgstr "Ryhmän toiminnot" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Syöte ryhmän %s päivityksille (RSS 1.0)" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Syöte ryhmän %s päivityksille (RSS 2.0)" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Syöte ryhmän %s päivityksille (Atom)" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, php-format msgid "FOAF for %s group" msgstr "Käyttäjän %s lähetetyt viestit" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 msgid "Members" msgstr "Jäsenet" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Tyhjä)" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "Kaikki jäsenet" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 msgid "Created" msgstr "Luotu" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3640,7 +3668,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:462 +#: actions/showgroup.php:463 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3651,7 +3679,7 @@ msgstr "" "**%s** on ryhmä palvelussa %%%%site.name%%%%, joka on [mikroblogauspalvelu]" "(http://en.wikipedia.org/wiki/Micro-blogging)" -#: actions/showgroup.php:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "Ylläpitäjät" @@ -3769,150 +3797,140 @@ msgid "User is already silenced." msgstr "Käyttäjä on asettanut eston sinulle." #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." -msgstr "" +#, fuzzy +msgid "Basic settings for this StatusNet site" +msgstr "Ulkoasuasetukset tälle StatusNet palvelulle." -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "" -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 #, fuzzy msgid "You must have a valid contact email address." msgstr "Tuo ei ole kelvollinen sähköpostiosoite" -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "" #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "" - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "" - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "" - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "" -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "" -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 #, fuzzy msgid "Site name" msgstr "Palvelun ilmoitus" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 #, fuzzy msgid "Contact email address for your site" msgstr "Uusi sähköpostiosoite päivityksien lähettämiseen palveluun %s" -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 #, fuzzy msgid "Local" msgstr "Paikalliset näkymät" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "" -#: actions/siteadminpanel.php:281 +#: actions/siteadminpanel.php:262 #, fuzzy -msgid "Default site language" +msgid "Default language" msgstr "Ensisijainen kieli" -#: actions/siteadminpanel.php:289 -msgid "Snapshots" -msgstr "" - -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" msgstr "" -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" +#: actions/siteadminpanel.php:271 +msgid "Limits" msgstr "" -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" +#: actions/siteadminpanel.php:274 +msgid "Text limit" msgstr "" -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" +#: actions/siteadminpanel.php:274 +msgid "Maximum number of characters for notices." msgstr "" -#: actions/siteadminpanel.php:301 -msgid "Frequency" +#: actions/siteadminpanel.php:278 +msgid "Dupe limit" msgstr "" -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" +#: actions/siteadminpanel.php:278 +msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "" +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "Palvelun ilmoitus" -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" -msgstr "" +#: actions/sitenoticeadminpanel.php:67 +#, fuzzy +msgid "Edit site-wide message" +msgstr "Uusi viesti" -#: actions/siteadminpanel.php:315 -msgid "Limits" -msgstr "" +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +msgid "Unable to save site notice." +msgstr "Twitter-asetuksia ei voitu tallentaa!" -#: actions/siteadminpanel.php:318 -msgid "Text limit" +#: actions/sitenoticeadminpanel.php:113 +msgid "Max length for the site-wide notice is 255 chars" msgstr "" -#: actions/siteadminpanel.php:318 -msgid "Maximum number of characters for notices." -msgstr "" +#: actions/sitenoticeadminpanel.php:176 +#, fuzzy +msgid "Site notice text" +msgstr "Palvelun ilmoitus" -#: actions/siteadminpanel.php:322 -msgid "Dupe limit" +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" msgstr "" -#: actions/siteadminpanel.php:322 -msgid "How long users must wait (in seconds) to post the same thing again." -msgstr "" +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "Palvelun ilmoitus" #: actions/smssettings.php:58 #, fuzzy @@ -4016,6 +4034,66 @@ msgstr "" msgid "No code entered" msgstr "Koodia ei ole syötetty." +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +msgid "Manage snapshot configuration" +msgstr "Ensisijainen sivunavigointi" + +#: 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 +#, fuzzy +msgid "Save snapshot settings" +msgstr "Profiilikuva-asetukset" + #: actions/subedit.php:70 msgid "You are not subscribed to that profile." msgstr "Et ole tilannut tämän käyttäjän päivityksiä." @@ -4221,7 +4299,7 @@ msgstr "Ei profiili id:tä kyselyssä." msgid "Unsubscribed" msgstr "Tilaus lopetettu" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4432,16 +4510,22 @@ msgstr "Ryhmän %s jäsenet, sivu %d" msgid "Search for more groups" msgstr "Hae lisää ryhmiä" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, fuzzy, php-format msgid "%s is not a member of any group." msgstr "Sinä et kuulu tähän ryhmään." -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "Käyttäjän %1$s päivitykset palvelussa %2$s!" + #: actions/version.php:73 #, fuzzy, php-format msgid "StatusNet %s" @@ -4485,7 +4569,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 #, fuzzy msgid "Version" msgstr "Omat" @@ -4554,23 +4638,23 @@ msgstr "Viestin päivittäminen uudella URI-osoitteella ei onnistunut." msgid "DB error inserting hashtag: %s" msgstr "Tietokantavirhe tallennettaessa risutagiä: %s" -#: classes/Notice.php:239 +#: classes/Notice.php:241 #, fuzzy msgid "Problem saving notice. Too long." msgstr "Ongelma päivityksen tallentamisessa." -#: classes/Notice.php:243 +#: classes/Notice.php:245 msgid "Problem saving notice. Unknown user." msgstr "Virhe tapahtui päivityksen tallennuksessa. Tuntematon käyttäjä." -#: classes/Notice.php:248 +#: classes/Notice.php:250 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:254 +#: classes/Notice.php:256 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4578,20 +4662,20 @@ 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:260 +#: classes/Notice.php:262 msgid "You are banned from posting notices on this site." msgstr "Päivityksesi tähän palveluun on estetty." -#: classes/Notice.php:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "Ongelma päivityksen tallentamisessa." -#: classes/Notice.php:911 +#: classes/Notice.php:927 #, fuzzy msgid "Problem saving group inbox." msgstr "Ongelma päivityksen tallentamisessa." -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4619,7 +4703,12 @@ msgstr "Ei ole tilattu!." msgid "Couldn't delete self-subscription." msgstr "Ei voitu poistaa tilausta." -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "Ei voitu poistaa tilausta." + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "Ei voitu poistaa tilausta." @@ -4628,20 +4717,20 @@ msgstr "Ei voitu poistaa tilausta." msgid "Welcome to %1$s, @%2$s!" msgstr "Viesti käyttäjälle %1$s, %2$s" -#: classes/User_group.php:462 +#: classes/User_group.php:477 msgid "Could not create group." msgstr "Ryhmän luonti ei onnistunut." -#: classes/User_group.php:471 +#: classes/User_group.php:486 #, fuzzy msgid "Could not set group URI." msgstr "Ryhmän jäsenyystietoja ei voitu asettaa." -#: classes/User_group.php:492 +#: classes/User_group.php:507 msgid "Could not set group membership." msgstr "Ryhmän jäsenyystietoja ei voitu asettaa." -#: classes/User_group.php:506 +#: classes/User_group.php:521 #, fuzzy msgid "Could not save local group info." msgstr "Tilausta ei onnistuttu tallentamaan." @@ -4684,195 +4773,189 @@ msgstr "%1$s (%2$s)" msgid "Untitled page" msgstr "Nimetön sivu" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "Ensisijainen sivunavigointi" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 +#: lib/action.php:430 #, fuzzy msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Henkilökohtainen profiili ja kavereiden aikajana" -#: lib/action.php:442 +#: lib/action.php:433 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "Omat" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 +#: lib/action.php:435 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Muuta sähköpostiosoitettasi, kuvaasi, salasanaasi, profiiliasi" -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "Käyttäjätili" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 +#: lib/action.php:440 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Ei voitu uudelleenohjata palvelimelle: %s" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "Yhdistä" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 +#: lib/action.php:446 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Ensisijainen sivunavigointi" -#: lib/action.php:460 +#: lib/action.php:449 #, fuzzy msgctxt "MENU" msgid "Admin" msgstr "Ylläpito" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 +#: lib/action.php:453 #, fuzzy, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Kutsu kavereita ja työkavereita liittymään palveluun %s" -#: lib/action.php:467 +#: lib/action.php:456 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "Kutsu" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 +#: lib/action.php:462 #, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Kirjaudu ulos palvelusta" -#: lib/action.php:476 +#: lib/action.php:465 #, fuzzy msgctxt "MENU" msgid "Logout" msgstr "Kirjaudu ulos" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 +#: lib/action.php:470 #, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "Luo uusi käyttäjätili" -#: lib/action.php:484 +#: lib/action.php:473 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "Rekisteröidy" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 +#: lib/action.php:476 #, fuzzy msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Kirjaudu sisään palveluun" -#: lib/action.php:490 +#: lib/action.php:479 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "Kirjaudu sisään" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 +#: lib/action.php:482 #, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "Auta minua!" -#: lib/action.php:496 +#: lib/action.php:485 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "Ohjeet" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 +#: lib/action.php:488 #, fuzzy msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Hae ihmisiä tai tekstiä" -#: lib/action.php:502 +#: lib/action.php:491 #, fuzzy msgctxt "MENU" msgid "Search" msgstr "Haku" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 msgid "Site notice" msgstr "Palvelun ilmoitus" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "Paikalliset näkymät" -#: lib/action.php:656 +#: lib/action.php:645 msgid "Page notice" msgstr "Sivuilmoitus" -#: lib/action.php:758 +#: lib/action.php:747 msgid "Secondary site navigation" msgstr "Toissijainen sivunavigointi" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "Ohjeet" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "Tietoa" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "UKK" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "Yksityisyys" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "Lähdekoodi" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "Ota yhteyttä" -#: lib/action.php:782 +#: lib/action.php:771 #, fuzzy msgid "Badge" msgstr "Tönäise" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "StatusNet-ohjelmiston lisenssi" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4881,12 +4964,12 @@ msgstr "" "**%%site.name%%** on mikroblogipalvelu, jonka tarjoaa [%%site.broughtby%%](%%" "site.broughtbyurl%%). " -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** on mikroblogipalvelu. " -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4897,54 +4980,54 @@ msgstr "" "versio %s, saatavilla lisenssillä [GNU Affero General Public License](http://" "www.fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:832 +#: lib/action.php:821 #, fuzzy msgid "Site content license" msgstr "StatusNet-ohjelmiston lisenssi" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "Kaikki " -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "lisenssi." -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "Sivutus" -#: lib/action.php:1172 +#: lib/action.php:1161 msgid "After" msgstr "Myöhemmin" -#: lib/action.php:1180 +#: lib/action.php:1169 msgid "Before" msgstr "Aiemmin" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "" @@ -4961,100 +5044,89 @@ msgid "Changes to that panel are not allowed." msgstr "Rekisteröityminen ei ole sallittu." #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 #, fuzzy msgid "showForm() not implemented." msgstr "Komentoa ei ole vielä toteutettu." #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 #, fuzzy msgid "saveSettings() not implemented." msgstr "Komentoa ei ole vielä toteutettu." #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 #, fuzzy msgid "Unable to delete design setting." msgstr "Twitter-asetuksia ei voitu tallentaa!" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 #, fuzzy msgid "Basic site configuration" msgstr "Sähköpostiosoitteen vahvistus" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 +#: lib/adminpanelaction.php:350 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "Kutsu" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 #, fuzzy msgid "Design configuration" msgstr "SMS vahvistus" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 +#: lib/adminpanelaction.php:358 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "Ulkoasu" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 #, fuzzy msgid "User configuration" msgstr "SMS vahvistus" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -#, fuzzy -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "Käyttäjä" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 #, fuzzy msgid "Access configuration" msgstr "SMS vahvistus" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "Hyväksy" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 #, fuzzy msgid "Paths configuration" msgstr "SMS vahvistus" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -#, fuzzy -msgctxt "MENU" -msgid "Paths" -msgstr "Polut" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 #, fuzzy msgid "Sessions configuration" msgstr "SMS vahvistus" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "Omat" +msgid "Edit site notice" +msgstr "Palvelun ilmoitus" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "SMS vahvistus" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5557,6 +5629,11 @@ msgstr "Valitse tagi lyhentääksesi listaa" msgid "Go" msgstr "Mene" +#: 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 "Ryhmän tai aiheen kotisivun tai blogin osoite" @@ -6114,10 +6191,6 @@ msgstr "Vastaukset" msgid "Favorites" msgstr "Suosikit" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "Käyttäjä" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Saapuneet" @@ -6144,7 +6217,7 @@ msgstr "Tagit käyttäjän %s päivityksissä" msgid "Unknown" msgstr "Tuntematon toiminto" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Tilaukset" @@ -6152,24 +6225,24 @@ msgstr "Tilaukset" msgid "All subscriptions" msgstr "Kaikki tilaukset" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Tilaajat" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 msgid "All subscribers" msgstr "Kaikki tilaajat" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 #, fuzzy msgid "User ID" msgstr "Käyttäjä" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "Käyttäjänä alkaen" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "Kaikki ryhmät" @@ -6212,7 +6285,12 @@ msgstr "Vastaa tähän päivitykseen" msgid "Repeat this notice" msgstr "Vastaa tähän päivitykseen" -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, fuzzy, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "Estä tätä käyttäjää osallistumassa tähän ryhmään" + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "" @@ -6376,47 +6454,63 @@ msgstr "Viesti" msgid "Moderate" msgstr "" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "Käyttäjän profiili" + +#: lib/userprofile.php:354 +#, fuzzy +msgctxt "role" +msgid "Administrator" +msgstr "Ylläpitäjät" + +#: lib/userprofile.php:355 +msgctxt "role" +msgid "Moderator" +msgstr "" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "muutama sekunti sitten" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "noin minuutti sitten" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "noin %d minuuttia sitten" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "noin tunti sitten" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "noin %d tuntia sitten" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "noin päivä sitten" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "noin %d päivää sitten" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "noin kuukausi sitten" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "noin %d kuukautta sitten" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "noin vuosi sitten" diff --git a/locale/fr/LC_MESSAGES/statusnet.po b/locale/fr/LC_MESSAGES/statusnet.po index 68e210ff1..c8d14b83d 100644 --- a/locale/fr/LC_MESSAGES/statusnet.po +++ b/locale/fr/LC_MESSAGES/statusnet.po @@ -14,19 +14,20 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:02:48+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:56:25+0000\n" "Language-Team: French\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 msgid "Access" msgstr "Accès" @@ -47,7 +48,6 @@ msgstr "Interdire aux utilisateurs anonymes (non connectés) de voir le site ?" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -#, fuzzy msgctxt "LABEL" msgid "Private" msgstr "Privé" @@ -78,7 +78,6 @@ msgid "Save access settings" msgstr "Sauvegarder les paramètres d’accès" #: actions/accessadminpanel.php:203 -#, fuzzy msgctxt "BUTTON" msgid "Save" msgstr "Enregistrer" @@ -123,7 +122,7 @@ msgstr "%1$s et ses amis, page %2$d" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -187,7 +186,7 @@ msgstr "" "un clin d’œil à %s ou poster un avis à son intention." #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 msgid "You and friends" msgstr "Vous et vos amis" @@ -214,11 +213,11 @@ msgstr "Statuts de %1$s et ses amis dans %2$s!" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 msgid "API method not found." msgstr "Méthode API non trouvée !" @@ -590,7 +589,7 @@ msgstr "" "devriez donner l’accès à votre compte %4$s qu’aux tiers à qui vous faites " "confiance." -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 msgid "Account" msgstr "Compte" @@ -679,18 +678,6 @@ msgstr "%1$s / Favoris de %2$s" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s statuts favoris de %2$s / %2$s." -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "Activité de %s" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "Statuts de %1$s dans %2$s!" - #: actions/apitimelinementions.php:117 #, php-format msgid "%1$s / Updates mentioning %2$s" @@ -701,12 +688,12 @@ msgstr "%1$s / Mises à jour mentionnant %2$s" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s statuts en réponses aux statuts de %2$s / %3$s." -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "Activité publique %s" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s statuts de tout le monde !" @@ -954,7 +941,7 @@ msgid "Conversation" msgstr "Conversation" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Avis" @@ -973,7 +960,7 @@ msgstr "Vous n’êtes pas le propriétaire de cette application." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "Un problème est survenu avec votre jeton de session." @@ -1169,8 +1156,9 @@ msgstr "Revenir aux valeurs par défaut" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1286,7 +1274,7 @@ msgstr "la description est trop longue (%d caractères maximum)." msgid "Could not update group." msgstr "Impossible de mettre à jour le groupe." -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 msgid "Could not create aliases." msgstr "Impossible de créer les alias." @@ -1410,7 +1398,7 @@ msgid "Cannot normalize that email address" msgstr "Impossible d’utiliser cette adresse courriel" #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Adresse courriel invalide." @@ -1602,6 +1590,26 @@ msgstr "Fichier non trouvé." msgid "Cannot read file." msgstr "Impossible de lire le fichier" +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "Jeton incorrect." + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "" +"Vous ne pouvez pas mettre des utilisateur dans le bac à sable sur ce site." + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "Cet utilisateur est déjà réduit au silence." + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1750,12 +1758,18 @@ msgstr "Faire un administrateur" msgid "Make this user an admin" msgstr "Faire de cet utilisateur un administrateur" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "Activité de %s" + #: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Mises à jour des membres de %1$s dans %2$s !" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Groupes" @@ -2023,7 +2037,6 @@ msgstr "Ajouter un message personnel à l’invitation (optionnel)." #. TRANS: Send button for inviting friends #: actions/invite.php:198 -#, fuzzy msgctxt "BUTTON" msgid "Send" msgstr "Envoyer" @@ -2394,8 +2407,8 @@ msgstr "type de contenu " msgid "Only " msgstr "Seulement " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "Format de données non supporté." @@ -2535,7 +2548,8 @@ msgstr "Impossible de sauvegarder le nouveau mot de passe." msgid "Password saved." msgstr "Mot de passe enregistré." -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "Chemins" @@ -2655,7 +2669,7 @@ msgstr "Dossier des arrière plans" msgid "SSL" msgstr "SSL" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 msgid "Never" msgstr "Jamais" @@ -2711,11 +2725,11 @@ msgstr "Cette marque est invalide : %s" msgid "Users self-tagged with %1$s - page %2$d" msgstr "Utilisateurs marqués par eux-mêmes avec %1$s - page %2$d" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "Contenu de l’avis invalide" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" @@ -2797,7 +2811,7 @@ msgstr "" "Marques pour vous-même (lettres, chiffres, -, ., et _), séparées par des " "virgules ou des espaces" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "Langue" @@ -2825,7 +2839,7 @@ msgstr "" msgid "Bio is too long (max %d chars)." msgstr "La bio est trop longue (%d caractères maximum)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Aucun fuseau horaire n’a été choisi." @@ -3148,7 +3162,7 @@ msgid "Same as password above. Required." msgstr "Identique au mot de passe ci-dessus. Requis." #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "Courriel" @@ -3257,7 +3271,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL de votre profil sur un autre service de micro-blogging compatible" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "S’abonner" @@ -3362,6 +3376,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Réponses à %1$s sur %2$s !" +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "Vous ne pouvez pas réduire des utilisateurs au silence sur ce site." + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "Utilisateur sans profil correspondant." + #: actions/rsd.php:146 actions/version.php:157 msgid "StatusNet" msgstr "StatusNet" @@ -3375,7 +3399,9 @@ msgstr "" msgid "User is already sandboxed." msgstr "L’utilisateur est déjà dans le bac à sable." +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "Sessions" @@ -3399,7 +3425,7 @@ msgstr "Déboguage de session" msgid "Turn on debugging output for sessions." msgstr "Activer la sortie de déboguage pour les sessions." -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Sauvegarder les paramètres du site" @@ -3430,8 +3456,8 @@ msgstr "Organisation" msgid "Description" msgstr "Description" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "Statistiques" @@ -3573,45 +3599,45 @@ msgstr "Alias" msgid "Group actions" msgstr "Actions du groupe" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Fil des avis du groupe %s (RSS 1.0)" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Fil des avis du groupe %s (RSS 2.0)" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Fil des avis du groupe %s (Atom)" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, php-format msgid "FOAF for %s group" msgstr "ami d’un ami pour le groupe %s" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 msgid "Members" msgstr "Membres" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(aucun)" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "Tous les membres" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 msgid "Created" msgstr "Créé" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3627,7 +3653,7 @@ msgstr "" "action.register%%%%) pour devenir membre de ce groupe et bien plus ! ([En " "lire plus](%%%%doc.help%%%%))" -#: actions/showgroup.php:462 +#: actions/showgroup.php:463 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3640,7 +3666,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:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "Administrateurs" @@ -3765,148 +3791,139 @@ msgid "User is already silenced." msgstr "Cet utilisateur est déjà réduit au silence." #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +#, fuzzy +msgid "Basic settings for this StatusNet site" msgstr "Paramètres basiques pour ce site StatusNet." -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "Le nom du site ne peut pas être vide." -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 msgid "You must have a valid contact email address." msgstr "Vous devez avoir une adresse électronique de contact valide." -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "Langue « %s » inconnue." #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "URL de rapport d’instantanés invalide." - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "Valeur de lancement d’instantanés invalide." - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "La fréquence des instantanés doit être un nombre." - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "La limite minimale de texte est de 140 caractères." -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "La limite de doublon doit être d’une seconde ou plus." -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "Général" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 msgid "Site name" msgstr "Nom du site" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "Le nom de votre site, comme « Microblog de votre compagnie »" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "Apporté par" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "Texte utilisé pour le lien de crédits au bas de chaque page" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "Apporté par URL" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "URL utilisée pour le lien de crédits au bas de chaque page" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 msgid "Contact email address for your site" msgstr "Adresse de courriel de contact de votre site" -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 msgid "Local" msgstr "Local" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "Zone horaire par défaut" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "Zone horaire par défaut pour ce site ; généralement UTC." -#: actions/siteadminpanel.php:281 -msgid "Default site language" +#: actions/siteadminpanel.php:262 +#, fuzzy +msgid "Default language" msgstr "Langue du site par défaut" -#: actions/siteadminpanel.php:289 -msgid "Snapshots" -msgstr "Instantanés" - -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" -msgstr "Au hasard lors des requêtes web" - -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" -msgstr "Dans une tâche programée" - -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" -msgstr "Instantanés de données" - -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" -msgstr "Quand envoyer des données statistiques aux serveurs status.net" - -#: actions/siteadminpanel.php:301 -msgid "Frequency" -msgstr "Fréquence" - -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" -msgstr "Les instantanés seront envoyés une fois tous les N requêtes" - -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "URL de rapport" - -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" -msgstr "Les instantanés seront envoyés à cette URL" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" +msgstr "" -#: actions/siteadminpanel.php:315 +#: actions/siteadminpanel.php:271 msgid "Limits" msgstr "Limites" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Text limit" msgstr "Limite de texte" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Maximum number of characters for notices." msgstr "Nombre maximal de caractères pour les avis." -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "Dupe limit" msgstr "Limite de doublons" -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" "Combien de temps (en secondes) les utilisateurs doivent attendre pour poster " "la même chose de nouveau." +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "Notice du site" + +#: actions/sitenoticeadminpanel.php:67 +#, fuzzy +msgid "Edit site-wide message" +msgstr "Nouveau message" + +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +msgid "Unable to save site notice." +msgstr "Impossible de sauvegarder les parmètres de la conception." + +#: actions/sitenoticeadminpanel.php:113 +msgid "Max length for the site-wide notice is 255 chars" +msgstr "" + +#: actions/sitenoticeadminpanel.php:176 +#, fuzzy +msgid "Site notice text" +msgstr "Notice du site" + +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" +msgstr "" + +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "Notice du site" + #: actions/smssettings.php:58 msgid "SMS settings" msgstr "Paramètres SMS" @@ -4010,6 +4027,66 @@ msgstr "" msgid "No code entered" msgstr "Aucun code entré" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "Instantanés" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +msgid "Manage snapshot configuration" +msgstr "Modifier la configuration du site" + +#: actions/snapshotadminpanel.php:127 +msgid "Invalid snapshot run value." +msgstr "Valeur de lancement d’instantanés invalide." + +#: actions/snapshotadminpanel.php:133 +msgid "Snapshot frequency must be a number." +msgstr "La fréquence des instantanés doit être un nombre." + +#: actions/snapshotadminpanel.php:144 +msgid "Invalid snapshot report URL." +msgstr "URL de rapport d’instantanés invalide." + +#: actions/snapshotadminpanel.php:200 +msgid "Randomly during Web hit" +msgstr "Au hasard lors des requêtes web" + +#: actions/snapshotadminpanel.php:201 +msgid "In a scheduled job" +msgstr "Dans une tâche programée" + +#: actions/snapshotadminpanel.php:206 +msgid "Data snapshots" +msgstr "Instantanés de données" + +#: actions/snapshotadminpanel.php:208 +msgid "When to send statistical data to status.net servers" +msgstr "Quand envoyer des données statistiques aux serveurs status.net" + +#: actions/snapshotadminpanel.php:217 +msgid "Frequency" +msgstr "Fréquence" + +#: actions/snapshotadminpanel.php:218 +msgid "Snapshots will be sent once every N web hits" +msgstr "Les instantanés seront envoyés une fois tous les N requêtes" + +#: actions/snapshotadminpanel.php:226 +msgid "Report URL" +msgstr "URL de rapport" + +#: actions/snapshotadminpanel.php:227 +msgid "Snapshots will be sent to this URL" +msgstr "Les instantanés seront envoyés à cette URL" + +#: actions/snapshotadminpanel.php:248 +#, fuzzy +msgid "Save snapshot settings" +msgstr "Sauvegarder les paramètres du site" + #: actions/subedit.php:70 msgid "You are not subscribed to that profile." msgstr "Vous n’êtes pas abonné(e) à ce profil." @@ -4220,7 +4297,7 @@ msgstr "Aucune identité de profil dans la requête." msgid "Unsubscribed" msgstr "Désabonné" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4230,7 +4307,6 @@ msgstr "" #. TRANS: User admin panel title #: actions/useradminpanel.php:59 -#, fuzzy msgctxt "TITLE" msgid "User" msgstr "Utilisateur" @@ -4427,18 +4503,24 @@ msgstr "Groupes %1$s, page %2$d" msgid "Search for more groups" msgstr "Rechercher pour plus de groupes" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, php-format msgid "%s is not a member of any group." msgstr "%s n’est pas membre d’un groupe." -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" "Essayez de [rechercher un groupe](%%action.groupsearch%%) et de vous y " "inscrire." +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "Statuts de %1$s dans %2$s!" + #: actions/version.php:73 #, php-format msgid "StatusNet %s" @@ -4494,7 +4576,7 @@ msgstr "" msgid "Plugins" msgstr "Extensions" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 msgid "Version" msgstr "Version" @@ -4559,22 +4641,22 @@ msgstr "Impossible de mettre à jour le message avec un nouvel URI." msgid "DB error inserting hashtag: %s" msgstr "Erreur de base de donnée en insérant la marque (hashtag) : %s" -#: classes/Notice.php:239 +#: classes/Notice.php:241 msgid "Problem saving notice. Too long." msgstr "Problème lors de l’enregistrement de l’avis ; trop long." -#: classes/Notice.php:243 +#: classes/Notice.php:245 msgid "Problem saving notice. Unknown user." msgstr "Erreur lors de l’enregistrement de l’avis. Utilisateur inconnu." -#: classes/Notice.php:248 +#: classes/Notice.php:250 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:254 +#: classes/Notice.php:256 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4582,19 +4664,19 @@ msgstr "" "Trop de messages en double trop vite ! Prenez une pause et publiez à nouveau " "dans quelques minutes." -#: classes/Notice.php:260 +#: classes/Notice.php:262 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:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "Problème lors de l’enregistrement de l’avis." -#: classes/Notice.php:911 +#: classes/Notice.php:927 msgid "Problem saving group inbox." msgstr "Problème lors de l’enregistrement de la boîte de réception du groupe." -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4619,7 +4701,12 @@ msgstr "Pas abonné !" msgid "Couldn't delete self-subscription." msgstr "Impossible de supprimer l’abonnement à soi-même." -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "Impossible de cesser l’abonnement" + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "Impossible de cesser l’abonnement" @@ -4628,20 +4715,19 @@ msgstr "Impossible de cesser l’abonnement" msgid "Welcome to %1$s, @%2$s!" msgstr "Bienvenue à %1$s, @%2$s !" -#: classes/User_group.php:462 +#: classes/User_group.php:477 msgid "Could not create group." msgstr "Impossible de créer le groupe." -#: classes/User_group.php:471 -#, fuzzy +#: classes/User_group.php:486 msgid "Could not set group URI." msgstr "Impossible de définir l'URI du groupe." -#: classes/User_group.php:492 +#: classes/User_group.php:507 msgid "Could not set group membership." msgstr "Impossible d’établir l’inscription au groupe." -#: classes/User_group.php:506 +#: classes/User_group.php:521 msgid "Could not save local group info." msgstr "Impossible d’enregistrer les informations du groupe local." @@ -4682,194 +4768,171 @@ msgstr "%1$s - %2$s" msgid "Untitled page" msgstr "Page sans nom" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "Navigation primaire du site" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 -#, fuzzy +#: lib/action.php:430 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Profil personnel et flux des amis" -#: lib/action.php:442 -#, fuzzy +#: lib/action.php:433 msgctxt "MENU" msgid "Personal" msgstr "Personnel" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 -#, fuzzy +#: lib/action.php:435 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" -msgstr "Modifier votre courriel, avatar, mot de passe, profil" - -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "Compte" +msgstr "Modifier votre adresse électronique, avatar, mot de passe, profil" #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 -#, fuzzy +#: lib/action.php:440 msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Se connecter aux services" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "Connecter" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 -#, fuzzy +#: lib/action.php:446 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Modifier la configuration du site" -#: lib/action.php:460 -#, fuzzy +#: lib/action.php:449 msgctxt "MENU" msgid "Admin" msgstr "Administrer" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 -#, fuzzy, php-format +#: lib/action.php:453 +#, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" -msgstr "Inviter des amis et collègues à vous rejoindre dans %s" +msgstr "Inviter des amis et collègues à vous rejoindre sur %s" -#: lib/action.php:467 -#, fuzzy +#: lib/action.php:456 msgctxt "MENU" msgid "Invite" msgstr "Inviter" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 -#, fuzzy +#: lib/action.php:462 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Fermer la session" -#: lib/action.php:476 -#, fuzzy +#: lib/action.php:465 msgctxt "MENU" msgid "Logout" -msgstr "Fermeture de session" +msgstr "Déconnexion" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 -#, fuzzy +#: lib/action.php:470 msgctxt "TOOLTIP" msgid "Create an account" msgstr "Créer un compte" -#: lib/action.php:484 -#, fuzzy +#: lib/action.php:473 msgctxt "MENU" msgid "Register" -msgstr "Créer un compte" +msgstr "S'inscrire" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 -#, fuzzy +#: lib/action.php:476 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Ouvrir une session" -#: lib/action.php:490 -#, fuzzy +#: lib/action.php:479 msgctxt "MENU" msgid "Login" -msgstr "Ouvrir une session" +msgstr "Connexion" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 -#, fuzzy +#: lib/action.php:482 msgctxt "TOOLTIP" msgid "Help me!" msgstr "À l’aide !" -#: lib/action.php:496 -#, fuzzy +#: lib/action.php:485 msgctxt "MENU" msgid "Help" msgstr "Aide" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 -#, fuzzy +#: lib/action.php:488 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Rechercher des personnes ou du texte" -#: lib/action.php:502 -#, fuzzy +#: lib/action.php:491 msgctxt "MENU" msgid "Search" msgstr "Rechercher" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 msgid "Site notice" msgstr "Notice du site" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "Vues locales" -#: lib/action.php:656 +#: lib/action.php:645 msgid "Page notice" msgstr "Avis de la page" -#: lib/action.php:758 +#: lib/action.php:747 msgid "Secondary site navigation" msgstr "Navigation secondaire du site" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "Aide" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "À propos" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "FAQ" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "CGU" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "Confidentialité" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "Source" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "Contact" -#: lib/action.php:782 +#: lib/action.php:771 msgid "Badge" msgstr "Insigne" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "Licence du logiciel StatusNet" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4878,12 +4941,12 @@ msgstr "" "**%%site.name%%** est un service de microblogging qui vous est proposé par " "[%%site.broughtby%%](%%site.broughtbyurl%%)." -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** est un service de micro-blogging." -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4894,57 +4957,57 @@ msgstr "" "version %s, disponible sous la licence [GNU Affero General Public License] " "(http://www.fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:832 +#: lib/action.php:821 msgid "Site content license" msgstr "Licence du contenu du site" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Le contenu et les données de %1$s sont privés et confidentiels." -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" "Le contenu et les données sont sous le droit d’auteur de %1$s. Tous droits " "réservés." -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Le contenu et les données sont sous le droit d’auteur du contributeur. Tous " "droits réservés." -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "Tous " -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "licence." -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "Pagination" -#: lib/action.php:1172 +#: lib/action.php:1161 msgid "After" msgstr "Après" -#: lib/action.php:1180 +#: lib/action.php:1169 msgid "Before" msgstr "Avant" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "Impossible de gérer le contenu distant pour le moment." -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "Impossible de gérer le contenu XML embarqué pour le moment." -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "Impossible de gérer le contenu en Base64 embarqué pour le moment." @@ -4959,91 +5022,78 @@ msgid "Changes to that panel are not allowed." msgstr "La modification de ce panneau n’est pas autorisée." #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 msgid "showForm() not implemented." msgstr "showForm() n’a pas été implémentée." #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 msgid "saveSettings() not implemented." msgstr "saveSettings() n’a pas été implémentée." #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 msgid "Unable to delete design setting." msgstr "Impossible de supprimer les paramètres de conception." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 msgid "Basic site configuration" msgstr "Configuration basique du site" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 -#, fuzzy +#: lib/adminpanelaction.php:350 msgctxt "MENU" msgid "Site" msgstr "Site" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 msgid "Design configuration" msgstr "Configuration de la conception" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 -#, fuzzy +#: lib/adminpanelaction.php:358 msgctxt "MENU" msgid "Design" msgstr "Conception" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 msgid "User configuration" msgstr "Configuration utilisateur" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -#, fuzzy -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "Utilisateur" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 msgid "Access configuration" msgstr "Configuration d’accès" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "Accès" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 msgid "Paths configuration" msgstr "Configuration des chemins" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -#, fuzzy -msgctxt "MENU" -msgid "Paths" -msgstr "Chemins" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 msgid "Sessions configuration" msgstr "Configuration des sessions" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "Sessions" +msgid "Edit site notice" +msgstr "Notice du site" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "Configuration des chemins" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5581,6 +5631,11 @@ msgstr "Choissez une marque pour réduire la liste" msgid "Go" msgstr "Aller" +#: 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 "URL du site Web ou blogue du groupe ou sujet " @@ -6075,7 +6130,6 @@ msgid "Available characters" msgstr "Caractères restants" #: lib/messageform.php:178 lib/noticeform.php:236 -#, fuzzy msgctxt "Send button for sending notice" msgid "Send" msgstr "Envoyer" @@ -6202,10 +6256,6 @@ msgstr "Réponses" msgid "Favorites" msgstr "Favoris" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "Utilisateur" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Boîte de réception" @@ -6231,7 +6281,7 @@ msgstr "Marques dans les avis de %s" msgid "Unknown" msgstr "Inconnu" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Abonnements" @@ -6239,23 +6289,23 @@ msgstr "Abonnements" msgid "All subscriptions" msgstr "Tous les abonnements" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Abonnés" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 msgid "All subscribers" msgstr "Tous les abonnés" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 msgid "User ID" msgstr "ID de l’utilisateur" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "Membre depuis" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "Tous les groupes" @@ -6295,7 +6345,12 @@ msgstr "Reprendre cet avis ?" msgid "Repeat this notice" msgstr "Reprendre cet avis" -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, fuzzy, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "Bloquer cet utilisateur de de groupe" + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "Aucun utilisateur unique défini pour le mode mono-utilisateur." @@ -6449,47 +6504,64 @@ msgstr "Message" msgid "Moderate" msgstr "Modérer" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "Profil de l’utilisateur" + +#: lib/userprofile.php:354 +#, fuzzy +msgctxt "role" +msgid "Administrator" +msgstr "Administrateurs" + +#: lib/userprofile.php:355 +#, fuzzy +msgctxt "role" +msgid "Moderator" +msgstr "Modérer" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "il y a quelques secondes" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "il y a 1 minute" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "il y a %d minutes" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "il y a 1 heure" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "il y a %d heures" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "il y a 1 jour" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "il y a %d jours" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "il y a 1 mois" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "il y a %d mois" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "il y a environ 1 an" diff --git a/locale/ga/LC_MESSAGES/statusnet.po b/locale/ga/LC_MESSAGES/statusnet.po index 0b62fe337..97c3d45f1 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-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:02:51+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:56:28+0000\n" "Language-Team: Irish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ga\n" "X-Message-Group: out-statusnet\n" @@ -21,7 +21,8 @@ msgstr "" "4;\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 #, fuzzy msgid "Access" msgstr "Aceptar" @@ -125,7 +126,7 @@ msgstr "%s e amigos" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -180,7 +181,7 @@ msgid "" msgstr "" #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 #, fuzzy msgid "You and friends" msgstr "%s e amigos" @@ -208,11 +209,11 @@ msgstr "Actualizacións dende %1$s e amigos en %2$s!" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "Método da API non atopado" @@ -585,7 +586,7 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 #, fuzzy msgid "Account" msgstr "Sobre" @@ -679,18 +680,6 @@ msgstr "%s / Favoritos dende %s" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%s updates favorited by %s / %s." -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "Liña de tempo de %s" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "Actualizacións dende %1$s en %2$s!" - #: actions/apitimelinementions.php:117 #, fuzzy, php-format msgid "%1$s / Updates mentioning %2$s" @@ -701,12 +690,12 @@ msgstr "%1$s / Chíos que respostan a %2$s" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "Hai %1$s chíos en resposta a chíos dende %2$s / %3$s." -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "Liña de tempo pública de %s" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s chíos de calquera!" @@ -965,7 +954,7 @@ msgid "Conversation" msgstr "Código de confirmación." #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Chíos" @@ -987,7 +976,7 @@ msgstr "Non estás suscrito a ese perfil" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 #, fuzzy msgid "There was a problem with your session token." msgstr "Houbo un problema co teu token de sesión. Tentao de novo, anda..." @@ -1196,8 +1185,9 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1329,7 +1319,7 @@ msgstr "O teu Bio é demasiado longo (max 140 car.)." msgid "Could not update group." msgstr "Non se puido actualizar o usuario." -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 #, fuzzy msgid "Could not create aliases." msgstr "Non se puido crear o favorito." @@ -1457,7 +1447,7 @@ msgid "Cannot normalize that email address" msgstr "Esa dirección de correo non se pode normalizar " #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Non é un enderezo de correo válido." @@ -1653,6 +1643,25 @@ msgstr "Ningún chío." msgid "Cannot read file." msgstr "Bloqueo de usuario fallido." +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "Tamaño inválido." + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "Non podes enviar mensaxes a este usurio." + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "O usuario bloqueoute." + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1807,12 +1816,18 @@ msgstr "" msgid "Make this user an admin" msgstr "" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "Liña de tempo de %s" + #: actions/grouprss.php:140 #, fuzzy, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Actualizacións dende %1$s en %2$s!" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "" @@ -2434,8 +2449,8 @@ msgstr "Conectar" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "Non é un formato de datos soportado." @@ -2583,7 +2598,8 @@ msgstr "Non se pode gardar a contrasinal." msgid "Password saved." msgstr "Contrasinal gardada." -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "" @@ -2711,7 +2727,7 @@ msgstr "" msgid "SSL" msgstr "SMS" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 #, fuzzy msgid "Never" msgstr "Recuperar" @@ -2770,11 +2786,11 @@ msgstr "%s non é unha etiqueta de xente válida" msgid "Users self-tagged with %1$s - page %2$d" msgstr "Usuarios auto-etiquetados como %s - páxina %d" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "Contido do chío inválido" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" @@ -2857,7 +2873,7 @@ msgstr "" "Etiquetas para o teu usuario (letras, números, -, ., e _), separados por " "coma ou espazo" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "Linguaxe" @@ -2885,7 +2901,7 @@ msgstr "" msgid "Bio is too long (max %d chars)." msgstr "O teu Bio é demasiado longo (max 140 car.)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Fuso Horario non seleccionado" @@ -3205,7 +3221,7 @@ msgid "Same as password above. Required." msgstr "A mesma contrasinal que arriba. Requerido." #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "Correo Electrónico" @@ -3313,7 +3329,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "Enderezo do teu perfil en outro servizo de microblogaxe compatíbel" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "Subscribir" @@ -3418,6 +3434,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Mensaxe de %1$s en %2$s" +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "Non podes enviar mensaxes a este usurio." + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "Usuario sen un perfil que coincida." + #: actions/rsd.php:146 actions/version.php:157 #, fuzzy msgid "StatusNet" @@ -3433,7 +3459,9 @@ msgstr "Non podes enviar mensaxes a este usurio." msgid "User is already sandboxed." msgstr "O usuario bloqueoute." +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "" @@ -3457,7 +3485,7 @@ msgstr "" msgid "Turn on debugging output for sessions." msgstr "" -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 #, fuzzy msgid "Save site settings" @@ -3494,8 +3522,8 @@ msgstr "Invitación(s) enviada(s)." msgid "Description" msgstr "Subscricións" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "Estatísticas" @@ -3631,48 +3659,48 @@ msgstr "" msgid "Group actions" msgstr "Outras opcions" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Fonte de chíos para %s" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Fonte de chíos para %s" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "Fonte de chíos para %s" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, fuzzy, php-format msgid "FOAF for %s group" msgstr "Band. Saída para %s" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 #, fuzzy msgid "Members" msgstr "Membro dende" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 #, fuzzy msgid "(None)" msgstr "(nada)" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 #, fuzzy msgid "Created" msgstr "Crear" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3686,7 +3714,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:462 +#: actions/showgroup.php:463 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3699,7 +3727,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:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "" @@ -3820,150 +3848,139 @@ msgid "User is already silenced." msgstr "O usuario bloqueoute." #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +msgid "Basic settings for this StatusNet site" msgstr "" -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "" -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 #, fuzzy msgid "You must have a valid contact email address." msgstr "Non é unha dirección de correo válida" -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "" #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "" - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "" - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "" - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "" -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "" -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 #, fuzzy msgid "Site name" msgstr "Novo chío" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 #, fuzzy msgid "Contact email address for your site" msgstr "Nova dirección de email para posterar en %s" -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 #, fuzzy msgid "Local" msgstr "Localización" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "" -#: actions/siteadminpanel.php:281 +#: actions/siteadminpanel.php:262 #, fuzzy -msgid "Default site language" +msgid "Default language" msgstr "Linguaxe preferida" -#: actions/siteadminpanel.php:289 -msgid "Snapshots" -msgstr "" - -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" msgstr "" -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" +#: actions/siteadminpanel.php:271 +msgid "Limits" msgstr "" -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" +#: actions/siteadminpanel.php:274 +msgid "Text limit" msgstr "" -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" +#: actions/siteadminpanel.php:274 +msgid "Maximum number of characters for notices." msgstr "" -#: actions/siteadminpanel.php:301 -msgid "Frequency" +#: actions/siteadminpanel.php:278 +msgid "Dupe limit" msgstr "" -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" +#: actions/siteadminpanel.php:278 +msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "" +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "Novo chío" -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" -msgstr "" +#: actions/sitenoticeadminpanel.php:67 +#, fuzzy +msgid "Edit site-wide message" +msgstr "Nova mensaxe" -#: actions/siteadminpanel.php:315 -msgid "Limits" -msgstr "" +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +msgid "Unable to save site notice." +msgstr "Non se puideron gardar os teus axustes de Twitter!" -#: actions/siteadminpanel.php:318 -msgid "Text limit" +#: actions/sitenoticeadminpanel.php:113 +msgid "Max length for the site-wide notice is 255 chars" msgstr "" -#: actions/siteadminpanel.php:318 -msgid "Maximum number of characters for notices." -msgstr "" +#: actions/sitenoticeadminpanel.php:176 +#, fuzzy +msgid "Site notice text" +msgstr "Novo chío" -#: actions/siteadminpanel.php:322 -msgid "Dupe limit" +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" msgstr "" -#: actions/siteadminpanel.php:322 -msgid "How long users must wait (in seconds) to post the same thing again." -msgstr "" +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "Novo chío" #: actions/smssettings.php:58 #, fuzzy @@ -4068,6 +4085,66 @@ msgstr "" msgid "No code entered" msgstr "Non se inseriu ningún código" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +msgid "Manage snapshot configuration" +msgstr "Navegación de subscricións" + +#: 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 +#, fuzzy +msgid "Save snapshot settings" +msgstr "Configuracións de Twitter" + #: actions/subedit.php:70 msgid "You are not subscribed to that profile." msgstr "Non estás suscrito a ese perfil" @@ -4275,7 +4352,7 @@ msgstr "Non hai identificador de perfil na peticion." msgid "Unsubscribed" msgstr "De-suscribido" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4488,16 +4565,22 @@ msgstr "Tódalas subscricións" msgid "Search for more groups" msgstr "" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, fuzzy, php-format msgid "%s is not a member of any group." msgstr "%1s non é unha orixe fiable." -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "Actualizacións dende %1$s en %2$s!" + #: actions/version.php:73 #, fuzzy, php-format msgid "StatusNet %s" @@ -4541,7 +4624,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 #, fuzzy msgid "Version" msgstr "Persoal" @@ -4610,23 +4693,23 @@ msgstr "Non se puido actualizar a mensaxe coa nova URI." msgid "DB error inserting hashtag: %s" msgstr "Erro ó inserir o hashtag na BD: %s" -#: classes/Notice.php:239 +#: classes/Notice.php:241 #, fuzzy msgid "Problem saving notice. Too long." msgstr "Aconteceu un erro ó gardar o chío." -#: classes/Notice.php:243 +#: classes/Notice.php:245 msgid "Problem saving notice. Unknown user." msgstr "Aconteceu un erro ó gardar o chío. Usuario descoñecido." -#: classes/Notice.php:248 +#: classes/Notice.php:250 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:254 +#: classes/Notice.php:256 #, fuzzy msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " @@ -4635,20 +4718,20 @@ msgstr "" "Demasiados chíos en pouco tempo; tomate un respiro e envíao de novo dentro " "duns minutos." -#: classes/Notice.php:260 +#: classes/Notice.php:262 msgid "You are banned from posting notices on this site." msgstr "Tes restrinxido o envio de chíos neste sitio." -#: classes/Notice.php:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "Aconteceu un erro ó gardar o chío." -#: classes/Notice.php:911 +#: classes/Notice.php:927 #, fuzzy msgid "Problem saving group inbox." msgstr "Aconteceu un erro ó gardar o chío." -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4676,7 +4759,12 @@ msgstr "Non está suscrito!" msgid "Couldn't delete self-subscription." msgstr "Non se pode eliminar a subscrición." -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "Non se pode eliminar a subscrición." + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "Non se pode eliminar a subscrición." @@ -4685,22 +4773,22 @@ msgstr "Non se pode eliminar a subscrición." msgid "Welcome to %1$s, @%2$s!" msgstr "Mensaxe de %1$s en %2$s" -#: classes/User_group.php:462 +#: classes/User_group.php:477 #, fuzzy msgid "Could not create group." msgstr "Non se puido crear o favorito." -#: classes/User_group.php:471 +#: classes/User_group.php:486 #, fuzzy msgid "Could not set group URI." msgstr "Non se pode gardar a subscrición." -#: classes/User_group.php:492 +#: classes/User_group.php:507 #, fuzzy msgid "Could not set group membership." msgstr "Non se pode gardar a subscrición." -#: classes/User_group.php:506 +#: classes/User_group.php:521 #, fuzzy msgid "Could not save local group info." msgstr "Non se pode gardar a subscrición." @@ -4744,62 +4832,55 @@ msgstr "%1$s (%2$s)" msgid "Untitled page" msgstr "" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 +#: lib/action.php:430 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:442 +#: lib/action.php:433 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "Persoal" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 +#: lib/action.php:435 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Cambiar contrasinal" -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "Sobre" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 +#: lib/action.php:440 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Non se pode redireccionar ao servidor: %s" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "Conectar" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 +#: lib/action.php:446 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Navegación de subscricións" -#: lib/action.php:460 +#: lib/action.php:449 msgctxt "MENU" msgid "Admin" msgstr "" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 +#: lib/action.php:453 #, fuzzy, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" @@ -4807,131 +4888,132 @@ msgstr "" "Emprega este formulario para invitar ós teus amigos e colegas a empregar " "este servizo." -#: lib/action.php:467 +#: lib/action.php:456 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "Invitar" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 +#: lib/action.php:462 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "" -#: lib/action.php:476 +#: lib/action.php:465 #, fuzzy msgctxt "MENU" msgid "Logout" msgstr "Sair" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 +#: lib/action.php:470 #, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "Crear nova conta" -#: lib/action.php:484 +#: lib/action.php:473 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "Rexistrar" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 +#: lib/action.php:476 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "" -#: lib/action.php:490 +#: lib/action.php:479 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "Inicio de sesión" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 +#: lib/action.php:482 #, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "Axuda" -#: lib/action.php:496 +#: lib/action.php:485 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "Axuda" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 +#: lib/action.php:488 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "" -#: lib/action.php:502 +#: lib/action.php:491 #, fuzzy msgctxt "MENU" msgid "Search" msgstr "Buscar" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 #, fuzzy msgid "Site notice" msgstr "Novo chío" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "" -#: lib/action.php:656 +#: lib/action.php:645 #, fuzzy msgid "Page notice" msgstr "Novo chío" -#: lib/action.php:758 +#: lib/action.php:747 #, fuzzy msgid "Secondary site navigation" msgstr "Navegación de subscricións" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "Axuda" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "Sobre" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "Preguntas frecuentes" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "Privacidade" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "Fonte" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "Contacto" -#: lib/action.php:782 +#: lib/action.php:771 msgid "Badge" msgstr "" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4940,12 +5022,12 @@ msgstr "" "**%%site.name%%** é un servizo de microbloguexo que che proporciona [%%site." "broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** é un servizo de microbloguexo." -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4956,57 +5038,57 @@ msgstr "" "%s, dispoñible baixo licenza [GNU Affero General Public License](http://www." "fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:832 +#: lib/action.php:821 #, fuzzy msgid "Site content license" msgstr "Atopar no contido dos chíos" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:858 +#: lib/action.php:847 #, fuzzy msgid "All " msgstr "Todos" -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "" -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "" -#: lib/action.php:1172 +#: lib/action.php:1161 #, fuzzy msgid "After" msgstr "« Despois" -#: lib/action.php:1180 +#: lib/action.php:1169 #, fuzzy msgid "Before" msgstr "Antes »" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "" @@ -5023,99 +5105,89 @@ msgid "Changes to that panel are not allowed." msgstr "Non se permite o rexistro neste intre." #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 #, fuzzy msgid "showForm() not implemented." msgstr "Comando non implementado." #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 #, fuzzy msgid "saveSettings() not implemented." msgstr "Comando non implementado." #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 #, fuzzy msgid "Unable to delete design setting." msgstr "Non se puideron gardar os teus axustes de Twitter!" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 #, fuzzy msgid "Basic site configuration" msgstr "Confirmar correo electrónico" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 +#: lib/adminpanelaction.php:350 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "Invitar" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 #, fuzzy msgid "Design configuration" msgstr "Confirmación de SMS" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 +#: lib/adminpanelaction.php:358 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "Persoal" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 #, fuzzy msgid "User configuration" msgstr "Confirmación de SMS" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -#, fuzzy -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "Usuario" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 #, fuzzy msgid "Access configuration" msgstr "Confirmación de SMS" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "Aceptar" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 #, fuzzy msgid "Paths configuration" msgstr "Confirmación de SMS" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -msgctxt "MENU" -msgid "Paths" -msgstr "" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 #, fuzzy msgid "Sessions configuration" msgstr "Confirmación de SMS" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "Persoal" +msgid "Edit site notice" +msgstr "Novo chío" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "Confirmación de SMS" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5659,6 +5731,11 @@ msgstr "Elixe unha etiqueta para reducila lista" msgid "Go" msgstr "Ir" +#: lib/grantroleform.php:91 +#, php-format +msgid "Grant this user the \"%s\" role" +msgstr "" + #: lib/groupeditform.php:163 #, fuzzy msgid "URL of the homepage or blog of the group or topic" @@ -6273,10 +6350,6 @@ msgstr "Respostas" msgid "Favorites" msgstr "Favoritos" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "Usuario" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Band. Entrada" @@ -6303,7 +6376,7 @@ msgstr "O usuario non ten último chio." msgid "Unknown" msgstr "Acción descoñecida" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Subscricións" @@ -6311,25 +6384,25 @@ msgstr "Subscricións" msgid "All subscriptions" msgstr "Tódalas subscricións" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Subscritores" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 #, fuzzy msgid "All subscribers" msgstr "Subscritores" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 #, fuzzy msgid "User ID" msgstr "Usuario" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "Membro dende" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 #, fuzzy msgid "All groups" msgstr "Tódalas etiquetas" @@ -6374,7 +6447,12 @@ msgstr "Non se pode eliminar este chíos." msgid "Repeat this notice" msgstr "Non se pode eliminar este chíos." -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "" + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "" @@ -6546,47 +6624,62 @@ msgstr "Nova mensaxe" msgid "Moderate" msgstr "" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "O usuario non ten perfil." + +#: lib/userprofile.php:354 +msgctxt "role" +msgid "Administrator" +msgstr "" + +#: lib/userprofile.php:355 +msgctxt "role" +msgid "Moderator" +msgstr "" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "fai uns segundos" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "fai un minuto" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "fai %d minutos" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "fai unha hora" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "fai %d horas" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "fai un día" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "fai %d días" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "fai un mes" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "fai %d meses" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "fai un ano" diff --git a/locale/he/LC_MESSAGES/statusnet.po b/locale/he/LC_MESSAGES/statusnet.po index 89fd4dd7a..ea9275685 100644 --- a/locale/he/LC_MESSAGES/statusnet.po +++ b/locale/he/LC_MESSAGES/statusnet.po @@ -7,19 +7,20 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:02:54+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:56:31+0000\n" "Language-Team: Hebrew\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 #, fuzzy msgid "Access" msgstr "קבל" @@ -122,7 +123,7 @@ msgstr "%s וחברים" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -177,7 +178,7 @@ msgid "" msgstr "" #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 #, fuzzy msgid "You and friends" msgstr "%s וחברים" @@ -205,11 +206,11 @@ msgstr "" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "קוד האישור לא נמצא." @@ -578,7 +579,7 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 #, fuzzy msgid "Account" msgstr "אודות" @@ -670,18 +671,6 @@ msgstr "הסטטוס של %1$s ב-%2$s " msgid "%1$s updates favorited by %2$s / %2$s." msgstr "מיקרובלוג מאת %s" -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "" - #: actions/apitimelinementions.php:117 #, fuzzy, php-format msgid "%1$s / Updates mentioning %2$s" @@ -692,12 +681,12 @@ msgstr "הסטטוס של %1$s ב-%2$s " msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "" @@ -954,7 +943,7 @@ msgid "Conversation" msgstr "מיקום" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "הודעות" @@ -976,7 +965,7 @@ msgstr "לא שלחנו אלינו את הפרופיל הזה" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "" @@ -1180,8 +1169,9 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1307,7 +1297,7 @@ msgstr "הביוגרפיה ארוכה מידי (לכל היותר 140 אותיו msgid "Could not update group." msgstr "עידכון המשתמש נכשל." -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 #, fuzzy msgid "Could not create aliases." msgstr "שמירת מידע התמונה נכשל" @@ -1431,7 +1421,7 @@ msgid "Cannot normalize that email address" msgstr "" #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "" @@ -1626,6 +1616,25 @@ msgstr "אין הודעה כזו." msgid "Cannot read file." msgstr "אין הודעה כזו." +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "גודל לא חוקי." + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "לא שלחנו אלינו את הפרופיל הזה" + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "למשתמש אין פרופיל." + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1778,12 +1787,18 @@ msgstr "" msgid "Make this user an admin" msgstr "" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "" + #: actions/grouprss.php:140 #, fuzzy, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "מיקרובלוג מאת %s" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "קבוצות" @@ -2365,8 +2380,8 @@ msgstr "התחבר" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "" @@ -2514,7 +2529,8 @@ msgstr "לא ניתן לשמור את הסיסמה" msgid "Password saved." msgstr "הסיסמה נשמרה." -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "" @@ -2641,7 +2657,7 @@ msgstr "" msgid "SSL" msgstr "סמס" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 #, fuzzy msgid "Never" msgstr "שיחזור" @@ -2700,11 +2716,11 @@ msgstr "לא עומד בכללים ל-OpenID." msgid "Users self-tagged with %1$s - page %2$d" msgstr "מיקרובלוג מאת %s" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "תוכן ההודעה לא חוקי" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" @@ -2782,7 +2798,7 @@ msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "שפה" @@ -2808,7 +2824,7 @@ msgstr "" msgid "Bio is too long (max %d chars)." msgstr "הביוגרפיה ארוכה מידי (לכל היותר 140 אותיות)" -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "" @@ -3113,7 +3129,7 @@ msgid "Same as password above. Required." msgstr "" #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "" @@ -3201,7 +3217,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "כתובת הפרופיל שלך בשרות ביקרובלוג תואם אחר" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "הירשם כמנוי" @@ -3304,6 +3320,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "תגובת עבור %s" +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "לא שלחנו אלינו את הפרופיל הזה" + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "למשתמש אין פרופיל." + #: actions/rsd.php:146 actions/version.php:157 #, fuzzy msgid "StatusNet" @@ -3319,7 +3345,9 @@ msgstr "לא שלחנו אלינו את הפרופיל הזה" msgid "User is already sandboxed." msgstr "למשתמש אין פרופיל." +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "" @@ -3343,7 +3371,7 @@ msgstr "" msgid "Turn on debugging output for sessions." msgstr "" -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 #, fuzzy msgid "Save site settings" @@ -3379,8 +3407,8 @@ msgstr "מיקום" msgid "Description" msgstr "הרשמות" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "סטטיסטיקה" @@ -3514,47 +3542,47 @@ msgstr "" msgid "Group actions" msgstr "" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "הזנת הודעות של %s" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "הזנת הודעות של %s" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "הזנת הודעות של %s" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, fuzzy, php-format msgid "FOAF for %s group" msgstr "הזנת הודעות של %s" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 #, fuzzy msgid "Members" msgstr "חבר מאז" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 #, fuzzy msgid "Created" msgstr "צור" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3564,7 +3592,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:462 +#: actions/showgroup.php:463 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3573,7 +3601,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "" @@ -3685,147 +3713,136 @@ msgid "User is already silenced." msgstr "למשתמש אין פרופיל." #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +msgid "Basic settings for this StatusNet site" msgstr "" -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "" -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 msgid "You must have a valid contact email address." msgstr "" -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "" #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "" - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "" - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "" - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "" -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "" -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 #, fuzzy msgid "Site name" msgstr "הודעה חדשה" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 msgid "Contact email address for your site" msgstr "" -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 #, fuzzy msgid "Local" msgstr "מיקום" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "" -#: actions/siteadminpanel.php:281 -msgid "Default site language" +#: actions/siteadminpanel.php:262 +msgid "Default language" msgstr "" -#: actions/siteadminpanel.php:289 -msgid "Snapshots" -msgstr "" - -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" msgstr "" -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" +#: actions/siteadminpanel.php:271 +msgid "Limits" msgstr "" -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" +#: actions/siteadminpanel.php:274 +msgid "Text limit" msgstr "" -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" +#: actions/siteadminpanel.php:274 +msgid "Maximum number of characters for notices." msgstr "" -#: actions/siteadminpanel.php:301 -msgid "Frequency" +#: actions/siteadminpanel.php:278 +msgid "Dupe limit" msgstr "" -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" +#: actions/siteadminpanel.php:278 +msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "" +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "הודעה חדשה" -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" -msgstr "" +#: actions/sitenoticeadminpanel.php:67 +#, fuzzy +msgid "Edit site-wide message" +msgstr "הודעה חדשה" -#: actions/siteadminpanel.php:315 -msgid "Limits" -msgstr "" +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +msgid "Unable to save site notice." +msgstr "בעיה בשמירת ההודעה." -#: actions/siteadminpanel.php:318 -msgid "Text limit" +#: actions/sitenoticeadminpanel.php:113 +msgid "Max length for the site-wide notice is 255 chars" msgstr "" -#: actions/siteadminpanel.php:318 -msgid "Maximum number of characters for notices." -msgstr "" +#: actions/sitenoticeadminpanel.php:176 +#, fuzzy +msgid "Site notice text" +msgstr "הודעה חדשה" -#: actions/siteadminpanel.php:322 -msgid "Dupe limit" +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" msgstr "" -#: actions/siteadminpanel.php:322 -msgid "How long users must wait (in seconds) to post the same thing again." -msgstr "" +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "הודעה חדשה" #: actions/smssettings.php:58 #, fuzzy @@ -3922,6 +3939,66 @@ msgstr "" msgid "No code entered" msgstr "" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +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 +#, fuzzy +msgid "Save snapshot settings" +msgstr "הגדרות" + #: actions/subedit.php:70 #, fuzzy msgid "You are not subscribed to that profile." @@ -4130,7 +4207,7 @@ msgstr "השרת לא החזיר כתובת פרופיל" msgid "Unsubscribed" msgstr "בטל מנוי" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4337,16 +4414,22 @@ msgstr "כל המנויים" msgid "Search for more groups" msgstr "" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, fuzzy, php-format msgid "%s is not a member of any group." msgstr "לא שלחנו אלינו את הפרופיל הזה" -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "" + #: actions/version.php:73 #, fuzzy, php-format msgid "StatusNet %s" @@ -4390,7 +4473,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 #, fuzzy msgid "Version" msgstr "אישי" @@ -4458,41 +4541,41 @@ msgstr "" msgid "DB error inserting hashtag: %s" msgstr "" -#: classes/Notice.php:239 +#: classes/Notice.php:241 #, fuzzy msgid "Problem saving notice. Too long." msgstr "בעיה בשמירת ההודעה." -#: classes/Notice.php:243 +#: classes/Notice.php:245 #, fuzzy msgid "Problem saving notice. Unknown user." msgstr "בעיה בשמירת ההודעה." -#: classes/Notice.php:248 +#: classes/Notice.php:250 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:254 +#: classes/Notice.php:256 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:260 +#: classes/Notice.php:262 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "בעיה בשמירת ההודעה." -#: classes/Notice.php:911 +#: classes/Notice.php:927 #, fuzzy msgid "Problem saving group inbox." msgstr "בעיה בשמירת ההודעה." -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4520,7 +4603,12 @@ msgstr "לא מנוי!" msgid "Couldn't delete self-subscription." msgstr "מחיקת המנוי לא הצליחה." -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "מחיקת המנוי לא הצליחה." + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "מחיקת המנוי לא הצליחה." @@ -4529,22 +4617,22 @@ msgstr "מחיקת המנוי לא הצליחה." msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:462 +#: classes/User_group.php:477 #, fuzzy msgid "Could not create group." msgstr "שמירת מידע התמונה נכשל" -#: classes/User_group.php:471 +#: classes/User_group.php:486 #, fuzzy msgid "Could not set group URI." msgstr "יצירת המנוי נכשלה." -#: classes/User_group.php:492 +#: classes/User_group.php:507 #, fuzzy msgid "Could not set group membership." msgstr "יצירת המנוי נכשלה." -#: classes/User_group.php:506 +#: classes/User_group.php:521 #, fuzzy msgid "Could not save local group info." msgstr "יצירת המנוי נכשלה." @@ -4588,192 +4676,186 @@ msgstr "הסטטוס של %1$s ב-%2$s " msgid "Untitled page" msgstr "" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 +#: lib/action.php:430 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:442 +#: lib/action.php:433 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "אישי" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 +#: lib/action.php:435 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "שנה סיסמה" -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "אודות" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 +#: lib/action.php:440 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "נכשלה ההפניה לשרת: %s" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "התחבר" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 +#: lib/action.php:446 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "הרשמות" -#: lib/action.php:460 +#: lib/action.php:449 msgctxt "MENU" msgid "Admin" msgstr "" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 +#: lib/action.php:453 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "" -#: lib/action.php:467 +#: lib/action.php:456 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "גודל לא חוקי." #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 +#: lib/action.php:462 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "" -#: lib/action.php:476 +#: lib/action.php:465 #, fuzzy msgctxt "MENU" msgid "Logout" msgstr "צא" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 +#: lib/action.php:470 #, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "צור חשבון חדש" -#: lib/action.php:484 +#: lib/action.php:473 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "הירשם" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 +#: lib/action.php:476 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "" -#: lib/action.php:490 +#: lib/action.php:479 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "היכנס" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 +#: lib/action.php:482 #, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "עזרה" -#: lib/action.php:496 +#: lib/action.php:485 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "עזרה" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 +#: lib/action.php:488 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "" -#: lib/action.php:502 +#: lib/action.php:491 #, fuzzy msgctxt "MENU" msgid "Search" msgstr "חיפוש" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 #, fuzzy msgid "Site notice" msgstr "הודעה חדשה" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "" -#: lib/action.php:656 +#: lib/action.php:645 #, fuzzy msgid "Page notice" msgstr "הודעה חדשה" -#: lib/action.php:758 +#: lib/action.php:747 #, fuzzy msgid "Secondary site navigation" msgstr "הרשמות" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "עזרה" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "אודות" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "רשימת שאלות נפוצות" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "פרטיות" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "מקור" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "צור קשר" -#: lib/action.php:782 +#: lib/action.php:771 msgid "Badge" msgstr "" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4782,12 +4864,12 @@ msgstr "" "**%%site.name%%** הוא שרות ביקרובלוג הניתן על ידי [%%site.broughtby%%](%%" "site.broughtbyurl%%)." -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** הוא שרות ביקרובלוג." -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4798,56 +4880,56 @@ msgstr "" "s, המופצת תחת רשיון [GNU Affero General Public License](http://www.fsf.org/" "licensing/licenses/agpl-3.0.html)" -#: lib/action.php:832 +#: lib/action.php:821 #, fuzzy msgid "Site content license" msgstr "הודעה חדשה" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "" -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "" -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "" -#: lib/action.php:1172 +#: lib/action.php:1161 #, fuzzy msgid "After" msgstr "<< אחרי" -#: lib/action.php:1180 +#: lib/action.php:1169 #, fuzzy msgid "Before" msgstr "לפני >>" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "" @@ -4862,95 +4944,85 @@ msgid "Changes to that panel are not allowed." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 msgid "showForm() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 msgid "saveSettings() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 msgid "Unable to delete design setting." msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 #, fuzzy msgid "Basic site configuration" msgstr "הרשמות" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 +#: lib/adminpanelaction.php:350 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "הודעה חדשה" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 msgid "Design configuration" msgstr "" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 +#: lib/adminpanelaction.php:358 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "אישי" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 #, fuzzy msgid "User configuration" msgstr "הרשמות" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -#, fuzzy -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "מתשמש" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 #, fuzzy msgid "Access configuration" msgstr "הרשמות" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "קבל" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 #, fuzzy msgid "Paths configuration" msgstr "הרשמות" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -msgctxt "MENU" -msgid "Paths" -msgstr "" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 #, fuzzy msgid "Sessions configuration" msgstr "הרשמות" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "אישי" +msgid "Edit site notice" +msgstr "הודעה חדשה" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "הרשמות" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5455,6 +5527,11 @@ msgstr "" msgid "Go" msgstr "" +#: lib/grantroleform.php:91 +#, php-format +msgid "Grant this user the \"%s\" role" +msgstr "" + #: lib/groupeditform.php:163 #, fuzzy msgid "URL of the homepage or blog of the group or topic" @@ -6005,10 +6082,6 @@ msgstr "תגובות" msgid "Favorites" msgstr "מועדפים" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "מתשמש" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "" @@ -6034,7 +6107,7 @@ msgstr "" msgid "Unknown" msgstr "" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "הרשמות" @@ -6042,25 +6115,25 @@ msgstr "הרשמות" msgid "All subscriptions" msgstr "כל המנויים" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "מנויים" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 #, fuzzy msgid "All subscribers" msgstr "מנויים" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 #, fuzzy msgid "User ID" msgstr "מתשמש" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "חבר מאז" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "" @@ -6104,7 +6177,12 @@ msgstr "אין הודעה כזו." msgid "Repeat this notice" msgstr "אין הודעה כזו." -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, fuzzy, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "אין משתמש כזה." + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "" @@ -6269,47 +6347,62 @@ msgstr "הודעה חדשה" msgid "Moderate" msgstr "" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "למשתמש אין פרופיל." + +#: lib/userprofile.php:354 +msgctxt "role" +msgid "Administrator" +msgstr "" + +#: lib/userprofile.php:355 +msgctxt "role" +msgid "Moderator" +msgstr "" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "לפני מספר שניות" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "לפני כדקה" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "לפני כ-%d דקות" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "לפני כשעה" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "לפני כ-%d שעות" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "לפני כיום" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "לפני כ-%d ימים" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "לפני כחודש" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "לפני כ-%d חודשים" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "לפני כשנה" diff --git a/locale/hsb/LC_MESSAGES/statusnet.po b/locale/hsb/LC_MESSAGES/statusnet.po index f46e7357a..b4a6ec7a8 100644 --- a/locale/hsb/LC_MESSAGES/statusnet.po +++ b/locale/hsb/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:02:57+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:56:34+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: hsb\n" "X-Message-Group: out-statusnet\n" @@ -22,7 +22,8 @@ msgstr "" "n%100==4) ? 2 : 3)\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 msgid "Access" msgstr "Přistup" @@ -122,7 +123,7 @@ msgstr "%1$s a přećeljo, strona %2$d" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -177,7 +178,7 @@ msgid "" msgstr "" #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 msgid "You and friends" msgstr "Ty a přećeljo" @@ -204,11 +205,11 @@ msgstr "" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 msgid "API method not found." msgstr "API-metoda njenamakana." @@ -563,7 +564,7 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 msgid "Account" msgstr "Konto" @@ -650,18 +651,6 @@ msgstr "" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "" -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "" - #: actions/apitimelinementions.php:117 #, php-format msgid "%1$s / Updates mentioning %2$s" @@ -672,12 +661,12 @@ msgstr "" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "" @@ -921,7 +910,7 @@ msgid "Conversation" msgstr "Konwersacija" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Zdźělenki" @@ -942,7 +931,7 @@ msgstr "Njejsy wobsedźer tuteje aplikacije." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "" @@ -1133,8 +1122,9 @@ msgstr "Na standard wróćo stajić" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1252,7 +1242,7 @@ msgstr "wopisanje je předołho (maks. %d znamješkow)." msgid "Could not update group." msgstr "Skupina njeje so dała aktualizować." -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 msgid "Could not create aliases." msgstr "Aliasy njejsu so dali wutworić." @@ -1372,7 +1362,7 @@ msgid "Cannot normalize that email address" msgstr "" #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Njepłaćiwa e-mejlowa adresa." @@ -1556,6 +1546,25 @@ msgstr "Dataja njeeksistuje." msgid "Cannot read file." msgstr "Dataja njeda so čitać." +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "Njepłaćiwa wulkosć." + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "Njemóžeš tutomu wužiwarju powěsć pósłać." + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "Wužiwar nima profil." + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1698,12 +1707,18 @@ msgstr "" msgid "Make this user an admin" msgstr "Tutoho wužiwarja k administratorej činić" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "" + #: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Skupiny" @@ -2258,8 +2273,8 @@ msgstr "" msgid "Only " msgstr "Jenož " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "Njeje podpěrany datowy format." @@ -2398,7 +2413,8 @@ msgstr "" msgid "Password saved." msgstr "Hesło składowane." -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "Šćežki" @@ -2518,7 +2534,7 @@ msgstr "Pozadkowy zapis" msgid "SSL" msgstr "SSL" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 msgid "Never" msgstr "Ženje" @@ -2571,11 +2587,11 @@ msgstr "" msgid "Users self-tagged with %1$s - page %2$d" msgstr "" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "Njepłaćiwy wobsah zdźělenki" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" @@ -2651,7 +2667,7 @@ msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "Rěč" @@ -2677,7 +2693,7 @@ msgstr "" msgid "Bio is too long (max %d chars)." msgstr "Biografija je předołha (maks. %d znamješkow)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Časowe pasmo njeje wubrane." @@ -2976,7 +2992,7 @@ msgid "Same as password above. Required." msgstr "Jenake kaž hesło horjeka. Trěbne." #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "E-mejl" @@ -3060,7 +3076,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "Abonować" @@ -3156,6 +3172,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "" +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "Njemóžeš tutomu wužiwarju powěsć pósłać." + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "Wužiwar bjez hodźaceho so profila." + #: actions/rsd.php:146 actions/version.php:157 msgid "StatusNet" msgstr "StatusNet" @@ -3168,7 +3194,9 @@ msgstr "" msgid "User is already sandboxed." msgstr "" +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "Posedźenja" @@ -3193,7 +3221,7 @@ msgstr "" msgid "Turn on debugging output for sessions." msgstr "" -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Sydłowe nastajenja składować" @@ -3224,8 +3252,8 @@ msgstr "Organizacija" msgid "Description" msgstr "Wopisanje" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "Statistika" @@ -3358,45 +3386,45 @@ msgstr "Aliasy" msgid "Group actions" msgstr "Skupinske akcije" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, php-format msgid "FOAF for %s group" msgstr "" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 msgid "Members" msgstr "Čłonojo" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Žadyn)" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "Wšitcy čłonojo" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 msgid "Created" msgstr "Wutworjeny" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3406,7 +3434,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:462 +#: actions/showgroup.php:463 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3415,7 +3443,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "Administratorojo" @@ -3525,146 +3553,137 @@ msgid "User is already silenced." msgstr "" #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." -msgstr "" +#, fuzzy +msgid "Basic settings for this StatusNet site" +msgstr "Designowe nastajenja za tute sydło StatusNet." -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "" -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 msgid "You must have a valid contact email address." msgstr "Dyrbiš płaćiwu kontaktowu e-mejlowu adresu měć." -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "Njeznata rěč \"%s\"." #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "" - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "" - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "" - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "" -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "" -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "Powšitkowny" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 msgid "Site name" msgstr "Sydłowe mjeno" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 msgid "Contact email address for your site" msgstr "" -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 msgid "Local" msgstr "Lokalny" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "Standardne časowe pasmo" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "" -#: actions/siteadminpanel.php:281 -msgid "Default site language" +#: actions/siteadminpanel.php:262 +#, fuzzy +msgid "Default language" msgstr "Standardna sydłowa rěč" -#: actions/siteadminpanel.php:289 -msgid "Snapshots" -msgstr "" - -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" -msgstr "" - -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" -msgstr "" - -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" -msgstr "" - -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" -msgstr "" - -#: actions/siteadminpanel.php:301 -msgid "Frequency" -msgstr "Frekwenca" - -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" -msgstr "" - -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "" - -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" msgstr "" -#: actions/siteadminpanel.php:315 +#: actions/siteadminpanel.php:271 msgid "Limits" msgstr "Limity" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Text limit" msgstr "Tekstowy limit" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Maximum number of characters for notices." msgstr "Maksimalna ličba znamješkow za zdźělenki." -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "Dupe limit" msgstr "" -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "Zdźělenki" + +#: actions/sitenoticeadminpanel.php:67 +#, fuzzy +msgid "Edit site-wide message" +msgstr "Nowa powěsć" + +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +msgid "Unable to save site notice." +msgstr "Wužiwar nima poslednju powěsć" + +#: actions/sitenoticeadminpanel.php:113 +msgid "Max length for the site-wide notice is 255 chars" +msgstr "" + +#: actions/sitenoticeadminpanel.php:176 +#, fuzzy +msgid "Site notice text" +msgstr "Njepłaćiwy wobsah zdźělenki" + +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" +msgstr "" + +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "Sydłowe nastajenja składować" + #: actions/smssettings.php:58 msgid "SMS settings" msgstr "SMS-nastajenja" @@ -3757,6 +3776,66 @@ msgstr "" msgid "No code entered" msgstr "Žadyn kod zapodaty" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +msgid "Manage snapshot configuration" +msgstr "SMS-wobkrućenje" + +#: 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 "Frekwenca" + +#: 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 +#, fuzzy +msgid "Save snapshot settings" +msgstr "Sydłowe nastajenja składować" + #: actions/subedit.php:70 msgid "You are not subscribed to that profile." msgstr "Njejsy tón profil abonował." @@ -3952,7 +4031,7 @@ msgstr "" msgid "Unsubscribed" msgstr "Wotskazany" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4143,16 +4222,22 @@ msgstr "%1$s skupinskich čłonow, strona %2$d" msgid "Search for more groups" msgstr "" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, php-format msgid "%s is not a member of any group." msgstr "" -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "" + #: actions/version.php:73 #, php-format msgid "StatusNet %s" @@ -4196,7 +4281,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 msgid "Version" msgstr "Wersija" @@ -4260,38 +4345,38 @@ msgstr "" msgid "DB error inserting hashtag: %s" msgstr "" -#: classes/Notice.php:239 +#: classes/Notice.php:241 msgid "Problem saving notice. Too long." msgstr "" -#: classes/Notice.php:243 +#: classes/Notice.php:245 msgid "Problem saving notice. Unknown user." msgstr "" -#: classes/Notice.php:248 +#: classes/Notice.php:250 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:254 +#: classes/Notice.php:256 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:260 +#: classes/Notice.php:262 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "" -#: classes/Notice.php:911 +#: classes/Notice.php:927 msgid "Problem saving group inbox." msgstr "" -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4316,7 +4401,12 @@ msgstr "Njeje abonowany!" msgid "Couldn't delete self-subscription." msgstr "Sebjeabonement njeje so dał zničić." -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "Abonoment njeje so dał zničić." + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "Abonoment njeje so dał zničić." @@ -4325,20 +4415,20 @@ msgstr "Abonoment njeje so dał zničić." msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:462 +#: classes/User_group.php:477 msgid "Could not create group." msgstr "" -#: classes/User_group.php:471 +#: classes/User_group.php:486 #, fuzzy msgid "Could not set group URI." msgstr "Skupina njeje so dała aktualizować." -#: classes/User_group.php:492 +#: classes/User_group.php:507 msgid "Could not set group membership." msgstr "" -#: classes/User_group.php:506 +#: classes/User_group.php:521 #, fuzzy msgid "Could not save local group info." msgstr "Profil njeje so składować dał." @@ -4380,63 +4470,56 @@ msgstr "%1$s - %2$s" msgid "Untitled page" msgstr "Strona bjez titula" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 +#: lib/action.php:430 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:442 +#: lib/action.php:433 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "Wosobinski" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 +#: lib/action.php:435 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Změń swoje hesło." -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "Konto" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 +#: lib/action.php:440 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Zwiski" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "Zwjazać" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 +#: lib/action.php:446 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "SMS-wobkrućenje" -#: lib/action.php:460 +#: lib/action.php:449 #, fuzzy msgctxt "MENU" msgid "Admin" msgstr "Administrator" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 +#: lib/action.php:453 #, fuzzy, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" @@ -4444,143 +4527,144 @@ msgstr "" "Wužij tutón formular, zo by swojich přećelow a kolegow přeprosył, zo bychu " "tutu słužbu wužiwali." -#: lib/action.php:467 +#: lib/action.php:456 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "Přeprosyć" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 +#: lib/action.php:462 #, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Šat za sydło." -#: lib/action.php:476 +#: lib/action.php:465 #, fuzzy msgctxt "MENU" msgid "Logout" msgstr "Logo" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 +#: lib/action.php:470 #, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "Konto załožić" -#: lib/action.php:484 +#: lib/action.php:473 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "Registrować" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 +#: lib/action.php:476 #, fuzzy msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Při sydle přizjewić" -#: lib/action.php:490 +#: lib/action.php:479 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "Přizjewić" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 +#: lib/action.php:482 #, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "Pomhaj!" -#: lib/action.php:496 +#: lib/action.php:485 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "Pomoc" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 +#: lib/action.php:488 #, fuzzy msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Za ludźimi abo tekstom pytać" -#: lib/action.php:502 +#: lib/action.php:491 #, fuzzy msgctxt "MENU" msgid "Search" msgstr "Pytać" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 msgid "Site notice" msgstr "" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "" -#: lib/action.php:656 +#: lib/action.php:645 msgid "Page notice" msgstr "" -#: lib/action.php:758 +#: lib/action.php:747 msgid "Secondary site navigation" msgstr "" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "Pomoc" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "Wo" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "Huste prašenja" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "Priwatnosć" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "Žórło" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "Kontakt" -#: lib/action.php:782 +#: lib/action.php:771 msgid "Badge" msgstr "" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%). " msgstr "" -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "" -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4588,53 +4672,53 @@ msgid "" "org/licensing/licenses/agpl-3.0.html)." msgstr "" -#: lib/action.php:832 +#: lib/action.php:821 msgid "Site content license" msgstr "" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "" -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "" -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "" -#: lib/action.php:1172 +#: lib/action.php:1161 msgid "After" msgstr "" -#: lib/action.php:1180 +#: lib/action.php:1169 msgid "Before" msgstr "" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "" @@ -4649,94 +4733,83 @@ msgid "Changes to that panel are not allowed." msgstr "Změny na tutym woknje njejsu dowolene." #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 msgid "showForm() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 msgid "saveSettings() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 msgid "Unable to delete design setting." msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 msgid "Basic site configuration" msgstr "" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 +#: lib/adminpanelaction.php:350 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "Sydło" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 msgid "Design configuration" msgstr "" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 +#: lib/adminpanelaction.php:358 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "Design" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 #, fuzzy msgid "User configuration" msgstr "SMS-wobkrućenje" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -#, fuzzy -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "Wužiwar" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 #, fuzzy msgid "Access configuration" msgstr "SMS-wobkrućenje" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "Přistup" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 msgid "Paths configuration" msgstr "" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -#, fuzzy -msgctxt "MENU" -msgid "Paths" -msgstr "Šćežki" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 #, fuzzy msgid "Sessions configuration" msgstr "SMS-wobkrućenje" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "Posedźenja" +msgid "Edit site notice" +msgstr "Dwójna zdźělenka" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "SMS-wobkrućenje" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5224,6 +5297,11 @@ msgstr "" 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 "" @@ -5748,10 +5826,6 @@ msgstr "Wotmołwy" msgid "Favorites" msgstr "Fawority" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "Wužiwar" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "" @@ -5777,7 +5851,7 @@ msgstr "" msgid "Unknown" msgstr "Njeznaty" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Abonementy" @@ -5785,23 +5859,23 @@ msgstr "Abonementy" msgid "All subscriptions" msgstr "Wšě abonementy" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Abonenća" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 msgid "All subscribers" msgstr "Wšitcy abonenća" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 msgid "User ID" msgstr "Wužiwarski ID" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "Čłon wot" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "Wšě skupiny" @@ -5841,7 +5915,12 @@ msgstr "Tutu zdźělenku wospjetować?" msgid "Repeat this notice" msgstr "Tutu zdźělenku wospjetować" -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, fuzzy, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "Tutoho wužiwarja za tutu skupinu blokować" + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "" @@ -5995,47 +6074,63 @@ msgstr "Powěsć" msgid "Moderate" msgstr "" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "Wužiwarski profil" + +#: lib/userprofile.php:354 +#, fuzzy +msgctxt "role" +msgid "Administrator" +msgstr "Administratorojo" + +#: lib/userprofile.php:355 +msgctxt "role" +msgid "Moderator" +msgstr "" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "před něšto sekundami" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "před něhdźe jednej mjeńšinu" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "před %d mjeńšinami" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "před něhdźe jednej hodźinu" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "před něhdźe %d hodźinami" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "před něhdźe jednym dnjom" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "před něhdźe %d dnjemi" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "před něhdźe jednym měsacom" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "před něhdźe %d měsacami" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "před něhdźe jednym lětom" diff --git a/locale/ia/LC_MESSAGES/statusnet.po b/locale/ia/LC_MESSAGES/statusnet.po index cc6af7f0f..8f3976673 100644 --- a/locale/ia/LC_MESSAGES/statusnet.po +++ b/locale/ia/LC_MESSAGES/statusnet.po @@ -8,19 +8,20 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:03:00+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:56:37+0000\n" "Language-Team: Interlingua\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 msgid "Access" msgstr "Accesso" @@ -117,7 +118,7 @@ msgstr "%1$s e amicos, pagina %2$d" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -180,7 +181,7 @@ msgstr "" "pulsata a %s o publicar un message a su attention." #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 msgid "You and friends" msgstr "Tu e amicos" @@ -207,11 +208,11 @@ msgstr "Actualisationes de %1$s e su amicos in %2$s!" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 msgid "API method not found." msgstr "Methodo API non trovate." @@ -575,7 +576,7 @@ msgstr "" "%3$s le datos de tu conto de %4$s. Tu debe solmente dar " "accesso a tu conto de %4$s a tertie personas in le quales tu ha confidentia." -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 msgid "Account" msgstr "Conto" @@ -665,18 +666,6 @@ msgstr "%1$s / Favorites de %2$s" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s actualisationes favoritisate per %2$s / %2$s." -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "Chronologia de %s" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "Actualisationes de %1$s in %2$s!" - #: actions/apitimelinementions.php:117 #, php-format msgid "%1$s / Updates mentioning %2$s" @@ -688,12 +677,12 @@ msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" "Actualisationes de %1$s que responde al actualisationes de %2$s / %3$s." -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "Chronologia public de %s" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "Actualisationes de totes in %s!" @@ -940,7 +929,7 @@ msgid "Conversation" msgstr "Conversation" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Notas" @@ -959,7 +948,7 @@ msgstr "Tu non es le proprietario de iste application." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "Il habeva un problema con tu indicio de session." @@ -1155,8 +1144,9 @@ msgstr "Revenir al predefinitiones" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1272,7 +1262,7 @@ msgstr "description es troppo longe (max %d chars)." msgid "Could not update group." msgstr "Non poteva actualisar gruppo." -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 msgid "Could not create aliases." msgstr "Non poteva crear aliases." @@ -1395,7 +1385,7 @@ msgid "Cannot normalize that email address" msgstr "Non pote normalisar iste adresse de e-mail" #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Adresse de e-mail invalide." @@ -1587,6 +1577,25 @@ msgstr "File non existe." msgid "Cannot read file." msgstr "Non pote leger file." +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "Indicio invalide." + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "Tu non pote mitter usatores in le cassa de sablo in iste sito." + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "Usator es ja silentiate." + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1734,12 +1743,18 @@ msgstr "Facer administrator" msgid "Make this user an admin" msgstr "Facer iste usator administrator" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "Chronologia de %s" + #: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Actualisationes de membros de %1$s in %2$s!" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Gruppos" @@ -2366,8 +2381,8 @@ msgstr "typo de contento " msgid "Only " msgstr "Solmente " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "Formato de datos non supportate." @@ -2507,7 +2522,8 @@ msgstr "Non pote salveguardar le nove contrasigno." msgid "Password saved." msgstr "Contrasigno salveguardate." -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "Camminos" @@ -2627,7 +2643,7 @@ msgstr "Directorio al fundos" msgid "SSL" msgstr "SSL" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 msgid "Never" msgstr "Nunquam" @@ -2682,11 +2698,11 @@ msgstr "Etiquetta de personas invalide: %s" msgid "Users self-tagged with %1$s - page %2$d" msgstr "Usatores auto-etiquettate con %1$s - pagina %2$d" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "Le contento del nota es invalide" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" @@ -2768,7 +2784,7 @@ msgstr "" "Etiquettas pro te (litteras, numeros, -, ., e _), separate per commas o " "spatios" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "Lingua" @@ -2795,7 +2811,7 @@ msgstr "" msgid "Bio is too long (max %d chars)." msgstr "Bio es troppo longe (max %d chars)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Fuso horari non seligite." @@ -3112,7 +3128,7 @@ msgid "Same as password above. Required." msgstr "Identic al contrasigno hic supra. Requirite." #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "E-mail" @@ -3219,7 +3235,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL de tu profilo in un altere servicio de microblogging compatibile" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "Subscriber" @@ -3323,6 +3339,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Responsas a %1$s in %2$s!" +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "Tu non pote silentiar usatores in iste sito." + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "Usator sin profilo correspondente" + #: actions/rsd.php:146 actions/version.php:157 msgid "StatusNet" msgstr "StatusNet" @@ -3335,7 +3361,9 @@ msgstr "Tu non pote mitter usatores in le cassa de sablo in iste sito." msgid "User is already sandboxed." msgstr "Usator es ja in cassa de sablo." +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "Sessiones" @@ -3359,7 +3387,7 @@ msgstr "Cercar defectos de session" msgid "Turn on debugging output for sessions." msgstr "Producer informationes technic pro cercar defectos in sessiones." -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Salveguardar configurationes del sito" @@ -3390,8 +3418,8 @@ msgstr "Organisation" msgid "Description" msgstr "Description" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "Statisticas" @@ -3533,45 +3561,45 @@ msgstr "Aliases" msgid "Group actions" msgstr "Actiones del gruppo" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Syndication de notas pro le gruppo %s (RSS 1.0)" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Syndication de notas pro le gruppo %s (RSS 2.0)" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Syndication de notas pro le gruppo %s (Atom)" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, php-format msgid "FOAF for %s group" msgstr "Amico de un amico pro le gruppo %s" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 msgid "Members" msgstr "Membros" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Nulle)" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "Tote le membros" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 msgid "Created" msgstr "Create" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3586,7 +3614,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:462 +#: actions/showgroup.php:463 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3599,7 +3627,7 @@ msgstr "" "[StatusNet](http://status.net/). Su membros condivide breve messages super " "lor vita e interesses. " -#: actions/showgroup.php:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "Administratores" @@ -3722,148 +3750,139 @@ msgid "User is already silenced." msgstr "Usator es ja silentiate." #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +#, fuzzy +msgid "Basic settings for this StatusNet site" msgstr "Configurationes de base pro iste sito de StatusNet." -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "Le longitude del nomine del sito debe esser plus que zero." -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 msgid "You must have a valid contact email address." msgstr "Tu debe haber un valide adresse de e-mail pro contacto." -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "Lingua \"%s\" incognite." #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "Le URL pro reportar instantaneos es invalide." - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "Valor de execution de instantaneo invalide." - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "Le frequentia de instantaneos debe esser un numero." - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "Le limite minimal del texto es 140 characteres." -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "Le limite de duplicatos debe esser 1 o plus secundas." -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "General" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 msgid "Site name" msgstr "Nomine del sito" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "Le nomine de tu sito, como \"Le microblog de TuCompania\"" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "Realisate per" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "Le texto usate pro le ligamine al creditos in le pede de cata pagina" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "URL pro \"Realisate per\"" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "URL usate pro le ligamine al creditos in le pede de cata pagina" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 msgid "Contact email address for your site" msgstr "Le adresse de e-mail de contacto pro tu sito" -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 msgid "Local" msgstr "Local" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "Fuso horari predefinite" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "Fuso horari predefinite pro le sito; normalmente UTC." -#: actions/siteadminpanel.php:281 -msgid "Default site language" +#: actions/siteadminpanel.php:262 +#, fuzzy +msgid "Default language" msgstr "Lingua predefinite del sito" -#: actions/siteadminpanel.php:289 -msgid "Snapshots" -msgstr "Instantaneos" - -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" -msgstr "Aleatorimente durante un accesso web" - -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" -msgstr "In un processo planificate" - -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" -msgstr "Instantaneos de datos" - -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" -msgstr "Quando inviar datos statistic al servitores de status.net" - -#: actions/siteadminpanel.php:301 -msgid "Frequency" -msgstr "Frequentia" - -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" -msgstr "Un instantaneo essera inviate a cata N accessos web" - -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "URL pro reporto" - -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" -msgstr "Le instantaneos essera inviate a iste URL" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" +msgstr "" -#: actions/siteadminpanel.php:315 +#: actions/siteadminpanel.php:271 msgid "Limits" msgstr "Limites" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Text limit" msgstr "Limite de texto" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Maximum number of characters for notices." msgstr "Numero maximal de characteres pro notas." -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "Dupe limit" msgstr "Limite de duplicatos" -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" "Quante tempore (in secundas) le usatores debe attender ante de poter " "publicar le mesme cosa de novo." +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "Aviso del sito" + +#: actions/sitenoticeadminpanel.php:67 +#, fuzzy +msgid "Edit site-wide message" +msgstr "Nove message" + +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +msgid "Unable to save site notice." +msgstr "Impossibile salveguardar le configurationes del apparentia." + +#: actions/sitenoticeadminpanel.php:113 +msgid "Max length for the site-wide notice is 255 chars" +msgstr "" + +#: actions/sitenoticeadminpanel.php:176 +#, fuzzy +msgid "Site notice text" +msgstr "Aviso del sito" + +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" +msgstr "" + +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "Aviso del sito" + #: actions/smssettings.php:58 msgid "SMS settings" msgstr "Parametros de SMS" @@ -3963,6 +3982,66 @@ msgstr "" msgid "No code entered" msgstr "Nulle codice entrate" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "Instantaneos" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +msgid "Manage snapshot configuration" +msgstr "Modificar le configuration del sito" + +#: actions/snapshotadminpanel.php:127 +msgid "Invalid snapshot run value." +msgstr "Valor de execution de instantaneo invalide." + +#: actions/snapshotadminpanel.php:133 +msgid "Snapshot frequency must be a number." +msgstr "Le frequentia de instantaneos debe esser un numero." + +#: actions/snapshotadminpanel.php:144 +msgid "Invalid snapshot report URL." +msgstr "Le URL pro reportar instantaneos es invalide." + +#: actions/snapshotadminpanel.php:200 +msgid "Randomly during Web hit" +msgstr "Aleatorimente durante un accesso web" + +#: actions/snapshotadminpanel.php:201 +msgid "In a scheduled job" +msgstr "In un processo planificate" + +#: actions/snapshotadminpanel.php:206 +msgid "Data snapshots" +msgstr "Instantaneos de datos" + +#: actions/snapshotadminpanel.php:208 +msgid "When to send statistical data to status.net servers" +msgstr "Quando inviar datos statistic al servitores de status.net" + +#: actions/snapshotadminpanel.php:217 +msgid "Frequency" +msgstr "Frequentia" + +#: actions/snapshotadminpanel.php:218 +msgid "Snapshots will be sent once every N web hits" +msgstr "Un instantaneo essera inviate a cata N accessos web" + +#: actions/snapshotadminpanel.php:226 +msgid "Report URL" +msgstr "URL pro reporto" + +#: actions/snapshotadminpanel.php:227 +msgid "Snapshots will be sent to this URL" +msgstr "Le instantaneos essera inviate a iste URL" + +#: actions/snapshotadminpanel.php:248 +#, fuzzy +msgid "Save snapshot settings" +msgstr "Salveguardar configurationes del sito" + #: actions/subedit.php:70 msgid "You are not subscribed to that profile." msgstr "Tu non es subscribite a iste profilo." @@ -4173,7 +4252,7 @@ msgstr "Nulle ID de profilo in requesta." msgid "Unsubscribed" msgstr "Subscription cancellate" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4376,17 +4455,23 @@ msgstr "Gruppos %1$s, pagina %2$d" msgid "Search for more groups" msgstr "Cercar altere gruppos" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, php-format msgid "%s is not a member of any group." msgstr "%s non es membro de alcun gruppo." -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" "Tenta [cercar gruppos](%%action.groupsearch%%) e facer te membro de illos." +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "Actualisationes de %1$s in %2$s!" + #: actions/version.php:73 #, php-format msgid "StatusNet %s" @@ -4442,7 +4527,7 @@ msgstr "" msgid "Plugins" msgstr "Plug-ins" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 msgid "Version" msgstr "Version" @@ -4508,22 +4593,22 @@ msgstr "Non poteva actualisar message con nove URI." msgid "DB error inserting hashtag: %s" msgstr "Error in base de datos durante insertion del marca (hashtag): %s" -#: classes/Notice.php:239 +#: classes/Notice.php:241 msgid "Problem saving notice. Too long." msgstr "Problema salveguardar nota. Troppo longe." -#: classes/Notice.php:243 +#: classes/Notice.php:245 msgid "Problem saving notice. Unknown user." msgstr "Problema salveguardar nota. Usator incognite." -#: classes/Notice.php:248 +#: classes/Notice.php:250 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:254 +#: classes/Notice.php:256 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4531,19 +4616,19 @@ msgstr "" "Troppo de messages duplicate troppo rapidemente; face un pausa e publica de " "novo post alcun minutas." -#: classes/Notice.php:260 +#: classes/Notice.php:262 msgid "You are banned from posting notices on this site." msgstr "Il te es prohibite publicar notas in iste sito." -#: classes/Notice.php:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "Problema salveguardar nota." -#: classes/Notice.php:911 +#: classes/Notice.php:927 msgid "Problem saving group inbox." msgstr "Problema salveguardar le cassa de entrata del gruppo." -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4568,7 +4653,12 @@ msgstr "Non subscribite!" msgid "Couldn't delete self-subscription." msgstr "Non poteva deler auto-subscription." -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "Non poteva deler subscription." + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "Non poteva deler subscription." @@ -4577,20 +4667,20 @@ msgstr "Non poteva deler subscription." msgid "Welcome to %1$s, @%2$s!" msgstr "Benvenite a %1$s, @%2$s!" -#: classes/User_group.php:462 +#: classes/User_group.php:477 msgid "Could not create group." msgstr "Non poteva crear gruppo." -#: classes/User_group.php:471 +#: classes/User_group.php:486 #, fuzzy msgid "Could not set group URI." msgstr "Non poteva configurar le membrato del gruppo." -#: classes/User_group.php:492 +#: classes/User_group.php:507 msgid "Could not set group membership." msgstr "Non poteva configurar le membrato del gruppo." -#: classes/User_group.php:506 +#: classes/User_group.php:521 #, fuzzy msgid "Could not save local group info." msgstr "Non poteva salveguardar le subscription." @@ -4632,194 +4722,188 @@ msgstr "%1$s - %2$s" msgid "Untitled page" msgstr "Pagina sin titulo" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "Navigation primari del sito" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 +#: lib/action.php:430 #, fuzzy msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Profilo personal e chronologia de amicos" -#: lib/action.php:442 +#: lib/action.php:433 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "Personal" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 +#: lib/action.php:435 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Cambiar tu e-mail, avatar, contrasigno, profilo" -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "Conto" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 +#: lib/action.php:440 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Connecter con servicios" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "Connecter" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 +#: lib/action.php:446 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Modificar le configuration del sito" -#: lib/action.php:460 +#: lib/action.php:449 #, fuzzy msgctxt "MENU" msgid "Admin" msgstr "Administrator" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 +#: lib/action.php:453 #, fuzzy, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Invitar amicos e collegas a accompaniar te in %s" -#: lib/action.php:467 +#: lib/action.php:456 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "Invitar" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 +#: lib/action.php:462 #, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Terminar le session del sito" -#: lib/action.php:476 +#: lib/action.php:465 #, fuzzy msgctxt "MENU" msgid "Logout" msgstr "Clauder session" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 +#: lib/action.php:470 #, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "Crear un conto" -#: lib/action.php:484 +#: lib/action.php:473 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "Crear conto" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 +#: lib/action.php:476 #, fuzzy msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Identificar te a iste sito" -#: lib/action.php:490 +#: lib/action.php:479 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "Aperir session" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 +#: lib/action.php:482 #, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "Adjuta me!" -#: lib/action.php:496 +#: lib/action.php:485 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "Adjuta" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 +#: lib/action.php:488 #, fuzzy msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Cercar personas o texto" -#: lib/action.php:502 +#: lib/action.php:491 #, fuzzy msgctxt "MENU" msgid "Search" msgstr "Cercar" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 msgid "Site notice" msgstr "Aviso del sito" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "Vistas local" -#: lib/action.php:656 +#: lib/action.php:645 msgid "Page notice" msgstr "Aviso de pagina" -#: lib/action.php:758 +#: lib/action.php:747 msgid "Secondary site navigation" msgstr "Navigation secundari del sito" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "Adjuta" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "A proposito" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "FAQ" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "CdS" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "Confidentialitate" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "Fonte" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "Contacto" -#: lib/action.php:782 +#: lib/action.php:771 msgid "Badge" msgstr "Insignia" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "Licentia del software StatusNet" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4828,12 +4912,12 @@ msgstr "" "**%%site.name%%** es un servicio de microblog offerite per [%%site.broughtby%" "%](%%site.broughtbyurl%%). " -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** es un servicio de microblog. " -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4844,54 +4928,54 @@ msgstr "" "net/), version %s, disponibile sub le [GNU Affero General Public License]" "(http://www.fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:832 +#: lib/action.php:821 msgid "Site content license" msgstr "Licentia del contento del sito" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Le contento e datos de %1$s es private e confidential." -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "Contento e datos sub copyright de %1$s. Tote le derectos reservate." -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Contento e datos sub copyright del contributores. Tote le derectos reservate." -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "Totes " -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "licentia." -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "Pagination" -#: lib/action.php:1172 +#: lib/action.php:1161 msgid "After" msgstr "Post" -#: lib/action.php:1180 +#: lib/action.php:1169 msgid "Before" msgstr "Ante" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "" @@ -4906,91 +4990,80 @@ msgid "Changes to that panel are not allowed." msgstr "Le modification de iste pannello non es permittite." #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 msgid "showForm() not implemented." msgstr "showForm() non implementate." #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 msgid "saveSettings() not implemented." msgstr "saveSettings() non implementate." #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 msgid "Unable to delete design setting." msgstr "Impossibile deler configuration de apparentia." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 msgid "Basic site configuration" msgstr "Configuration basic del sito" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 +#: lib/adminpanelaction.php:350 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "Sito" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 msgid "Design configuration" msgstr "Configuration del apparentia" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 +#: lib/adminpanelaction.php:358 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "Apparentia" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 msgid "User configuration" msgstr "Configuration del usator" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -#, fuzzy -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "Usator" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 msgid "Access configuration" msgstr "Configuration del accesso" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "Accesso" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 msgid "Paths configuration" msgstr "Configuration del camminos" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -#, fuzzy -msgctxt "MENU" -msgid "Paths" -msgstr "Camminos" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 msgid "Sessions configuration" msgstr "Configuration del sessiones" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "Sessiones" +msgid "Edit site notice" +msgstr "Aviso del sito" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "Configuration del camminos" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5522,6 +5595,11 @@ msgstr "Selige etiquetta pro reducer lista" msgid "Go" msgstr "Ir" +#: 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 "URL del pagina initial o blog del gruppo o topico" @@ -6140,10 +6218,6 @@ msgstr "Responsas" msgid "Favorites" msgstr "Favorites" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "Usator" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Cassa de entrata" @@ -6169,7 +6243,7 @@ msgstr "Etiquettas in le notas de %s" msgid "Unknown" msgstr "Incognite" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Subscriptiones" @@ -6177,23 +6251,23 @@ msgstr "Subscriptiones" msgid "All subscriptions" msgstr "Tote le subscriptiones" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Subscriptores" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 msgid "All subscribers" msgstr "Tote le subscriptores" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 msgid "User ID" msgstr "ID del usator" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "Membro depost" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "Tote le gruppos" @@ -6233,7 +6307,12 @@ msgstr "Repeter iste nota?" msgid "Repeat this notice" msgstr "Repeter iste nota" -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, fuzzy, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "Blocar iste usator de iste gruppo" + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "Nulle signule usator definite pro le modo de singule usator." @@ -6387,47 +6466,64 @@ msgstr "Message" msgid "Moderate" msgstr "Moderar" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "Profilo del usator" + +#: lib/userprofile.php:354 +#, fuzzy +msgctxt "role" +msgid "Administrator" +msgstr "Administratores" + +#: lib/userprofile.php:355 +#, fuzzy +msgctxt "role" +msgid "Moderator" +msgstr "Moderar" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "alcun secundas retro" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "circa un minuta retro" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "circa %d minutas retro" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "circa un hora retro" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "circa %d horas retro" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "circa un die retro" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "circa %d dies retro" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "circa un mense retro" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "circa %d menses retro" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "circa un anno retro" diff --git a/locale/is/LC_MESSAGES/statusnet.po b/locale/is/LC_MESSAGES/statusnet.po index aaf79c8f7..84a90d7d8 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-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:03:04+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:56:39+0000\n" "Language-Team: Icelandic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: is\n" "X-Message-Group: out-statusnet\n" @@ -22,7 +22,8 @@ msgstr "" "n % 100 != 81 && n % 100 != 91);\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 #, fuzzy msgid "Access" msgstr "Samþykkja" @@ -125,7 +126,7 @@ msgstr "%s og vinirnir, síða %d" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -180,7 +181,7 @@ msgid "" msgstr "" #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 msgid "You and friends" msgstr "" @@ -207,11 +208,11 @@ msgstr "Færslur frá %1$s og vinum á %2$s!" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "Aðferð í forritsskilum fannst ekki!" @@ -580,7 +581,7 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 msgid "Account" msgstr "Aðgangur" @@ -671,18 +672,6 @@ msgstr "%s / Uppáhaldsbabl frá %s" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%s færslur gerðar að uppáhaldsbabli af %s / %s." -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "Rás %s" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "Færslur frá %1$s á %2$s!" - #: actions/apitimelinementions.php:117 #, php-format msgid "%1$s / Updates mentioning %2$s" @@ -693,12 +682,12 @@ msgstr "" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s færslur sem svara færslum frá %2$s / %3$s." -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "Almenningsrás %s" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s færslur frá öllum!" @@ -947,7 +936,7 @@ msgid "Conversation" msgstr "" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Babl" @@ -969,7 +958,7 @@ msgstr "Þú ert ekki meðlimur í þessum hópi." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "Það komu upp vandamál varðandi setutókann þinn." @@ -1169,8 +1158,9 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1298,7 +1288,7 @@ msgstr "Lýsing er of löng (í mesta lagi 140 tákn)." msgid "Could not update group." msgstr "Gat ekki uppfært hóp." -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 msgid "Could not create aliases." msgstr "" @@ -1422,7 +1412,7 @@ msgid "Cannot normalize that email address" msgstr "Get ekki staðlað þetta tölvupóstfang" #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Ekki tækt tölvupóstfang." @@ -1618,6 +1608,25 @@ msgstr "Ekkert svoleiðis babl." msgid "Cannot read file." msgstr "Týndum skránni okkar" +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "Ótæk stærð." + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "Þú getur ekki sent þessum notanda skilaboð." + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "Notandi hefur enga persónulega síðu." + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1760,12 +1769,18 @@ msgstr "" msgid "Make this user an admin" msgstr "" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "Rás %s" + #: actions/grouprss.php:140 #, fuzzy, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Færslur frá %1$s á %2$s!" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Hópar" @@ -2385,8 +2400,8 @@ msgstr "" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "Enginn stuðningur við gagnasnið." @@ -2533,7 +2548,8 @@ msgstr "Get ekki vistað nýja lykilorðið." msgid "Password saved." msgstr "Lykilorð vistað." -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "" @@ -2660,7 +2676,7 @@ msgstr "" msgid "SSL" msgstr "SMS" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 #, fuzzy msgid "Never" msgstr "Endurheimta" @@ -2719,11 +2735,11 @@ msgstr "Ekki gilt persónumerki: %s" msgid "Users self-tagged with %1$s - page %2$d" msgstr "Notendur sjálfmerktir með %s - síða %d" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "Ótækt bablinnihald" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" @@ -2806,7 +2822,7 @@ msgstr "" "Merki fyrir þig (bókstafir, tölustafir, -, ., og _), aðskilin með kommu eða " "bili" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "Tungumál" @@ -2834,7 +2850,7 @@ msgstr "" msgid "Bio is too long (max %d chars)." msgstr "Lýsingin er of löng (í mesta lagi 140 tákn)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Tímabelti ekki valið." @@ -3138,7 +3154,7 @@ msgid "Same as password above. Required." msgstr "Sama og lykilorðið hér fyrir ofan. Nauðsynlegt." #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "Tölvupóstur" @@ -3243,7 +3259,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "Veffang persónulegrar síðu á samvirkandi örbloggsþjónustu" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "Gerast áskrifandi" @@ -3349,6 +3365,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Skilaboð til %1$s á %2$s" +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "Þú getur ekki sent þessum notanda skilaboð." + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "Notandi með enga persónulega síðu sem passar við" + #: actions/rsd.php:146 actions/version.php:157 #, fuzzy msgid "StatusNet" @@ -3363,7 +3389,9 @@ msgstr "Þú getur ekki sent þessum notanda skilaboð." msgid "User is already sandboxed." msgstr "" +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "" @@ -3387,7 +3415,7 @@ msgstr "" msgid "Turn on debugging output for sessions." msgstr "" -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 #, fuzzy msgid "Save site settings" @@ -3423,8 +3451,8 @@ msgstr "Uppröðun" msgid "Description" msgstr "Lýsing" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "Tölfræði" @@ -3557,45 +3585,45 @@ msgstr "" msgid "Group actions" msgstr "Hópsaðgerðir" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, fuzzy, php-format msgid "FOAF for %s group" msgstr "%s hópurinn" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 msgid "Members" msgstr "Meðlimir" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Ekkert)" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "Allir meðlimir" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 msgid "Created" msgstr "" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3605,7 +3633,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:462 +#: actions/showgroup.php:463 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3614,7 +3642,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "" @@ -3726,150 +3754,139 @@ msgid "User is already silenced." msgstr "" #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +msgid "Basic settings for this StatusNet site" msgstr "" -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "" -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 #, fuzzy msgid "You must have a valid contact email address." msgstr "Ekki tækt tölvupóstfang" -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "" #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "" - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "" - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "" - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "" -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "" -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 #, fuzzy msgid "Site name" msgstr "Babl vefsíðunnar" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 #, fuzzy msgid "Contact email address for your site" msgstr "Nýtt tölvupóstfang til að senda á %s" -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 #, fuzzy msgid "Local" msgstr "Staðbundin sýn" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "" -#: actions/siteadminpanel.php:281 +#: actions/siteadminpanel.php:262 #, fuzzy -msgid "Default site language" +msgid "Default language" msgstr "Tungumál (ákjósanlegt)" -#: actions/siteadminpanel.php:289 -msgid "Snapshots" -msgstr "" - -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" msgstr "" -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" +#: actions/siteadminpanel.php:271 +msgid "Limits" msgstr "" -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" +#: actions/siteadminpanel.php:274 +msgid "Text limit" msgstr "" -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" +#: actions/siteadminpanel.php:274 +msgid "Maximum number of characters for notices." msgstr "" -#: actions/siteadminpanel.php:301 -msgid "Frequency" +#: actions/siteadminpanel.php:278 +msgid "Dupe limit" msgstr "" -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" +#: actions/siteadminpanel.php:278 +msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "" +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "Babl vefsíðunnar" -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" -msgstr "" +#: actions/sitenoticeadminpanel.php:67 +#, fuzzy +msgid "Edit site-wide message" +msgstr "Ný skilaboð" -#: actions/siteadminpanel.php:315 -msgid "Limits" -msgstr "" +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +msgid "Unable to save site notice." +msgstr "Vandamál komu upp við að vista babl." -#: actions/siteadminpanel.php:318 -msgid "Text limit" +#: actions/sitenoticeadminpanel.php:113 +msgid "Max length for the site-wide notice is 255 chars" msgstr "" -#: actions/siteadminpanel.php:318 -msgid "Maximum number of characters for notices." -msgstr "" +#: actions/sitenoticeadminpanel.php:176 +#, fuzzy +msgid "Site notice text" +msgstr "Babl vefsíðunnar" -#: actions/siteadminpanel.php:322 -msgid "Dupe limit" +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" msgstr "" -#: actions/siteadminpanel.php:322 -msgid "How long users must wait (in seconds) to post the same thing again." -msgstr "" +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "Babl vefsíðunnar" #: actions/smssettings.php:58 #, fuzzy @@ -3971,6 +3988,66 @@ msgstr "" msgid "No code entered" msgstr "Enginn lykill sleginn inn" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +msgid "Manage snapshot configuration" +msgstr "Stikl aðalsíðu" + +#: 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 +#, fuzzy +msgid "Save snapshot settings" +msgstr "Stillingar fyrir mynd" + #: actions/subedit.php:70 msgid "You are not subscribed to that profile." msgstr "Þú ert ekki áskrifandi." @@ -4176,7 +4253,7 @@ msgstr "Ekkert einkenni persónulegrar síðu í beiðni." msgid "Unsubscribed" msgstr "Ekki lengur áskrifandi" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4385,16 +4462,22 @@ msgstr "Hópmeðlimir %s, síða %d" msgid "Search for more groups" msgstr "" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, php-format msgid "%s is not a member of any group." msgstr "" -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "Færslur frá %1$s á %2$s!" + #: actions/version.php:73 #, fuzzy, php-format msgid "StatusNet %s" @@ -4438,7 +4521,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 #, fuzzy msgid "Version" msgstr "Persónulegt" @@ -4507,41 +4590,41 @@ msgstr "Gat ekki uppfært skilaboð með nýju veffangi." msgid "DB error inserting hashtag: %s" msgstr "Gagnagrunnsvilla við innsetningu myllumerkis: %s" -#: classes/Notice.php:239 +#: classes/Notice.php:241 msgid "Problem saving notice. Too long." msgstr "" -#: classes/Notice.php:243 +#: classes/Notice.php:245 msgid "Problem saving notice. Unknown user." msgstr "Gat ekki vistað babl. Óþekktur notandi." -#: classes/Notice.php:248 +#: classes/Notice.php:250 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:254 +#: classes/Notice.php:256 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:260 +#: classes/Notice.php:262 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:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "Vandamál komu upp við að vista babl." -#: classes/Notice.php:911 +#: classes/Notice.php:927 #, fuzzy msgid "Problem saving group inbox." msgstr "Vandamál komu upp við að vista babl." -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4569,7 +4652,12 @@ msgstr "Ekki í áskrift!" msgid "Couldn't delete self-subscription." msgstr "Gat ekki eytt áskrift." -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "Gat ekki eytt áskrift." + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "Gat ekki eytt áskrift." @@ -4578,20 +4666,20 @@ msgstr "Gat ekki eytt áskrift." msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:462 +#: classes/User_group.php:477 msgid "Could not create group." msgstr "Gat ekki búið til hóp." -#: classes/User_group.php:471 +#: classes/User_group.php:486 #, fuzzy msgid "Could not set group URI." msgstr "Gat ekki skráð hópmeðlimi." -#: classes/User_group.php:492 +#: classes/User_group.php:507 msgid "Could not set group membership." msgstr "Gat ekki skráð hópmeðlimi." -#: classes/User_group.php:506 +#: classes/User_group.php:521 #, fuzzy msgid "Could not save local group info." msgstr "Gat ekki vistað áskrift." @@ -4633,25 +4721,25 @@ msgstr "%1$s (%2$s)" msgid "Untitled page" msgstr "Ónafngreind síða" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "Stikl aðalsíðu" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 +#: lib/action.php:430 #, fuzzy msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Persónuleg síða og vinarás" -#: lib/action.php:442 +#: lib/action.php:433 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "Persónulegt" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 +#: lib/action.php:435 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" @@ -4659,170 +4747,164 @@ msgstr "" "Breyttu tölvupóstinum þínum, einkennismyndinni þinni, lykilorðinu þínu, " "persónulegu síðunni þinni" -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "Aðgangur" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 +#: lib/action.php:440 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Gat ekki framsent til vefþjóns: %s" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "Tengjast" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 +#: lib/action.php:446 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Stikl aðalsíðu" -#: lib/action.php:460 +#: lib/action.php:449 #, fuzzy msgctxt "MENU" msgid "Admin" msgstr "Stjórnandi" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 +#: lib/action.php:453 #, fuzzy, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Bjóða vinum og vandamönnum að slást í hópinn á %s" -#: lib/action.php:467 +#: lib/action.php:456 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "Bjóða" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 +#: lib/action.php:462 #, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Skrá þig út af síðunni" -#: lib/action.php:476 +#: lib/action.php:465 #, fuzzy msgctxt "MENU" msgid "Logout" msgstr "Útskráning" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 +#: lib/action.php:470 #, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "Búa til aðgang" -#: lib/action.php:484 +#: lib/action.php:473 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "Nýskrá" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 +#: lib/action.php:476 #, fuzzy msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Skrá þig inn á síðuna" -#: lib/action.php:490 +#: lib/action.php:479 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "Innskráning" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 +#: lib/action.php:482 #, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "Hjálp!" -#: lib/action.php:496 +#: lib/action.php:485 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "Hjálp" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 +#: lib/action.php:488 #, fuzzy msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Leita að fólki eða texta" -#: lib/action.php:502 +#: lib/action.php:491 #, fuzzy msgctxt "MENU" msgid "Search" msgstr "Leita" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 msgid "Site notice" msgstr "Babl vefsíðunnar" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "Staðbundin sýn" -#: lib/action.php:656 +#: lib/action.php:645 msgid "Page notice" msgstr "Babl síðunnar" -#: lib/action.php:758 +#: lib/action.php:747 msgid "Secondary site navigation" msgstr "Stikl undirsíðu" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "Hjálp" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "Um" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "Spurt og svarað" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "Friðhelgi" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "Frumþula" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "Tengiliður" -#: lib/action.php:782 +#: lib/action.php:771 msgid "Badge" msgstr "" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "Hugbúnaðarleyfi StatusNet" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4831,12 +4913,12 @@ msgstr "" "**%%site.name%%** er örbloggsþjónusta í boði [%%site.broughtby%%](%%site." "broughtbyurl%%). " -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** er örbloggsþjónusta." -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4847,54 +4929,54 @@ msgstr "" "sem er gefinn út undir [GNU Affero almenningsleyfinu](http://www.fsf.org/" "licensing/licenses/agpl-3.0.html)." -#: lib/action.php:832 +#: lib/action.php:821 #, fuzzy msgid "Site content license" msgstr "Hugbúnaðarleyfi StatusNet" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "Allt " -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "leyfi." -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "Uppröðun" -#: lib/action.php:1172 +#: lib/action.php:1161 msgid "After" msgstr "Eftir" -#: lib/action.php:1180 +#: lib/action.php:1169 msgid "Before" msgstr "Áður" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "" @@ -4911,98 +4993,88 @@ msgid "Changes to that panel are not allowed." msgstr "Nýskráning ekki leyfð." #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 #, fuzzy msgid "showForm() not implemented." msgstr "Skipun hefur ekki verið fullbúin" #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 #, fuzzy msgid "saveSettings() not implemented." msgstr "Skipun hefur ekki verið fullbúin" #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 msgid "Unable to delete design setting." msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 #, fuzzy msgid "Basic site configuration" msgstr "Staðfesting tölvupóstfangs" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 +#: lib/adminpanelaction.php:350 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "Bjóða" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 #, fuzzy msgid "Design configuration" msgstr "SMS staðfesting" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 +#: lib/adminpanelaction.php:358 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "Persónulegt" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 #, fuzzy msgid "User configuration" msgstr "SMS staðfesting" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -#, fuzzy -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "Notandi" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 #, fuzzy msgid "Access configuration" msgstr "SMS staðfesting" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "Samþykkja" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 #, fuzzy msgid "Paths configuration" msgstr "SMS staðfesting" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -msgctxt "MENU" -msgid "Paths" -msgstr "" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 #, fuzzy msgid "Sessions configuration" msgstr "SMS staðfesting" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "Persónulegt" +msgid "Edit site notice" +msgstr "Babl vefsíðunnar" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "SMS staðfesting" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5503,6 +5575,11 @@ msgstr "Veldu merki til að þrengja lista" msgid "Go" msgstr "Áfram" +#: 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 "Vefslóð vefsíðu hópsins eða umfjöllunarefnisins" @@ -6047,10 +6124,6 @@ msgstr "Svör" msgid "Favorites" msgstr "Uppáhald" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "Notandi" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Innhólf" @@ -6077,7 +6150,7 @@ msgstr "Merki í babli %s" msgid "Unknown" msgstr "Óþekkt aðgerð" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Áskriftir" @@ -6085,23 +6158,23 @@ msgstr "Áskriftir" msgid "All subscriptions" msgstr "Allar áskriftir" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Áskrifendur" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 msgid "All subscribers" msgstr "Allir áskrifendur" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 msgid "User ID" msgstr "" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "Meðlimur síðan" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "Allir hópar" @@ -6144,7 +6217,12 @@ msgstr "Svara þessu babli" msgid "Repeat this notice" msgstr "Svara þessu babli" -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "" + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "" @@ -6304,47 +6382,62 @@ msgstr "Skilaboð" msgid "Moderate" msgstr "" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "Persónuleg síða notanda" + +#: lib/userprofile.php:354 +msgctxt "role" +msgid "Administrator" +msgstr "" + +#: lib/userprofile.php:355 +msgctxt "role" +msgid "Moderator" +msgstr "" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "fyrir nokkrum sekúndum" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "fyrir um einni mínútu síðan" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "fyrir um %d mínútum síðan" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "fyrir um einum klukkutíma síðan" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "fyrir um %d klukkutímum síðan" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "fyrir um einum degi síðan" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "fyrir um %d dögum síðan" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "fyrir um einum mánuði síðan" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "fyrir um %d mánuðum síðan" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "fyrir um einu ári síðan" diff --git a/locale/it/LC_MESSAGES/statusnet.po b/locale/it/LC_MESSAGES/statusnet.po index 61d4cfaf9..5f72eb1a7 100644 --- a/locale/it/LC_MESSAGES/statusnet.po +++ b/locale/it/LC_MESSAGES/statusnet.po @@ -9,19 +9,20 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:03:07+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:56:42+0000\n" "Language-Team: Italian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: it\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 msgid "Access" msgstr "Accesso" @@ -120,7 +121,7 @@ msgstr "%1$s e amici, pagina %2$d" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -184,7 +185,7 @@ msgstr "" "un messaggio alla sua attenzione." #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 msgid "You and friends" msgstr "Tu e i tuoi amici" @@ -211,11 +212,11 @@ msgstr "Messaggi da %1$s e amici su %2$s!" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 msgid "API method not found." msgstr "Metodo delle API non trovato." @@ -579,7 +580,7 @@ msgstr "" "%3$s ai dati del tuo account %4$s. È consigliato fornire " "accesso al proprio account %4$s solo ad applicazioni di cui ci si può fidare." -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 msgid "Account" msgstr "Account" @@ -667,18 +668,6 @@ msgstr "%1$s / Preferiti da %2$s" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s aggiornamenti preferiti da %2$s / %3$s" -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "Attività di %s" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "Messaggi da %1$s su %2$s!" - #: actions/apitimelinementions.php:117 #, php-format msgid "%1$s / Updates mentioning %2$s" @@ -689,12 +678,12 @@ msgstr "%1$s / Messaggi che citano %2$s" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s messaggi in risposta a quelli da %2$s / %3$s" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "Attività pubblica di %s" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "Aggiornamenti di %s da tutti!" @@ -941,7 +930,7 @@ msgid "Conversation" msgstr "Conversazione" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Messaggi" @@ -960,7 +949,7 @@ msgstr "Questa applicazione non è di tua proprietà." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "Si è verificato un problema con il tuo token di sessione." @@ -1155,8 +1144,9 @@ msgstr "Reimposta i valori predefiniti" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1272,7 +1262,7 @@ msgstr "La descrizione è troppo lunga (max %d caratteri)." msgid "Could not update group." msgstr "Impossibile aggiornare il gruppo." -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 msgid "Could not create aliases." msgstr "Impossibile creare gli alias." @@ -1398,7 +1388,7 @@ msgid "Cannot normalize that email address" msgstr "Impossibile normalizzare quell'indirizzo email" #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Non è un indirizzo email valido." @@ -1591,6 +1581,25 @@ msgstr "Nessun file." msgid "Cannot read file." msgstr "Impossibile leggere il file." +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "Token non valido." + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "Non puoi mettere in \"sandbox\" gli utenti su questo sito." + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "L'utente è già stato zittito." + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1738,12 +1747,18 @@ msgstr "Rendi amm." msgid "Make this user an admin" msgstr "Rende questo utente un amministratore" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "Attività di %s" + #: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Messaggi dai membri di %1$s su %2$s!" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Gruppi" @@ -2363,8 +2378,8 @@ msgstr "tipo di contenuto " msgid "Only " msgstr "Solo " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "Non è un formato di dati supportato." @@ -2505,7 +2520,8 @@ msgstr "Impossibile salvare la nuova password." msgid "Password saved." msgstr "Password salvata." -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "Percorsi" @@ -2625,7 +2641,7 @@ msgstr "Directory dello sfondo" msgid "SSL" msgstr "SSL" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 msgid "Never" msgstr "Mai" @@ -2680,11 +2696,11 @@ msgstr "Non è un'etichetta valida di persona: %s" msgid "Users self-tagged with %1$s - page %2$d" msgstr "Utenti auto-etichettati con %1$s - pagina %2$d" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "Contenuto del messaggio non valido" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" @@ -2766,7 +2782,7 @@ msgid "" msgstr "" "Le tue etichette (lettere, numeri, -, . e _), separate da virgole o spazi" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "Lingua" @@ -2794,7 +2810,7 @@ msgstr "" msgid "Bio is too long (max %d chars)." msgstr "La biografia è troppo lunga (max %d caratteri)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Fuso orario non selezionato" @@ -3111,7 +3127,7 @@ msgid "Same as password above. Required." msgstr "Stessa password di sopra; richiesta" #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "Email" @@ -3218,7 +3234,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL del tuo profilo su un altro servizio di microblog compatibile" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "Abbonati" @@ -3322,6 +3338,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Risposte a %1$s su %2$s!" +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "Non puoi zittire gli utenti su questo sito." + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "Utente senza profilo corrispondente." + #: actions/rsd.php:146 actions/version.php:157 msgid "StatusNet" msgstr "StatusNet" @@ -3334,7 +3360,9 @@ msgstr "Non puoi mettere in \"sandbox\" gli utenti su questo sito." msgid "User is already sandboxed." msgstr "L'utente è già nella \"sandbox\"." +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "Sessioni" @@ -3358,7 +3386,7 @@ msgstr "Debug delle sessioni" msgid "Turn on debugging output for sessions." msgstr "Abilita il debug per le sessioni" -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Salva impostazioni" @@ -3389,8 +3417,8 @@ msgstr "Organizzazione" msgid "Description" msgstr "Descrizione" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "Statistiche" @@ -3531,45 +3559,45 @@ msgstr "Alias" msgid "Group actions" msgstr "Azioni dei gruppi" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Feed dei messaggi per il gruppo %s (RSS 1.0)" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Feed dei messaggi per il gruppo %s (RSS 2.0)" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Feed dei messaggi per il gruppo %s (Atom)" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, php-format msgid "FOAF for %s group" msgstr "FOAF per il gruppo %s" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 msgid "Members" msgstr "Membri" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(nessuno)" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "Tutti i membri" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 msgid "Created" msgstr "Creato" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3585,7 +3613,7 @@ msgstr "" "stesso](%%%%action.register%%%%) per far parte di questo gruppo e di molti " "altri! ([Maggiori informazioni](%%%%doc.help%%%%))" -#: actions/showgroup.php:462 +#: actions/showgroup.php:463 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3597,7 +3625,7 @@ msgstr "" "(http://it.wikipedia.org/wiki/Microblogging) basato sul software libero " "[StatusNet](http://status.net/)." -#: actions/showgroup.php:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "Amministratori" @@ -3719,148 +3747,139 @@ msgid "User is already silenced." msgstr "L'utente è già stato zittito." #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +#, fuzzy +msgid "Basic settings for this StatusNet site" msgstr "Impostazioni di base per questo sito StatusNet." -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "Il nome del sito non deve avere lunghezza parti a zero." -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 msgid "You must have a valid contact email address." msgstr "Devi avere un'email di contatto valida." -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "Lingua \"%s\" sconosciuta." #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "URL di segnalazione snapshot non valido." - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "Valore di esecuzione dello snapshot non valido." - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "La frequenza degli snapshot deve essere un numero." - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "Il limite minimo del testo è di 140 caratteri." -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "Il limite per i duplicati deve essere di 1 o più secondi." -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "Generale" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 msgid "Site name" msgstr "Nome del sito" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "Il nome del tuo sito, topo \"Acme Microblog\"" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "Offerto da" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "Testo usato per i crediti nel piè di pagina di ogni pagina" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "URL per offerto da" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "URL usato per i crediti nel piè di pagina di ogni pagina" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 msgid "Contact email address for your site" msgstr "Indirizzo email di contatto per il sito" -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 msgid "Local" msgstr "Locale" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "Fuso orario predefinito" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "Fuso orario predefinito; tipicamente UTC" -#: actions/siteadminpanel.php:281 -msgid "Default site language" +#: actions/siteadminpanel.php:262 +#, fuzzy +msgid "Default language" msgstr "Lingua predefinita" -#: actions/siteadminpanel.php:289 -msgid "Snapshots" -msgstr "Snapshot" - -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" -msgstr "A caso quando avviene un web hit" - -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" -msgstr "In un job pianificato" - -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" -msgstr "Snapshot dei dati" - -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" -msgstr "Quando inviare dati statistici a status.net" - -#: actions/siteadminpanel.php:301 -msgid "Frequency" -msgstr "Frequenza" - -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" -msgstr "Gli snapshot verranno inviati ogni N web hit" - -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "URL per la segnalazione" - -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" -msgstr "Gli snapshot verranno inviati a questo URL" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" +msgstr "" -#: actions/siteadminpanel.php:315 +#: actions/siteadminpanel.php:271 msgid "Limits" msgstr "Limiti" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Text limit" msgstr "Limiti del testo" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Maximum number of characters for notices." msgstr "Numero massimo di caratteri per messaggo" -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "Dupe limit" msgstr "Limite duplicati" -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" "Quanto tempo gli utenti devono attendere (in secondi) prima di inviare " "nuovamente lo stesso messaggio" +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "Messaggio del sito" + +#: actions/sitenoticeadminpanel.php:67 +#, fuzzy +msgid "Edit site-wide message" +msgstr "Nuovo messaggio" + +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +msgid "Unable to save site notice." +msgstr "Impossibile salvare la impostazioni dell'aspetto." + +#: actions/sitenoticeadminpanel.php:113 +msgid "Max length for the site-wide notice is 255 chars" +msgstr "" + +#: actions/sitenoticeadminpanel.php:176 +#, fuzzy +msgid "Site notice text" +msgstr "Messaggio del sito" + +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" +msgstr "" + +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "Messaggio del sito" + #: actions/smssettings.php:58 msgid "SMS settings" msgstr "Impostazioni SMS" @@ -3960,6 +3979,66 @@ msgstr "" msgid "No code entered" msgstr "Nessun codice inserito" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "Snapshot" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +msgid "Manage snapshot configuration" +msgstr "Modifica la configurazione del sito" + +#: actions/snapshotadminpanel.php:127 +msgid "Invalid snapshot run value." +msgstr "Valore di esecuzione dello snapshot non valido." + +#: actions/snapshotadminpanel.php:133 +msgid "Snapshot frequency must be a number." +msgstr "La frequenza degli snapshot deve essere un numero." + +#: actions/snapshotadminpanel.php:144 +msgid "Invalid snapshot report URL." +msgstr "URL di segnalazione snapshot non valido." + +#: actions/snapshotadminpanel.php:200 +msgid "Randomly during Web hit" +msgstr "A caso quando avviene un web hit" + +#: actions/snapshotadminpanel.php:201 +msgid "In a scheduled job" +msgstr "In un job pianificato" + +#: actions/snapshotadminpanel.php:206 +msgid "Data snapshots" +msgstr "Snapshot dei dati" + +#: actions/snapshotadminpanel.php:208 +msgid "When to send statistical data to status.net servers" +msgstr "Quando inviare dati statistici a status.net" + +#: actions/snapshotadminpanel.php:217 +msgid "Frequency" +msgstr "Frequenza" + +#: actions/snapshotadminpanel.php:218 +msgid "Snapshots will be sent once every N web hits" +msgstr "Gli snapshot verranno inviati ogni N web hit" + +#: actions/snapshotadminpanel.php:226 +msgid "Report URL" +msgstr "URL per la segnalazione" + +#: actions/snapshotadminpanel.php:227 +msgid "Snapshots will be sent to this URL" +msgstr "Gli snapshot verranno inviati a questo URL" + +#: actions/snapshotadminpanel.php:248 +#, fuzzy +msgid "Save snapshot settings" +msgstr "Salva impostazioni" + #: actions/subedit.php:70 msgid "You are not subscribed to that profile." msgstr "Non hai una abbonamento a quel profilo." @@ -4169,7 +4248,7 @@ msgstr "Nessun ID di profilo nella richiesta." msgid "Unsubscribed" msgstr "Abbonamento annullato" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4373,16 +4452,22 @@ msgstr "Gruppi di %1$s, pagina %2$d" msgid "Search for more groups" msgstr "Cerca altri gruppi" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, php-format msgid "%s is not a member of any group." msgstr "%s non fa parte di alcun gruppo." -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "Prova a [cercare dei gruppi](%%action.groupsearch%%) e iscriviti." +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "Messaggi da %1$s su %2$s!" + #: actions/version.php:73 #, php-format msgid "StatusNet %s" @@ -4438,7 +4523,7 @@ msgstr "" msgid "Plugins" msgstr "Plugin" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 msgid "Version" msgstr "Versione" @@ -4505,22 +4590,22 @@ msgstr "Impossibile aggiornare il messaggio con il nuovo URI." msgid "DB error inserting hashtag: %s" msgstr "Errore del DB nell'inserire un hashtag: %s" -#: classes/Notice.php:239 +#: classes/Notice.php:241 msgid "Problem saving notice. Too long." msgstr "Problema nel salvare il messaggio. Troppo lungo." -#: classes/Notice.php:243 +#: classes/Notice.php:245 msgid "Problem saving notice. Unknown user." msgstr "Problema nel salvare il messaggio. Utente sconosciuto." -#: classes/Notice.php:248 +#: classes/Notice.php:250 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:254 +#: classes/Notice.php:256 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4528,19 +4613,19 @@ msgstr "" "Troppi messaggi duplicati troppo velocemente; fai una pausa e scrivi di " "nuovo tra qualche minuto." -#: classes/Notice.php:260 +#: classes/Notice.php:262 msgid "You are banned from posting notices on this site." msgstr "Ti è proibito inviare messaggi su questo sito." -#: classes/Notice.php:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "Problema nel salvare il messaggio." -#: classes/Notice.php:911 +#: classes/Notice.php:927 msgid "Problem saving group inbox." msgstr "Problema nel salvare la casella della posta del gruppo." -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4565,7 +4650,12 @@ msgstr "Non hai l'abbonamento!" msgid "Couldn't delete self-subscription." msgstr "Impossibile eliminare l'auto-abbonamento." -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "Impossibile eliminare l'abbonamento." + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "Impossibile eliminare l'abbonamento." @@ -4574,19 +4664,19 @@ msgstr "Impossibile eliminare l'abbonamento." msgid "Welcome to %1$s, @%2$s!" msgstr "Benvenuti su %1$s, @%2$s!" -#: classes/User_group.php:462 +#: classes/User_group.php:477 msgid "Could not create group." msgstr "Impossibile creare il gruppo." -#: classes/User_group.php:471 +#: classes/User_group.php:486 msgid "Could not set group URI." msgstr "Impossibile impostare l'URI del gruppo." -#: classes/User_group.php:492 +#: classes/User_group.php:507 msgid "Could not set group membership." msgstr "Impossibile impostare la membership al gruppo." -#: classes/User_group.php:506 +#: classes/User_group.php:521 msgid "Could not save local group info." msgstr "Impossibile salvare le informazioni del gruppo locale." @@ -4627,194 +4717,188 @@ msgstr "%1$s - %2$s" msgid "Untitled page" msgstr "Pagina senza nome" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "Esplorazione sito primaria" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 +#: lib/action.php:430 #, fuzzy msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Profilo personale e attività degli amici" -#: lib/action.php:442 +#: lib/action.php:433 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "Personale" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 +#: lib/action.php:435 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Modifica la tua email, immagine, password o il tuo profilo" -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "Account" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 +#: lib/action.php:440 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Connettiti con altri servizi" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "Connetti" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 +#: lib/action.php:446 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Modifica la configurazione del sito" -#: lib/action.php:460 +#: lib/action.php:449 #, fuzzy msgctxt "MENU" msgid "Admin" msgstr "Amministra" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 +#: lib/action.php:453 #, fuzzy, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Invita amici e colleghi a seguirti su %s" -#: lib/action.php:467 +#: lib/action.php:456 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "Invita" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 +#: lib/action.php:462 #, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Termina la tua sessione sul sito" -#: lib/action.php:476 +#: lib/action.php:465 #, fuzzy msgctxt "MENU" msgid "Logout" msgstr "Esci" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 +#: lib/action.php:470 #, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "Crea un account" -#: lib/action.php:484 +#: lib/action.php:473 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "Registrati" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 +#: lib/action.php:476 #, fuzzy msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Accedi al sito" -#: lib/action.php:490 +#: lib/action.php:479 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "Accedi" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 +#: lib/action.php:482 #, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "Aiutami!" -#: lib/action.php:496 +#: lib/action.php:485 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "Aiuto" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 +#: lib/action.php:488 #, fuzzy msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Cerca persone o del testo" -#: lib/action.php:502 +#: lib/action.php:491 #, fuzzy msgctxt "MENU" msgid "Search" msgstr "Cerca" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 msgid "Site notice" msgstr "Messaggio del sito" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "Viste locali" -#: lib/action.php:656 +#: lib/action.php:645 msgid "Page notice" msgstr "Pagina messaggio" -#: lib/action.php:758 +#: lib/action.php:747 msgid "Secondary site navigation" msgstr "Esplorazione secondaria del sito" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "Aiuto" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "Informazioni" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "FAQ" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "TOS" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "Privacy" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "Sorgenti" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "Contatti" -#: lib/action.php:782 +#: lib/action.php:771 msgid "Badge" msgstr "Badge" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "Licenza del software StatusNet" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4823,12 +4907,12 @@ msgstr "" "**%%site.name%%** è un servizio di microblog offerto da [%%site.broughtby%%]" "(%%site.broughtbyurl%%). " -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** è un servizio di microblog. " -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4839,56 +4923,56 @@ msgstr "" "s, disponibile nei termini della licenza [GNU Affero General Public License]" "(http://www.fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:832 +#: lib/action.php:821 msgid "Site content license" msgstr "Licenza del contenuto del sito" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "I contenuti e i dati di %1$s sono privati e confidenziali." -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" "I contenuti e i dati sono copyright di %1$s. Tutti i diritti riservati." -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "I contenuti e i dati sono forniti dai collaboratori. Tutti i diritti " "riservati." -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "Tutti " -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "licenza." -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "Paginazione" -#: lib/action.php:1172 +#: lib/action.php:1161 msgid "After" msgstr "Successivi" -#: lib/action.php:1180 +#: lib/action.php:1169 msgid "Before" msgstr "Precedenti" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "Impossibile gestire contenuti remoti." -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "Impossibile gestire contenuti XML incorporati." -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "Impossibile gestire contenuti Base64." @@ -4903,91 +4987,80 @@ msgid "Changes to that panel are not allowed." msgstr "Le modifiche al pannello non sono consentite." #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 msgid "showForm() not implemented." msgstr "showForm() non implementata." #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 msgid "saveSettings() not implemented." msgstr "saveSettings() non implementata." #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 msgid "Unable to delete design setting." msgstr "Impossibile eliminare le impostazioni dell'aspetto." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 msgid "Basic site configuration" msgstr "Configurazione di base" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 +#: lib/adminpanelaction.php:350 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "Sito" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 msgid "Design configuration" msgstr "Configurazione aspetto" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 +#: lib/adminpanelaction.php:358 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "Aspetto" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 msgid "User configuration" msgstr "Configurazione utente" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -#, fuzzy -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "Utente" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 msgid "Access configuration" msgstr "Configurazione di accesso" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "Accesso" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 msgid "Paths configuration" msgstr "Configurazione percorsi" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -#, fuzzy -msgctxt "MENU" -msgid "Paths" -msgstr "Percorsi" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 msgid "Sessions configuration" msgstr "Configurazione sessioni" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "Sessioni" +msgid "Edit site notice" +msgstr "Messaggio del sito" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "Configurazione percorsi" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5522,6 +5595,11 @@ msgstr "Scegli un'etichetta per ridurre l'elenco" msgid "Go" msgstr "Vai" +#: 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 "URL della pagina web, blog del gruppo o l'argomento" @@ -6137,10 +6215,6 @@ msgstr "Risposte" msgid "Favorites" msgstr "Preferiti" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "Utente" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "In arrivo" @@ -6166,7 +6240,7 @@ msgstr "Etichette nei messaggi di %s" msgid "Unknown" msgstr "Sconosciuto" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Abbonamenti" @@ -6174,23 +6248,23 @@ msgstr "Abbonamenti" msgid "All subscriptions" msgstr "Tutti gli abbonamenti" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Abbonati" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 msgid "All subscribers" msgstr "Tutti gli abbonati" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 msgid "User ID" msgstr "ID utente" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "Membro dal" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "Tutti i gruppi" @@ -6230,7 +6304,12 @@ msgstr "Ripetere questo messaggio?" msgid "Repeat this notice" msgstr "Ripeti questo messaggio" -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, fuzzy, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "Blocca l'utente da questo gruppo" + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "Nessun utente singolo definito per la modalità single-user." @@ -6384,47 +6463,64 @@ msgstr "Messaggio" msgid "Moderate" msgstr "Modera" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "Profilo utente" + +#: lib/userprofile.php:354 +#, fuzzy +msgctxt "role" +msgid "Administrator" +msgstr "Amministratori" + +#: lib/userprofile.php:355 +#, fuzzy +msgctxt "role" +msgid "Moderator" +msgstr "Modera" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "pochi secondi fa" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "circa un minuto fa" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "circa %d minuti fa" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "circa un'ora fa" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "circa %d ore fa" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "circa un giorno fa" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "circa %d giorni fa" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "circa un mese fa" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "circa %d mesi fa" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "circa un anno fa" diff --git a/locale/ja/LC_MESSAGES/statusnet.po b/locale/ja/LC_MESSAGES/statusnet.po index acbcb457d..def172250 100644 --- a/locale/ja/LC_MESSAGES/statusnet.po +++ b/locale/ja/LC_MESSAGES/statusnet.po @@ -11,19 +11,20 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:03:10+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:56:45+0000\n" "Language-Team: Japanese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ja\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=1; plural=0;\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 msgid "Access" msgstr "アクセス" @@ -120,7 +121,7 @@ msgstr "%1$s と友人、ページ %2$d" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -181,7 +182,7 @@ msgstr "" "せを送ってみませんか。" #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 msgid "You and friends" msgstr "あなたと友人" @@ -208,11 +209,11 @@ msgstr "%2$s に %1$s と友人からの更新があります!" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 msgid "API method not found." msgstr "API メソッドが見つかりません。" @@ -573,7 +574,7 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 msgid "Account" msgstr "アカウント" @@ -660,18 +661,6 @@ msgstr "%1$s / %2$s からのお気に入り" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s は %2$s でお気に入りを更新しました / %2$s。" -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "%s のタイムライン" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "%1$s から %2$s 上の更新をしました!" - #: actions/apitimelinementions.php:117 #, php-format msgid "%1$s / Updates mentioning %2$s" @@ -682,12 +671,12 @@ msgstr "%1$s / %2$s について更新" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%2$s からアップデートに答える %1$s アップデート" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "%s のパブリックタイムライン" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "皆からの %s アップデート!" @@ -934,7 +923,7 @@ msgid "Conversation" msgstr "会話" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "つぶやき" @@ -953,7 +942,7 @@ msgstr "このアプリケーションのオーナーではありません。" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "あなたのセッショントークンに関する問題がありました。" @@ -1149,8 +1138,9 @@ msgstr "デフォルトへリセットする" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1266,7 +1256,7 @@ msgstr "記述が長すぎます。(最長 %d 字)" msgid "Could not update group." msgstr "グループを更新できません。" -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 msgid "Could not create aliases." msgstr "別名を作成できません。" @@ -1391,7 +1381,7 @@ msgid "Cannot normalize that email address" msgstr "そのメールアドレスを正規化できません" #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "有効なメールアドレスではありません。" @@ -1585,6 +1575,25 @@ msgstr "そのようなファイルはありません。" msgid "Cannot read file." msgstr "ファイルを読み込めません。" +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "不正なトークン。" + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "あなたはこのサイトのサンドボックスユーザができません。" + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "ユーザは既に黙っています。" + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1731,12 +1740,18 @@ msgstr "管理者にする" msgid "Make this user an admin" msgstr "このユーザを管理者にする" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "%s のタイムライン" + #: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "%2$s 上の %1$s のメンバーから更新する" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "グループ" @@ -2355,8 +2370,8 @@ msgstr "内容種別 " msgid "Only " msgstr "だけ " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "サポートされていないデータ形式。" @@ -2497,7 +2512,8 @@ msgstr "新しいパスワードを保存できません。" msgid "Password saved." msgstr "パスワードが保存されました。" -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "パス" @@ -2617,7 +2633,7 @@ msgstr "バックグラウンドディレクトリ" msgid "SSL" msgstr "SSL" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 msgid "Never" msgstr "" @@ -2672,11 +2688,11 @@ msgstr "正しいタグではありません: %s" msgid "Users self-tagged with %1$s - page %2$d" msgstr "ユーザ自身がつけたタグ %1$s - ページ %2$d" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "不正なつぶやき内容" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" @@ -2757,7 +2773,7 @@ msgstr "" "自分自身についてのタグ (アルファベット、数字、-、.、_)、カンマまたは空白区切" "りで" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "言語" @@ -2783,7 +2799,7 @@ msgstr "自分をフォローしている者を自動的にフォローする (B msgid "Bio is too long (max %d chars)." msgstr "自己紹介が長すぎます (最長140文字)。" -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "タイムゾーンが選ばれていません。" @@ -3101,7 +3117,7 @@ msgid "Same as password above. Required." msgstr "上のパスワードと同じです。 必須。" #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "メール" @@ -3205,7 +3221,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "プロファイルサービスまたはマイクロブロギングサービスのURL" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "フォロー" @@ -3310,6 +3326,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "%2$s 上の %1$s への返信!" +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "あなたはこのサイトでユーザを黙らせることができません。" + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "合っているプロフィールのないユーザ" + #: actions/rsd.php:146 actions/version.php:157 msgid "StatusNet" msgstr "StatusNet" @@ -3322,7 +3348,9 @@ msgstr "あなたはこのサイトのサンドボックスユーザができま msgid "User is already sandboxed." msgstr "ユーザはすでにサンドボックスです。" +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "セッション" @@ -3346,7 +3374,7 @@ msgstr "セッションデバッグ" msgid "Turn on debugging output for sessions." msgstr "セッションのためのデバッグ出力をオン。" -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "サイト設定の保存" @@ -3377,8 +3405,8 @@ msgstr "組織" msgid "Description" msgstr "概要" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "統計データ" @@ -3521,45 +3549,45 @@ msgstr "別名" msgid "Group actions" msgstr "グループアクション" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "%s グループのつぶやきフィード (RSS 1.0)" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "%s グループのつぶやきフィード (RSS 2.0)" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "%s グループのつぶやきフィード (Atom)" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, php-format msgid "FOAF for %s group" msgstr "%s グループの FOAF" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 msgid "Members" msgstr "メンバー" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(なし)" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "全てのメンバー" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 msgid "Created" msgstr "作成日" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3574,7 +3602,7 @@ msgstr "" "する短いメッセージを共有します。[今すぐ参加](%%%%action.register%%%%) してこ" "のグループの一員になりましょう! ([もっと読む](%%%%doc.help%%%%))" -#: actions/showgroup.php:462 +#: actions/showgroup.php:463 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3587,7 +3615,7 @@ msgstr "" "wikipedia.org/wiki/Micro-blogging) サービス。メンバーは彼らの暮らしと興味に関" "する短いメッセージを共有します。" -#: actions/showgroup.php:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "管理者" @@ -3709,151 +3737,142 @@ msgid "User is already silenced." msgstr "ユーザは既に黙っています。" #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +#, fuzzy +msgid "Basic settings for this StatusNet site" msgstr "この StatusNet サイトの基本設定。" -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "サイト名は長さ0ではいけません。" -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 msgid "You must have a valid contact email address." msgstr "有効な連絡用メールアドレスがなければなりません。" -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "不明な言語 \"%s\"" #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "不正なスナップショットレポートURL。" - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "不正なスナップショットランバリュー" - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "スナップショット頻度は数でなければなりません。" - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "最小のテキスト制限は140字です。" -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "デュープ制限は1秒以上でなければなりません。" -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "一般" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 msgid "Site name" msgstr "サイト名" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "あなたのサイトの名前、\"Yourcompany Microblog\"のような。" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "持って来られます" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "" "クレジットに使用されるテキストは、それぞれのページのフッターでリンクされま" "す。" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "URLで、持って来られます" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "" "クレジットに使用されるURLは、それぞれのページのフッターでリンクされます。" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 msgid "Contact email address for your site" msgstr "あなたのサイトにコンタクトするメールアドレス" -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 msgid "Local" msgstr "ローカル" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "デフォルトタイムゾーン" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "サイトのデフォルトタイムゾーン; 通常UTC。" -#: actions/siteadminpanel.php:281 -msgid "Default site language" +#: actions/siteadminpanel.php:262 +#, fuzzy +msgid "Default language" msgstr "デフォルトサイト言語" -#: actions/siteadminpanel.php:289 -msgid "Snapshots" -msgstr "スナップショット" - -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" msgstr "" -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" -msgstr "予定されているジョブで" - -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" -msgstr "データスナップショット" - -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" -msgstr "いつ status.net サーバに統計データを送りますか" - -#: actions/siteadminpanel.php:301 -msgid "Frequency" -msgstr "頻度" - -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" -msgstr "レポート URL" - -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "レポート URL" - -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" -msgstr "このURLにスナップショットを送るでしょう" - -#: actions/siteadminpanel.php:315 +#: actions/siteadminpanel.php:271 msgid "Limits" msgstr "制限" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Text limit" msgstr "テキスト制限" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Maximum number of characters for notices." msgstr "つぶやきの文字の最大数" -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "Dupe limit" msgstr "デュープ制限" -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" "どれくらい長い間(秒)、ユーザは、再び同じものを投稿するのを待たなければならな" "いか。" +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "サイトつぶやき" + +#: actions/sitenoticeadminpanel.php:67 +#, fuzzy +msgid "Edit site-wide message" +msgstr "新しいメッセージ" + +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +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 +#, fuzzy +msgid "Site notice text" +msgstr "サイトつぶやき" + +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" +msgstr "" + +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "サイトつぶやき" + #: actions/smssettings.php:58 msgid "SMS settings" msgstr "SMS 設定" @@ -3954,6 +3973,66 @@ msgstr "" msgid "No code entered" msgstr "コードが入力されていません" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "スナップショット" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +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 "不正なスナップショットレポートURL。" + +#: 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 "いつ status.net サーバに統計データを送りますか" + +#: actions/snapshotadminpanel.php:217 +msgid "Frequency" +msgstr "頻度" + +#: actions/snapshotadminpanel.php:218 +msgid "Snapshots will be sent once every N web hits" +msgstr "レポート URL" + +#: actions/snapshotadminpanel.php:226 +msgid "Report URL" +msgstr "レポート URL" + +#: actions/snapshotadminpanel.php:227 +msgid "Snapshots will be sent to this URL" +msgstr "このURLにスナップショットを送るでしょう" + +#: actions/snapshotadminpanel.php:248 +#, fuzzy +msgid "Save snapshot settings" +msgstr "サイト設定の保存" + #: actions/subedit.php:70 msgid "You are not subscribed to that profile." msgstr "あなたはそのプロファイルにフォローされていません。" @@ -4162,7 +4241,7 @@ msgstr "リクエスト内にプロファイルIDがありません。" msgid "Unsubscribed" msgstr "フォロー解除済み" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4366,16 +4445,22 @@ msgstr "%1$s グループ、ページ %2$d" msgid "Search for more groups" msgstr "もっとグループを検索" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, php-format msgid "%s is not a member of any group." msgstr "%s はどのグループのメンバーでもありません。" -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "[グループを探して](%%action.groupsearch%%)それに加入してください。" +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "%1$s から %2$s 上の更新をしました!" + #: actions/version.php:73 #, php-format msgid "StatusNet %s" @@ -4421,7 +4506,7 @@ msgstr "" msgid "Plugins" msgstr "プラグイン" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 msgid "Version" msgstr "バージョン" @@ -4490,21 +4575,21 @@ msgstr "新しいURIでメッセージをアップデートできませんでし msgid "DB error inserting hashtag: %s" msgstr "ハッシュタグ追加 DB エラー: %s" -#: classes/Notice.php:239 +#: classes/Notice.php:241 msgid "Problem saving notice. Too long." msgstr "つぶやきを保存する際に問題が発生しました。長すぎです。" -#: classes/Notice.php:243 +#: classes/Notice.php:245 msgid "Problem saving notice. Unknown user." msgstr "つぶやきを保存する際に問題が発生しました。不明なユーザです。" -#: classes/Notice.php:248 +#: classes/Notice.php:250 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "多すぎるつぶやきが速すぎます; 数分間の休みを取ってから再投稿してください。" -#: classes/Notice.php:254 +#: classes/Notice.php:256 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4512,19 +4597,19 @@ msgstr "" "多すぎる重複メッセージが速すぎます; 数分間休みを取ってから再度投稿してくださ" "い。" -#: classes/Notice.php:260 +#: classes/Notice.php:262 msgid "You are banned from posting notices on this site." msgstr "あなたはこのサイトでつぶやきを投稿するのが禁止されています。" -#: classes/Notice.php:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "つぶやきを保存する際に問題が発生しました。" -#: classes/Notice.php:911 +#: classes/Notice.php:927 msgid "Problem saving group inbox." msgstr "グループ受信箱を保存する際に問題が発生しました。" -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4549,7 +4634,12 @@ msgstr "フォローしていません!" msgid "Couldn't delete self-subscription." msgstr "自己フォローを削除できません。" -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "フォローを削除できません" + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "フォローを削除できません" @@ -4558,20 +4648,20 @@ msgstr "フォローを削除できません" msgid "Welcome to %1$s, @%2$s!" msgstr "ようこそ %1$s、@%2$s!" -#: classes/User_group.php:462 +#: classes/User_group.php:477 msgid "Could not create group." msgstr "グループを作成できません。" -#: classes/User_group.php:471 +#: classes/User_group.php:486 #, fuzzy msgid "Could not set group URI." msgstr "グループメンバーシップをセットできません。" -#: classes/User_group.php:492 +#: classes/User_group.php:507 msgid "Could not set group membership." msgstr "グループメンバーシップをセットできません。" -#: classes/User_group.php:506 +#: classes/User_group.php:521 #, fuzzy msgid "Could not save local group info." msgstr "フォローを保存できません。" @@ -4613,194 +4703,188 @@ msgstr "" msgid "Untitled page" msgstr "名称未設定ページ" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "プライマリサイトナビゲーション" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 +#: lib/action.php:430 #, fuzzy msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "パーソナルプロファイルと友人のタイムライン" -#: lib/action.php:442 +#: lib/action.php:433 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "パーソナル" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 +#: lib/action.php:435 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "メールアドレス、アバター、パスワード、プロパティの変更" -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "アカウント" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 +#: lib/action.php:440 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "サービスへ接続" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "接続" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 +#: lib/action.php:446 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "サイト設定の変更" -#: lib/action.php:460 +#: lib/action.php:449 #, fuzzy msgctxt "MENU" msgid "Admin" msgstr "管理者" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 +#: lib/action.php:453 #, fuzzy, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "友人や同僚が %s で加わるよう誘ってください。" -#: lib/action.php:467 +#: lib/action.php:456 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "招待" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 +#: lib/action.php:462 #, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "サイトからログアウト" -#: lib/action.php:476 +#: lib/action.php:465 #, fuzzy msgctxt "MENU" msgid "Logout" msgstr "ログアウト" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 +#: lib/action.php:470 #, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "アカウントを作成" -#: lib/action.php:484 +#: lib/action.php:473 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "登録" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 +#: lib/action.php:476 #, fuzzy msgctxt "TOOLTIP" msgid "Login to the site" msgstr "サイトへログイン" -#: lib/action.php:490 +#: lib/action.php:479 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "ログイン" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 +#: lib/action.php:482 #, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "助けて!" -#: lib/action.php:496 +#: lib/action.php:485 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "ヘルプ" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 +#: lib/action.php:488 #, fuzzy msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "人々かテキストを検索" -#: lib/action.php:502 +#: lib/action.php:491 #, fuzzy msgctxt "MENU" msgid "Search" msgstr "検索" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 msgid "Site notice" msgstr "サイトつぶやき" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "ローカルビュー" -#: lib/action.php:656 +#: lib/action.php:645 msgid "Page notice" msgstr "ページつぶやき" -#: lib/action.php:758 +#: lib/action.php:747 msgid "Secondary site navigation" msgstr "セカンダリサイトナビゲーション" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "ヘルプ" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "About" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "よくある質問" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "プライバシー" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "ソース" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "連絡先" -#: lib/action.php:782 +#: lib/action.php:771 msgid "Badge" msgstr "バッジ" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "StatusNet ソフトウェアライセンス" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4809,12 +4893,12 @@ msgstr "" "**%%site.name%%** は [%%site.broughtby%%](%%site.broughtbyurl%%) が提供するマ" "イクロブログサービスです。 " -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** はマイクロブログサービスです。 " -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4825,53 +4909,53 @@ msgstr "" "いています。 ライセンス [GNU Affero General Public License](http://www.fsf." "org/licensing/licenses/agpl-3.0.html)。" -#: lib/action.php:832 +#: lib/action.php:821 msgid "Site content license" msgstr "サイト内容ライセンス" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "全て " -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "ライセンス。" -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "ページ化" -#: lib/action.php:1172 +#: lib/action.php:1161 msgid "After" msgstr "<<後" -#: lib/action.php:1180 +#: lib/action.php:1169 msgid "Before" msgstr "前>>" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "" @@ -4886,91 +4970,80 @@ msgid "Changes to that panel are not allowed." msgstr "そのパネルへの変更は許可されていません。" #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 msgid "showForm() not implemented." msgstr "showForm() は実装されていません。" #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 msgid "saveSettings() not implemented." msgstr "saveSettings() は実装されていません。" #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 msgid "Unable to delete design setting." msgstr "デザイン設定を削除できません。" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 msgid "Basic site configuration" msgstr "基本サイト設定" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 +#: lib/adminpanelaction.php:350 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "サイト" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 msgid "Design configuration" msgstr "デザイン設定" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 +#: lib/adminpanelaction.php:358 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "デザイン" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 msgid "User configuration" msgstr "ユーザ設定" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -#, fuzzy -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "ユーザ" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 msgid "Access configuration" msgstr "アクセス設定" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "アクセス" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 msgid "Paths configuration" msgstr "パス設定" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -#, fuzzy -msgctxt "MENU" -msgid "Paths" -msgstr "パス" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 msgid "Sessions configuration" msgstr "セッション設定" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "セッション" +msgid "Edit site notice" +msgstr "サイトつぶやき" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "パス設定" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5460,6 +5533,11 @@ msgstr "タグを選んで、リストを狭くしてください" 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 "グループやトピックのホームページやブログの URL" @@ -6081,10 +6159,6 @@ msgstr "返信" msgid "Favorites" msgstr "お気に入り" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "ユーザ" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "受信箱" @@ -6110,7 +6184,7 @@ msgstr "%s のつぶやきのタグ" msgid "Unknown" msgstr "不明" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "フォロー" @@ -6118,23 +6192,23 @@ msgstr "フォロー" msgid "All subscriptions" msgstr "すべてのフォロー" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "フォローされている" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 msgid "All subscribers" msgstr "すべてのフォローされている" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 msgid "User ID" msgstr "ユーザID" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "利用開始日" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "全てのグループ" @@ -6174,7 +6248,12 @@ msgstr "このつぶやきを繰り返しますか?" msgid "Repeat this notice" msgstr "このつぶやきを繰り返す" -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, fuzzy, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "このグループからこのユーザをブロック" + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "single-user モードのためのシングルユーザが定義されていません。" @@ -6329,47 +6408,64 @@ msgstr "メッセージ" msgid "Moderate" msgstr "管理" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "ユーザプロファイル" + +#: lib/userprofile.php:354 +#, fuzzy +msgctxt "role" +msgid "Administrator" +msgstr "管理者" + +#: lib/userprofile.php:355 +#, fuzzy +msgctxt "role" +msgid "Moderator" +msgstr "管理" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "数秒前" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "約 1 分前" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "約 %d 分前" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "約 1 時間前" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "約 %d 時間前" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "約 1 日前" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "約 %d 日前" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "約 1 ヵ月前" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "約 %d ヵ月前" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "約 1 年前" diff --git a/locale/ko/LC_MESSAGES/statusnet.po b/locale/ko/LC_MESSAGES/statusnet.po index aca8a093a..fa8b67239 100644 --- a/locale/ko/LC_MESSAGES/statusnet.po +++ b/locale/ko/LC_MESSAGES/statusnet.po @@ -7,19 +7,20 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:03:13+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:56:48+0000\n" "Language-Team: Korean\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ko\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=1; plural=0;\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 #, fuzzy msgid "Access" msgstr "수락" @@ -123,7 +124,7 @@ msgstr "%s 와 친구들, %d 페이지" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -178,7 +179,7 @@ msgid "" msgstr "" #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 #, fuzzy msgid "You and friends" msgstr "%s 및 친구들" @@ -206,11 +207,11 @@ msgstr "%1$s 및 %2$s에 있는 친구들의 업데이트!" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "API 메서드를 찾을 수 없습니다." @@ -583,7 +584,7 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 msgid "Account" msgstr "계정" @@ -675,18 +676,6 @@ msgstr "%s / %s의 좋아하는 글들" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%s 좋아하는 글이 업데이트 됐습니다. %S에 의해 / %s." -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "%s 타임라인" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "%2$s에 있는 %1$s의 업데이트!" - #: actions/apitimelinementions.php:117 #, fuzzy, php-format msgid "%1$s / Updates mentioning %2$s" @@ -697,12 +686,12 @@ msgstr "%1$s / %2$s에게 답신 업데이트" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s님이 %2$s/%3$s의 업데이트에 답변했습니다." -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "%s 공개 타임라인" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "모두로부터의 업데이트 %s개!" @@ -954,7 +943,7 @@ msgid "Conversation" msgstr "인증 코드" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "통지" @@ -976,7 +965,7 @@ msgstr "당신은 해당 그룹의 멤버가 아닙니다." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "당신의 세션토큰관련 문제가 있습니다." @@ -1183,8 +1172,9 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1312,7 +1302,7 @@ msgstr "설명이 너무 길어요. (최대 140글자)" msgid "Could not update group." msgstr "그룹을 업데이트 할 수 없습니다." -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 #, fuzzy msgid "Could not create aliases." msgstr "좋아하는 게시글을 생성할 수 없습니다." @@ -1438,7 +1428,7 @@ msgid "Cannot normalize that email address" msgstr "그 이메일 주소를 정규화 할 수 없습니다." #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "유효한 이메일 주소가 아닙니다." @@ -1634,6 +1624,25 @@ msgstr "그러한 통지는 없습니다." msgid "Cannot read file." msgstr "파일을 잃어버렸습니다." +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "옳지 않은 크기" + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "당신은 이 사용자에게 메시지를 보낼 수 없습니다." + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "회원이 당신을 차단해왔습니다." + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1789,12 +1798,18 @@ msgstr "관리자" msgid "Make this user an admin" msgstr "" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "%s 타임라인" + #: actions/grouprss.php:140 #, fuzzy, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "%2$s에 있는 %1$s의 업데이트!" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "그룹" @@ -2403,8 +2418,8 @@ msgstr "연결" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "지원하는 형식의 데이터가 아닙니다." @@ -2550,7 +2565,8 @@ msgstr "새 비밀번호를 저장 할 수 없습니다." msgid "Password saved." msgstr "비밀 번호 저장" -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "" @@ -2678,7 +2694,7 @@ msgstr "" msgid "SSL" msgstr "SMS" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 #, fuzzy msgid "Never" msgstr "복구" @@ -2737,11 +2753,11 @@ msgstr "유효한 태그가 아닙니다: %s" msgid "Users self-tagged with %1$s - page %2$d" msgstr "이용자 셀프 테크 %s - %d 페이지" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "옳지 않은 통지 내용" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" @@ -2820,7 +2836,7 @@ msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "당신을 위한 태그, (문자,숫자,-, ., _로 구성) 콤마 혹은 공백으로 구분." -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "언어" @@ -2846,7 +2862,7 @@ msgstr "나에게 구독하는 사람에게 자동 구독 신청" msgid "Bio is too long (max %d chars)." msgstr "자기소개가 너무 깁니다. (최대 140글자)" -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "타임존이 설정 되지 않았습니다." @@ -3154,7 +3170,7 @@ msgid "Same as password above. Required." msgstr "위와 같은 비밀 번호. 필수 사항." #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "이메일" @@ -3259,7 +3275,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "다른 마이크로블로깅 서비스의 귀하의 프로필 URL" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "구독" @@ -3364,6 +3380,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "%2$s에서 %1$s까지 메시지" +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "당신은 이 사용자에게 메시지를 보낼 수 없습니다." + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "프로필 매칭이 없는 사용자" + #: actions/rsd.php:146 actions/version.php:157 #, fuzzy msgid "StatusNet" @@ -3379,7 +3405,9 @@ msgstr "당신은 이 사용자에게 메시지를 보낼 수 없습니다." msgid "User is already sandboxed." msgstr "회원이 당신을 차단해왔습니다." +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "" @@ -3403,7 +3431,7 @@ msgstr "" msgid "Turn on debugging output for sessions." msgstr "" -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 #, fuzzy msgid "Save site settings" @@ -3439,8 +3467,8 @@ msgstr "페이지수" msgid "Description" msgstr "설명" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "통계" @@ -3573,46 +3601,46 @@ msgstr "" msgid "Group actions" msgstr "그룹 행동" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "%s 그룹을 위한 공지피드" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "%s 그룹을 위한 공지피드" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "%s 그룹을 위한 공지피드" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, php-format msgid "FOAF for %s group" msgstr "%s의 보낸쪽지함" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 msgid "Members" msgstr "회원" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(없습니다.)" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "모든 회원" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 #, fuzzy msgid "Created" msgstr "생성" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3622,7 +3650,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:462 +#: actions/showgroup.php:463 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3633,7 +3661,7 @@ msgstr "" "**%s** 는 %%%%site.name%%%% [마이크로블로깅)(http://en.wikipedia.org/wiki/" "Micro-blogging)의 사용자 그룹입니다. " -#: actions/showgroup.php:490 +#: actions/showgroup.php:491 #, fuzzy msgid "Admins" msgstr "관리자" @@ -3749,150 +3777,139 @@ msgid "User is already silenced." msgstr "회원이 당신을 차단해왔습니다." #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +msgid "Basic settings for this StatusNet site" msgstr "" -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "" -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 #, fuzzy msgid "You must have a valid contact email address." msgstr "유효한 이메일 주소가 아닙니다." -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "" #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "" - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "" - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "" - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "" -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "" -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 #, fuzzy msgid "Site name" msgstr "사이트 공지" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 #, fuzzy msgid "Contact email address for your site" msgstr "%s에 포스팅 할 새로운 이메일 주소" -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 #, fuzzy msgid "Local" msgstr "로컬 뷰" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "" -#: actions/siteadminpanel.php:281 +#: actions/siteadminpanel.php:262 #, fuzzy -msgid "Default site language" +msgid "Default language" msgstr "언어 설정" -#: actions/siteadminpanel.php:289 -msgid "Snapshots" -msgstr "" - -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" msgstr "" -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" +#: actions/siteadminpanel.php:271 +msgid "Limits" msgstr "" -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" +#: actions/siteadminpanel.php:274 +msgid "Text limit" msgstr "" -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" +#: actions/siteadminpanel.php:274 +msgid "Maximum number of characters for notices." msgstr "" -#: actions/siteadminpanel.php:301 -msgid "Frequency" +#: actions/siteadminpanel.php:278 +msgid "Dupe limit" msgstr "" -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" +#: actions/siteadminpanel.php:278 +msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "" +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "사이트 공지" -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" -msgstr "" +#: actions/sitenoticeadminpanel.php:67 +#, fuzzy +msgid "Edit site-wide message" +msgstr "새로운 메시지입니다." -#: actions/siteadminpanel.php:315 -msgid "Limits" -msgstr "" +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +msgid "Unable to save site notice." +msgstr "트위터 환경설정을 저장할 수 없습니다." -#: actions/siteadminpanel.php:318 -msgid "Text limit" +#: actions/sitenoticeadminpanel.php:113 +msgid "Max length for the site-wide notice is 255 chars" msgstr "" -#: actions/siteadminpanel.php:318 -msgid "Maximum number of characters for notices." -msgstr "" +#: actions/sitenoticeadminpanel.php:176 +#, fuzzy +msgid "Site notice text" +msgstr "사이트 공지" -#: actions/siteadminpanel.php:322 -msgid "Dupe limit" +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" msgstr "" -#: actions/siteadminpanel.php:322 -msgid "How long users must wait (in seconds) to post the same thing again." -msgstr "" +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "사이트 공지" #: actions/smssettings.php:58 #, fuzzy @@ -3995,6 +4012,66 @@ msgstr "귀하의 휴대폰의 통신회사는 무엇입니까?" msgid "No code entered" msgstr "코드가 입력 되지 않았습니다." +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +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 +#, fuzzy +msgid "Save snapshot settings" +msgstr "아바타 설정" + #: actions/subedit.php:70 msgid "You are not subscribed to that profile." msgstr "당신은 이 프로필에 구독되지 않고있습니다." @@ -4197,7 +4274,7 @@ msgstr "요청한 프로필id가 없습니다." msgid "Unsubscribed" msgstr "구독취소 되었습니다." -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4406,16 +4483,22 @@ msgstr "%s 그룹 회원, %d페이지" msgid "Search for more groups" msgstr "프로필이나 텍스트 검색" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, fuzzy, php-format msgid "%s is not a member of any group." msgstr "당신은 해당 그룹의 멤버가 아닙니다." -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "%2$s에 있는 %1$s의 업데이트!" + #: actions/version.php:73 #, fuzzy, php-format msgid "StatusNet %s" @@ -4459,7 +4542,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 #, fuzzy msgid "Version" msgstr "개인적인" @@ -4528,23 +4611,23 @@ msgstr "새 URI와 함께 메시지를 업데이트할 수 없습니다." msgid "DB error inserting hashtag: %s" msgstr "해쉬테그를 추가 할 때에 데이타베이스 에러 : %s" -#: classes/Notice.php:239 +#: classes/Notice.php:241 #, fuzzy msgid "Problem saving notice. Too long." msgstr "통지를 저장하는데 문제가 발생했습니다." -#: classes/Notice.php:243 +#: classes/Notice.php:245 msgid "Problem saving notice. Unknown user." msgstr "게시글 저장문제. 알려지지않은 회원" -#: classes/Notice.php:248 +#: classes/Notice.php:250 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "너무 많은 게시글이 너무 빠르게 올라옵니다. 한숨고르고 몇분후에 다시 포스트를 " "해보세요." -#: classes/Notice.php:254 +#: classes/Notice.php:256 #, fuzzy msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " @@ -4553,20 +4636,20 @@ msgstr "" "너무 많은 게시글이 너무 빠르게 올라옵니다. 한숨고르고 몇분후에 다시 포스트를 " "해보세요." -#: classes/Notice.php:260 +#: classes/Notice.php:262 msgid "You are banned from posting notices on this site." msgstr "이 사이트에 게시글 포스팅으로부터 당신은 금지되었습니다." -#: classes/Notice.php:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "통지를 저장하는데 문제가 발생했습니다." -#: classes/Notice.php:911 +#: classes/Notice.php:927 #, fuzzy msgid "Problem saving group inbox." msgstr "통지를 저장하는데 문제가 발생했습니다." -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4594,7 +4677,12 @@ msgstr "구독하고 있지 않습니다!" msgid "Couldn't delete self-subscription." msgstr "예약 구독을 삭제 할 수 없습니다." -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "예약 구독을 삭제 할 수 없습니다." + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "예약 구독을 삭제 할 수 없습니다." @@ -4603,20 +4691,20 @@ msgstr "예약 구독을 삭제 할 수 없습니다." msgid "Welcome to %1$s, @%2$s!" msgstr "%2$s에서 %1$s까지 메시지" -#: classes/User_group.php:462 +#: classes/User_group.php:477 msgid "Could not create group." msgstr "새 그룹을 만들 수 없습니다." -#: classes/User_group.php:471 +#: classes/User_group.php:486 #, fuzzy msgid "Could not set group URI." msgstr "그룹 맴버십을 세팅할 수 없습니다." -#: classes/User_group.php:492 +#: classes/User_group.php:507 msgid "Could not set group membership." msgstr "그룹 맴버십을 세팅할 수 없습니다." -#: classes/User_group.php:506 +#: classes/User_group.php:521 #, fuzzy msgid "Could not save local group info." msgstr "구독을 저장할 수 없습니다." @@ -4659,195 +4747,189 @@ msgstr "%1$s (%2$s)" msgid "Untitled page" msgstr "제목없는 페이지" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "주 사이트 네비게이션" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 +#: lib/action.php:430 #, fuzzy msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "개인 프로필과 친구 타임라인" -#: lib/action.php:442 +#: lib/action.php:433 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "개인적인" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 +#: lib/action.php:435 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "당신의 이메일, 아바타, 비밀 번호, 프로필을 변경하세요." -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "계정" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 +#: lib/action.php:440 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "서버에 재접속 할 수 없습니다 : %s" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "연결" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 +#: lib/action.php:446 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "주 사이트 네비게이션" -#: lib/action.php:460 +#: lib/action.php:449 #, fuzzy msgctxt "MENU" msgid "Admin" msgstr "관리자" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 +#: lib/action.php:453 #, fuzzy, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "%s에 친구를 가입시키기 위해 친구와 동료를 초대합니다." -#: lib/action.php:467 +#: lib/action.php:456 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "초대" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 +#: lib/action.php:462 #, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "이 사이트로부터 로그아웃" -#: lib/action.php:476 +#: lib/action.php:465 #, fuzzy msgctxt "MENU" msgid "Logout" msgstr "로그아웃" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 +#: lib/action.php:470 #, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "계정 만들기" -#: lib/action.php:484 +#: lib/action.php:473 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "회원가입" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 +#: lib/action.php:476 #, fuzzy msgctxt "TOOLTIP" msgid "Login to the site" msgstr "이 사이트 로그인" -#: lib/action.php:490 +#: lib/action.php:479 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "로그인" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 +#: lib/action.php:482 #, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "도움이 필요해!" -#: lib/action.php:496 +#: lib/action.php:485 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "도움말" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 +#: lib/action.php:488 #, fuzzy msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "프로필이나 텍스트 검색" -#: lib/action.php:502 +#: lib/action.php:491 #, fuzzy msgctxt "MENU" msgid "Search" msgstr "검색" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 msgid "Site notice" msgstr "사이트 공지" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "로컬 뷰" -#: lib/action.php:656 +#: lib/action.php:645 msgid "Page notice" msgstr "페이지 공지" -#: lib/action.php:758 +#: lib/action.php:747 msgid "Secondary site navigation" msgstr "보조 사이트 네비게이션" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "도움말" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "정보" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "자주 묻는 질문" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "개인정보 취급방침" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "소스 코드" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "연락하기" -#: lib/action.php:782 +#: lib/action.php:771 #, fuzzy msgid "Badge" msgstr "찔러 보기" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "라코니카 소프트웨어 라이선스" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4856,12 +4938,12 @@ msgstr "" "**%%site.name%%** 는 [%%site.broughtby%%](%%site.broughtbyurl%%)가 제공하는 " "마이크로블로깅서비스입니다." -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** 는 마이크로블로깅서비스입니다." -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4872,54 +4954,54 @@ msgstr "" "을 사용합니다. StatusNet는 [GNU Affero General Public License](http://www." "fsf.org/licensing/licenses/agpl-3.0.html) 라이선스에 따라 사용할 수 있습니다." -#: lib/action.php:832 +#: lib/action.php:821 #, fuzzy msgid "Site content license" msgstr "라코니카 소프트웨어 라이선스" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "모든 것" -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "라이선스" -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "페이지수" -#: lib/action.php:1172 +#: lib/action.php:1161 msgid "After" msgstr "뒷 페이지" -#: lib/action.php:1180 +#: lib/action.php:1169 msgid "Before" msgstr "앞 페이지" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "" @@ -4936,99 +5018,89 @@ msgid "Changes to that panel are not allowed." msgstr "가입이 허용되지 않습니다." #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 #, fuzzy msgid "showForm() not implemented." msgstr "명령이 아직 실행되지 않았습니다." #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 #, fuzzy msgid "saveSettings() not implemented." msgstr "명령이 아직 실행되지 않았습니다." #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 #, fuzzy msgid "Unable to delete design setting." msgstr "트위터 환경설정을 저장할 수 없습니다." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 #, fuzzy msgid "Basic site configuration" msgstr "이메일 주소 확인서" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 +#: lib/adminpanelaction.php:350 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "초대" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 #, fuzzy msgid "Design configuration" msgstr "SMS 인증" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 +#: lib/adminpanelaction.php:358 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "개인적인" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 #, fuzzy msgid "User configuration" msgstr "SMS 인증" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -#, fuzzy -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "이용자" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 #, fuzzy msgid "Access configuration" msgstr "SMS 인증" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "수락" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 #, fuzzy msgid "Paths configuration" msgstr "SMS 인증" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -msgctxt "MENU" -msgid "Paths" -msgstr "" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 #, fuzzy msgid "Sessions configuration" msgstr "SMS 인증" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "개인적인" +msgid "Edit site notice" +msgstr "사이트 공지" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "SMS 인증" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5528,6 +5600,11 @@ msgstr "좁은 리스트에서 태그 선택하기" msgid "Go" msgstr "Go " +#: 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 "그룹 혹은 토픽의 홈페이지나 블로그 URL" @@ -6071,10 +6148,6 @@ msgstr "답신" msgid "Favorites" msgstr "좋아하는 글들" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "이용자" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "받은 쪽지함" @@ -6101,7 +6174,7 @@ msgstr "%s의 게시글의 태그" msgid "Unknown" msgstr "알려지지 않은 행동" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "구독" @@ -6109,24 +6182,24 @@ msgstr "구독" msgid "All subscriptions" msgstr "모든 예약 구독" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "구독자" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 msgid "All subscribers" msgstr "모든 구독자" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 #, fuzzy msgid "User ID" msgstr "이용자" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "가입한 때" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "모든 그룹" @@ -6169,7 +6242,12 @@ msgstr "이 게시글에 대해 답장하기" msgid "Repeat this notice" msgstr "이 게시글에 대해 답장하기" -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, fuzzy, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "이 그룹의 회원리스트" + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "" @@ -6333,47 +6411,63 @@ msgstr "메시지" msgid "Moderate" msgstr "" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "이용자 프로필" + +#: lib/userprofile.php:354 +#, fuzzy +msgctxt "role" +msgid "Administrator" +msgstr "관리자" + +#: lib/userprofile.php:355 +msgctxt "role" +msgid "Moderator" +msgstr "" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "몇 초 전" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "1분 전" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "%d분 전" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "1시간 전" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "%d시간 전" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "하루 전" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "%d일 전" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "1달 전" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "%d달 전" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "1년 전" diff --git a/locale/mk/LC_MESSAGES/statusnet.po b/locale/mk/LC_MESSAGES/statusnet.po index b80b0c905..60e5a3c29 100644 --- a/locale/mk/LC_MESSAGES/statusnet.po +++ b/locale/mk/LC_MESSAGES/statusnet.po @@ -9,19 +9,20 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:03:16+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:56:50+0000\n" "Language-Team: Macedonian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural= n==1 || n%10==1 ? 0 : 1;\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 msgid "Access" msgstr "Пристап" @@ -44,10 +45,9 @@ msgstr "" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -#, fuzzy msgctxt "LABEL" msgid "Private" -msgstr "Приватен" +msgstr "Приватно" #. TRANS: Checkbox instructions for admin setting "Invite only" #: actions/accessadminpanel.php:174 @@ -75,7 +75,6 @@ msgid "Save access settings" msgstr "Зачувај нагодувања на пристап" #: actions/accessadminpanel.php:203 -#, fuzzy msgctxt "BUTTON" msgid "Save" msgstr "Зачувај" @@ -120,7 +119,7 @@ msgstr "%1$s и пријателите, стр. %2$d" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -184,7 +183,7 @@ msgstr "" "прочита." #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 msgid "You and friends" msgstr "Вие и пријателите" @@ -211,11 +210,11 @@ msgstr "Подновувања од %1$s и пријатели на %2$s!" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 msgid "API method not found." msgstr "API методот не е пронајден." @@ -579,7 +578,7 @@ msgstr "" "%3$s податоците за Вашата %4$s сметка. Треба да дозволувате " "пристап до Вашата %4$s сметка само на трети страни на кои им верувате." -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 msgid "Account" msgstr "Сметка" @@ -668,18 +667,6 @@ msgstr "%1$s / Омилени од %2$s" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "Подновувања на %1$s омилени на %2$s / %2$s." -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "Историја на %s" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "Подновувања од %1$s на %2$s!" - #: actions/apitimelinementions.php:117 #, php-format msgid "%1$s / Updates mentioning %2$s" @@ -690,12 +677,12 @@ msgstr "%1$s / Подновувања кои споменуваат %2$s" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s подновувања коишто се одговор на подновувањата од %2$s / %3$s." -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "Јавна историја на %s" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s подновуввања од сите!" @@ -944,7 +931,7 @@ msgid "Conversation" msgstr "Разговор" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Забелешки" @@ -963,7 +950,7 @@ msgstr "Не сте сопственик на овој програм." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "Се појави проблем со Вашиот сесиски жетон." @@ -1159,8 +1146,9 @@ msgstr "Врати по основно" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1276,7 +1264,7 @@ msgstr "описот е предолг (максимум %d знаци)" msgid "Could not update group." msgstr "Не можев да ја подновам групата." -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 msgid "Could not create aliases." msgstr "Не можеше да се создадат алијаси." @@ -1401,7 +1389,7 @@ msgid "Cannot normalize that email address" msgstr "Неможам да ја нормализирам таа е-поштенска адреса" #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Неправилна адреса за е-пошта." @@ -1594,6 +1582,25 @@ msgstr "Нема таква податотека." msgid "Cannot read file." msgstr "Податотеката не може да се прочита." +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "Погрешен жетон." + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "Не можете да ставате корисници во песочен режим на оваа веб-страница." + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "Корисникот е веќе замолчен." + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1743,12 +1750,18 @@ msgstr "Направи го/ја администратор" msgid "Make this user an admin" msgstr "Направи го корисникот администратор" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "Историја на %s" + #: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Подновувања од членови на %1$s на %2$s!" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Групи" @@ -2011,7 +2024,6 @@ msgstr "Можете да додадете и лична порака во по #. TRANS: Send button for inviting friends #: actions/invite.php:198 -#, fuzzy msgctxt "BUTTON" msgid "Send" msgstr "Испрати" @@ -2373,8 +2385,8 @@ msgstr "тип на содржини " msgid "Only " msgstr "Само " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "Ова не е поддржан формат на податотека." @@ -2515,7 +2527,8 @@ msgstr "Не можам да ја зачувам новата лозинка." msgid "Password saved." msgstr "Лозинката е зачувана." -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "Патеки" @@ -2635,7 +2648,7 @@ msgstr "Директориум на позадината" msgid "SSL" msgstr "SSL" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 msgid "Never" msgstr "Никогаш" @@ -2691,11 +2704,11 @@ msgstr "Не е важечка ознака за луѓе: %s" msgid "Users self-tagged with %1$s - page %2$d" msgstr "Користници самоозначени со %1$s - стр. %2$d" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "Неважечка содржина на забелешката" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" @@ -2777,7 +2790,7 @@ msgstr "" "Ознаки за Вас самите (букви, бројки, -, . и _), одделени со запирка или " "празно место" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "Јазик" @@ -2805,7 +2818,7 @@ msgstr "" msgid "Bio is too long (max %d chars)." msgstr "Биографијата е преголема (највеќе до %d знаци)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Не е избрана часовна зона." @@ -3126,7 +3139,7 @@ msgid "Same as password above. Required." msgstr "Исто што и лозинката погоре. Задолжително поле." #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "Е-пошта" @@ -3233,7 +3246,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL на Вашиот профил на друга компатибилна служба за микроблогирање." #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "Претплати се" @@ -3337,6 +3350,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Одговори на %1$s на %2$s!" +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "Не можете да замолчувате корисници на оваа веб-страница." + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "Корисник без соодветен профил." + #: actions/rsd.php:146 actions/version.php:157 msgid "StatusNet" msgstr "StatusNet" @@ -3349,7 +3372,9 @@ msgstr "Не можете да ставате корисници во песоч msgid "User is already sandboxed." msgstr "Корисникот е веќе во песочен режим." +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "Сесии" @@ -3373,7 +3398,7 @@ msgstr "Поправка на грешки во сесија" msgid "Turn on debugging output for sessions." msgstr "Вклучи извод од поправка на грешки за сесии." -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Зачувај нагодувања на веб-страницата" @@ -3404,8 +3429,8 @@ msgstr "Организација" msgid "Description" msgstr "Опис" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "Статистики" @@ -3549,45 +3574,45 @@ msgstr "Алијаси" msgid "Group actions" msgstr "Групни дејства" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Канал со забелешки за групата %s (RSS 1.0)" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Канал со забелешки за групата %s (RSS 2.0)" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Канал со забелешки за групата%s (Atom)" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, php-format msgid "FOAF for %s group" msgstr "FOAF за групата %s" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 msgid "Members" msgstr "Членови" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Нема)" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "Сите членови" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 msgid "Created" msgstr "Создадено" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3603,7 +3628,7 @@ msgstr "" "се](%%%%action.register%%%%) за да станете дел од оваа група и многу повеќе! " "([Прочитајте повеќе](%%%%doc.help%%%%))" -#: actions/showgroup.php:462 +#: actions/showgroup.php:463 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3616,7 +3641,7 @@ msgstr "" "слободната програмска алатка [StatusNet](http://status.net/). Нејзините " "членови си разменуваат кратки пораки за нивниот живот и интереси. " -#: actions/showgroup.php:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "Администратори" @@ -3738,152 +3763,143 @@ msgid "User is already silenced." msgstr "Корисникот е веќе замолчен." #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +#, fuzzy +msgid "Basic settings for this StatusNet site" msgstr "Основни нагодувања за оваа StatusNet веб-страница." -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "Должината на името на веб-страницата не може да изнесува нула." -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 msgid "You must have a valid contact email address." msgstr "Мора да имате важечка контактна е-поштенска адреса." -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "Непознат јазик „%s“" #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "Неважечки URL за извештај од снимката." - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "Неважечка вредност на пуштањето на снимката." - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "Честотата на снимките мора да биде бројка." - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "Минималното ограничување на текстот изнесува 140 знаци." -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "Ограничувањето на дуплирањето мора да изнесува барем 1 секунда." -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "Општи" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 msgid "Site name" msgstr "Име на веб-страницата" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "Името на Вашата веб-страница, како на пр. „Микроблог на Вашафирма“" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "Овозможено од" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "" "Текст за врската за наведување на авторите во долната колонцифра на секоја " "страница" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "URL-адреса на овозможувачот на услугите" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "" "URL-адресата која е користи за врски за автори во долната колоцифра на " "секоја страница" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 msgid "Contact email address for your site" msgstr "Контактна е-пошта за Вашата веб-страница" -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 msgid "Local" msgstr "Локално" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "Основна часовна зона" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "Матична часовна зона за веб-страницата; обично UTC." -#: actions/siteadminpanel.php:281 -msgid "Default site language" +#: actions/siteadminpanel.php:262 +#, fuzzy +msgid "Default language" msgstr "Основен јазик" -#: actions/siteadminpanel.php:289 -msgid "Snapshots" -msgstr "Снимки" - -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" -msgstr "По случајност во текот на посета" - -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" -msgstr "Во зададена задача" - -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" -msgstr "Снимки од податоци" - -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" -msgstr "Кога да им се испраќаат статистички податоци на status.net серверите" - -#: actions/siteadminpanel.php:301 -msgid "Frequency" -msgstr "Честота" - -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" -msgstr "Ќе се испраќаат снимки на секои N посети" - -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "URL на извештајот" - -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" -msgstr "Снимките ќе се испраќаат на оваа URL-адреса" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" +msgstr "" -#: actions/siteadminpanel.php:315 +#: actions/siteadminpanel.php:271 msgid "Limits" msgstr "Ограничувања" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Text limit" msgstr "Ограничување на текстот" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Maximum number of characters for notices." msgstr "Максимален број на знаци за забелешки." -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "Dupe limit" msgstr "Ограничување на дуплирањето" -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" "Колку долго треба да почекаат корисниците (во секунди) за да можат повторно " "да го објават истото." +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "Напомена за веб-страницата" + +#: actions/sitenoticeadminpanel.php:67 +#, fuzzy +msgid "Edit site-wide message" +msgstr "Нова порака" + +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +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 +#, fuzzy +msgid "Site notice text" +msgstr "Напомена за веб-страницата" + +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" +msgstr "" + +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "Напомена за веб-страницата" + #: actions/smssettings.php:58 msgid "SMS settings" msgstr "Нагодувања за СМС" @@ -3983,6 +3999,66 @@ msgstr "" msgid "No code entered" msgstr "Нема внесено код" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "Снимки" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +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 "Неважечки URL за извештај од снимката." + +#: 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 "Кога да им се испраќаат статистички податоци на status.net серверите" + +#: actions/snapshotadminpanel.php:217 +msgid "Frequency" +msgstr "Честота" + +#: actions/snapshotadminpanel.php:218 +msgid "Snapshots will be sent once every N web hits" +msgstr "Ќе се испраќаат снимки на секои N посети" + +#: actions/snapshotadminpanel.php:226 +msgid "Report URL" +msgstr "URL на извештајот" + +#: actions/snapshotadminpanel.php:227 +msgid "Snapshots will be sent to this URL" +msgstr "Снимките ќе се испраќаат на оваа URL-адреса" + +#: actions/snapshotadminpanel.php:248 +#, fuzzy +msgid "Save snapshot settings" +msgstr "Зачувај нагодувања на веб-страницата" + #: actions/subedit.php:70 msgid "You are not subscribed to that profile." msgstr "Не сте претплатени на тој профил." @@ -4190,7 +4266,7 @@ msgstr "Во барањето нема id на профилот." msgid "Unsubscribed" msgstr "Претплатата е откажана" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4200,7 +4276,6 @@ msgstr "" #. TRANS: User admin panel title #: actions/useradminpanel.php:59 -#, fuzzy msgctxt "TITLE" msgid "User" msgstr "Корисник" @@ -4394,18 +4469,24 @@ msgstr "Групи %1$s, стр. %2$d" msgid "Search for more groups" msgstr "Пребарај уште групи" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, php-format msgid "%s is not a member of any group." msgstr "%s не членува во ниедна група." -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" "Обидете се со [пребарување на групи](%%action.groupsearch%%) и придружете им " "се." +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "Подновувања од %1$s на %2$s!" + #: actions/version.php:73 #, php-format msgid "StatusNet %s" @@ -4461,7 +4542,7 @@ msgstr "" msgid "Plugins" msgstr "Приклучоци" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 msgid "Version" msgstr "Верзија" @@ -4527,22 +4608,22 @@ msgstr "Не можев да ја подновам пораката со нов msgid "DB error inserting hashtag: %s" msgstr "Грешка во базата на податоци при вметнувањето на хеш-ознака: %s" -#: classes/Notice.php:239 +#: classes/Notice.php:241 msgid "Problem saving notice. Too long." msgstr "Проблем со зачувувањето на белешката. Премногу долго." -#: classes/Notice.php:243 +#: classes/Notice.php:245 msgid "Problem saving notice. Unknown user." msgstr "Проблем со зачувувањето на белешката. Непознат корисник." -#: classes/Notice.php:248 +#: classes/Notice.php:250 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "Премногу забелњшки за прекратко време; здивнете малку и продолжете за " "неколку минути." -#: classes/Notice.php:254 +#: classes/Notice.php:256 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4550,19 +4631,19 @@ msgstr "" "Премногу дуплирани пораки во прекратко време; здивнете малку и продолжете за " "неколку минути." -#: classes/Notice.php:260 +#: classes/Notice.php:262 msgid "You are banned from posting notices on this site." msgstr "Забрането Ви е да објавувате забелешки на оваа веб-страница." -#: classes/Notice.php:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "Проблем во зачувувањето на белешката." -#: classes/Notice.php:911 +#: classes/Notice.php:927 msgid "Problem saving group inbox." msgstr "Проблем при зачувувањето на групното приемно сандаче." -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4588,7 +4669,12 @@ msgstr "Не сте претплатени!" msgid "Couldn't delete self-subscription." msgstr "Не можам да ја избришам самопретплатата." -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "Претплата не може да се избрише." + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "Претплата не може да се избрише." @@ -4597,19 +4683,19 @@ msgstr "Претплата не може да се избрише." msgid "Welcome to %1$s, @%2$s!" msgstr "Добредојдовте на %1$s, @%2$s!" -#: classes/User_group.php:462 +#: classes/User_group.php:477 msgid "Could not create group." msgstr "Не можев да ја создадам групата." -#: classes/User_group.php:471 +#: classes/User_group.php:486 msgid "Could not set group URI." msgstr "Не можев да поставам URI на групата." -#: classes/User_group.php:492 +#: classes/User_group.php:507 msgid "Could not set group membership." msgstr "Не можев да назначам членство во групата." -#: classes/User_group.php:506 +#: classes/User_group.php:521 msgid "Could not save local group info." msgstr "Не можев да ги зачувам информациите за локалните групи." @@ -4650,194 +4736,171 @@ msgstr "%1$s - %2$s" msgid "Untitled page" msgstr "Страница без наслов" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "Главна навигација" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 -#, fuzzy +#: lib/action.php:430 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" -msgstr "Личен профил и историја на пријатели" +msgstr "Личен профил и хронологија на пријатели" -#: lib/action.php:442 -#, fuzzy +#: lib/action.php:433 msgctxt "MENU" msgid "Personal" -msgstr "Личен" +msgstr "Лично" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 -#, fuzzy +#: lib/action.php:435 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Промена на е-пошта, аватар, лозинка, профил" -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "Сметка" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 -#, fuzzy +#: lib/action.php:440 msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Поврзи се со услуги" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "Поврзи се" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 -#, fuzzy +#: lib/action.php:446 msgctxt "TOOLTIP" msgid "Change site configuration" -msgstr "Промена на конфигурацијата на веб-страницата" +msgstr "Промена на поставките на веб-страницата" -#: lib/action.php:460 -#, fuzzy +#: lib/action.php:449 msgctxt "MENU" msgid "Admin" -msgstr "Администратор" +msgstr "Админ" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 -#, fuzzy, php-format +#: lib/action.php:453 +#, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Поканете пријатели и колеги да Ви се придружат на %s" -#: lib/action.php:467 -#, fuzzy +#: lib/action.php:456 msgctxt "MENU" msgid "Invite" msgstr "Покани" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 -#, fuzzy +#: lib/action.php:462 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Одјава" -#: lib/action.php:476 -#, fuzzy +#: lib/action.php:465 msgctxt "MENU" msgid "Logout" -msgstr "Одјави се" +msgstr "Одјава" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 -#, fuzzy +#: lib/action.php:470 msgctxt "TOOLTIP" msgid "Create an account" msgstr "Создај сметка" -#: lib/action.php:484 -#, fuzzy +#: lib/action.php:473 msgctxt "MENU" msgid "Register" -msgstr "Регистрирај се" +msgstr "Регистрација" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 -#, fuzzy +#: lib/action.php:476 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Најава" -#: lib/action.php:490 -#, fuzzy +#: lib/action.php:479 msgctxt "MENU" msgid "Login" msgstr "Најава" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 -#, fuzzy +#: lib/action.php:482 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Напомош!" -#: lib/action.php:496 -#, fuzzy +#: lib/action.php:485 msgctxt "MENU" msgid "Help" msgstr "Помош" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 -#, fuzzy +#: lib/action.php:488 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Пребарајте луѓе или текст" -#: lib/action.php:502 -#, fuzzy +#: lib/action.php:491 msgctxt "MENU" msgid "Search" msgstr "Барај" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 msgid "Site notice" msgstr "Напомена за веб-страницата" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "Локални прегледи" -#: lib/action.php:656 +#: lib/action.php:645 msgid "Page notice" msgstr "Напомена за страницата" -#: lib/action.php:758 +#: lib/action.php:747 msgid "Secondary site navigation" msgstr "Споредна навигација" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "Помош" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "За" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "ЧПП" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "Услови" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "Приватност" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "Изворен код" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "Контакт" -#: lib/action.php:782 +#: lib/action.php:771 msgid "Badge" msgstr "Значка" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "Лиценца на програмот StatusNet" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4846,12 +4909,12 @@ msgstr "" "**%%site.name%%** е сервис за микроблогирање што ви го овозможува [%%site." "broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** е сервис за микроблогирање." -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4862,57 +4925,57 @@ msgstr "" "верзија %s, достапен пд [GNU Affero General Public License](http://www.fsf." "org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:832 +#: lib/action.php:821 msgid "Site content license" msgstr "Лиценца на содржините на веб-страницата" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Содржината и податоците на %1$s се лични и доверливи." -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" "Авторските права на содржината и податоците се во сопственост на %1$s. Сите " "права задржани." -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Авторските права на содржината и податоците им припаѓаат на учесниците. Сите " "права задржани." -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "Сите " -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "лиценца." -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "Прелом на страници" -#: lib/action.php:1172 +#: lib/action.php:1161 msgid "After" msgstr "По" -#: lib/action.php:1180 +#: lib/action.php:1169 msgid "Before" msgstr "Пред" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "Сè уште не е поддржана обработката на оддалечена содржина." -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "Сè уште не е поддржана обработката на XML содржина." -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "Сè уште не е достапна обработката на вметната Base64 содржина." @@ -4927,91 +4990,78 @@ msgid "Changes to that panel are not allowed." msgstr "Менувањето на тој алатник не е дозволено." #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 msgid "showForm() not implemented." msgstr "showForm() не е имплементирано." #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 msgid "saveSettings() not implemented." msgstr "saveSettings() не е имплементирано." #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 msgid "Unable to delete design setting." msgstr "Не можам да ги избришам нагодувањата за изглед." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 msgid "Basic site configuration" msgstr "Основни нагодувања на веб-страницата" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 -#, fuzzy +#: lib/adminpanelaction.php:350 msgctxt "MENU" msgid "Site" msgstr "Веб-страница" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 msgid "Design configuration" msgstr "Конфигурација на изгледот" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 -#, fuzzy +#: lib/adminpanelaction.php:358 msgctxt "MENU" msgid "Design" msgstr "Изглед" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 msgid "User configuration" msgstr "Конфигурација на корисник" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -#, fuzzy -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "Корисник" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 msgid "Access configuration" msgstr "Конфигурација на пристапот" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "Пристап" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 msgid "Paths configuration" msgstr "Конфигурација на патеки" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -#, fuzzy -msgctxt "MENU" -msgid "Paths" -msgstr "Патеки" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 msgid "Sessions configuration" msgstr "Конфигурација на сесиите" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "Сесии" +msgid "Edit site notice" +msgstr "Напомена за веб-страницата" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "Конфигурација на патеки" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5540,6 +5590,11 @@ msgstr "Одберете ознака за да ја уточните листа 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 "URL на страницата или блогот на групата или темата" @@ -6161,10 +6216,6 @@ msgstr "Одговори" msgid "Favorites" msgstr "Омилени" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "Корисник" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Примени" @@ -6190,7 +6241,7 @@ msgstr "Ознаки во забелешките на %s" msgid "Unknown" msgstr "Непознато" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Претплати" @@ -6198,23 +6249,23 @@ msgstr "Претплати" msgid "All subscriptions" msgstr "Сите претплати" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Претплатници" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 msgid "All subscribers" msgstr "Сите претплатници" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 msgid "User ID" msgstr "Кориснички ID" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "Член од" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "Сите групи" @@ -6254,7 +6305,12 @@ msgstr "Да ја повторам белешкава?" msgid "Repeat this notice" msgstr "Повтори ја забелешкава" -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, fuzzy, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "Блокирај го овој корисник од оваа група" + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "Не е зададен корисник за еднокорисничкиот режим." @@ -6408,47 +6464,64 @@ msgstr "Порака" msgid "Moderate" msgstr "Модерирај" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "Кориснички профил" + +#: lib/userprofile.php:354 +#, fuzzy +msgctxt "role" +msgid "Administrator" +msgstr "Администратори" + +#: lib/userprofile.php:355 +#, fuzzy +msgctxt "role" +msgid "Moderator" +msgstr "Модерирај" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "пред неколку секунди" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "пред една минута" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "пред %d минути" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "пред еден час" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "пред %d часа" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "пред еден ден" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "пред %d денови" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "пред еден месец" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "пред %d месеца" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "пред една година" diff --git a/locale/nb/LC_MESSAGES/statusnet.po b/locale/nb/LC_MESSAGES/statusnet.po index a3e64e0cb..305303dea 100644 --- a/locale/nb/LC_MESSAGES/statusnet.po +++ b/locale/nb/LC_MESSAGES/statusnet.po @@ -9,19 +9,20 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:03:19+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:56:53+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 (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 msgid "Access" msgstr "Tilgang" @@ -118,7 +119,7 @@ msgstr "%1$s og venner, side %2$d" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -180,7 +181,7 @@ msgstr "" "eller post en notis for å få hans eller hennes oppmerksomhet." #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 msgid "You and friends" msgstr "Du og venner" @@ -207,11 +208,11 @@ msgstr "Oppdateringer fra %1$s og venner på %2$s!" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "API-metode ikke funnet!" @@ -572,7 +573,7 @@ msgstr "" "%3$s dine %4$s-kontodata. Du bør bare gi tilgang til din %4" "$s-konto til tredjeparter du stoler på." -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 msgid "Account" msgstr "Konto" @@ -659,18 +660,6 @@ msgstr "%1$s / Favoritter fra %2$s" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s oppdateringer markert som favoritt av %2$s / %2$s." -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "%s tidslinje" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "Oppdateringar fra %1$s på %2$s!" - #: actions/apitimelinementions.php:117 #, php-format msgid "%1$s / Updates mentioning %2$s" @@ -681,12 +670,12 @@ msgstr "%1$s / Oppdateringer som nevner %2$s" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s oppdateringer som svarer på oppdateringer fra %2$s / %3$s." -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "%s offentlig tidslinje" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s oppdateringer fra alle sammen!" @@ -932,7 +921,7 @@ msgid "Conversation" msgstr "Samtale" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Notiser" @@ -951,7 +940,7 @@ msgstr "Du er ikke eieren av dette programmet." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "" @@ -1147,8 +1136,9 @@ msgstr "Tilbakestill til standardverdier" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1265,7 +1255,7 @@ msgstr "beskrivelse er for lang (maks %d tegn)" msgid "Could not update group." msgstr "Kunne ikke oppdatere gruppe." -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 msgid "Could not create aliases." msgstr "Kunne ikke opprette alias." @@ -1387,7 +1377,7 @@ msgid "Cannot normalize that email address" msgstr "Klarer ikke normalisere epostadressen" #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Ugyldig e-postadresse." @@ -1575,6 +1565,25 @@ msgstr "Ingen slik fil." msgid "Cannot read file." msgstr "Kan ikke lese fil." +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "Ugyldig symbol." + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "Du er allerede logget inn!" + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "Du er allerede logget inn!" + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1718,12 +1727,18 @@ msgstr "Gjør til administrator" msgid "Make this user an admin" msgstr "Gjør denne brukeren til administrator" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "%s tidslinje" + #: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Oppdateringer fra medlemmer av %1$s på %2$s!" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Grupper" @@ -2307,8 +2322,8 @@ msgstr "innholdstype " msgid "Only " msgstr "Bare " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "" @@ -2451,7 +2466,8 @@ msgstr "Klarer ikke å lagre nytt passord." msgid "Password saved." msgstr "Passordet ble lagret" -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "" @@ -2575,7 +2591,7 @@ msgstr "" msgid "SSL" msgstr "SSL" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 msgid "Never" msgstr "Aldri" @@ -2629,11 +2645,11 @@ msgstr "Ugyldig e-postadresse" msgid "Users self-tagged with %1$s - page %2$d" msgstr "Mikroblogg av %s" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" @@ -2710,7 +2726,7 @@ msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "Språk" @@ -2737,7 +2753,7 @@ msgstr "" msgid "Bio is too long (max %d chars)." msgstr "«Om meg» er for lang (maks %d tegn)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Tidssone ikke valgt." @@ -3041,7 +3057,7 @@ msgid "Same as password above. Required." msgstr "Samme som passord over. Kreves." #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "E-post" @@ -3143,7 +3159,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "" @@ -3244,6 +3260,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Svar til %1$s på %2$s!" +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "Du er allerede logget inn!" + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "Brukeren har ingen profil." + #: actions/rsd.php:146 actions/version.php:157 msgid "StatusNet" msgstr "StatusNet" @@ -3258,7 +3284,9 @@ msgstr "Du er allerede logget inn!" msgid "User is already sandboxed." msgstr "Du er allerede logget inn!" +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "" @@ -3282,7 +3310,7 @@ msgstr "" msgid "Turn on debugging output for sessions." msgstr "" -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 #, fuzzy msgid "Save site settings" @@ -3314,8 +3342,8 @@ msgstr "Organisasjon" msgid "Description" msgstr "Beskrivelse" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "Statistikk" @@ -3449,47 +3477,47 @@ msgstr "" msgid "Group actions" msgstr "" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, fuzzy, php-format msgid "FOAF for %s group" msgstr "Klarte ikke å lagre profil." -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 #, fuzzy msgid "Members" msgstr "Medlem siden" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 #, fuzzy msgid "Created" msgstr "Opprett" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3499,7 +3527,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:462 +#: actions/showgroup.php:463 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3508,7 +3536,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "" @@ -3622,146 +3650,135 @@ msgid "User is already silenced." msgstr "Du er allerede logget inn!" #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +msgid "Basic settings for this StatusNet site" msgstr "" -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "" -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 #, fuzzy msgid "You must have a valid contact email address." msgstr "Ugyldig e-postadresse" -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "" #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "" - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "" - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "" - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "" -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "" -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 msgid "Site name" msgstr "" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 msgid "Contact email address for your site" msgstr "" -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 msgid "Local" msgstr "" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "" -#: actions/siteadminpanel.php:281 -msgid "Default site language" -msgstr "" - -#: actions/siteadminpanel.php:289 -msgid "Snapshots" -msgstr "" +#: actions/siteadminpanel.php:262 +#, fuzzy +msgid "Default language" +msgstr "Foretrukket språk" -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" msgstr "" -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" +#: actions/siteadminpanel.php:271 +msgid "Limits" msgstr "" -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" +#: actions/siteadminpanel.php:274 +msgid "Text limit" msgstr "" -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" +#: actions/siteadminpanel.php:274 +msgid "Maximum number of characters for notices." msgstr "" -#: actions/siteadminpanel.php:301 -msgid "Frequency" +#: actions/siteadminpanel.php:278 +msgid "Dupe limit" msgstr "" -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" +#: actions/siteadminpanel.php:278 +msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "" +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "Notiser" -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" +#: actions/sitenoticeadminpanel.php:67 +msgid "Edit site-wide message" msgstr "" -#: actions/siteadminpanel.php:315 -msgid "Limits" -msgstr "" +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +msgid "Unable to save site notice." +msgstr "Kunne ikke lagre dine innstillinger for utseende." -#: actions/siteadminpanel.php:318 -msgid "Text limit" +#: actions/sitenoticeadminpanel.php:113 +msgid "Max length for the site-wide notice is 255 chars" msgstr "" -#: actions/siteadminpanel.php:318 -msgid "Maximum number of characters for notices." -msgstr "" +#: actions/sitenoticeadminpanel.php:176 +#, fuzzy +msgid "Site notice text" +msgstr "Slett notis" -#: actions/siteadminpanel.php:322 -msgid "Dupe limit" +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" msgstr "" -#: actions/siteadminpanel.php:322 -msgid "How long users must wait (in seconds) to post the same thing again." -msgstr "" +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "Innstillinger for IM" #: actions/smssettings.php:58 #, fuzzy @@ -3860,6 +3877,65 @@ msgstr "" msgid "No code entered" msgstr "" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +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 +#, fuzzy +msgid "Save snapshot settings" +msgstr "Innstillinger for IM" + #: actions/subedit.php:70 msgid "You are not subscribed to that profile." msgstr "" @@ -4060,7 +4136,7 @@ msgstr "" msgid "Unsubscribed" msgstr "" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4257,16 +4333,22 @@ msgstr "Alle abonnementer" msgid "Search for more groups" msgstr "" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, fuzzy, php-format msgid "%s is not a member of any group." msgstr "Du er allerede logget inn!" -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "Oppdateringar fra %1$s på %2$s!" + #: actions/version.php:73 #, fuzzy, php-format msgid "StatusNet %s" @@ -4310,7 +4392,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 #, fuzzy msgid "Version" msgstr "Personlig" @@ -4378,38 +4460,38 @@ msgstr "" msgid "DB error inserting hashtag: %s" msgstr "" -#: classes/Notice.php:239 +#: classes/Notice.php:241 msgid "Problem saving notice. Too long." msgstr "" -#: classes/Notice.php:243 +#: classes/Notice.php:245 msgid "Problem saving notice. Unknown user." msgstr "" -#: classes/Notice.php:248 +#: classes/Notice.php:250 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:254 +#: classes/Notice.php:256 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:260 +#: classes/Notice.php:262 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "" -#: classes/Notice.php:911 +#: classes/Notice.php:927 msgid "Problem saving group inbox." msgstr "" -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4436,7 +4518,12 @@ msgstr "Alle abonnementer" msgid "Couldn't delete self-subscription." msgstr "Klarte ikke å lagre avatar-informasjonen" -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "Klarte ikke å lagre avatar-informasjonen" + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "" @@ -4445,22 +4532,22 @@ msgstr "" msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:462 +#: classes/User_group.php:477 #, fuzzy msgid "Could not create group." msgstr "Klarte ikke å lagre avatar-informasjonen" -#: classes/User_group.php:471 +#: classes/User_group.php:486 #, fuzzy msgid "Could not set group URI." msgstr "Klarte ikke å lagre avatar-informasjonen" -#: classes/User_group.php:492 +#: classes/User_group.php:507 #, fuzzy msgid "Could not set group membership." msgstr "Klarte ikke å lagre avatar-informasjonen" -#: classes/User_group.php:506 +#: classes/User_group.php:521 #, fuzzy msgid "Could not save local group info." msgstr "Klarte ikke å lagre avatar-informasjonen" @@ -4503,191 +4590,185 @@ msgstr "%1$s sin status på %2$s" msgid "Untitled page" msgstr "" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 +#: lib/action.php:430 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:442 +#: lib/action.php:433 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "Personlig" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 +#: lib/action.php:435 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Endre passordet ditt" -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "Konto" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 +#: lib/action.php:440 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Koble til" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "Koble til" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 +#: lib/action.php:446 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "" -#: lib/action.php:460 +#: lib/action.php:449 #, fuzzy msgctxt "MENU" msgid "Admin" msgstr "Administrator" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 +#: lib/action.php:453 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "" -#: lib/action.php:467 +#: lib/action.php:456 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "Kun invitasjon" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 +#: lib/action.php:462 #, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Tema for nettstedet." -#: lib/action.php:476 +#: lib/action.php:465 #, fuzzy msgctxt "MENU" msgid "Logout" msgstr "Logg ut" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 +#: lib/action.php:470 #, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "Opprett en ny konto" -#: lib/action.php:484 +#: lib/action.php:473 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "Registrering" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 +#: lib/action.php:476 #, fuzzy msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Tema for nettstedet." -#: lib/action.php:490 +#: lib/action.php:479 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "Logg inn" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 +#: lib/action.php:482 #, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "Hjelp" -#: lib/action.php:496 +#: lib/action.php:485 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "Hjelp" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 +#: lib/action.php:488 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "" -#: lib/action.php:502 +#: lib/action.php:491 #, fuzzy msgctxt "MENU" msgid "Search" msgstr "Søk" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 msgid "Site notice" msgstr "" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "" -#: lib/action.php:656 +#: lib/action.php:645 msgid "Page notice" msgstr "" -#: lib/action.php:758 +#: lib/action.php:747 msgid "Secondary site navigation" msgstr "" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "Hjelp" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "Om" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "OSS/FAQ" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "Kilde" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "Kontakt" -#: lib/action.php:782 +#: lib/action.php:771 msgid "Badge" msgstr "" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4696,12 +4777,12 @@ msgstr "" "**%%site.name%%** er en mikrobloggingtjeneste av [%%site.broughtby%%](%%site." "broughtbyurl%%). " -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** er en mikrobloggingtjeneste. " -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4709,54 +4790,54 @@ msgid "" "org/licensing/licenses/agpl-3.0.html)." msgstr "" -#: lib/action.php:832 +#: lib/action.php:821 msgid "Site content license" msgstr "" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "" -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "" -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "" -#: lib/action.php:1172 +#: lib/action.php:1161 msgid "After" msgstr "" -#: lib/action.php:1180 +#: lib/action.php:1169 #, fuzzy msgid "Before" msgstr "Tidligere »" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "" @@ -4771,89 +4852,79 @@ msgid "Changes to that panel are not allowed." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 msgid "showForm() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 msgid "saveSettings() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 msgid "Unable to delete design setting." msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 msgid "Basic site configuration" msgstr "" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 +#: lib/adminpanelaction.php:350 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "Nettstedslogo" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 msgid "Design configuration" msgstr "" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 +#: lib/adminpanelaction.php:358 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "Personlig" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 msgid "User configuration" msgstr "" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 msgid "Access configuration" msgstr "" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "Tilgang" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 msgid "Paths configuration" msgstr "" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -msgctxt "MENU" -msgid "Paths" -msgstr "" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 msgid "Sessions configuration" msgstr "" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "Personlig" +msgid "Edit site notice" +msgstr "Slett notis" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +msgid "Snapshots configuration" +msgstr "" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5354,6 +5425,11 @@ msgstr "" msgid "Go" msgstr "" +#: lib/grantroleform.php:91 +#, php-format +msgid "Grant this user the \"%s\" role" +msgstr "" + #: lib/groupeditform.php:163 #, fuzzy msgid "URL of the homepage or blog of the group or topic" @@ -5900,10 +5976,6 @@ msgstr "Svar" msgid "Favorites" msgstr "" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "" @@ -5929,7 +6001,7 @@ msgstr "" msgid "Unknown" msgstr "" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "" @@ -5937,24 +6009,24 @@ msgstr "" msgid "All subscriptions" msgstr "Alle abonnementer" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 #, fuzzy msgid "All subscribers" msgstr "Alle abonnementer" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 msgid "User ID" msgstr "" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "Medlem siden" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "" @@ -5998,7 +6070,12 @@ msgstr "Kan ikke slette notisen." msgid "Repeat this notice" msgstr "Kan ikke slette notisen." -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "" + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "" @@ -6160,47 +6237,62 @@ msgstr "" msgid "Moderate" msgstr "" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "Klarte ikke å lagre profil." + +#: lib/userprofile.php:354 +msgctxt "role" +msgid "Administrator" +msgstr "" + +#: lib/userprofile.php:355 +msgctxt "role" +msgid "Moderator" +msgstr "" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "noen få sekunder siden" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "omtrent ett minutt siden" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "omtrent %d minutter siden" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "omtrent én time siden" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "omtrent %d timer siden" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "omtrent én dag siden" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "omtrent %d dager siden" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "omtrent én måned siden" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "omtrent %d måneder siden" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "omtrent ett år siden" diff --git a/locale/nl/LC_MESSAGES/statusnet.po b/locale/nl/LC_MESSAGES/statusnet.po index a9e757956..1f2a54970 100644 --- a/locale/nl/LC_MESSAGES/statusnet.po +++ b/locale/nl/LC_MESSAGES/statusnet.po @@ -10,19 +10,20 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:03:32+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:56:59+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 msgid "Access" msgstr "Toegang" @@ -43,10 +44,9 @@ msgstr "Mogen anonieme gebruikers (niet aangemeld) de website bekijken?" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -#, fuzzy msgctxt "LABEL" msgid "Private" -msgstr "Privé" +msgstr "Geen anonieme toegang" #. TRANS: Checkbox instructions for admin setting "Invite only" #: actions/accessadminpanel.php:174 @@ -74,7 +74,6 @@ msgid "Save access settings" msgstr "Toegangsinstellingen opslaan" #: actions/accessadminpanel.php:203 -#, fuzzy msgctxt "BUTTON" msgid "Save" msgstr "Opslaan" @@ -119,7 +118,7 @@ msgstr "%1$s en vrienden, pagina %2$d" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -183,7 +182,7 @@ msgstr "" "een bericht sturen." #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 msgid "You and friends" msgstr "U en vrienden" @@ -210,11 +209,11 @@ msgstr "Updates van %1$s en vrienden op %2$s." #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 msgid "API method not found." msgstr "De API-functie is niet aangetroffen." @@ -589,7 +588,7 @@ msgstr "" "van het type \"%3$s tot uw gebruikersgegevens. Geef alleen " "toegang tot uw gebruiker bij %4$s aan derde partijen die u vertrouwt." -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 msgid "Account" msgstr "Gebruiker" @@ -678,18 +677,6 @@ msgstr "%1$s / Favorieten van %2$s" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s updates op de favorietenlijst geplaatst door %2$s / %3$s" -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "%s tijdlijn" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "Updates van %1$s op %2$s." - #: actions/apitimelinementions.php:117 #, php-format msgid "%1$s / Updates mentioning %2$s" @@ -700,12 +687,12 @@ msgstr "%1$s / Updates over %2$s" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s updates die een reactie zijn op updates van %2$s / %3$s." -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "%s publieke tijdlijn" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s updates van iedereen" @@ -953,7 +940,7 @@ msgid "Conversation" msgstr "Dialoog" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Mededelingen" @@ -972,7 +959,7 @@ msgstr "U bent niet de eigenaar van deze applicatie." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "Er is een probleem met uw sessietoken." @@ -1169,8 +1156,9 @@ msgstr "Standaardinstellingen toepassen" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1286,7 +1274,7 @@ msgstr "de beschrijving is te lang (maximaal %d tekens)" msgid "Could not update group." msgstr "Het was niet mogelijk de groep bij te werken." -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 msgid "Could not create aliases." msgstr "Het was niet mogelijk de aliassen aan te maken." @@ -1410,7 +1398,7 @@ msgid "Cannot normalize that email address" msgstr "Kan het emailadres niet normaliseren" #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Geen geldig e-mailadres." @@ -1608,6 +1596,25 @@ msgstr "Het bestand bestaat niet." msgid "Cannot read file." msgstr "Het bestand kon niet gelezen worden." +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "Ongeldig token." + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "Op deze website kunt u gebruikers niet in de zandbak plaatsen." + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "Deze gebruiker is al gemuilkorfd." + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1757,12 +1764,18 @@ msgstr "Beheerder maken" msgid "Make this user an admin" msgstr "Deze gebruiker beheerder maken" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "%s tijdlijn" + #: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Updates voor leden van %1$s op %2$s." -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Groepen" @@ -2027,7 +2040,6 @@ msgstr "Persoonlijk bericht bij de uitnodiging (optioneel)." #. TRANS: Send button for inviting friends #: actions/invite.php:198 -#, fuzzy msgctxt "BUTTON" msgid "Send" msgstr "Verzenden" @@ -2392,8 +2404,8 @@ msgstr "inhoudstype " msgid "Only " msgstr "Alleen " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "Geen ondersteund gegevensformaat." @@ -2532,7 +2544,8 @@ msgstr "Het was niet mogelijk het nieuwe wachtwoord op te slaan." msgid "Password saved." msgstr "Het wachtwoord is opgeslagen." -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "Paden" @@ -2652,7 +2665,7 @@ msgstr "Achtergrondenmap" msgid "SSL" msgstr "SSL" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 msgid "Never" msgstr "Nooit" @@ -2708,11 +2721,11 @@ msgstr "Geen geldig gebruikerslabel: %s" msgid "Users self-tagged with %1$s - page %2$d" msgstr "Gebruikers die zichzelf met %1$s hebben gelabeld - pagina %2$d" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "Ongeldige mededelinginhoud" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" @@ -2794,7 +2807,7 @@ msgstr "" "Eigen labels (letter, getallen, -, ., en _). Gescheiden door komma's of " "spaties" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "Taal" @@ -2822,7 +2835,7 @@ msgstr "" msgid "Bio is too long (max %d chars)." msgstr "De beschrijving is te lang (maximaal %d tekens)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Er is geen tijdzone geselecteerd." @@ -3147,7 +3160,7 @@ msgid "Same as password above. Required." msgstr "Gelijk aan het wachtwoord hierboven. Verplicht" #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "E-mail" @@ -3254,7 +3267,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "De URL van uw profiel bij een andere, compatibele microblogdienst" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "Abonneren" @@ -3358,6 +3371,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Antwoorden aan %1$s op %2$s." +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "U kunt gebruikers op deze website niet muilkorven." + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "Gebruiker zonder bijbehorend profiel." + #: actions/rsd.php:146 actions/version.php:157 msgid "StatusNet" msgstr "StatusNet" @@ -3370,7 +3393,9 @@ msgstr "Op deze website kunt u gebruikers niet in de zandbak plaatsen." msgid "User is already sandboxed." msgstr "Deze gebruiker is al in de zandbak geplaatst." +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "Sessies" @@ -3394,7 +3419,7 @@ msgstr "Sessies debuggen" msgid "Turn on debugging output for sessions." msgstr "Debuguitvoer voor sessies inschakelen." -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Websiteinstellingen opslaan" @@ -3425,8 +3450,8 @@ msgstr "Organisatie" msgid "Description" msgstr "Beschrijving" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "Statistieken" @@ -3570,45 +3595,45 @@ msgstr "Aliassen" msgid "Group actions" msgstr "Groepshandelingen" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Mededelingenfeed voor groep %s (RSS 1.0)" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Mededelingenfeed voor groep %s (RSS 2.0)" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Mededelingenfeed voor groep %s (Atom)" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, php-format msgid "FOAF for %s group" msgstr "Vriend van een vriend voor de groep %s" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 msgid "Members" msgstr "Leden" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(geen)" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "Alle leden" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 msgid "Created" msgstr "Aangemaakt" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3624,7 +3649,7 @@ msgstr "" "lid te worden van deze groep en nog veel meer! [Meer lezen...](%%%%doc.help%%" "%%)" -#: actions/showgroup.php:462 +#: actions/showgroup.php:463 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3637,7 +3662,7 @@ msgstr "" "[StatusNet](http://status.net/). De leden wisselen korte mededelingen uit " "over hun ervaringen en interesses. " -#: actions/showgroup.php:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "Beheerders" @@ -3760,154 +3785,144 @@ msgid "User is already silenced." msgstr "Deze gebruiker is al gemuilkorfd." #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +#, fuzzy +msgid "Basic settings for this StatusNet site" msgstr "Basisinstellingen voor deze StatusNet-website." -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "De sitenaam moet ingevoerd worden en mag niet leeg zijn." -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 msgid "You must have a valid contact email address." msgstr "" "U moet een geldig e-mailadres opgeven waarop contact opgenomen kan worden." -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "De taal \"%s\" is niet bekend." #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "De rapportage-URL voor snapshots is ongeldig." - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "De waarde voor het uitvoeren van snapshots is ongeldig." - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "De snapshotfrequentie moet een getal zijn." - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "De minimale tekstlimiet is 140 tekens." -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "De duplicaatlimiet moet één of meer seconden zijn." -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "Algemeen" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 msgid "Site name" msgstr "Websitenaam" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "De naam van de website, zoals \"UwBedrijf Microblog\"" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "Mogelijk gemaakt door" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "" "De tekst die gebruikt worden in de \"creditsverwijzing\" in de voettekst van " "iedere pagina" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "\"Mogelijk gemaakt door\"-URL" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "" "URL die wordt gebruikt voor de verwijzing naar de hoster en dergelijke in de " "voettekst van iedere pagina" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 msgid "Contact email address for your site" msgstr "E-mailadres om contact op te nemen met de websitebeheerder" -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 msgid "Local" msgstr "Lokaal" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "Standaardtijdzone" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "Standaardtijdzone voor de website. Meestal UTC." -#: actions/siteadminpanel.php:281 -msgid "Default site language" +#: actions/siteadminpanel.php:262 +#, fuzzy +msgid "Default language" msgstr "Standaardtaal" -#: actions/siteadminpanel.php:289 -msgid "Snapshots" -msgstr "Snapshots" - -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" -msgstr "Willekeurig tijdens een websitehit" - -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" -msgstr "Als geplande taak" - -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" -msgstr "Snapshots van gegevens" - -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" msgstr "" -"Wanneer statistische gegevens naar de status.net-servers verzonden worden" - -#: actions/siteadminpanel.php:301 -msgid "Frequency" -msgstr "Frequentie" - -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" -msgstr "Iedere zoveel websitehits wordt een snapshot verzonden" -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "Rapportage-URL" - -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" -msgstr "Snapshots worden naar deze URL verzonden" - -#: actions/siteadminpanel.php:315 +#: actions/siteadminpanel.php:271 msgid "Limits" msgstr "Limieten" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Text limit" msgstr "Tekstlimiet" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Maximum number of characters for notices." msgstr "Maximaal aantal te gebruiken tekens voor mededelingen." -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "Dupe limit" msgstr "Duplicaatlimiet" -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" "Hoe lang gebruikers moeten wachten (in seconden) voor ze hetzelfde kunnen " "zenden." +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "Mededeling van de website" + +#: actions/sitenoticeadminpanel.php:67 +#, fuzzy +msgid "Edit site-wide message" +msgstr "Nieuw bericht" + +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +msgid "Unable to save site notice." +msgstr "Het was niet mogelijk om uw ontwerpinstellingen op te slaan." + +#: actions/sitenoticeadminpanel.php:113 +msgid "Max length for the site-wide notice is 255 chars" +msgstr "" + +#: actions/sitenoticeadminpanel.php:176 +#, fuzzy +msgid "Site notice text" +msgstr "Mededeling van de website" + +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" +msgstr "" + +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "Mededeling van de website" + #: actions/smssettings.php:58 msgid "SMS settings" msgstr "SMS-instellingen" @@ -4007,6 +4022,67 @@ msgstr "" msgid "No code entered" msgstr "Er is geen code ingevoerd" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "Snapshots" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +msgid "Manage snapshot configuration" +msgstr "Websiteinstellingen wijzigen" + +#: actions/snapshotadminpanel.php:127 +msgid "Invalid snapshot run value." +msgstr "De waarde voor het uitvoeren van snapshots is ongeldig." + +#: actions/snapshotadminpanel.php:133 +msgid "Snapshot frequency must be a number." +msgstr "De snapshotfrequentie moet een getal zijn." + +#: actions/snapshotadminpanel.php:144 +msgid "Invalid snapshot report URL." +msgstr "De rapportage-URL voor snapshots is ongeldig." + +#: actions/snapshotadminpanel.php:200 +msgid "Randomly during Web hit" +msgstr "Willekeurig tijdens een websitehit" + +#: actions/snapshotadminpanel.php:201 +msgid "In a scheduled job" +msgstr "Als geplande taak" + +#: actions/snapshotadminpanel.php:206 +msgid "Data snapshots" +msgstr "Snapshots van gegevens" + +#: actions/snapshotadminpanel.php:208 +msgid "When to send statistical data to status.net servers" +msgstr "" +"Wanneer statistische gegevens naar de status.net-servers verzonden worden" + +#: actions/snapshotadminpanel.php:217 +msgid "Frequency" +msgstr "Frequentie" + +#: actions/snapshotadminpanel.php:218 +msgid "Snapshots will be sent once every N web hits" +msgstr "Iedere zoveel websitehits wordt een snapshot verzonden" + +#: actions/snapshotadminpanel.php:226 +msgid "Report URL" +msgstr "Rapportage-URL" + +#: actions/snapshotadminpanel.php:227 +msgid "Snapshots will be sent to this URL" +msgstr "Snapshots worden naar deze URL verzonden" + +#: actions/snapshotadminpanel.php:248 +#, fuzzy +msgid "Save snapshot settings" +msgstr "Websiteinstellingen opslaan" + #: actions/subedit.php:70 msgid "You are not subscribed to that profile." msgstr "U bent niet geabonneerd op dat profiel." @@ -4218,7 +4294,7 @@ msgstr "Het profiel-ID was niet aanwezig in het verzoek." msgid "Unsubscribed" msgstr "Het abonnement is opgezegd" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4228,7 +4304,6 @@ msgstr "" #. TRANS: User admin panel title #: actions/useradminpanel.php:59 -#, fuzzy msgctxt "TITLE" msgid "User" msgstr "Gebruiker" @@ -4423,17 +4498,23 @@ msgstr "Groepen voor %1$s, pagina %2$d" msgid "Search for more groups" msgstr "Meer groepen zoeken" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, php-format msgid "%s is not a member of any group." msgstr "%s is van geen enkele groep lid." -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" "U kunt [naar groepen zoeken](%%action.groupsearch%%) en daar lid van worden." +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "Updates van %1$s op %2$s." + #: actions/version.php:73 #, php-format msgid "StatusNet %s" @@ -4489,7 +4570,7 @@ msgstr "" msgid "Plugins" msgstr "Plug-ins" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 msgid "Version" msgstr "Versie" @@ -4556,26 +4637,26 @@ msgstr "Het was niet mogelijk het bericht bij te werken met de nieuwe URI." msgid "DB error inserting hashtag: %s" msgstr "Er is een databasefout opgetreden bij de invoer van de hashtag: %s" -#: classes/Notice.php:239 +#: classes/Notice.php:241 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:243 +#: classes/Notice.php:245 msgid "Problem saving notice. Unknown user." msgstr "" "Er was een probleem bij het opslaan van de mededeling. De gebruiker is " "onbekend." -#: classes/Notice.php:248 +#: classes/Notice.php:250 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:254 +#: classes/Notice.php:256 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4583,22 +4664,22 @@ msgstr "" "Te veel duplicaatberichten te snel achter elkaar. Neem een adempauze en " "plaats over een aantal minuten pas weer een bericht." -#: classes/Notice.php:260 +#: classes/Notice.php:262 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:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "Er is een probleem opgetreden bij het opslaan van de mededeling." -#: classes/Notice.php:911 +#: classes/Notice.php:927 msgid "Problem saving group inbox." msgstr "" "Er is een probleem opgetreden bij het opslaan van het Postvak IN van de " "groep." -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4623,7 +4704,12 @@ msgstr "Niet geabonneerd!" msgid "Couldn't delete self-subscription." msgstr "Het was niet mogelijk het abonnement op uzelf te verwijderen." -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "Kon abonnement niet verwijderen." + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "Kon abonnement niet verwijderen." @@ -4632,19 +4718,19 @@ msgstr "Kon abonnement niet verwijderen." msgid "Welcome to %1$s, @%2$s!" msgstr "Welkom bij %1$s, @%2$s!" -#: classes/User_group.php:462 +#: classes/User_group.php:477 msgid "Could not create group." msgstr "Het was niet mogelijk de groep aan te maken." -#: classes/User_group.php:471 +#: classes/User_group.php:486 msgid "Could not set group URI." msgstr "Het was niet mogelijk de groeps-URI in te stellen." -#: classes/User_group.php:492 +#: classes/User_group.php:507 msgid "Could not set group membership." msgstr "Het was niet mogelijk het groepslidmaatschap in te stellen." -#: classes/User_group.php:506 +#: classes/User_group.php:521 msgid "Could not save local group info." msgstr "Het was niet mogelijk de lokale groepsinformatie op te slaan." @@ -4685,194 +4771,171 @@ msgstr "%1$s - %2$s" msgid "Untitled page" msgstr "Naamloze pagina" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "Primaire sitenavigatie" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 -#, fuzzy +#: lib/action.php:430 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Persoonlijk profiel en tijdlijn van vrienden" -#: lib/action.php:442 -#, fuzzy +#: lib/action.php:433 msgctxt "MENU" msgid "Personal" msgstr "Persoonlijk" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 -#, fuzzy +#: lib/action.php:435 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Uw e-mailadres, avatar, wachtwoord of profiel wijzigen" -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "Gebruiker" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 -#, fuzzy +#: lib/action.php:440 msgctxt "TOOLTIP" msgid "Connect to services" -msgstr "Met diensten verbinden" +msgstr "Met andere diensten koppelen" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" -msgstr "Koppelen" +msgstr "Koppelingen" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 -#, fuzzy +#: lib/action.php:446 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Websiteinstellingen wijzigen" -#: lib/action.php:460 -#, fuzzy +#: lib/action.php:449 msgctxt "MENU" msgid "Admin" -msgstr "Beheerder" +msgstr "Beheer" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 -#, fuzzy, php-format +#: lib/action.php:453 +#, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Vrienden en collega's uitnodigen om u te vergezellen op %s" -#: lib/action.php:467 -#, fuzzy +#: lib/action.php:456 msgctxt "MENU" msgid "Invite" -msgstr "Uitnodigen" +msgstr "Uitnodigingen" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 -#, fuzzy +#: lib/action.php:462 msgctxt "TOOLTIP" msgid "Logout from the site" -msgstr "Van de site afmelden" +msgstr "Gebruiker afmelden" -#: lib/action.php:476 -#, fuzzy +#: lib/action.php:465 msgctxt "MENU" msgid "Logout" msgstr "Afmelden" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 -#, fuzzy +#: lib/action.php:470 msgctxt "TOOLTIP" msgid "Create an account" msgstr "Gebruiker aanmaken" -#: lib/action.php:484 -#, fuzzy +#: lib/action.php:473 msgctxt "MENU" msgid "Register" msgstr "Registreren" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 -#, fuzzy +#: lib/action.php:476 msgctxt "TOOLTIP" msgid "Login to the site" -msgstr "Bij de site aanmelden" +msgstr "Gebruiker aanmelden" -#: lib/action.php:490 -#, fuzzy +#: lib/action.php:479 msgctxt "MENU" msgid "Login" msgstr "Aanmelden" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 -#, fuzzy +#: lib/action.php:482 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Help me!" -#: lib/action.php:496 -#, fuzzy +#: lib/action.php:485 msgctxt "MENU" msgid "Help" msgstr "Help" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 -#, fuzzy +#: lib/action.php:488 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Naar gebruikers of tekst zoeken" -#: lib/action.php:502 -#, fuzzy +#: lib/action.php:491 msgctxt "MENU" msgid "Search" msgstr "Zoeken" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 msgid "Site notice" msgstr "Mededeling van de website" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "Lokale weergaven" -#: lib/action.php:656 +#: lib/action.php:645 msgid "Page notice" msgstr "Mededeling van de pagina" -#: lib/action.php:758 +#: lib/action.php:747 msgid "Secondary site navigation" msgstr "Secundaire sitenavigatie" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "Help" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "Over" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "Veel gestelde vragen" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "Gebruiksvoorwaarden" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "Privacy" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "Broncode" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "Contact" -#: lib/action.php:782 +#: lib/action.php:771 msgid "Badge" msgstr "Widget" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "Licentie van de StatusNet-software" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4881,12 +4944,12 @@ msgstr "" "**%%site.name%%** is een microblogdienst van [%%site.broughtby%%](%%site." "broughtbyurl%%). " -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** is een microblogdienst. " -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4897,57 +4960,57 @@ msgstr "" "versie %s, beschikbaar onder de [GNU Affero General Public License](http://" "www.fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:832 +#: lib/action.php:821 msgid "Site content license" msgstr "Licentie voor siteinhoud" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Inhoud en gegevens van %1$s zijn persoonlijk en vertrouwelijk." -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" "Auteursrechten op inhoud en gegevens rusten bij %1$s. Alle rechten " "voorbehouden." -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Auteursrechten op inhoud en gegevens rusten bij de respectievelijke " "gebruikers. Alle rechten voorbehouden." -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "Alle " -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "licentie." -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "Paginering" -#: lib/action.php:1172 +#: lib/action.php:1161 msgid "After" msgstr "Later" -#: lib/action.php:1180 +#: lib/action.php:1169 msgid "Before" msgstr "Eerder" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "Het is nog niet mogelijk inhoud uit andere omgevingen te verwerken." -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "Het is nog niet mogelijk ingebedde XML-inhoud te verwerken" -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "Het is nog niet mogelijk ingebedde Base64-inhoud te verwerken" @@ -4962,91 +5025,78 @@ msgid "Changes to that panel are not allowed." msgstr "Wijzigingen aan dat venster zijn niet toegestaan." #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 msgid "showForm() not implemented." msgstr "showForm() is niet geïmplementeerd." #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 msgid "saveSettings() not implemented." msgstr "saveSettings() is nog niet geïmplementeerd." #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 msgid "Unable to delete design setting." msgstr "Het was niet mogelijk om de ontwerpinstellingen te verwijderen." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 msgid "Basic site configuration" msgstr "Basisinstellingen voor de website" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 -#, fuzzy +#: lib/adminpanelaction.php:350 msgctxt "MENU" msgid "Site" msgstr "Website" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 msgid "Design configuration" msgstr "Instellingen vormgeving" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 -#, fuzzy +#: lib/adminpanelaction.php:358 msgctxt "MENU" msgid "Design" msgstr "Uiterlijk" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 msgid "User configuration" msgstr "Gebruikersinstellingen" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -#, fuzzy -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "Gebruiker" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 msgid "Access configuration" msgstr "Toegangsinstellingen" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "Toegang" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 msgid "Paths configuration" msgstr "Padinstellingen" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -#, fuzzy -msgctxt "MENU" -msgid "Paths" -msgstr "Paden" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 msgid "Sessions configuration" msgstr "Sessieinstellingen" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "Sessies" +msgid "Edit site notice" +msgstr "Mededeling van de website" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "Padinstellingen" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5584,6 +5634,11 @@ msgstr "Kies een label om de lijst kleiner te maken" msgid "Go" msgstr "OK" +#: 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 "De URL van de thuispagina of de blog van de groep of het onderwerp" @@ -6205,10 +6260,6 @@ msgstr "Antwoorden" msgid "Favorites" msgstr "Favorieten" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "Gebruiker" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Postvak IN" @@ -6234,7 +6285,7 @@ msgstr "Labels in de mededelingen van %s" msgid "Unknown" msgstr "Onbekend" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Abonnementen" @@ -6242,23 +6293,23 @@ msgstr "Abonnementen" msgid "All subscriptions" msgstr "Alle abonnementen" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Abonnees" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 msgid "All subscribers" msgstr "Alle abonnees" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 msgid "User ID" msgstr "Gebruikers-ID" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "Lid sinds" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "Alle groepen" @@ -6298,7 +6349,12 @@ msgstr "Deze mededeling herhalen?" msgid "Repeat this notice" msgstr "Deze mededeling herhalen" -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, fuzzy, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "Deze gebruiker de toegang tot deze groep ontzeggen" + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "Er is geen gebruiker gedefinieerd voor single-usermodus." @@ -6452,47 +6508,64 @@ msgstr "Bericht" msgid "Moderate" msgstr "Modereren" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "Gebruikersprofiel" + +#: lib/userprofile.php:354 +#, fuzzy +msgctxt "role" +msgid "Administrator" +msgstr "Beheerders" + +#: lib/userprofile.php:355 +#, fuzzy +msgctxt "role" +msgid "Moderator" +msgstr "Modereren" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "een paar seconden geleden" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "ongeveer een minuut geleden" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "ongeveer %d minuten geleden" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "ongeveer een uur geleden" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "ongeveer %d uur geleden" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "ongeveer een dag geleden" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "ongeveer %d dagen geleden" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "ongeveer een maand geleden" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "ongeveer %d maanden geleden" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "ongeveer een jaar geleden" diff --git a/locale/nn/LC_MESSAGES/statusnet.po b/locale/nn/LC_MESSAGES/statusnet.po index ddd183e87..c6576fbcf 100644 --- a/locale/nn/LC_MESSAGES/statusnet.po +++ b/locale/nn/LC_MESSAGES/statusnet.po @@ -7,19 +7,20 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:03:22+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:56:56+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 (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nn\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 #, fuzzy msgid "Access" msgstr "Godta" @@ -123,7 +124,7 @@ msgstr "%s med vener, side %d" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -178,7 +179,7 @@ msgid "" msgstr "" #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 #, fuzzy msgid "You and friends" msgstr "%s med vener" @@ -206,11 +207,11 @@ msgstr "Oppdateringar frå %1$s og vener på %2$s!" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "Fann ikkje API-metode." @@ -581,7 +582,7 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 msgid "Account" msgstr "Konto" @@ -673,18 +674,6 @@ msgstr "%s / Favorittar frå %s" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%s oppdateringar favorisert av %s / %s." -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "%s tidsline" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "Oppdateringar frå %1$s på %2$s!" - #: actions/apitimelinementions.php:117 #, fuzzy, php-format msgid "%1$s / Updates mentioning %2$s" @@ -695,12 +684,12 @@ msgstr "%1$s / Oppdateringar som svarar til %2$s" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s oppdateringar som svarar på oppdateringar frå %2$s / %3$s." -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "%s offentleg tidsline" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s oppdateringar frå alle saman!" @@ -952,7 +941,7 @@ msgid "Conversation" msgstr "Stadfestingskode" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Notisar" @@ -974,7 +963,7 @@ msgstr "Du er ikkje medlem av den gruppa." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "Det var eit problem med sesjons billetten din." @@ -1182,8 +1171,9 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1311,7 +1301,7 @@ msgstr "skildringa er for lang (maks 140 teikn)." msgid "Could not update group." msgstr "Kann ikkje oppdatera gruppa." -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 #, fuzzy msgid "Could not create aliases." msgstr "Kunne ikkje lagre favoritt." @@ -1438,7 +1428,7 @@ msgid "Cannot normalize that email address" msgstr "Klarar ikkje normalisera epostadressa" #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Ikkje ei gyldig epostadresse." @@ -1634,6 +1624,25 @@ msgstr "Denne notisen finst ikkje." msgid "Cannot read file." msgstr "Mista fila vår." +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "Ugyldig storleik." + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "Du kan ikkje sende melding til denne brukaren." + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "Brukar har blokkert deg." + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1789,12 +1798,18 @@ msgstr "Administrator" msgid "Make this user an admin" msgstr "" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "%s tidsline" + #: actions/grouprss.php:140 #, fuzzy, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Oppdateringar frå %1$s på %2$s!" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Grupper" @@ -2408,8 +2423,8 @@ msgstr "Kopla til" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "Ikkje eit støtta dataformat." @@ -2555,7 +2570,8 @@ msgstr "Klarar ikkje lagra nytt passord." msgid "Password saved." msgstr "Lagra passord." -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "" @@ -2683,7 +2699,7 @@ msgstr "" msgid "SSL" msgstr "SMS" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 #, fuzzy msgid "Never" msgstr "Gjenopprett" @@ -2742,11 +2758,11 @@ msgstr "Ikkje gyldig merkelapp: %s" msgid "Users self-tagged with %1$s - page %2$d" msgstr "Brukarar sjølv-merka med %s, side %d" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "Ugyldig notisinnhald" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" @@ -2828,7 +2844,7 @@ msgstr "" "merkelappar for deg sjølv ( bokstavar, nummer, -, ., og _ ), komma eller " "mellomroms separert." -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "Språk" @@ -2855,7 +2871,7 @@ msgstr "" msgid "Bio is too long (max %d chars)." msgstr "«Om meg» er for lang (maks 140 " -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Tidssone er ikkje valt." @@ -3164,7 +3180,7 @@ msgid "Same as password above. Required." msgstr "Samme som passord over. Påkrevd." #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "Epost" @@ -3272,7 +3288,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL til profilsida di på ei anna kompatibel mikrobloggingteneste." #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "Ting" @@ -3377,6 +3393,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Melding til %1$s på %2$s" +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "Du kan ikkje sende melding til denne brukaren." + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "Kan ikkje finne brukar" + #: actions/rsd.php:146 actions/version.php:157 #, fuzzy msgid "StatusNet" @@ -3392,7 +3418,9 @@ msgstr "Du kan ikkje sende melding til denne brukaren." msgid "User is already sandboxed." msgstr "Brukar har blokkert deg." +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "" @@ -3416,7 +3444,7 @@ msgstr "" msgid "Turn on debugging output for sessions." msgstr "" -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 #, fuzzy msgid "Save site settings" @@ -3452,8 +3480,8 @@ msgstr "Paginering" msgid "Description" msgstr "Beskriving" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "Statistikk" @@ -3586,46 +3614,46 @@ msgstr "" msgid "Group actions" msgstr "Gruppe handlingar" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Notisstraum for %s gruppa" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Notisstraum for %s gruppa" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "Notisstraum for %s gruppa" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, php-format msgid "FOAF for %s group" msgstr "Utboks for %s" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 msgid "Members" msgstr "Medlemmar" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Ingen)" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "Alle medlemmar" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 #, fuzzy msgid "Created" msgstr "Lag" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3635,7 +3663,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:462 +#: actions/showgroup.php:463 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3646,7 +3674,7 @@ msgstr "" "**%s** er ei brukargruppe på %%%%site.name%%%%, ei [mikroblogging](http://en." "wikipedia.org/wiki/Micro-blogging)-teneste" -#: actions/showgroup.php:490 +#: actions/showgroup.php:491 #, fuzzy msgid "Admins" msgstr "Administrator" @@ -3762,150 +3790,139 @@ msgid "User is already silenced." msgstr "Brukar har blokkert deg." #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +msgid "Basic settings for this StatusNet site" msgstr "" -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "" -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 #, fuzzy msgid "You must have a valid contact email address." msgstr "Ikkje ei gyldig epostadresse" -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "" #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "" - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "" - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "" - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "" -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "" -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 #, fuzzy msgid "Site name" msgstr "Statusmelding" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 #, fuzzy msgid "Contact email address for your site" msgstr "Ny epostadresse for å oppdatera %s" -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 #, fuzzy msgid "Local" msgstr "Lokale syningar" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "" -#: actions/siteadminpanel.php:281 +#: actions/siteadminpanel.php:262 #, fuzzy -msgid "Default site language" +msgid "Default language" msgstr "Foretrukke språk" -#: actions/siteadminpanel.php:289 -msgid "Snapshots" -msgstr "" - -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" msgstr "" -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" +#: actions/siteadminpanel.php:271 +msgid "Limits" msgstr "" -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" +#: actions/siteadminpanel.php:274 +msgid "Text limit" msgstr "" -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" +#: actions/siteadminpanel.php:274 +msgid "Maximum number of characters for notices." msgstr "" -#: actions/siteadminpanel.php:301 -msgid "Frequency" +#: actions/siteadminpanel.php:278 +msgid "Dupe limit" msgstr "" -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" +#: actions/siteadminpanel.php:278 +msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "" +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "Statusmelding" -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" -msgstr "" +#: actions/sitenoticeadminpanel.php:67 +#, fuzzy +msgid "Edit site-wide message" +msgstr "Ny melding" -#: actions/siteadminpanel.php:315 -msgid "Limits" -msgstr "" +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +msgid "Unable to save site notice." +msgstr "Klarte ikkje å lagra Twitter-innstillingane dine!" -#: actions/siteadminpanel.php:318 -msgid "Text limit" +#: actions/sitenoticeadminpanel.php:113 +msgid "Max length for the site-wide notice is 255 chars" msgstr "" -#: actions/siteadminpanel.php:318 -msgid "Maximum number of characters for notices." -msgstr "" +#: actions/sitenoticeadminpanel.php:176 +#, fuzzy +msgid "Site notice text" +msgstr "Statusmelding" -#: actions/siteadminpanel.php:322 -msgid "Dupe limit" +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" msgstr "" -#: actions/siteadminpanel.php:322 -msgid "How long users must wait (in seconds) to post the same thing again." -msgstr "" +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "Statusmelding" #: actions/smssettings.php:58 #, fuzzy @@ -4009,6 +4026,66 @@ msgstr "" msgid "No code entered" msgstr "Ingen innskriven kode" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +msgid "Manage snapshot configuration" +msgstr "Navigasjon for hovudsida" + +#: 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 +#, fuzzy +msgid "Save snapshot settings" +msgstr "Avatar-innstillingar" + #: actions/subedit.php:70 msgid "You are not subscribed to that profile." msgstr "Du tingar ikkje oppdateringar til den profilen." @@ -4214,7 +4291,7 @@ msgstr "Ingen profil-ID i førespurnaden." msgid "Unsubscribed" msgstr "Fjerna tinging" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4425,16 +4502,22 @@ msgstr "%s medlemmar i gruppa, side %d" msgid "Search for more groups" msgstr "Søk etter folk eller innhald" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, fuzzy, php-format msgid "%s is not a member of any group." msgstr "Du er ikkje medlem av den gruppa." -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "Oppdateringar frå %1$s på %2$s!" + #: actions/version.php:73 #, fuzzy, php-format msgid "StatusNet %s" @@ -4478,7 +4561,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 #, fuzzy msgid "Version" msgstr "Personleg" @@ -4547,22 +4630,22 @@ msgstr "Kunne ikkje oppdatere melding med ny URI." msgid "DB error inserting hashtag: %s" msgstr "databasefeil ved innsetjing av skigardmerkelapp (#merkelapp): %s" -#: classes/Notice.php:239 +#: classes/Notice.php:241 #, fuzzy msgid "Problem saving notice. Too long." msgstr "Eit problem oppstod ved lagring av notis." -#: classes/Notice.php:243 +#: classes/Notice.php:245 msgid "Problem saving notice. Unknown user." msgstr "Feil ved lagring av notis. Ukjend brukar." -#: classes/Notice.php:248 +#: classes/Notice.php:250 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:254 +#: classes/Notice.php:256 #, fuzzy msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " @@ -4570,20 +4653,20 @@ msgid "" msgstr "" "For mange notisar for raskt; tek ei pause, og prøv igjen om eit par minutt." -#: classes/Notice.php:260 +#: classes/Notice.php:262 msgid "You are banned from posting notices on this site." msgstr "Du kan ikkje lengre legge inn notisar på denne sida." -#: classes/Notice.php:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "Eit problem oppstod ved lagring av notis." -#: classes/Notice.php:911 +#: classes/Notice.php:927 #, fuzzy msgid "Problem saving group inbox." msgstr "Eit problem oppstod ved lagring av notis." -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4611,7 +4694,12 @@ msgstr "Ikkje tinga." msgid "Couldn't delete self-subscription." msgstr "Kan ikkje sletta tinging." -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "Kan ikkje sletta tinging." + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "Kan ikkje sletta tinging." @@ -4620,20 +4708,20 @@ msgstr "Kan ikkje sletta tinging." msgid "Welcome to %1$s, @%2$s!" msgstr "Melding til %1$s på %2$s" -#: classes/User_group.php:462 +#: classes/User_group.php:477 msgid "Could not create group." msgstr "Kunne ikkje laga gruppa." -#: classes/User_group.php:471 +#: classes/User_group.php:486 #, fuzzy msgid "Could not set group URI." msgstr "Kunne ikkje bli med i gruppa." -#: classes/User_group.php:492 +#: classes/User_group.php:507 msgid "Could not set group membership." msgstr "Kunne ikkje bli med i gruppa." -#: classes/User_group.php:506 +#: classes/User_group.php:521 #, fuzzy msgid "Could not save local group info." msgstr "Kunne ikkje lagra abonnement." @@ -4676,195 +4764,189 @@ msgstr "%1$s (%2$s)" msgid "Untitled page" msgstr "Ingen tittel" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "Navigasjon for hovudsida" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 +#: lib/action.php:430 #, fuzzy msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Personleg profil og oversyn over vener" -#: lib/action.php:442 +#: lib/action.php:433 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "Personleg" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 +#: lib/action.php:435 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Endra e-posten, avataren, passordet eller profilen" -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "Konto" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 +#: lib/action.php:440 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Klarte ikkje å omdirigera til tenaren: %s" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "Kopla til" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 +#: lib/action.php:446 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Navigasjon for hovudsida" -#: lib/action.php:460 +#: lib/action.php:449 #, fuzzy msgctxt "MENU" msgid "Admin" msgstr "Administrator" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 +#: lib/action.php:453 #, fuzzy, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Inviter vennar og kollega til å bli med deg på %s" -#: lib/action.php:467 +#: lib/action.php:456 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "Invitér" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 +#: lib/action.php:462 #, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Logg ut or sida" -#: lib/action.php:476 +#: lib/action.php:465 #, fuzzy msgctxt "MENU" msgid "Logout" msgstr "Logg ut" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 +#: lib/action.php:470 #, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "Opprett ny konto" -#: lib/action.php:484 +#: lib/action.php:473 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "Registrér" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 +#: lib/action.php:476 #, fuzzy msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Logg inn or sida" -#: lib/action.php:490 +#: lib/action.php:479 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "Logg inn" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 +#: lib/action.php:482 #, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "Hjelp meg!" -#: lib/action.php:496 +#: lib/action.php:485 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "Hjelp" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 +#: lib/action.php:488 #, fuzzy msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Søk etter folk eller innhald" -#: lib/action.php:502 +#: lib/action.php:491 #, fuzzy msgctxt "MENU" msgid "Search" msgstr "Søk" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 msgid "Site notice" msgstr "Statusmelding" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "Lokale syningar" -#: lib/action.php:656 +#: lib/action.php:645 msgid "Page notice" msgstr "Sidenotis" -#: lib/action.php:758 +#: lib/action.php:747 msgid "Secondary site navigation" msgstr "Andrenivås side navigasjon" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "Hjelp" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "Om" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "OSS" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "Personvern" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "Kjeldekode" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "Kontakt" -#: lib/action.php:782 +#: lib/action.php:771 #, fuzzy msgid "Badge" msgstr "Dult" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "StatusNets programvarelisens" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4873,12 +4955,12 @@ msgstr "" "**%%site.name%%** er ei mikrobloggingteneste av [%%site.broughtby%%](%%site." "broughtbyurl%%). " -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** er ei mikrobloggingteneste. " -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4889,54 +4971,54 @@ msgstr "" "%s, tilgjengeleg under [GNU Affero General Public License](http://www.fsf." "org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:832 +#: lib/action.php:821 #, fuzzy msgid "Site content license" msgstr "StatusNets programvarelisens" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "Alle" -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "lisens." -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "Paginering" -#: lib/action.php:1172 +#: lib/action.php:1161 msgid "After" msgstr "« Etter" -#: lib/action.php:1180 +#: lib/action.php:1169 msgid "Before" msgstr "Før »" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "" @@ -4953,99 +5035,89 @@ msgid "Changes to that panel are not allowed." msgstr "Registrering ikkje tillatt." #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 #, fuzzy msgid "showForm() not implemented." msgstr "Kommando ikkje implementert." #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 #, fuzzy msgid "saveSettings() not implemented." msgstr "Kommando ikkje implementert." #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 #, fuzzy msgid "Unable to delete design setting." msgstr "Klarte ikkje å lagra Twitter-innstillingane dine!" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 #, fuzzy msgid "Basic site configuration" msgstr "Stadfesting av epostadresse" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 +#: lib/adminpanelaction.php:350 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "Invitér" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 #, fuzzy msgid "Design configuration" msgstr "SMS bekreftelse" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 +#: lib/adminpanelaction.php:358 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "Personleg" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 #, fuzzy msgid "User configuration" msgstr "SMS bekreftelse" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -#, fuzzy -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "Brukar" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 #, fuzzy msgid "Access configuration" msgstr "SMS bekreftelse" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "Godta" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 #, fuzzy msgid "Paths configuration" msgstr "SMS bekreftelse" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -msgctxt "MENU" -msgid "Paths" -msgstr "" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 #, fuzzy msgid "Sessions configuration" msgstr "SMS bekreftelse" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "Personleg" +msgid "Edit site notice" +msgstr "Statusmelding" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "SMS bekreftelse" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5548,6 +5620,11 @@ msgstr "Velg ein merkelapp for å begrense lista" msgid "Go" msgstr "Gå" +#: 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 "URL til heimesida eller bloggen for gruppa eller emnet" @@ -6098,10 +6175,6 @@ msgstr "Svar" msgid "Favorites" msgstr "Favorittar" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "Brukar" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Innboks" @@ -6128,7 +6201,7 @@ msgstr "Merkelappar i %s sine notisar" msgid "Unknown" msgstr "Uventa handling." -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Tingingar" @@ -6136,24 +6209,24 @@ msgstr "Tingingar" msgid "All subscriptions" msgstr "Alle tingingar" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Tingarar" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 msgid "All subscribers" msgstr "Tingarar" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 #, fuzzy msgid "User ID" msgstr "Brukar" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "Medlem sidan" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "Alle gruppar" @@ -6196,7 +6269,12 @@ msgstr "Svar på denne notisen" msgid "Repeat this notice" msgstr "Svar på denne notisen" -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, fuzzy, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "Ei liste over brukarane i denne gruppa." + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "" @@ -6360,47 +6438,63 @@ msgstr "Melding" msgid "Moderate" msgstr "" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "Brukarprofil" + +#: lib/userprofile.php:354 +#, fuzzy +msgctxt "role" +msgid "Administrator" +msgstr "Administrator" + +#: lib/userprofile.php:355 +msgctxt "role" +msgid "Moderator" +msgstr "" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "eit par sekund sidan" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "omtrent eitt minutt sidan" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "~%d minutt sidan" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "omtrent ein time sidan" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "~%d timar sidan" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "omtrent ein dag sidan" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "~%d dagar sidan" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "omtrent ein månad sidan" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "~%d månadar sidan" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "omtrent eitt år sidan" diff --git a/locale/pl/LC_MESSAGES/statusnet.po b/locale/pl/LC_MESSAGES/statusnet.po index a8cef8d36..402bd78af 100644 --- a/locale/pl/LC_MESSAGES/statusnet.po +++ b/locale/pl/LC_MESSAGES/statusnet.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:03:35+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:57:02+0000\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" @@ -19,13 +19,14 @@ 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 (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pl\n" "X-Message-Group: out-statusnet\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 msgid "Access" msgstr "Dostęp" @@ -122,7 +123,7 @@ msgstr "%1$s i przyjaciele, strona %2$d" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -186,7 +187,7 @@ msgstr "" "szturchniesz użytkownika %s lub wyślesz wpis wymagającego jego uwagi." #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 msgid "You and friends" msgstr "Ty i przyjaciele" @@ -213,11 +214,11 @@ msgstr "Aktualizacje z %1$s i przyjaciół na %2$s." #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 msgid "API method not found." msgstr "Nie odnaleziono metody API." @@ -579,7 +580,7 @@ msgstr "" "uzyskać możliwość %3$s danych konta %4$s. Dostęp do konta %4" "$s powinien być udostępniany tylko zaufanym osobom trzecim." -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 msgid "Account" msgstr "Konto" @@ -666,18 +667,6 @@ msgstr "%1$s/ulubione wpisy od %2$s" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "Użytkownik %1$s aktualizuje ulubione według %2$s/%2$s." -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "Oś czasu użytkownika %s" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "Aktualizacje z %1$s na %2$s." - #: actions/apitimelinementions.php:117 #, php-format msgid "%1$s / Updates mentioning %2$s" @@ -688,12 +677,12 @@ msgstr "%1$s/aktualizacje wspominające %2$s" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s aktualizuje tę odpowiedź na aktualizacje od %2$s/%3$s." -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "Publiczna oś czasu użytkownika %s" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "Użytkownik %s aktualizuje od każdego." @@ -939,7 +928,7 @@ msgid "Conversation" msgstr "Rozmowa" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Wpisy" @@ -958,7 +947,7 @@ msgstr "Nie jesteś właścicielem tej aplikacji." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "Wystąpił problem z tokenem sesji." @@ -1151,8 +1140,9 @@ msgstr "Przywróć domyślne ustawienia" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1268,7 +1258,7 @@ msgstr "opis jest za długi (maksymalnie %d znaków)." msgid "Could not update group." msgstr "Nie można zaktualizować grupy." -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 msgid "Could not create aliases." msgstr "Nie można utworzyć aliasów." @@ -1391,7 +1381,7 @@ msgid "Cannot normalize that email address" msgstr "Nie można znormalizować tego adresu e-mail" #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "To nie jest prawidłowy adres e-mail." @@ -1584,6 +1574,25 @@ msgstr "Nie ma takiego pliku." msgid "Cannot read file." msgstr "Nie można odczytać pliku." +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "Nieprawidłowy token." + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "Nie można ograniczać użytkowników na tej witrynie." + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "Użytkownik jest już wyciszony." + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1727,12 +1736,18 @@ msgstr "Uczyń administratorem" msgid "Make this user an admin" msgstr "Uczyń tego użytkownika administratorem" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "Oś czasu użytkownika %s" + #: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Aktualizacje od członków %1$s na %2$s." -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Grupy" @@ -2352,8 +2367,8 @@ msgstr "typ zawartości " msgid "Only " msgstr "Tylko " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "To nie jest obsługiwany format danych." @@ -2492,7 +2507,8 @@ msgstr "Nie można zapisać nowego hasła." msgid "Password saved." msgstr "Zapisano hasło." -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "Ścieżki" @@ -2614,7 +2630,7 @@ msgstr "Katalog tła" msgid "SSL" msgstr "SSL" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 msgid "Never" msgstr "Nigdy" @@ -2670,11 +2686,11 @@ msgstr "Nieprawidłowy znacznik osób: %s" msgid "Users self-tagged with %1$s - page %2$d" msgstr "Użytkownicy używający znacznika %1$s - strona %2$d" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "Nieprawidłowa zawartość wpisu" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "Licencja wpisu \"%1$s\" nie jest zgodna z licencją witryny \"%2$s\"." @@ -2754,7 +2770,7 @@ msgstr "" "Znaczniki dla siebie (litery, liczby, -, . i _), oddzielone przecinkami lub " "spacjami" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "Język" @@ -2781,7 +2797,7 @@ msgstr "" msgid "Bio is too long (max %d chars)." msgstr "Wpis \"O mnie\" jest za długi (maksymalnie %d znaków)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Nie wybrano strefy czasowej." @@ -3100,7 +3116,7 @@ msgid "Same as password above. Required." msgstr "Takie samo jak powyższe hasło. Wymagane." #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "E-mail" @@ -3206,7 +3222,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "Adres URL profilu na innej, zgodnej usłudze mikroblogowania" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "Subskrybuj" @@ -3310,6 +3326,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "odpowiedzi dla użytkownika %1$s na %2$s." +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "Nie można wyciszać użytkowników na tej witrynie." + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "Użytkownik bez odpowiadającego profilu." + #: actions/rsd.php:146 actions/version.php:157 msgid "StatusNet" msgstr "StatusNet" @@ -3322,7 +3348,9 @@ msgstr "Nie można ograniczać użytkowników na tej witrynie." msgid "User is already sandboxed." msgstr "Użytkownik jest już ograniczony." +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "Sesje" @@ -3346,7 +3374,7 @@ msgstr "Debugowanie sesji" msgid "Turn on debugging output for sessions." msgstr "Włącza wyjście debugowania dla sesji." -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Zapisz ustawienia witryny" @@ -3377,8 +3405,8 @@ msgstr "Organizacja" msgid "Description" msgstr "Opis" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "Statystyki" @@ -3520,45 +3548,45 @@ msgstr "Aliasy" msgid "Group actions" msgstr "Działania grupy" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Kanał wpisów dla grupy %s (RSS 1.0)" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Kanał wpisów dla grupy %s (RSS 2.0)" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Kanał wpisów dla grupy %s (Atom)" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, php-format msgid "FOAF for %s group" msgstr "FOAF dla grupy %s" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 msgid "Members" msgstr "Członkowie" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Brak)" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "Wszyscy członkowie" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 msgid "Created" msgstr "Utworzono" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3574,7 +3602,7 @@ msgstr "" "action.register%%%%), aby stać się częścią tej grupy i wiele więcej. " "([Przeczytaj więcej](%%%%doc.help%%%%))" -#: actions/showgroup.php:462 +#: actions/showgroup.php:463 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3587,7 +3615,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:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "Administratorzy" @@ -3710,148 +3738,139 @@ msgid "User is already silenced." msgstr "Użytkownik jest już wyciszony." #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +#, fuzzy +msgid "Basic settings for this StatusNet site" msgstr "Podstawowe ustawienia tej witryny StatusNet." -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "Nazwa witryny nie może mieć zerową długość." -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 msgid "You must have a valid contact email address." msgstr "Należy posiadać prawidłowy kontaktowy adres e-mail." -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "Nieznany język \"%s\"." #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "Nieprawidłowy adres URL zgłaszania migawek." - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "Nieprawidłowa wartość wykonania migawki." - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "Częstotliwość migawek musi być liczbą." - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "Maksymalne ograniczenie tekstu to 14 znaków." -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "Ograniczenie duplikatów musi wynosić jedną lub więcej sekund." -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "Ogólne" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 msgid "Site name" msgstr "Nazwa witryny" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "Nazwa strony, taka jak \"Mikroblog firmy X\"" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "Dostarczane przez" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "Tekst używany do odnośnika do zasług w stopce każdej strony" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "Adres URL \"Dostarczane przez\"" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "Adres URL używany do odnośnika do zasług w stopce każdej strony" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 msgid "Contact email address for your site" msgstr "Kontaktowy adres e-mail witryny" -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 msgid "Local" msgstr "Lokalne" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "Domyślna strefa czasowa" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "Domyśla strefa czasowa witryny, zwykle UTC." -#: actions/siteadminpanel.php:281 -msgid "Default site language" +#: actions/siteadminpanel.php:262 +#, fuzzy +msgid "Default language" msgstr "Domyślny język witryny" -#: actions/siteadminpanel.php:289 -msgid "Snapshots" -msgstr "Migawki" - -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" -msgstr "Losowo podczas trafienia WWW" - -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" -msgstr "Jako zaplanowane zadanie" - -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" -msgstr "Migawki danych" - -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" -msgstr "Kiedy wysyłać dane statystyczne na serwery status.net" - -#: actions/siteadminpanel.php:301 -msgid "Frequency" -msgstr "Częstotliwość" - -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" -msgstr "Migawki będą wysyłane co N trafień WWW" - -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "Adres URL zgłaszania" - -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" -msgstr "Migawki będą wysyłane na ten adres URL" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" +msgstr "" -#: actions/siteadminpanel.php:315 +#: actions/siteadminpanel.php:271 msgid "Limits" msgstr "Ograniczenia" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Text limit" msgstr "Ograniczenie tekstu" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Maximum number of characters for notices." msgstr "Maksymalna liczba znaków wpisów." -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "Dupe limit" msgstr "Ograniczenie duplikatów" -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" "Ile czasu użytkownicy muszą czekać (w sekundach), aby ponownie wysłać to " "samo." +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "Wpis witryny" + +#: actions/sitenoticeadminpanel.php:67 +#, fuzzy +msgid "Edit site-wide message" +msgstr "Nowa wiadomość" + +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +msgid "Unable to save site notice." +msgstr "Nie można zapisać ustawień wyglądu." + +#: actions/sitenoticeadminpanel.php:113 +msgid "Max length for the site-wide notice is 255 chars" +msgstr "" + +#: actions/sitenoticeadminpanel.php:176 +#, fuzzy +msgid "Site notice text" +msgstr "Wpis witryny" + +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" +msgstr "" + +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "Wpis witryny" + #: actions/smssettings.php:58 msgid "SMS settings" msgstr "Ustawienia SMS" @@ -3951,6 +3970,66 @@ msgstr "" msgid "No code entered" msgstr "Nie podano kodu" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "Migawki" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +msgid "Manage snapshot configuration" +msgstr "Zmień konfigurację witryny" + +#: actions/snapshotadminpanel.php:127 +msgid "Invalid snapshot run value." +msgstr "Nieprawidłowa wartość wykonania migawki." + +#: actions/snapshotadminpanel.php:133 +msgid "Snapshot frequency must be a number." +msgstr "Częstotliwość migawek musi być liczbą." + +#: actions/snapshotadminpanel.php:144 +msgid "Invalid snapshot report URL." +msgstr "Nieprawidłowy adres URL zgłaszania migawek." + +#: actions/snapshotadminpanel.php:200 +msgid "Randomly during Web hit" +msgstr "Losowo podczas trafienia WWW" + +#: actions/snapshotadminpanel.php:201 +msgid "In a scheduled job" +msgstr "Jako zaplanowane zadanie" + +#: actions/snapshotadminpanel.php:206 +msgid "Data snapshots" +msgstr "Migawki danych" + +#: actions/snapshotadminpanel.php:208 +msgid "When to send statistical data to status.net servers" +msgstr "Kiedy wysyłać dane statystyczne na serwery status.net" + +#: actions/snapshotadminpanel.php:217 +msgid "Frequency" +msgstr "Częstotliwość" + +#: actions/snapshotadminpanel.php:218 +msgid "Snapshots will be sent once every N web hits" +msgstr "Migawki będą wysyłane co N trafień WWW" + +#: actions/snapshotadminpanel.php:226 +msgid "Report URL" +msgstr "Adres URL zgłaszania" + +#: actions/snapshotadminpanel.php:227 +msgid "Snapshots will be sent to this URL" +msgstr "Migawki będą wysyłane na ten adres URL" + +#: actions/snapshotadminpanel.php:248 +#, fuzzy +msgid "Save snapshot settings" +msgstr "Zapisz ustawienia witryny" + #: actions/subedit.php:70 msgid "You are not subscribed to that profile." msgstr "Nie jesteś subskrybowany do tego profilu." @@ -4161,7 +4240,7 @@ msgstr "Brak identyfikatora profilu w żądaniu." msgid "Unsubscribed" msgstr "Zrezygnowano z subskrypcji" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4362,16 +4441,22 @@ msgstr "Grupy użytkownika %1$s, strona %2$d" msgid "Search for more groups" msgstr "Wyszukaj więcej grup" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, php-format msgid "%s is not a member of any group." msgstr "Użytkownik %s nie jest członkiem żadnej grupy." -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "Spróbuj [wyszukać grupy](%%action.groupsearch%%) i dołączyć do nich." +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "Aktualizacje z %1$s na %2$s." + #: actions/version.php:73 #, php-format msgid "StatusNet %s" @@ -4429,7 +4514,7 @@ msgstr "" msgid "Plugins" msgstr "Wtyczki" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 msgid "Version" msgstr "Wersja" @@ -4497,22 +4582,22 @@ msgstr "Nie można zaktualizować wiadomości za pomocą nowego adresu URL." msgid "DB error inserting hashtag: %s" msgstr "Błąd bazy danych podczas wprowadzania znacznika mieszania: %s" -#: classes/Notice.php:239 +#: classes/Notice.php:241 msgid "Problem saving notice. Too long." msgstr "Problem podczas zapisywania wpisu. Za długi." -#: classes/Notice.php:243 +#: classes/Notice.php:245 msgid "Problem saving notice. Unknown user." msgstr "Problem podczas zapisywania wpisu. Nieznany użytkownik." -#: classes/Notice.php:248 +#: classes/Notice.php:250 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:254 +#: classes/Notice.php:256 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4520,19 +4605,19 @@ 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:260 +#: classes/Notice.php:262 msgid "You are banned from posting notices on this site." msgstr "Zabroniono ci wysyłania wpisów na tej witrynie." -#: classes/Notice.php:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "Problem podczas zapisywania wpisu." -#: classes/Notice.php:911 +#: classes/Notice.php:927 msgid "Problem saving group inbox." msgstr "Problem podczas zapisywania skrzynki odbiorczej grupy." -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4557,7 +4642,12 @@ msgstr "Niesubskrybowane." msgid "Couldn't delete self-subscription." msgstr "Nie można usunąć autosubskrypcji." -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "Nie można usunąć subskrypcji." + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "Nie można usunąć subskrypcji." @@ -4566,19 +4656,19 @@ msgstr "Nie można usunąć subskrypcji." msgid "Welcome to %1$s, @%2$s!" msgstr "Witaj w %1$s, @%2$s." -#: classes/User_group.php:462 +#: classes/User_group.php:477 msgid "Could not create group." msgstr "Nie można utworzyć grupy." -#: classes/User_group.php:471 +#: classes/User_group.php:486 msgid "Could not set group URI." msgstr "Nie można ustawić adresu URI grupy." -#: classes/User_group.php:492 +#: classes/User_group.php:507 msgid "Could not set group membership." msgstr "Nie można ustawić członkostwa w grupie." -#: classes/User_group.php:506 +#: classes/User_group.php:521 msgid "Could not save local group info." msgstr "Nie można zapisać informacji o lokalnej grupie." @@ -4619,194 +4709,188 @@ msgstr "%1$s - %2$s" msgid "Untitled page" msgstr "Strona bez nazwy" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "Główna nawigacja witryny" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 +#: lib/action.php:430 #, fuzzy msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Profil osobisty i oś czasu przyjaciół" -#: lib/action.php:442 +#: lib/action.php:433 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "Osobiste" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 +#: lib/action.php:435 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Zmień adres e-mail, awatar, hasło, profil" -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "Konto" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 +#: lib/action.php:440 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Połącz z serwisami" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "Połącz" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 +#: lib/action.php:446 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Zmień konfigurację witryny" -#: lib/action.php:460 +#: lib/action.php:449 #, fuzzy msgctxt "MENU" msgid "Admin" msgstr "Administrator" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 +#: lib/action.php:453 #, fuzzy, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Zaproś przyjaciół i kolegów do dołączenia do ciebie na %s" -#: lib/action.php:467 +#: lib/action.php:456 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "Zaproś" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 +#: lib/action.php:462 #, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Wyloguj się z witryny" -#: lib/action.php:476 +#: lib/action.php:465 #, fuzzy msgctxt "MENU" msgid "Logout" msgstr "Wyloguj się" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 +#: lib/action.php:470 #, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "Utwórz konto" -#: lib/action.php:484 +#: lib/action.php:473 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "Zarejestruj się" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 +#: lib/action.php:476 #, fuzzy msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Zaloguj się na witrynie" -#: lib/action.php:490 +#: lib/action.php:479 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "Zaloguj się" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 +#: lib/action.php:482 #, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "Pomóż mi." -#: lib/action.php:496 +#: lib/action.php:485 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "Pomoc" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 +#: lib/action.php:488 #, fuzzy msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Wyszukaj osoby lub tekst" -#: lib/action.php:502 +#: lib/action.php:491 #, fuzzy msgctxt "MENU" msgid "Search" msgstr "Wyszukaj" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 msgid "Site notice" msgstr "Wpis witryny" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "Lokalne widoki" -#: lib/action.php:656 +#: lib/action.php:645 msgid "Page notice" msgstr "Wpis strony" -#: lib/action.php:758 +#: lib/action.php:747 msgid "Secondary site navigation" msgstr "Druga nawigacja witryny" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "Pomoc" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "O usłudze" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "FAQ" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "TOS" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "Prywatność" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "Kod źródłowy" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "Kontakt" -#: lib/action.php:782 +#: lib/action.php:771 msgid "Badge" msgstr "Odznaka" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "Licencja oprogramowania StatusNet" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4815,12 +4899,12 @@ msgstr "" "**%%site.name%%** jest usługą mikroblogowania prowadzoną przez [%%site." "broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** jest usługą mikroblogowania. " -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4831,57 +4915,57 @@ msgstr "" "status.net/) w wersji %s, dostępnego na [Powszechnej Licencji Publicznej GNU " "Affero](http://www.fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:832 +#: lib/action.php:821 msgid "Site content license" msgstr "Licencja zawartości witryny" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Treść i dane %1$s są prywatne i poufne." -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" "Prawa autorskie do treści i danych są własnością %1$s. Wszystkie prawa " "zastrzeżone." -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Prawa autorskie do treści i danych są własnością współtwórców. Wszystkie " "prawa zastrzeżone." -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "Wszystko " -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "licencja." -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "Paginacja" -#: lib/action.php:1172 +#: lib/action.php:1161 msgid "After" msgstr "Później" -#: lib/action.php:1180 +#: lib/action.php:1169 msgid "Before" msgstr "Wcześniej" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "Nie można jeszcze obsługiwać zdalnej treści." -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "Nie można jeszcze obsługiwać zagnieżdżonej treści XML." -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "Nie można jeszcze obsługiwać zagnieżdżonej treści Base64." @@ -4896,91 +4980,80 @@ msgid "Changes to that panel are not allowed." msgstr "Zmiany w tym panelu nie są dozwolone." #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 msgid "showForm() not implemented." msgstr "showForm() nie jest zaimplementowane." #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 msgid "saveSettings() not implemented." msgstr "saveSettings() nie jest zaimplementowane." #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 msgid "Unable to delete design setting." msgstr "Nie można usunąć ustawienia wyglądu." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 msgid "Basic site configuration" msgstr "Podstawowa konfiguracja witryny" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 +#: lib/adminpanelaction.php:350 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "Witryny" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 msgid "Design configuration" msgstr "Konfiguracja wyglądu" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 +#: lib/adminpanelaction.php:358 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "Wygląd" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 msgid "User configuration" msgstr "Konfiguracja użytkownika" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -#, fuzzy -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "Użytkownik" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 msgid "Access configuration" msgstr "Konfiguracja dostępu" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "Dostęp" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 msgid "Paths configuration" msgstr "Konfiguracja ścieżek" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -#, fuzzy -msgctxt "MENU" -msgid "Paths" -msgstr "Ścieżki" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 msgid "Sessions configuration" msgstr "Konfiguracja sesji" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "Sesje" +msgid "Edit site notice" +msgstr "Wpis witryny" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "Konfiguracja ścieżek" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5514,6 +5587,11 @@ msgstr "Wybierz znacznik do ograniczonej listy" msgid "Go" msgstr "Przejdź" +#: 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 "Adres URL strony domowej lub bloga grupy, albo temat" @@ -6131,10 +6209,6 @@ msgstr "Odpowiedzi" msgid "Favorites" msgstr "Ulubione" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "Użytkownik" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Odebrane" @@ -6160,7 +6234,7 @@ msgstr "Znaczniki we wpisach użytkownika %s" msgid "Unknown" msgstr "Nieznane" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Subskrypcje" @@ -6168,23 +6242,23 @@ msgstr "Subskrypcje" msgid "All subscriptions" msgstr "Wszystkie subskrypcje" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Subskrybenci" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 msgid "All subscribers" msgstr "Wszyscy subskrybenci" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 msgid "User ID" msgstr "Identyfikator użytkownika" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "Członek od" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "Wszystkie grupy" @@ -6224,7 +6298,12 @@ msgstr "Powtórzyć ten wpis?" msgid "Repeat this notice" msgstr "Powtórz ten wpis" -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, fuzzy, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "Zablokuj tego użytkownika w tej grupie" + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "" "Nie określono pojedynczego użytkownika dla trybu pojedynczego użytkownika." @@ -6379,47 +6458,64 @@ msgstr "Wiadomość" msgid "Moderate" msgstr "Moderuj" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "Profil użytkownika" + +#: lib/userprofile.php:354 +#, fuzzy +msgctxt "role" +msgid "Administrator" +msgstr "Administratorzy" + +#: lib/userprofile.php:355 +#, fuzzy +msgctxt "role" +msgid "Moderator" +msgstr "Moderuj" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "kilka sekund temu" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "około minutę temu" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "około %d minut temu" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "około godzinę temu" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "około %d godzin temu" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "blisko dzień temu" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "około %d dni temu" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "około miesiąc temu" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "około %d miesięcy temu" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "około rok temu" diff --git a/locale/pt/LC_MESSAGES/statusnet.po b/locale/pt/LC_MESSAGES/statusnet.po index 2598008d9..8dd23b162 100644 --- a/locale/pt/LC_MESSAGES/statusnet.po +++ b/locale/pt/LC_MESSAGES/statusnet.po @@ -9,19 +9,20 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:03:38+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:57:05+0000\n" "Language-Team: Portuguese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 msgid "Access" msgstr "Acesso" @@ -121,7 +122,7 @@ msgstr "Perfis bloqueados de %1$s, página %2$d" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -183,7 +184,7 @@ msgstr "" "publicar uma nota à sua atenção." #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 msgid "You and friends" msgstr "Você e seus amigos" @@ -210,11 +211,11 @@ msgstr "Actualizações de %1$s e amigos no %2$s!" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 msgid "API method not found." msgstr "Método da API não encontrado." @@ -575,7 +576,7 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 msgid "Account" msgstr "Conta" @@ -664,18 +665,6 @@ msgstr "%1$s / Favoritas de %2$s" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s actualizações preferidas por %2$s / %2$s." -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "Notas de %s" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "Actualizações de %1#s a %2$s!" - #: actions/apitimelinementions.php:117 #, php-format msgid "%1$s / Updates mentioning %2$s" @@ -686,12 +675,12 @@ msgstr "%1$s / Actualizações que mencionam %2$s" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s actualizações em resposta a actualizações de %2$s / %3$s." -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "Notas públicas de %s" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s actualizações de todos!" @@ -938,7 +927,7 @@ msgid "Conversation" msgstr "Conversação" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Notas" @@ -960,7 +949,7 @@ msgstr "Não é membro deste grupo." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "Ocorreu um problema com a sua sessão." @@ -1159,8 +1148,9 @@ msgstr "Repor predefinição" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1288,7 +1278,7 @@ msgstr "descrição é demasiada extensa (máx. %d caracteres)." msgid "Could not update group." msgstr "Não foi possível actualizar o grupo." -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 msgid "Could not create aliases." msgstr "Não foi possível criar sinónimos." @@ -1415,7 +1405,7 @@ msgid "Cannot normalize that email address" msgstr "Não é possível normalizar esse endereço electrónico" #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Correio electrónico é inválido." @@ -1607,6 +1597,25 @@ msgstr "Ficheiro não foi encontrado." msgid "Cannot read file." msgstr "Não foi possível ler o ficheiro." +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "Tamanho inválido." + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "Não pode impedir notas públicas neste site." + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "O utilizador já está silenciado." + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1754,12 +1763,18 @@ msgstr "Tornar Gestor" msgid "Make this user an admin" msgstr "Tornar este utilizador um gestor" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "Notas de %s" + #: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Actualizações dos membros de %1$s em %2$s!" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Grupos" @@ -2386,8 +2401,8 @@ msgstr "tipo de conteúdo " msgid "Only " msgstr "Apenas " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "Formato de dados não suportado." @@ -2533,7 +2548,8 @@ msgstr "Não é possível guardar a nova senha." msgid "Password saved." msgstr "Senha gravada." -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "Localizações" @@ -2653,7 +2669,7 @@ msgstr "Directório dos fundos" msgid "SSL" msgstr "SSL" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 msgid "Never" msgstr "Nunca" @@ -2709,11 +2725,11 @@ msgstr "Categoria de pessoas inválida: %s" msgid "Users self-tagged with %1$s - page %2$d" msgstr "Utilizadores auto-categorizados com %1$s - página %2$d" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "Conteúdo da nota é inválido" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" @@ -2794,7 +2810,7 @@ msgstr "" "Categorias para si (letras, números, -, ., _), separadas por vírgulas ou " "espaços" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "Idioma" @@ -2820,7 +2836,7 @@ msgstr "Subscrever automaticamente quem me subscreva (óptimo para não-humanos) msgid "Bio is too long (max %d chars)." msgstr "Biografia demasiado extensa (máx. %d caracteres)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Fuso horário não foi seleccionado." @@ -3142,7 +3158,7 @@ msgid "Same as password above. Required." msgstr "Repita a senha acima. Obrigatório." #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "Correio" @@ -3248,7 +3264,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL do seu perfil noutro serviço de microblogues compatível" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "Subscrever" @@ -3352,6 +3368,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Respostas a %1$s em %2$s!" +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "Não pode silenciar utilizadores neste site." + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "Utilizador sem perfil correspondente." + #: actions/rsd.php:146 actions/version.php:157 msgid "StatusNet" msgstr "StatusNet" @@ -3364,7 +3390,9 @@ msgstr "Não pode impedir notas públicas neste site." msgid "User is already sandboxed." msgstr "Utilizador já está impedido de criar notas públicas." +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "Sessões" @@ -3389,7 +3417,7 @@ msgstr "Depuração de sessões" msgid "Turn on debugging output for sessions." msgstr "Ligar a impressão de dados de depuração, para sessões." -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Gravar configurações do site" @@ -3423,8 +3451,8 @@ msgstr "Paginação" msgid "Description" msgstr "Descrição" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "Estatísticas" @@ -3566,45 +3594,45 @@ msgstr "Sinónimos" msgid "Group actions" msgstr "Acções do grupo" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Fonte de notas do grupo %s (RSS 1.0)" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Fonte de notas do grupo %s (RSS 2.0)" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Fonte de notas do grupo %s (Atom)" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, php-format msgid "FOAF for %s group" msgstr "FOAF do grupo %s" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 msgid "Members" msgstr "Membros" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Nenhum)" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "Todos os membros" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 msgid "Created" msgstr "Criado" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3620,7 +3648,7 @@ msgstr "" "[Registe-se agora](%%action.register%%) para se juntar a este grupo e a " "muitos mais! ([Saber mais](%%doc.help%%))" -#: actions/showgroup.php:462 +#: actions/showgroup.php:463 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3633,7 +3661,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:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "Gestores" @@ -3755,148 +3783,139 @@ msgid "User is already silenced." msgstr "O utilizador já está silenciado." #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +#, fuzzy +msgid "Basic settings for this StatusNet site" msgstr "Configurações básicas para este site StatusNet." -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "Nome do site não pode ter comprimento zero." -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 msgid "You must have a valid contact email address." msgstr "Tem de ter um endereço válido para o correio electrónico de contacto." -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "Língua desconhecida \"%s\"." #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "URL para onde enviar instantâneos é inválida" - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "Valor de criação do instantâneo é inválido." - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "Frequência dos instantâneos estatísticos tem de ser um número." - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "O valor mínimo de limite para o texto é 140 caracteres." -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "O limite de duplicados tem de ser 1 ou mais segundos." -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "Geral" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 msgid "Site name" msgstr "Nome do site" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "O nome do seu site, por exemplo \"Microblogue NomeDaEmpresa\"" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "Disponibilizado por" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "Texto usado para a ligação de atribuição no rodapé de cada página" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "URL da atribuição" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "URL usada para a ligação de atribuição no rodapé de cada página" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 msgid "Contact email address for your site" msgstr "Endereço de correio electrónico de contacto para o site" -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 msgid "Local" msgstr "Local" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "Fuso horário, por omissão" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "Fuso horário por omissão, para o site; normalmente, UTC." -#: actions/siteadminpanel.php:281 -msgid "Default site language" +#: actions/siteadminpanel.php:262 +#, fuzzy +msgid "Default language" msgstr "Idioma do site, por omissão" -#: actions/siteadminpanel.php:289 -msgid "Snapshots" -msgstr "Instantâneos" - -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" -msgstr "Aleatoriamente, durante o acesso pela internet" - -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" -msgstr "Num processo agendado" - -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" -msgstr "Instantâneos dos dados" - -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" -msgstr "Quando enviar dados estatísticos para os servidores do status.net" - -#: actions/siteadminpanel.php:301 -msgid "Frequency" -msgstr "Frequência" - -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" -msgstr "Instantâneos serão enviados uma vez a cada N acessos da internet" - -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "URL para relatórios" - -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" -msgstr "Instantâneos serão enviados para esta URL" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" +msgstr "" -#: actions/siteadminpanel.php:315 +#: actions/siteadminpanel.php:271 msgid "Limits" msgstr "Limites" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Text limit" msgstr "Limite de texto" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Maximum number of characters for notices." msgstr "Número máximo de caracteres nas notas." -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "Dupe limit" msgstr "Limite de duplicações" -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" "Quanto tempo os utilizadores terão de esperar (em segundos) para publicar a " "mesma coisa outra vez." +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "Aviso do site" + +#: actions/sitenoticeadminpanel.php:67 +#, fuzzy +msgid "Edit site-wide message" +msgstr "Mensagem nova" + +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +msgid "Unable to save site notice." +msgstr "Não foi possível gravar as configurações do estilo." + +#: actions/sitenoticeadminpanel.php:113 +msgid "Max length for the site-wide notice is 255 chars" +msgstr "" + +#: actions/sitenoticeadminpanel.php:176 +#, fuzzy +msgid "Site notice text" +msgstr "Aviso do site" + +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" +msgstr "" + +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "Aviso do site" + #: actions/smssettings.php:58 msgid "SMS settings" msgstr "Configurações de SMS" @@ -3997,6 +4016,66 @@ msgstr "" msgid "No code entered" msgstr "Nenhum código introduzido" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "Instantâneos" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +msgid "Manage snapshot configuration" +msgstr "Alterar a configuração do site" + +#: actions/snapshotadminpanel.php:127 +msgid "Invalid snapshot run value." +msgstr "Valor de criação do instantâneo é inválido." + +#: actions/snapshotadminpanel.php:133 +msgid "Snapshot frequency must be a number." +msgstr "Frequência dos instantâneos estatísticos tem de ser um número." + +#: actions/snapshotadminpanel.php:144 +msgid "Invalid snapshot report URL." +msgstr "URL para onde enviar instantâneos é inválida" + +#: actions/snapshotadminpanel.php:200 +msgid "Randomly during Web hit" +msgstr "Aleatoriamente, durante o acesso pela internet" + +#: actions/snapshotadminpanel.php:201 +msgid "In a scheduled job" +msgstr "Num processo agendado" + +#: actions/snapshotadminpanel.php:206 +msgid "Data snapshots" +msgstr "Instantâneos dos dados" + +#: actions/snapshotadminpanel.php:208 +msgid "When to send statistical data to status.net servers" +msgstr "Quando enviar dados estatísticos para os servidores do status.net" + +#: actions/snapshotadminpanel.php:217 +msgid "Frequency" +msgstr "Frequência" + +#: actions/snapshotadminpanel.php:218 +msgid "Snapshots will be sent once every N web hits" +msgstr "Instantâneos serão enviados uma vez a cada N acessos da internet" + +#: actions/snapshotadminpanel.php:226 +msgid "Report URL" +msgstr "URL para relatórios" + +#: actions/snapshotadminpanel.php:227 +msgid "Snapshots will be sent to this URL" +msgstr "Instantâneos serão enviados para esta URL" + +#: actions/snapshotadminpanel.php:248 +#, fuzzy +msgid "Save snapshot settings" +msgstr "Gravar configurações do site" + #: actions/subedit.php:70 msgid "You are not subscribed to that profile." msgstr "Não subscreveu esse perfil." @@ -4206,7 +4285,7 @@ msgstr "O pedido não tem a identificação do perfil." msgid "Unsubscribed" msgstr "Subscrição cancelada" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4410,16 +4489,22 @@ msgstr "Membros do grupo %1$s, página %2$d" msgid "Search for more groups" msgstr "Procurar mais grupos" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, php-format msgid "%s is not a member of any group." msgstr "%s não é membro de nenhum grupo." -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "Tente [pesquisar grupos](%%action.groupsearch%%) e juntar-se a eles." +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "Actualizações de %1#s a %2$s!" + #: actions/version.php:73 #, php-format msgid "StatusNet %s" @@ -4474,7 +4559,7 @@ msgstr "" msgid "Plugins" msgstr "Plugins" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 msgid "Version" msgstr "Versão" @@ -4544,22 +4629,22 @@ msgstr "Não foi possível actualizar a mensagem com a nova URI." msgid "DB error inserting hashtag: %s" msgstr "Erro na base de dados ao inserir a marca: %s" -#: classes/Notice.php:239 +#: classes/Notice.php:241 msgid "Problem saving notice. Too long." msgstr "Problema na gravação da nota. Demasiado longa." -#: classes/Notice.php:243 +#: classes/Notice.php:245 msgid "Problem saving notice. Unknown user." msgstr "Problema na gravação da nota. Utilizador desconhecido." -#: classes/Notice.php:248 +#: classes/Notice.php:250 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:254 +#: classes/Notice.php:256 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4567,20 +4652,20 @@ msgstr "" "Demasiadas mensagens duplicadas, demasiado rápido; descanse e volte a " "publicar daqui a alguns minutos." -#: classes/Notice.php:260 +#: classes/Notice.php:262 msgid "You are banned from posting notices on this site." msgstr "Está proibido de publicar notas neste site." -#: classes/Notice.php:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "Problema na gravação da nota." -#: classes/Notice.php:911 +#: classes/Notice.php:927 #, fuzzy msgid "Problem saving group inbox." msgstr "Problema na gravação da nota." -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4605,7 +4690,12 @@ msgstr "Não subscrito!" msgid "Couldn't delete self-subscription." msgstr "Não foi possível apagar a auto-subscrição." -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "Não foi possível apagar a subscrição." + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "Não foi possível apagar a subscrição." @@ -4614,20 +4704,20 @@ msgstr "Não foi possível apagar a subscrição." msgid "Welcome to %1$s, @%2$s!" msgstr "%1$s dá-lhe as boas-vindas, @%2$s!" -#: classes/User_group.php:462 +#: classes/User_group.php:477 msgid "Could not create group." msgstr "Não foi possível criar o grupo." -#: classes/User_group.php:471 +#: classes/User_group.php:486 #, fuzzy msgid "Could not set group URI." msgstr "Não foi possível configurar membros do grupo." -#: classes/User_group.php:492 +#: classes/User_group.php:507 msgid "Could not set group membership." msgstr "Não foi possível configurar membros do grupo." -#: classes/User_group.php:506 +#: classes/User_group.php:521 #, fuzzy msgid "Could not save local group info." msgstr "Não foi possível gravar a subscrição." @@ -4669,194 +4759,188 @@ msgstr "%1$s (%2$s)" msgid "Untitled page" msgstr "Página sem título" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "Navegação primária deste site" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 +#: lib/action.php:430 #, fuzzy msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Perfil pessoal e notas dos amigos" -#: lib/action.php:442 +#: lib/action.php:433 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "Pessoal" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 +#: lib/action.php:435 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Altere o seu endereço electrónico, avatar, senha, perfil" -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "Conta" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 +#: lib/action.php:440 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Ligar aos serviços" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "Ligar" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 +#: lib/action.php:446 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Alterar a configuração do site" -#: lib/action.php:460 +#: lib/action.php:449 #, fuzzy msgctxt "MENU" msgid "Admin" msgstr "Gestor" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 +#: lib/action.php:453 #, fuzzy, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Convidar amigos e colegas para se juntarem a si em %s" -#: lib/action.php:467 +#: lib/action.php:456 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "Convidar" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 +#: lib/action.php:462 #, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Terminar esta sessão" -#: lib/action.php:476 +#: lib/action.php:465 #, fuzzy msgctxt "MENU" msgid "Logout" msgstr "Sair" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 +#: lib/action.php:470 #, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "Criar uma conta" -#: lib/action.php:484 +#: lib/action.php:473 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "Registar" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 +#: lib/action.php:476 #, fuzzy msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Iniciar uma sessão" -#: lib/action.php:490 +#: lib/action.php:479 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "Entrar" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 +#: lib/action.php:482 #, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "Ajudem-me!" -#: lib/action.php:496 +#: lib/action.php:485 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "Ajuda" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 +#: lib/action.php:488 #, fuzzy msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Procurar pessoas ou pesquisar texto" -#: lib/action.php:502 +#: lib/action.php:491 #, fuzzy msgctxt "MENU" msgid "Search" msgstr "Pesquisa" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 msgid "Site notice" msgstr "Aviso do site" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "Vistas locais" -#: lib/action.php:656 +#: lib/action.php:645 msgid "Page notice" msgstr "Aviso da página" -#: lib/action.php:758 +#: lib/action.php:747 msgid "Secondary site navigation" msgstr "Navegação secundária deste site" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "Ajuda" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "Sobre" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "FAQ" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "Termos" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "Privacidade" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "Código" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "Contacto" -#: lib/action.php:782 +#: lib/action.php:771 msgid "Badge" msgstr "Emblema" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "Licença de software do StatusNet" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4865,12 +4949,12 @@ msgstr "" "**%%site.name%%** é um serviço de microblogues disponibilizado por [%%site." "broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** é um serviço de microblogues. " -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4881,53 +4965,53 @@ msgstr "" "disponibilizado nos termos da [GNU Affero General Public License](http://www." "fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:832 +#: lib/action.php:821 msgid "Site content license" msgstr "Licença de conteúdos do site" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "Tudo " -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "licença." -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "Paginação" -#: lib/action.php:1172 +#: lib/action.php:1161 msgid "After" msgstr "Posteriores" -#: lib/action.php:1180 +#: lib/action.php:1169 msgid "Before" msgstr "Anteriores" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "" @@ -4942,94 +5026,83 @@ msgid "Changes to that panel are not allowed." msgstr "Não são permitidas alterações a esse painel." #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 msgid "showForm() not implemented." msgstr "showForm() não implementado." #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 msgid "saveSettings() not implemented." msgstr "saveSettings() não implementado." #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 msgid "Unable to delete design setting." msgstr "Não foi possível apagar a configuração do estilo." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 msgid "Basic site configuration" msgstr "Configuração básica do site" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 +#: lib/adminpanelaction.php:350 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "Site" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 msgid "Design configuration" msgstr "Configuração do estilo" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 +#: lib/adminpanelaction.php:358 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "Estilo" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 #, fuzzy msgid "User configuration" msgstr "Configuração das localizações" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -#, fuzzy -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "Utilizador" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 #, fuzzy msgid "Access configuration" msgstr "Configuração do estilo" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "Acesso" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 msgid "Paths configuration" msgstr "Configuração das localizações" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -#, fuzzy -msgctxt "MENU" -msgid "Paths" -msgstr "Localizações" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 #, fuzzy msgid "Sessions configuration" msgstr "Configuração do estilo" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "Sessões" +msgid "Edit site notice" +msgstr "Aviso do site" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "Configuração das localizações" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5562,6 +5635,11 @@ msgstr "Escolha uma categoria para reduzir a lista" msgid "Go" msgstr "Prosseguir" +#: 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 "URL da página ou do blogue, deste grupo ou assunto" @@ -6178,10 +6256,6 @@ msgstr "Respostas" msgid "Favorites" msgstr "Favoritas" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "Utilizador" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Recebidas" @@ -6207,7 +6281,7 @@ msgstr "Categorias nas notas de %s" msgid "Unknown" msgstr "Desconhecida" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Subscrições" @@ -6215,23 +6289,23 @@ msgstr "Subscrições" msgid "All subscriptions" msgstr "Todas as subscrições" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Subscritores" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 msgid "All subscribers" msgstr "Todos os subscritores" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 msgid "User ID" msgstr "ID do utilizador" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "Membro desde" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "Todos os grupos" @@ -6271,7 +6345,12 @@ msgstr "Repetir esta nota?" msgid "Repeat this notice" msgstr "Repetir esta nota" -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, fuzzy, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "Bloquear acesso deste utilizador a este grupo" + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "" @@ -6425,47 +6504,64 @@ msgstr "Mensagem" msgid "Moderate" msgstr "Moderar" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "Perfil" + +#: lib/userprofile.php:354 +#, fuzzy +msgctxt "role" +msgid "Administrator" +msgstr "Gestores" + +#: lib/userprofile.php:355 +#, fuzzy +msgctxt "role" +msgid "Moderator" +msgstr "Moderar" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "há alguns segundos" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "há cerca de um minuto" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "há cerca de %d minutos" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "há cerca de uma hora" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "há cerca de %d horas" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "há cerca de um dia" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "há cerca de %d dias" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "há cerca de um mês" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "há cerca de %d meses" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "há cerca de um ano" diff --git a/locale/pt_BR/LC_MESSAGES/statusnet.po b/locale/pt_BR/LC_MESSAGES/statusnet.po index 041a2d4a3..7ba00b717 100644 --- a/locale/pt_BR/LC_MESSAGES/statusnet.po +++ b/locale/pt_BR/LC_MESSAGES/statusnet.po @@ -11,19 +11,20 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:03:41+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:57:07+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 (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt-br\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 msgid "Access" msgstr "Acesso" @@ -120,7 +121,7 @@ msgstr "%1$s e amigos, pág. %2$d" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -184,7 +185,7 @@ msgstr "" "atenção de %s ou publicar uma mensagem para sua atenção." #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 msgid "You and friends" msgstr "Você e amigos" @@ -211,11 +212,11 @@ msgstr "Atualizações de %1$s e amigos no %2$s!" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 msgid "API method not found." msgstr "O método da API não foi encontrado!" @@ -584,7 +585,7 @@ msgstr "" "fornecer acesso à sua conta %4$s somente para terceiros nos quais você " "confia." -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 msgid "Account" msgstr "Conta" @@ -671,18 +672,6 @@ msgstr "%1$s / Favoritas de %2$s" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s marcadas como favoritas por %2$s / %2$s." -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "Mensagens de %s" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "Mensagens de %1$s no %2$s!" - #: actions/apitimelinementions.php:117 #, php-format msgid "%1$s / Updates mentioning %2$s" @@ -693,12 +682,12 @@ msgstr "%1$s / Mensagens mencionando %2$s" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s mensagens em resposta a mensagens de %2$s / %3$s." -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "Mensagens públicas de %s" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s mensagens de todo mundo!" @@ -946,7 +935,7 @@ msgid "Conversation" msgstr "Conversa" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Mensagens" @@ -965,7 +954,7 @@ msgstr "Você não é o dono desta aplicação." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "Ocorreu um problema com o seu token de sessão." @@ -1161,8 +1150,9 @@ msgstr "Restaura de volta ao padrão" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1278,7 +1268,7 @@ msgstr "descrição muito extensa (máximo %d caracteres)." msgid "Could not update group." msgstr "Não foi possível atualizar o grupo." -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 msgid "Could not create aliases." msgstr "Não foi possível criar os apelidos." @@ -1404,7 +1394,7 @@ msgid "Cannot normalize that email address" msgstr "Não foi possível normalizar este endereço de e-mail" #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Não é um endereço de e-mail válido." @@ -1598,6 +1588,25 @@ msgstr "Esse arquivo não existe." msgid "Cannot read file." msgstr "Não foi possível ler o arquivo." +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "Token inválido." + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "Você não pode colocar usuários deste site em isolamento." + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "O usuário já está silenciado." + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1746,12 +1755,18 @@ msgstr "Tornar administrador" msgid "Make this user an admin" msgstr "Torna este usuário um administrador" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "Mensagens de %s" + #: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Atualizações dos membros de %1$s no %2$s!" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Grupos" @@ -2381,8 +2396,8 @@ msgstr "tipo de conteúdo " msgid "Only " msgstr "Apenas " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "Não é um formato de dados suportado." @@ -2523,7 +2538,8 @@ msgstr "Não é possível salvar a nova senha." msgid "Password saved." msgstr "A senha foi salva." -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "Caminhos" @@ -2644,7 +2660,7 @@ msgstr "Diretório das imagens de fundo" msgid "SSL" msgstr "SSL" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 msgid "Never" msgstr "Nunca" @@ -2699,11 +2715,11 @@ msgstr "Não é uma etiqueta de pessoa válida: %s" msgid "Users self-tagged with %1$s - page %2$d" msgstr "Usuários auto-etiquetados com %1$s - pág. %2$d" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "O conteúdo da mensagem é inválido" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" @@ -2784,7 +2800,7 @@ msgstr "" "Suas etiquetas (letras, números, -, ., e _), separadas por vírgulas ou " "espaços" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "Idioma" @@ -2811,7 +2827,7 @@ msgstr "" msgid "Bio is too long (max %d chars)." msgstr "A descrição é muito extensa (máximo %d caracteres)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "O fuso horário não foi selecionado." @@ -3134,7 +3150,7 @@ msgid "Same as password above. Required." msgstr "Igual à senha acima. Obrigatório." #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "E-mail" @@ -3240,7 +3256,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL do seu perfil em outro serviço de microblog compatível" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "Assinar" @@ -3344,6 +3360,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Respostas para %1$s no %2$s" +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "Você não pode silenciar os usuários neste site." + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "Usuário sem um perfil correspondente" + #: actions/rsd.php:146 actions/version.php:157 msgid "StatusNet" msgstr "StatusNet" @@ -3356,7 +3382,9 @@ msgstr "Você não pode colocar usuários deste site em isolamento." msgid "User is already sandboxed." msgstr "O usuário já está em isolamento." +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "Sessões" @@ -3380,7 +3408,7 @@ msgstr "Depuração da sessão" msgid "Turn on debugging output for sessions." msgstr "Ativa a saída de depuração para as sessões." -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Salvar as configurações do site" @@ -3411,8 +3439,8 @@ msgstr "Organização" msgid "Description" msgstr "Descrição" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "Estatísticas" @@ -3554,45 +3582,45 @@ msgstr "Apelidos" msgid "Group actions" msgstr "Ações do grupo" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Fonte de mensagens do grupo %s (RSS 1.0)" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Fonte de mensagens do grupo %s (RSS 2.0)" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Fonte de mensagens do grupo %s (Atom)" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, php-format msgid "FOAF for %s group" msgstr "FOAF para o grupo %s" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 msgid "Members" msgstr "Membros" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Nenhum)" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "Todos os membros" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 msgid "Created" msgstr "Criado" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3608,7 +3636,7 @@ msgstr "" "para se tornar parte deste grupo e muito mais! ([Saiba mais](%%%%doc.help%%%" "%))" -#: actions/showgroup.php:462 +#: actions/showgroup.php:463 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3621,7 +3649,7 @@ msgstr "" "[StatusNet](http://status.net/). Seus membros compartilham mensagens curtas " "sobre suas vidas e interesses. " -#: actions/showgroup.php:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "Administradores" @@ -3745,148 +3773,139 @@ msgid "User is already silenced." msgstr "O usuário já está silenciado." #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +#, fuzzy +msgid "Basic settings for this StatusNet site" msgstr "Configurações básicas para esta instância do StatusNet." -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "Você deve digitar alguma coisa para o nome do site." -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 msgid "You must have a valid contact email address." msgstr "Você deve ter um endereço de e-mail para contato válido." -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "Idioma \"%s\" desconhecido." #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "A URL para o envio das estatísticas é inválida." - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "O valor de execução da obtenção das estatísticas é inválido." - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "A frequência de geração de estatísticas deve ser um número." - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "O comprimento máximo do texto é de 140 caracteres." -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "O limite de duplicatas deve ser de um ou mais segundos." -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "Geral" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 msgid "Site name" msgstr "Nome do site" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "O nome do seu site, por exemplo \"Microblog da Sua Empresa\"" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "Disponibilizado por" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "Texto utilizado para o link de créditos no rodapé de cada página" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "URL do disponibilizado por" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "URL utilizada para o link de créditos no rodapé de cada página" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 msgid "Contact email address for your site" msgstr "Endereço de e-mail para contatos do seu site" -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 msgid "Local" msgstr "Local" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "Fuso horário padrão" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "Fuso horário padrão para o seu site; geralmente UTC." -#: actions/siteadminpanel.php:281 -msgid "Default site language" +#: actions/siteadminpanel.php:262 +#, fuzzy +msgid "Default language" msgstr "Idioma padrão do site" -#: actions/siteadminpanel.php:289 -msgid "Snapshots" -msgstr "Estatísticas" - -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" -msgstr "Aleatoriamente durante o funcionamento" - -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" -msgstr "Em horários pré-definidos" - -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" -msgstr "Estatísticas dos dados" - -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" -msgstr "Quando enviar dados estatísticos para os servidores status.net" - -#: actions/siteadminpanel.php:301 -msgid "Frequency" -msgstr "Frequentemente" - -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" -msgstr "As estatísticas serão enviadas uma vez a cada N usos da web" - -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "URL para envio" - -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" -msgstr "As estatísticas serão enviadas para esta URL" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" +msgstr "" -#: actions/siteadminpanel.php:315 +#: actions/siteadminpanel.php:271 msgid "Limits" msgstr "Limites" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Text limit" msgstr "Limite do texto" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Maximum number of characters for notices." msgstr "Número máximo de caracteres para as mensagens." -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "Dupe limit" msgstr "Limite de duplicatas" -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" "Quanto tempo (em segundos) os usuários devem esperar para publicar a mesma " "coisa novamente." +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "Mensagem do site" + +#: actions/sitenoticeadminpanel.php:67 +#, fuzzy +msgid "Edit site-wide message" +msgstr "Nova mensagem" + +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +msgid "Unable to save site notice." +msgstr "Não foi possível salvar suas configurações de aparência." + +#: actions/sitenoticeadminpanel.php:113 +msgid "Max length for the site-wide notice is 255 chars" +msgstr "" + +#: actions/sitenoticeadminpanel.php:176 +#, fuzzy +msgid "Site notice text" +msgstr "Mensagem do site" + +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" +msgstr "" + +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "Mensagem do site" + #: actions/smssettings.php:58 msgid "SMS settings" msgstr "Configuração do SMS" @@ -3985,6 +4004,66 @@ msgstr "" msgid "No code entered" msgstr "Não foi digitado nenhum código" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "Estatísticas" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +msgid "Manage snapshot configuration" +msgstr "Mude as configurações do site" + +#: actions/snapshotadminpanel.php:127 +msgid "Invalid snapshot run value." +msgstr "O valor de execução da obtenção das estatísticas é inválido." + +#: actions/snapshotadminpanel.php:133 +msgid "Snapshot frequency must be a number." +msgstr "A frequência de geração de estatísticas deve ser um número." + +#: actions/snapshotadminpanel.php:144 +msgid "Invalid snapshot report URL." +msgstr "A URL para o envio das estatísticas é inválida." + +#: actions/snapshotadminpanel.php:200 +msgid "Randomly during Web hit" +msgstr "Aleatoriamente durante o funcionamento" + +#: actions/snapshotadminpanel.php:201 +msgid "In a scheduled job" +msgstr "Em horários pré-definidos" + +#: actions/snapshotadminpanel.php:206 +msgid "Data snapshots" +msgstr "Estatísticas dos dados" + +#: actions/snapshotadminpanel.php:208 +msgid "When to send statistical data to status.net servers" +msgstr "Quando enviar dados estatísticos para os servidores status.net" + +#: actions/snapshotadminpanel.php:217 +msgid "Frequency" +msgstr "Frequentemente" + +#: actions/snapshotadminpanel.php:218 +msgid "Snapshots will be sent once every N web hits" +msgstr "As estatísticas serão enviadas uma vez a cada N usos da web" + +#: actions/snapshotadminpanel.php:226 +msgid "Report URL" +msgstr "URL para envio" + +#: actions/snapshotadminpanel.php:227 +msgid "Snapshots will be sent to this URL" +msgstr "As estatísticas serão enviadas para esta URL" + +#: actions/snapshotadminpanel.php:248 +#, fuzzy +msgid "Save snapshot settings" +msgstr "Salvar as configurações do site" + #: actions/subedit.php:70 msgid "You are not subscribed to that profile." msgstr "Você não está assinando esse perfil." @@ -4194,7 +4273,7 @@ msgstr "Nenhuma ID de perfil na requisição." msgid "Unsubscribed" msgstr "Cancelado" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4399,18 +4478,24 @@ msgstr "Grupos de %1$s, pág. %2$d" msgid "Search for more groups" msgstr "Procurar por outros grupos" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, php-format msgid "%s is not a member of any group." msgstr "%s não é membro de nenhum grupo." -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" "Experimente [procurar por grupos](%%action.groupsearch%%) e associar-se à " "eles." +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "Mensagens de %1$s no %2$s!" + #: actions/version.php:73 #, php-format msgid "StatusNet %s" @@ -4466,7 +4551,7 @@ msgstr "" msgid "Plugins" msgstr "Plugins" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 msgid "Version" msgstr "Versão" @@ -4532,22 +4617,22 @@ msgstr "Não foi possível atualizar a mensagem com a nova URI." msgid "DB error inserting hashtag: %s" msgstr "Erro no banco de dados durante a inserção da hashtag: %s" -#: classes/Notice.php:239 +#: classes/Notice.php:241 msgid "Problem saving notice. Too long." msgstr "Problema no salvamento da mensagem. Ela é muito extensa." -#: classes/Notice.php:243 +#: classes/Notice.php:245 msgid "Problem saving notice. Unknown user." msgstr "Problema no salvamento da mensagem. Usuário desconhecido." -#: classes/Notice.php:248 +#: classes/Notice.php:250 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:254 +#: classes/Notice.php:256 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4555,19 +4640,19 @@ msgstr "" "Muitas mensagens duplicadas em um período curto de tempo; dê uma respirada e " "publique novamente daqui a alguns minutos." -#: classes/Notice.php:260 +#: classes/Notice.php:262 msgid "You are banned from posting notices on this site." msgstr "Você está proibido de publicar mensagens neste site." -#: classes/Notice.php:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "Problema no salvamento da mensagem." -#: classes/Notice.php:911 +#: classes/Notice.php:927 msgid "Problem saving group inbox." msgstr "Problema no salvamento das mensagens recebidas do grupo." -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4592,7 +4677,12 @@ msgstr "Não assinado!" msgid "Couldn't delete self-subscription." msgstr "Não foi possível excluir a auto-assinatura." -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "Não foi possível excluir a assinatura." + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "Não foi possível excluir a assinatura." @@ -4601,20 +4691,20 @@ msgstr "Não foi possível excluir a assinatura." msgid "Welcome to %1$s, @%2$s!" msgstr "Bem vindo(a) a %1$s, @%2$s!" -#: classes/User_group.php:462 +#: classes/User_group.php:477 msgid "Could not create group." msgstr "Não foi possível criar o grupo." -#: classes/User_group.php:471 +#: classes/User_group.php:486 #, fuzzy msgid "Could not set group URI." msgstr "Não foi possível configurar a associação ao grupo." -#: classes/User_group.php:492 +#: classes/User_group.php:507 msgid "Could not set group membership." msgstr "Não foi possível configurar a associação ao grupo." -#: classes/User_group.php:506 +#: classes/User_group.php:521 #, fuzzy msgid "Could not save local group info." msgstr "Não foi possível salvar a assinatura." @@ -4656,194 +4746,188 @@ msgstr "%1$s - %2$s" msgid "Untitled page" msgstr "Página sem título" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "Navegação primária no site" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 +#: lib/action.php:430 #, fuzzy msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Perfil pessoal e fluxo de mensagens dos amigos" -#: lib/action.php:442 +#: lib/action.php:433 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "Pessoal" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 +#: lib/action.php:435 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Mude seu e-mail, avatar, senha, perfil" -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "Conta" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 +#: lib/action.php:440 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Conecte-se a outros serviços" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "Conectar" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 +#: lib/action.php:446 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Mude as configurações do site" -#: lib/action.php:460 +#: lib/action.php:449 #, fuzzy msgctxt "MENU" msgid "Admin" msgstr "Admin" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 +#: lib/action.php:453 #, fuzzy, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Convide seus amigos e colegas para unir-se a você no %s" -#: lib/action.php:467 +#: lib/action.php:456 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "Convidar" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 +#: lib/action.php:462 #, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Sai do site" -#: lib/action.php:476 +#: lib/action.php:465 #, fuzzy msgctxt "MENU" msgid "Logout" msgstr "Sair" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 +#: lib/action.php:470 #, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "Cria uma conta" -#: lib/action.php:484 +#: lib/action.php:473 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "Registrar-se" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 +#: lib/action.php:476 #, fuzzy msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Autentique-se no site" -#: lib/action.php:490 +#: lib/action.php:479 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "Entrar" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 +#: lib/action.php:482 #, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "Ajudem-me!" -#: lib/action.php:496 +#: lib/action.php:485 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "Ajuda" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 +#: lib/action.php:488 #, fuzzy msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Procura por pessoas ou textos" -#: lib/action.php:502 +#: lib/action.php:491 #, fuzzy msgctxt "MENU" msgid "Search" msgstr "Procurar" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 msgid "Site notice" msgstr "Mensagem do site" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "Visualizações locais" -#: lib/action.php:656 +#: lib/action.php:645 msgid "Page notice" msgstr "Notícia da página" -#: lib/action.php:758 +#: lib/action.php:747 msgid "Secondary site navigation" msgstr "Navegação secundária no site" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "Ajuda" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "Sobre" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "FAQ" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "Termos de uso" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "Privacidade" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "Fonte" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "Contato" -#: lib/action.php:782 +#: lib/action.php:771 msgid "Badge" msgstr "Mini-aplicativo" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "Licença do software StatusNet" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4852,12 +4936,12 @@ msgstr "" "**%%site.name%%** é um serviço de microblog disponibilizado por [%%site." "broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** é um serviço de microblog. " -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4868,55 +4952,55 @@ msgstr "" "versão %s, disponível sob a [GNU Affero General Public License] (http://www." "fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:832 +#: lib/action.php:821 msgid "Site content license" msgstr "Licença do conteúdo do site" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "O conteúdo e os dados de %1$s são privados e confidenciais." -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "Conteúdo e dados licenciados sob %1$s. Todos os direitos reservados." -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Conteúdo e dados licenciados pelos colaboradores. Todos os direitos " "reservados." -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "Todas " -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "licença." -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "Paginação" -#: lib/action.php:1172 +#: lib/action.php:1161 msgid "After" msgstr "Próximo" -#: lib/action.php:1180 +#: lib/action.php:1169 msgid "Before" msgstr "Anterior" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "" @@ -4931,91 +5015,80 @@ msgid "Changes to that panel are not allowed." msgstr "Não são permitidas alterações a esse painel." #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 msgid "showForm() not implemented." msgstr "showForm() não implementado." #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 msgid "saveSettings() not implemented." msgstr "saveSettings() não implementado." #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 msgid "Unable to delete design setting." msgstr "Não foi possível excluir as configurações da aparência." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 msgid "Basic site configuration" msgstr "Configuração básica do site" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 +#: lib/adminpanelaction.php:350 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "Site" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 msgid "Design configuration" msgstr "Configuração da aparência" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 +#: lib/adminpanelaction.php:358 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "Aparência" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 msgid "User configuration" msgstr "Configuração do usuário" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -#, fuzzy -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "Usuário" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 msgid "Access configuration" msgstr "Configuração do acesso" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "Acesso" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 msgid "Paths configuration" msgstr "Configuração dos caminhos" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -#, fuzzy -msgctxt "MENU" -msgid "Paths" -msgstr "Caminhos" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 msgid "Sessions configuration" msgstr "Configuração das sessões" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "Sessões" +msgid "Edit site notice" +msgstr "Mensagem do site" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "Configuração dos caminhos" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5548,6 +5621,11 @@ msgstr "Selecione uma etiqueta para reduzir a lista" msgid "Go" msgstr "Ir" +#: 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 "URL para o site ou blog do grupo ou tópico" @@ -6168,10 +6246,6 @@ msgstr "Respostas" msgid "Favorites" msgstr "Favoritas" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "Usuário" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Recebidas" @@ -6197,7 +6271,7 @@ msgstr "Etiquetas nas mensagens de %s" msgid "Unknown" msgstr "Desconhecido" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Assinaturas" @@ -6205,23 +6279,23 @@ msgstr "Assinaturas" msgid "All subscriptions" msgstr "Todas as assinaturas" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Assinantes" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 msgid "All subscribers" msgstr "Todos os assinantes" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 msgid "User ID" msgstr "ID do usuário" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "Membro desde" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "Todos os grupos" @@ -6261,7 +6335,12 @@ msgstr "Repetir esta mensagem?" msgid "Repeat this notice" msgstr "Repetir esta mensagem" -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, fuzzy, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "Bloquear este usuário neste grupo" + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "Nenhum usuário definido para o modo de usuário único." @@ -6415,47 +6494,64 @@ msgstr "Mensagem" msgid "Moderate" msgstr "Moderar" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "Perfil do usuário" + +#: lib/userprofile.php:354 +#, fuzzy +msgctxt "role" +msgid "Administrator" +msgstr "Administradores" + +#: lib/userprofile.php:355 +#, fuzzy +msgctxt "role" +msgid "Moderator" +msgstr "Moderar" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "alguns segundos atrás" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "cerca de 1 minuto atrás" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "cerca de %d minutos atrás" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "cerca de 1 hora atrás" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "cerca de %d horas atrás" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "cerca de 1 dia atrás" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "cerca de %d dias atrás" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "cerca de 1 mês atrás" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "cerca de %d meses atrás" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "cerca de 1 ano atrás" diff --git a/locale/ru/LC_MESSAGES/statusnet.po b/locale/ru/LC_MESSAGES/statusnet.po index 4db3b0684..c97bb5461 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-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:03:44+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:57:17+0000\n" "Language-Team: Russian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: out-statusnet\n" @@ -25,7 +25,8 @@ msgstr "" "10< =4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 msgid "Access" msgstr "Принять" @@ -47,7 +48,6 @@ msgstr "" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -#, fuzzy msgctxt "LABEL" msgid "Private" msgstr "Личное" @@ -78,7 +78,6 @@ msgid "Save access settings" msgstr "Сохранить настройки доступа" #: actions/accessadminpanel.php:203 -#, fuzzy msgctxt "BUTTON" msgid "Save" msgstr "Сохранить" @@ -123,7 +122,7 @@ msgstr "%1$s и друзья, страница %2$d" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -185,7 +184,7 @@ msgstr "" "s или отправить запись для привлечения его или её внимания?" #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 msgid "You and friends" msgstr "Вы и друзья" @@ -212,11 +211,11 @@ msgstr "Обновлено от %1$s и его друзей на %2$s!" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 msgid "API method not found." msgstr "Метод API не найден." @@ -582,7 +581,7 @@ msgstr "" "предоставлять разрешение на доступ к вашей учётной записи %4$s только тем " "сторонним приложениям, которым вы доверяете." -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 msgid "Account" msgstr "Настройки" @@ -669,18 +668,6 @@ msgstr "%1$s / Любимое от %2$s" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "Обновления %1$s, отмеченные как любимые %2$s / %2$s." -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "Лента %s" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "Обновлено от %1$s на %2$s!" - #: actions/apitimelinementions.php:117 #, php-format msgid "%1$s / Updates mentioning %2$s" @@ -691,12 +678,12 @@ msgstr "%1$s / Обновления, упоминающие %2$s" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s обновил этот ответ на сообщение: %2$s / %3$s." -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "Общая лента %s" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "Обновления %s от всех!" @@ -943,7 +930,7 @@ msgid "Conversation" msgstr "Дискуссия" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Записи" @@ -962,7 +949,7 @@ msgstr "Вы не являетесь владельцем этого прило #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "Проблема с Вашей сессией. Попробуйте ещё раз, пожалуйста." @@ -1158,8 +1145,9 @@ msgstr "Восстановить значения по умолчанию" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1275,7 +1263,7 @@ msgstr "Слишком длинное описание (максимум %d си msgid "Could not update group." msgstr "Не удаётся обновить информацию о группе." -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 msgid "Could not create aliases." msgstr "Не удаётся создать алиасы." @@ -1407,7 +1395,7 @@ msgid "Cannot normalize that email address" msgstr "Не удаётся стандартизировать этот электронный адрес" #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Неверный электронный адрес." @@ -1600,6 +1588,26 @@ msgstr "Нет такого файла." msgid "Cannot read file." msgstr "Не удалось прочесть файл." +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "Неправильный токен" + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "" +"Вы не можете устанавливать режим песочницы для пользователей этого сайта." + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "Пользователь уже заглушён." + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1747,12 +1755,18 @@ msgstr "Сделать администратором" msgid "Make this user an admin" msgstr "Сделать этого пользователя администратором" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "Лента %s" + #: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Обновления участников %1$s на %2$s!" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Группы" @@ -2015,7 +2029,6 @@ msgstr "Можно добавить к приглашению личное со #. TRANS: Send button for inviting friends #: actions/invite.php:198 -#, fuzzy msgctxt "BUTTON" msgid "Send" msgstr "Отправить" @@ -2372,8 +2385,8 @@ msgstr "тип содержимого " msgid "Only " msgstr "Только " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "Неподдерживаемый формат данных." @@ -2514,7 +2527,8 @@ msgstr "Не удаётся сохранить новый пароль." msgid "Password saved." msgstr "Пароль сохранён." -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "Пути" @@ -2634,7 +2648,7 @@ msgstr "Директория фонового изображения" msgid "SSL" msgstr "SSL" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 msgid "Never" msgstr "Никогда" @@ -2689,11 +2703,11 @@ msgstr "Неверный тег человека: %s" msgid "Users self-tagged with %1$s - page %2$d" msgstr "Пользователи, установившие себе тег %1$s — страница %2$d" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "Неверный контент записи" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "Лицензия записи «%1$s» не совместима с лицензией сайта «%2$s»." @@ -2773,7 +2787,7 @@ msgstr "" "Теги для самого себя (буквы, цифры, -, ., и _), разделенные запятой или " "пробелом" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "Язык" @@ -2799,7 +2813,7 @@ msgstr "Автоматически подписываться на всех, к msgid "Bio is too long (max %d chars)." msgstr "Слишком длинная биография (максимум %d символов)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Часовой пояс не выбран." @@ -3120,7 +3134,7 @@ msgid "Same as password above. Required." msgstr "Тот же пароль что и сверху. Обязательное поле." #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "Email" @@ -3225,7 +3239,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "Адрес URL твоего профиля на другом подходящем сервисе микроблогинга" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "Подписаться" @@ -3327,6 +3341,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Ответы на записи %1$s на %2$s!" +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "Вы не можете заглушать пользователей на этом сайте." + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "Пользователь без соответствующего профиля." + #: actions/rsd.php:146 actions/version.php:157 msgid "StatusNet" msgstr "StatusNet" @@ -3340,7 +3364,9 @@ msgstr "" msgid "User is already sandboxed." msgstr "Пользователь уже в режиме песочницы." +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "Сессии" @@ -3364,7 +3390,7 @@ msgstr "Отладка сессий" msgid "Turn on debugging output for sessions." msgstr "Включить отладочный вывод для сессий." -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Сохранить настройки сайта" @@ -3395,8 +3421,8 @@ msgstr "Организация" msgid "Description" msgstr "Описание" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "Статистика" @@ -3538,45 +3564,45 @@ msgstr "Алиасы" msgid "Group actions" msgstr "Действия группы" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Лента записей группы %s (RSS 1.0)" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Лента записей группы %s (RSS 2.0)" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Лента записей группы %s (Atom)" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, php-format msgid "FOAF for %s group" msgstr "FOAF для группы %s" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 msgid "Members" msgstr "Участники" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(пока ничего нет)" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "Все участники" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 msgid "Created" msgstr "Создано" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3592,7 +3618,7 @@ msgstr "" "action.register%%%%), чтобы стать участником группы и получить множество " "других возможностей! ([Читать далее](%%%%doc.help%%%%))" -#: actions/showgroup.php:462 +#: actions/showgroup.php:463 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3605,7 +3631,7 @@ msgstr "" "обеспечении [StatusNet](http://status.net/). Участники обмениваются " "короткими сообщениями о своей жизни и интересах. " -#: actions/showgroup.php:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "Администраторы" @@ -3730,149 +3756,140 @@ msgid "User is already silenced." msgstr "Пользователь уже заглушён." #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +#, fuzzy +msgid "Basic settings for this StatusNet site" msgstr "Основные настройки для этого сайта StatusNet." -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "Имя сайта должно быть ненулевой длины." -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 msgid "You must have a valid contact email address." msgstr "У вас должен быть действительный контактный email-адрес." -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "Неизвестный язык «%s»." #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "Неверный URL отчёта снимка." - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "Неверное значение запуска снимка." - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "Частота снимков должна быть числом." - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "Минимальное ограничение текста составляет 140 символов." -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "Ограничение дублирования должно составлять 1 или более секунд." -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "Базовые" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 msgid "Site name" msgstr "Имя сайта" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "Имя вашего сайта, например, «Yourcompany Microblog»" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "Предоставлено" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "" "Текст, используемый для указания авторов в нижнем колонтитуле каждой страницы" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "URL-адрес поставщика услуг" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "" "URL, используемый для ссылки на авторов в нижнем колонтитуле каждой страницы" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 msgid "Contact email address for your site" msgstr "Контактный email-адрес для вашего сайта" -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 msgid "Local" msgstr "Внутренние настройки" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "Часовой пояс по умолчанию" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "Часовой пояс по умолчанию для сайта; обычно UTC." -#: actions/siteadminpanel.php:281 -msgid "Default site language" +#: actions/siteadminpanel.php:262 +#, fuzzy +msgid "Default language" msgstr "Язык сайта по умолчанию" -#: actions/siteadminpanel.php:289 -msgid "Snapshots" -msgstr "Снимки" - -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" -msgstr "При случайном посещении" - -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" -msgstr "По заданному графику" - -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" -msgstr "Снимки данных" - -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" -msgstr "Когда отправлять статистические данные на сервера status.net" - -#: actions/siteadminpanel.php:301 -msgid "Frequency" -msgstr "Частота" - -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" -msgstr "Снимки будут отправляться каждые N посещений" - -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "URL отчёта" - -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" -msgstr "Снимки будут отправляться по этому URL-адресу" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" +msgstr "" -#: actions/siteadminpanel.php:315 +#: actions/siteadminpanel.php:271 msgid "Limits" msgstr "Границы" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Text limit" msgstr "Границы текста" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Maximum number of characters for notices." msgstr "Максимальное число символов для записей." -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "Dupe limit" msgstr "Предел дубликатов" -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" "Сколько нужно ждать пользователям (в секундах) для отправки того же ещё раз." +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "Новая запись" + +#: actions/sitenoticeadminpanel.php:67 +#, fuzzy +msgid "Edit site-wide message" +msgstr "Новое сообщение" + +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +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 +#, fuzzy +msgid "Site notice text" +msgstr "Новая запись" + +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" +msgstr "" + +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "Новая запись" + #: actions/smssettings.php:58 msgid "SMS settings" msgstr "Установки СМС" @@ -3974,6 +3991,66 @@ msgstr "" msgid "No code entered" msgstr "Код не введён" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "Снимки" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +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 "Неверный URL отчёта снимка." + +#: 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 "Когда отправлять статистические данные на сервера status.net" + +#: actions/snapshotadminpanel.php:217 +msgid "Frequency" +msgstr "Частота" + +#: actions/snapshotadminpanel.php:218 +msgid "Snapshots will be sent once every N web hits" +msgstr "Снимки будут отправляться каждые N посещений" + +#: actions/snapshotadminpanel.php:226 +msgid "Report URL" +msgstr "URL отчёта" + +#: actions/snapshotadminpanel.php:227 +msgid "Snapshots will be sent to this URL" +msgstr "Снимки будут отправляться по этому URL-адресу" + +#: actions/snapshotadminpanel.php:248 +#, fuzzy +msgid "Save snapshot settings" +msgstr "Сохранить настройки сайта" + #: actions/subedit.php:70 msgid "You are not subscribed to that profile." msgstr "Вы не подписаны на этот профиль." @@ -4184,7 +4261,7 @@ msgstr "Нет ID профиля в запросе." msgid "Unsubscribed" msgstr "Отписано" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4193,7 +4270,6 @@ msgstr "" #. TRANS: User admin panel title #: actions/useradminpanel.php:59 -#, fuzzy msgctxt "TITLE" msgid "User" msgstr "Пользователь" @@ -4386,17 +4462,23 @@ msgstr "Группы %1$s, страница %2$d" msgid "Search for more groups" msgstr "Искать другие группы" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, php-format msgid "%s is not a member of any group." msgstr "%s не состоит ни в одной группе." -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" "Попробуйте [найти группы](%%action.groupsearch%%) и присоединиться к ним." +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "Обновлено от %1$s на %2$s!" + #: actions/version.php:73 #, php-format msgid "StatusNet %s" @@ -4452,7 +4534,7 @@ msgstr "" msgid "Plugins" msgstr "Плагины" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 msgid "Version" msgstr "Версия" @@ -4517,22 +4599,22 @@ msgstr "Не удаётся обновить сообщение с новым UR msgid "DB error inserting hashtag: %s" msgstr "Ошибка баз данных при вставке хеш-тегов для %s" -#: classes/Notice.php:239 +#: classes/Notice.php:241 msgid "Problem saving notice. Too long." msgstr "Проблемы с сохранением записи. Слишком длинно." -#: classes/Notice.php:243 +#: classes/Notice.php:245 msgid "Problem saving notice. Unknown user." msgstr "Проблема при сохранении записи. Неизвестный пользователь." -#: classes/Notice.php:248 +#: classes/Notice.php:250 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "Слишком много записей за столь короткий срок; передохните немного и " "попробуйте вновь через пару минут." -#: classes/Notice.php:254 +#: classes/Notice.php:256 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4540,19 +4622,19 @@ msgstr "" "Слишком много одинаковых записей за столь короткий срок; передохните немного " "и попробуйте вновь через пару минут." -#: classes/Notice.php:260 +#: classes/Notice.php:262 msgid "You are banned from posting notices on this site." msgstr "Вам запрещено поститься на этом сайте (бан)" -#: classes/Notice.php:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "Проблемы с сохранением записи." -#: classes/Notice.php:911 +#: classes/Notice.php:927 msgid "Problem saving group inbox." msgstr "Проблемы с сохранением входящих сообщений группы." -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4577,7 +4659,12 @@ msgstr "Не подписаны!" msgid "Couldn't delete self-subscription." msgstr "Невозможно удалить самоподписку." -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "Не удаётся удалить подписку." + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "Не удаётся удалить подписку." @@ -4586,19 +4673,19 @@ msgstr "Не удаётся удалить подписку." msgid "Welcome to %1$s, @%2$s!" msgstr "Добро пожаловать на %1$s, @%2$s!" -#: classes/User_group.php:462 +#: classes/User_group.php:477 msgid "Could not create group." msgstr "Не удаётся создать группу." -#: classes/User_group.php:471 +#: classes/User_group.php:486 msgid "Could not set group URI." msgstr "Не удаётся назначить URI группы." -#: classes/User_group.php:492 +#: classes/User_group.php:507 msgid "Could not set group membership." msgstr "Не удаётся назначить членство в группе." -#: classes/User_group.php:506 +#: classes/User_group.php:521 msgid "Could not save local group info." msgstr "Не удаётся сохранить информацию о локальной группе." @@ -4639,194 +4726,171 @@ msgstr "%1$s — %2$s" msgid "Untitled page" msgstr "Страница без названия" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "Главная навигация" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 -#, fuzzy +#: lib/action.php:430 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Личный профиль и лента друзей" -#: lib/action.php:442 -#, fuzzy +#: lib/action.php:433 msgctxt "MENU" msgid "Personal" msgstr "Личное" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 -#, fuzzy +#: lib/action.php:435 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" -msgstr "Изменить ваш email, аватару, пароль, профиль" - -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "Настройки" +msgstr "Изменить ваш email, аватар, пароль, профиль" #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 -#, fuzzy +#: lib/action.php:440 msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Соединить с сервисами" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "Соединить" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 -#, fuzzy +#: lib/action.php:446 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Изменить конфигурацию сайта" -#: lib/action.php:460 -#, fuzzy +#: lib/action.php:449 msgctxt "MENU" msgid "Admin" msgstr "Настройки" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 -#, fuzzy, php-format +#: lib/action.php:453 +#, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" -msgstr "Пригласите друзей и коллег стать такими же как вы участниками %s" +msgstr "Пригласите друзей и коллег стать такими же как Вы участниками %s" -#: lib/action.php:467 -#, fuzzy +#: lib/action.php:456 msgctxt "MENU" msgid "Invite" msgstr "Пригласить" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 -#, fuzzy +#: lib/action.php:462 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Выйти" -#: lib/action.php:476 -#, fuzzy +#: lib/action.php:465 msgctxt "MENU" msgid "Logout" msgstr "Выход" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 -#, fuzzy +#: lib/action.php:470 msgctxt "TOOLTIP" msgid "Create an account" msgstr "Создать новый аккаунт" -#: lib/action.php:484 -#, fuzzy +#: lib/action.php:473 msgctxt "MENU" msgid "Register" msgstr "Регистрация" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 -#, fuzzy +#: lib/action.php:476 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Войти" -#: lib/action.php:490 -#, fuzzy +#: lib/action.php:479 msgctxt "MENU" msgid "Login" msgstr "Вход" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 -#, fuzzy +#: lib/action.php:482 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Помощь" -#: lib/action.php:496 -#, fuzzy +#: lib/action.php:485 msgctxt "MENU" msgid "Help" msgstr "Помощь" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 -#, fuzzy +#: lib/action.php:488 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Искать людей или текст" -#: lib/action.php:502 -#, fuzzy +#: lib/action.php:491 msgctxt "MENU" msgid "Search" msgstr "Поиск" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 msgid "Site notice" msgstr "Новая запись" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "Локальные виды" -#: lib/action.php:656 +#: lib/action.php:645 msgid "Page notice" msgstr "Новая запись" -#: lib/action.php:758 +#: lib/action.php:747 msgid "Secondary site navigation" msgstr "Навигация по подпискам" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "Помощь" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "О проекте" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "ЧаВо" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "TOS" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "Пользовательское соглашение" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "Исходный код" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "Контактная информация" -#: lib/action.php:782 +#: lib/action.php:771 msgid "Badge" msgstr "Бедж" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "StatusNet лицензия" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4835,12 +4899,12 @@ msgstr "" "**%%site.name%%** — это сервис микроблогинга, созданный для вас при помощи [%" "%site.broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** — сервис микроблогинга. " -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4852,56 +4916,56 @@ msgstr "" "лицензией [GNU Affero General Public License](http://www.fsf.org/licensing/" "licenses/agpl-3.0.html)." -#: lib/action.php:832 +#: lib/action.php:821 msgid "Site content license" msgstr "Лицензия содержимого сайта" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Содержание и данные %1$s являются личными и конфиденциальными." -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" "Авторские права на содержание и данные принадлежат %1$s. Все права защищены." -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Авторские права на содержание и данные принадлежат разработчикам. Все права " "защищены." -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "All " -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "license." -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "Разбиение на страницы" -#: lib/action.php:1172 +#: lib/action.php:1161 msgid "After" msgstr "Сюда" -#: lib/action.php:1180 +#: lib/action.php:1169 msgid "Before" msgstr "Туда" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "Пока ещё нельзя обрабатывать удалённое содержимое." -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "Пока ещё нельзя обрабатывать встроенный XML." -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "Пока ещё нельзя обрабатывать встроенное содержание Base64." @@ -4916,91 +4980,78 @@ msgid "Changes to that panel are not allowed." msgstr "Изменения для этой панели недопустимы." #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 msgid "showForm() not implemented." msgstr "showForm() не реализована." #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 msgid "saveSettings() not implemented." msgstr "saveSettings() не реализована." #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 msgid "Unable to delete design setting." msgstr "Не удаётся удалить настройки оформления." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 msgid "Basic site configuration" msgstr "Основная конфигурация сайта" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 -#, fuzzy +#: lib/adminpanelaction.php:350 msgctxt "MENU" msgid "Site" msgstr "Сайт" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 msgid "Design configuration" msgstr "Конфигурация оформления" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 -#, fuzzy +#: lib/adminpanelaction.php:358 msgctxt "MENU" msgid "Design" msgstr "Оформление" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 msgid "User configuration" msgstr "Конфигурация пользователя" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -#, fuzzy -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "Пользователь" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 msgid "Access configuration" msgstr "Конфигурация доступа" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "Принять" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 msgid "Paths configuration" msgstr "Конфигурация путей" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -#, fuzzy -msgctxt "MENU" -msgid "Paths" -msgstr "Пути" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 msgid "Sessions configuration" msgstr "Конфигурация сессий" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "Сессии" +msgid "Edit site notice" +msgstr "Новая запись" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "Конфигурация путей" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5532,6 +5583,11 @@ msgstr "Выберите тег из выпадающего списка" 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 "Адрес страницы, дневника или профиля группы на другом портале" @@ -6148,10 +6204,6 @@ msgstr "Ответы" msgid "Favorites" msgstr "Любимое" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "Пользователь" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Входящие" @@ -6177,7 +6229,7 @@ msgstr "Теги записей пользователя %s" msgid "Unknown" msgstr "Неизвестно" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Подписки" @@ -6185,23 +6237,23 @@ msgstr "Подписки" msgid "All subscriptions" msgstr "Все подписки." -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Подписчики" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 msgid "All subscribers" msgstr "Все подписчики" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 msgid "User ID" msgstr "ID пользователя" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "Регистрация" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "Все группы" @@ -6241,7 +6293,12 @@ msgstr "Повторить эту запись?" msgid "Repeat this notice" msgstr "Повторить эту запись" -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, fuzzy, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "Заблокировать этого пользователя из этой группы" + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "Ни задан пользователь для однопользовательского режима." @@ -6395,47 +6452,64 @@ msgstr "Сообщение" msgid "Moderate" msgstr "Модерировать" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "Профиль пользователя" + +#: lib/userprofile.php:354 +#, fuzzy +msgctxt "role" +msgid "Administrator" +msgstr "Администраторы" + +#: lib/userprofile.php:355 +#, fuzzy +msgctxt "role" +msgid "Moderator" +msgstr "Модерировать" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "пару секунд назад" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "около минуты назад" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "около %d минут(ы) назад" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "около часа назад" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "около %d часа(ов) назад" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "около дня назад" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "около %d дня(ей) назад" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "около месяца назад" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "около %d месяца(ев) назад" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "около года назад" diff --git a/locale/statusnet.po b/locale/statusnet.po index 3f4ad499f..b7a421fd4 100644 --- a/locale/statusnet.po +++ b/locale/statusnet.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-02 21:02+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,7 +18,8 @@ msgstr "" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 msgid "Access" msgstr "" @@ -113,7 +114,7 @@ msgstr "" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -168,7 +169,7 @@ msgid "" msgstr "" #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 msgid "You and friends" msgstr "" @@ -195,11 +196,11 @@ msgstr "" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 msgid "API method not found." msgstr "" @@ -551,7 +552,7 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 msgid "Account" msgstr "" @@ -638,18 +639,6 @@ msgstr "" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "" -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "" - #: actions/apitimelinementions.php:117 #, php-format msgid "%1$s / Updates mentioning %2$s" @@ -660,12 +649,12 @@ msgstr "" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "" @@ -908,7 +897,7 @@ msgid "Conversation" msgstr "" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "" @@ -927,7 +916,7 @@ msgstr "" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "" @@ -1114,8 +1103,9 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1231,7 +1221,7 @@ msgstr "" msgid "Could not update group." msgstr "" -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 msgid "Could not create aliases." msgstr "" @@ -1351,7 +1341,7 @@ msgid "Cannot normalize that email address" msgstr "" #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "" @@ -1535,6 +1525,22 @@ msgstr "" msgid "Cannot read file." msgstr "" +#: actions/grantrole.php:62 actions/revokerole.php:62 +msgid "Invalid role." +msgstr "" + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +msgid "You cannot grant user roles on this site." +msgstr "" + +#: actions/grantrole.php:82 +msgid "User already has this role." +msgstr "" + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1675,12 +1681,18 @@ msgstr "" msgid "Make this user an admin" msgstr "" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "" + #: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "" @@ -2230,8 +2242,8 @@ msgstr "" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "" @@ -2370,7 +2382,8 @@ msgstr "" msgid "Password saved." msgstr "" -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "" @@ -2490,7 +2503,7 @@ msgstr "" msgid "SSL" msgstr "" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 msgid "Never" msgstr "" @@ -2543,11 +2556,11 @@ msgstr "" msgid "Users self-tagged with %1$s - page %2$d" msgstr "" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" @@ -2623,7 +2636,7 @@ msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "" @@ -2649,7 +2662,7 @@ msgstr "" msgid "Bio is too long (max %d chars)." msgstr "" -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "" @@ -2947,7 +2960,7 @@ msgid "Same as password above. Required." msgstr "" #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "" @@ -3031,7 +3044,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "" @@ -3127,6 +3140,14 @@ msgstr "" 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:157 msgid "StatusNet" msgstr "" @@ -3139,7 +3160,9 @@ msgstr "" msgid "User is already sandboxed." msgstr "" +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "" @@ -3163,7 +3186,7 @@ msgstr "" msgid "Turn on debugging output for sessions." msgstr "" -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "" @@ -3194,8 +3217,8 @@ msgstr "" msgid "Description" msgstr "" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "" @@ -3327,45 +3350,45 @@ msgstr "" msgid "Group actions" msgstr "" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, php-format msgid "FOAF for %s group" msgstr "" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 msgid "Members" msgstr "" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 msgid "Created" msgstr "" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3375,7 +3398,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:462 +#: actions/showgroup.php:463 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3384,7 +3407,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "" @@ -3494,144 +3517,128 @@ msgid "User is already silenced." msgstr "" #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +msgid "Basic settings for this StatusNet site" msgstr "" -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "" -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 msgid "You must have a valid contact email address." msgstr "" -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "" #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "" - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "" - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "" - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "" -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "" -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 msgid "Site name" msgstr "" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 msgid "Contact email address for your site" msgstr "" -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 msgid "Local" msgstr "" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "" -#: actions/siteadminpanel.php:281 -msgid "Default site language" -msgstr "" - -#: actions/siteadminpanel.php:289 -msgid "Snapshots" +#: actions/siteadminpanel.php:262 +msgid "Default language" msgstr "" -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" msgstr "" -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" +#: actions/siteadminpanel.php:271 +msgid "Limits" msgstr "" -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" +#: actions/siteadminpanel.php:274 +msgid "Text limit" msgstr "" -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" +#: actions/siteadminpanel.php:274 +msgid "Maximum number of characters for notices." msgstr "" -#: actions/siteadminpanel.php:301 -msgid "Frequency" +#: actions/siteadminpanel.php:278 +msgid "Dupe limit" msgstr "" -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" +#: actions/siteadminpanel.php:278 +msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/siteadminpanel.php:307 -msgid "Report URL" +#: actions/sitenoticeadminpanel.php:56 +msgid "Site Notice" msgstr "" -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" +#: actions/sitenoticeadminpanel.php:67 +msgid "Edit site-wide message" msgstr "" -#: actions/siteadminpanel.php:315 -msgid "Limits" +#: actions/sitenoticeadminpanel.php:103 +msgid "Unable to save site notice." msgstr "" -#: actions/siteadminpanel.php:318 -msgid "Text limit" +#: actions/sitenoticeadminpanel.php:113 +msgid "Max length for the site-wide notice is 255 chars" msgstr "" -#: actions/siteadminpanel.php:318 -msgid "Maximum number of characters for notices." +#: actions/sitenoticeadminpanel.php:176 +msgid "Site notice text" msgstr "" -#: actions/siteadminpanel.php:322 -msgid "Dupe limit" +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" msgstr "" -#: actions/siteadminpanel.php:322 -msgid "How long users must wait (in seconds) to post the same thing again." +#: actions/sitenoticeadminpanel.php:198 +msgid "Save site notice" msgstr "" #: actions/smssettings.php:58 @@ -3726,6 +3733,64 @@ msgstr "" msgid "No code entered" msgstr "" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +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 "" @@ -3919,7 +3984,7 @@ msgstr "" msgid "Unsubscribed" msgstr "" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4109,16 +4174,22 @@ msgstr "" msgid "Search for more groups" msgstr "" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, php-format msgid "%s is not a member of any group." msgstr "" -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "" + #: actions/version.php:73 #, php-format msgid "StatusNet %s" @@ -4162,7 +4233,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 msgid "Version" msgstr "" @@ -4225,38 +4296,38 @@ msgstr "" msgid "DB error inserting hashtag: %s" msgstr "" -#: classes/Notice.php:239 +#: classes/Notice.php:241 msgid "Problem saving notice. Too long." msgstr "" -#: classes/Notice.php:243 +#: classes/Notice.php:245 msgid "Problem saving notice. Unknown user." msgstr "" -#: classes/Notice.php:248 +#: classes/Notice.php:250 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:254 +#: classes/Notice.php:256 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:260 +#: classes/Notice.php:262 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "" -#: classes/Notice.php:911 +#: classes/Notice.php:927 msgid "Problem saving group inbox." msgstr "" -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4281,7 +4352,11 @@ msgstr "" msgid "Couldn't delete self-subscription." msgstr "" -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +msgid "Couldn't delete subscription OMB token." +msgstr "" + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "" @@ -4290,19 +4365,19 @@ msgstr "" msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:462 +#: classes/User_group.php:477 msgid "Could not create group." msgstr "" -#: classes/User_group.php:471 +#: classes/User_group.php:486 msgid "Could not set group URI." msgstr "" -#: classes/User_group.php:492 +#: classes/User_group.php:507 msgid "Could not set group membership." msgstr "" -#: classes/User_group.php:506 +#: classes/User_group.php:521 msgid "Could not save local group info." msgstr "" @@ -4343,187 +4418,182 @@ msgstr "" msgid "Untitled page" msgstr "" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 +#: lib/action.php:430 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:442 +#: lib/action.php:433 msgctxt "MENU" msgid "Personal" msgstr "" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 +#: lib/action.php:435 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "" -#: lib/action.php:447 -msgctxt "MENU" -msgid "Account" -msgstr "" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 +#: lib/action.php:440 msgctxt "TOOLTIP" msgid "Connect to services" msgstr "" -#: lib/action.php:453 -msgctxt "MENU" +#: lib/action.php:443 msgid "Connect" msgstr "" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 +#: lib/action.php:446 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "" -#: lib/action.php:460 +#: lib/action.php:449 msgctxt "MENU" msgid "Admin" msgstr "" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 +#: lib/action.php:453 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "" -#: lib/action.php:467 +#: lib/action.php:456 msgctxt "MENU" msgid "Invite" msgstr "" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 +#: lib/action.php:462 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "" -#: lib/action.php:476 +#: lib/action.php:465 msgctxt "MENU" msgid "Logout" msgstr "" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 +#: lib/action.php:470 msgctxt "TOOLTIP" msgid "Create an account" msgstr "" -#: lib/action.php:484 +#: lib/action.php:473 msgctxt "MENU" msgid "Register" msgstr "" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 +#: lib/action.php:476 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "" -#: lib/action.php:490 +#: lib/action.php:479 msgctxt "MENU" msgid "Login" msgstr "" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 +#: lib/action.php:482 msgctxt "TOOLTIP" msgid "Help me!" msgstr "" -#: lib/action.php:496 +#: lib/action.php:485 msgctxt "MENU" msgid "Help" msgstr "" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 +#: lib/action.php:488 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "" -#: lib/action.php:502 +#: lib/action.php:491 msgctxt "MENU" msgid "Search" msgstr "" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 msgid "Site notice" msgstr "" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "" -#: lib/action.php:656 +#: lib/action.php:645 msgid "Page notice" msgstr "" -#: lib/action.php:758 +#: lib/action.php:747 msgid "Secondary site navigation" msgstr "" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "" -#: lib/action.php:782 +#: lib/action.php:771 msgid "Badge" msgstr "" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%). " msgstr "" -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "" -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4531,53 +4601,53 @@ msgid "" "org/licensing/licenses/agpl-3.0.html)." msgstr "" -#: lib/action.php:832 +#: lib/action.php:821 msgid "Site content license" msgstr "" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "" -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "" -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "" -#: lib/action.php:1172 +#: lib/action.php:1161 msgid "After" msgstr "" -#: lib/action.php:1180 +#: lib/action.php:1169 msgid "Before" msgstr "" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "" @@ -4592,84 +4662,75 @@ msgid "Changes to that panel are not allowed." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 msgid "showForm() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 msgid "saveSettings() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 msgid "Unable to delete design setting." msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 msgid "Basic site configuration" msgstr "" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 +#: lib/adminpanelaction.php:350 msgctxt "MENU" msgid "Site" msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 msgid "Design configuration" msgstr "" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 +#: lib/adminpanelaction.php:358 msgctxt "MENU" msgid "Design" msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 msgid "User configuration" msgstr "" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 msgid "Access configuration" msgstr "" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -msgctxt "MENU" -msgid "Access" -msgstr "" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 msgid "Paths configuration" msgstr "" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -msgctxt "MENU" -msgid "Paths" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:388 +msgid "Sessions configuration" msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 -msgid "Sessions configuration" +#: lib/adminpanelaction.php:396 +msgid "Edit site notice" msgstr "" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 -msgctxt "MENU" -msgid "Sessions" +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +msgid "Snapshots configuration" msgstr "" #: lib/apiauth.php:94 @@ -5151,6 +5212,11 @@ msgstr "" 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 "" @@ -5674,10 +5740,6 @@ msgstr "" msgid "Favorites" msgstr "" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "" @@ -5703,7 +5765,7 @@ msgstr "" msgid "Unknown" msgstr "" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "" @@ -5711,23 +5773,23 @@ msgstr "" msgid "All subscriptions" msgstr "" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 msgid "All subscribers" msgstr "" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 msgid "User ID" msgstr "" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "" @@ -5767,7 +5829,12 @@ msgstr "" msgid "Repeat this notice" msgstr "" -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "" + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "" @@ -5921,47 +5988,61 @@ msgstr "" msgid "Moderate" msgstr "" -#: lib/util.php:1013 -msgid "a few seconds ago" +#: lib/userprofile.php:352 +msgid "User role" +msgstr "" + +#: lib/userprofile.php:354 +msgctxt "role" +msgid "Administrator" +msgstr "" + +#: lib/userprofile.php:355 +msgctxt "role" +msgid "Moderator" msgstr "" #: lib/util.php:1015 -msgid "about a minute ago" +msgid "a few seconds ago" msgstr "" #: lib/util.php:1017 +msgid "about a minute ago" +msgstr "" + +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "" diff --git a/locale/sv/LC_MESSAGES/statusnet.po b/locale/sv/LC_MESSAGES/statusnet.po index b1ac66f65..b9f921c7f 100644 --- a/locale/sv/LC_MESSAGES/statusnet.po +++ b/locale/sv/LC_MESSAGES/statusnet.po @@ -9,19 +9,20 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:03:47+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:57:20+0000\n" "Language-Team: Swedish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: sv\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 msgid "Access" msgstr "Åtkomst" @@ -43,7 +44,6 @@ msgstr "" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -#, fuzzy msgctxt "LABEL" msgid "Private" msgstr "Privat" @@ -74,7 +74,6 @@ msgid "Save access settings" msgstr "Spara inställningar för åtkomst" #: actions/accessadminpanel.php:203 -#, fuzzy msgctxt "BUTTON" msgid "Save" msgstr "Spara" @@ -119,7 +118,7 @@ msgstr "%1$s och vänner, sida %2$d" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -181,7 +180,7 @@ msgstr "" "%s eller skriva en notis för hans eller hennes uppmärksamhet." #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 msgid "You and friends" msgstr "Du och vänner" @@ -208,11 +207,11 @@ msgstr "Uppdateringar från %1$s och vänner på %2$s!" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 msgid "API method not found." msgstr "API-metod hittades inte." @@ -570,7 +569,7 @@ msgstr "" "möjligheten att %3$s din %4$s kontoinformation. Du bör bara " "ge tillgång till ditt %4$s-konto till tredje-parter du litar på." -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 msgid "Account" msgstr "Konto" @@ -657,18 +656,6 @@ msgstr "%1$s / Favoriter från %2$s" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s uppdateringar markerade som favorit av %2$s / %2$s." -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "%s tidslinje" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "Uppdateringar från %1$s på %2$s!" - #: actions/apitimelinementions.php:117 #, php-format msgid "%1$s / Updates mentioning %2$s" @@ -679,12 +666,12 @@ msgstr "%1$s / Uppdateringar som nämner %2$s" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s uppdateringar med svar på uppdatering från %2$s / %3$s." -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "%s publika tidslinje" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s uppdateringar från alla!" @@ -932,7 +919,7 @@ msgid "Conversation" msgstr "Konversationer" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Notiser" @@ -951,7 +938,7 @@ msgstr "Du är inte ägaren av denna applikation." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "Det var ett problem med din sessions-token." @@ -1147,8 +1134,9 @@ msgstr "Återställ till standardvärde" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1264,7 +1252,7 @@ msgstr "beskrivning är för lång (max %d tecken)." msgid "Could not update group." msgstr "Kunde inte uppdatera grupp." -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 msgid "Could not create aliases." msgstr "Kunde inte skapa alias." @@ -1387,7 +1375,7 @@ msgid "Cannot normalize that email address" msgstr "Kan inte normalisera den e-postadressen" #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Inte en giltig e-postadress." @@ -1580,6 +1568,25 @@ msgstr "Ingen sådan fil." msgid "Cannot read file." msgstr "Kan inte läsa fil." +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "Ogiltig token." + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "Du kan inte flytta användare till sandlådan på denna webbplats." + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "Användaren är redan nedtystad." + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1726,12 +1733,18 @@ msgstr "Gör till administratör" msgid "Make this user an admin" msgstr "Gör denna användare till administratör" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "%s tidslinje" + #: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Uppdateringar från medlemmar i %1$s på %2$s!" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Grupper" @@ -1993,7 +2006,6 @@ msgstr "Om du vill, skriv ett personligt meddelande till inbjudan." #. TRANS: Send button for inviting friends #: actions/invite.php:198 -#, fuzzy msgctxt "BUTTON" msgid "Send" msgstr "Skicka" @@ -2352,8 +2364,8 @@ msgstr "innehållstyp " msgid "Only " msgstr "Bara " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "Ett dataformat som inte stödjs" @@ -2492,7 +2504,8 @@ msgstr "Kan inte spara nytt lösenord." msgid "Password saved." msgstr "Lösenord sparat." -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "Sökvägar" @@ -2613,7 +2626,7 @@ msgstr "Katalog med bakgrunder" msgid "SSL" msgstr "SSL" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 msgid "Never" msgstr "Aldrig" @@ -2668,11 +2681,11 @@ msgstr "Inte en giltig persontagg: %s" msgid "Users self-tagged with %1$s - page %2$d" msgstr "Användare som taggat sig själv med %1$s - sida %2$d" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "Ogiltigt notisinnehåll" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "Licensen för notiser ‘%1$s’ är inte förenlig webbplatslicensen ‘%2$s’." @@ -2752,7 +2765,7 @@ msgstr "" "Taggar för dig själv (bokstäver, nummer, -, ., och _), separerade med " "kommatecken eller mellanslag" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "Språk" @@ -2780,7 +2793,7 @@ msgstr "" msgid "Bio is too long (max %d chars)." msgstr "Biografin är för lång (max %d tecken)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Tidszon inte valt." @@ -3100,7 +3113,7 @@ msgid "Same as password above. Required." msgstr "Samma som lösenordet ovan. Måste fyllas i." #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "E-post" @@ -3208,7 +3221,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL till din profil på en annan kompatibel mikrobloggtjänst" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "Prenumerera" @@ -3312,6 +3325,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Svar till %1$s på %2$s" +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "Du kan inte tysta ned användare på denna webbplats." + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "Användare utan matchande profil." + #: actions/rsd.php:146 actions/version.php:157 msgid "StatusNet" msgstr "StatusNet" @@ -3324,7 +3347,9 @@ msgstr "Du kan inte flytta användare till sandlådan på denna webbplats." msgid "User is already sandboxed." msgstr "Användare är redan flyttad till sandlådan." +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "Sessioner" @@ -3348,7 +3373,7 @@ msgstr "Sessionsfelsökning" msgid "Turn on debugging output for sessions." msgstr "Sätt på felsökningsutdata för sessioner." -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Spara webbplatsinställningar" @@ -3379,8 +3404,8 @@ msgstr "Organisation" msgid "Description" msgstr "Beskrivning" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "Statistik" @@ -3523,45 +3548,45 @@ msgstr "Alias" msgid "Group actions" msgstr "Åtgärder för grupp" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Flöde av notiser för %s grupp (RSS 1.0)" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Flöde av notiser för %s grupp (RSS 2.0)" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Flöde av notiser för %s grupp (Atom)" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, php-format msgid "FOAF for %s group" msgstr "FOAF för %s grupp" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 msgid "Members" msgstr "Medlemmar" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Ingen)" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "Alla medlemmar" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 msgid "Created" msgstr "Skapad" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3576,7 +3601,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:462 +#: actions/showgroup.php:463 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3589,7 +3614,7 @@ msgstr "" "[StatusNet](http://status.net/). Dess medlemmar delar korta meddelande om " "sina liv och intressen. " -#: actions/showgroup.php:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "Administratörer" @@ -3710,147 +3735,138 @@ msgid "User is already silenced." msgstr "Användaren är redan nedtystad." #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +#, fuzzy +msgid "Basic settings for this StatusNet site" msgstr "Grundinställningar för din StatusNet-webbplats" -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "Webbplatsnamnet måste vara minst ett tecken långt." -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 msgid "You must have a valid contact email address." msgstr "Du måste ha en giltig e-postadress." -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "Okänt språk \"%s\"." #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "Ogiltig rapport-URL för ögonblicksbild" - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "Ogiltigt körvärde för ögonblicksbild." - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "Frekvens för ögonblicksbilder måste vara ett nummer." - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "Minsta textbegränsning är 140 tecken." -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "Begränsning av duplikat måste vara en eller fler sekuner." -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "Allmänt" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 msgid "Site name" msgstr "Webbplatsnamn" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "Namnet på din webbplats, t.ex. \"Företagsnamn mikroblogg\"" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "Tillhandahållen av" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "Text som används för tillskrivningslänkar i sidfoten på varje sida." -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "Tillhandahållen av URL" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "URL som används för tillskrivningslänkar i sidfoten på varje sida" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 msgid "Contact email address for your site" msgstr "Kontakte-postadress för din webbplats" -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 msgid "Local" msgstr "Lokal" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "Standardtidszon" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "Standardtidzon för denna webbplats; vanligtvis UTC." -#: actions/siteadminpanel.php:281 -msgid "Default site language" +#: actions/siteadminpanel.php:262 +#, fuzzy +msgid "Default language" msgstr "Webbplatsens standardspråk" -#: actions/siteadminpanel.php:289 -msgid "Snapshots" -msgstr "Ögonblicksbild" - -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" -msgstr "Slumpmässigt vid webbförfrågningar" - -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" -msgstr "I ett schemalagt jobb" - -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" -msgstr "Ögonblicksbild av data" - -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" -msgstr "När statistikdata skall skickas till status.net-servrar" - -#: actions/siteadminpanel.php:301 -msgid "Frequency" -msgstr "Frekvens" - -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" -msgstr "Ögonblicksbild kommer skickas var N:te webbträff" - -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "URL för rapport" - -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" -msgstr "Ögonblicksbild kommer skickat till denna URL" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" +msgstr "" -#: actions/siteadminpanel.php:315 +#: actions/siteadminpanel.php:271 msgid "Limits" msgstr "Begränsningar" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Text limit" msgstr "Textbegränsning" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Maximum number of characters for notices." msgstr "Maximala antalet tecken för notiser." -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "Dupe limit" msgstr "Duplikatbegränsning" -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" "Hur länge användare måste vänta (i sekunder) för att posta samma sak igen." +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "Webbplatsnotis" + +#: actions/sitenoticeadminpanel.php:67 +#, fuzzy +msgid "Edit site-wide message" +msgstr "Nytt meddelande" + +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +msgid "Unable to save site notice." +msgstr "Kunde inte spara dina utseendeinställningar." + +#: actions/sitenoticeadminpanel.php:113 +msgid "Max length for the site-wide notice is 255 chars" +msgstr "" + +#: actions/sitenoticeadminpanel.php:176 +#, fuzzy +msgid "Site notice text" +msgstr "Webbplatsnotis" + +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" +msgstr "" + +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "Webbplatsnotis" + #: actions/smssettings.php:58 msgid "SMS settings" msgstr "Inställningar för SMS" @@ -3950,6 +3966,66 @@ msgstr "" msgid "No code entered" msgstr "Ingen kod ifylld" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "Ögonblicksbild" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +msgid "Manage snapshot configuration" +msgstr "Ändra webbplatskonfiguration" + +#: actions/snapshotadminpanel.php:127 +msgid "Invalid snapshot run value." +msgstr "Ogiltigt körvärde för ögonblicksbild." + +#: actions/snapshotadminpanel.php:133 +msgid "Snapshot frequency must be a number." +msgstr "Frekvens för ögonblicksbilder måste vara ett nummer." + +#: actions/snapshotadminpanel.php:144 +msgid "Invalid snapshot report URL." +msgstr "Ogiltig rapport-URL för ögonblicksbild" + +#: actions/snapshotadminpanel.php:200 +msgid "Randomly during Web hit" +msgstr "Slumpmässigt vid webbförfrågningar" + +#: actions/snapshotadminpanel.php:201 +msgid "In a scheduled job" +msgstr "I ett schemalagt jobb" + +#: actions/snapshotadminpanel.php:206 +msgid "Data snapshots" +msgstr "Ögonblicksbild av data" + +#: actions/snapshotadminpanel.php:208 +msgid "When to send statistical data to status.net servers" +msgstr "När statistikdata skall skickas till status.net-servrar" + +#: actions/snapshotadminpanel.php:217 +msgid "Frequency" +msgstr "Frekvens" + +#: actions/snapshotadminpanel.php:218 +msgid "Snapshots will be sent once every N web hits" +msgstr "Ögonblicksbild kommer skickas var N:te webbträff" + +#: actions/snapshotadminpanel.php:226 +msgid "Report URL" +msgstr "URL för rapport" + +#: actions/snapshotadminpanel.php:227 +msgid "Snapshots will be sent to this URL" +msgstr "Ögonblicksbild kommer skickat till denna URL" + +#: actions/snapshotadminpanel.php:248 +#, fuzzy +msgid "Save snapshot settings" +msgstr "Spara webbplatsinställningar" + #: actions/subedit.php:70 msgid "You are not subscribed to that profile." msgstr "Du är inte prenumerat hos den profilen." @@ -4158,7 +4234,7 @@ msgstr "Ingen profil-ID i begäran." msgid "Unsubscribed" msgstr "Prenumeration avslutad" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4168,7 +4244,6 @@ msgstr "" #. TRANS: User admin panel title #: actions/useradminpanel.php:59 -#, fuzzy msgctxt "TITLE" msgid "User" msgstr "Användare" @@ -4363,17 +4438,23 @@ msgstr "%1$s grupper, sida %2$d" msgid "Search for more groups" msgstr "Sök efter fler grupper" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, php-format msgid "%s is not a member of any group." msgstr "%s är inte en medlem i någon grupp." -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" "Prova att [söka efter grupper](%%action.groupsearch%%) och gå med i dem." +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "Uppdateringar från %1$s på %2$s!" + #: actions/version.php:73 #, php-format msgid "StatusNet %s" @@ -4429,7 +4510,7 @@ msgstr "" msgid "Plugins" msgstr "Insticksmoduler" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 msgid "Version" msgstr "Version" @@ -4494,22 +4575,22 @@ msgstr "Kunde inte uppdatera meddelande med ny URI." msgid "DB error inserting hashtag: %s" msgstr "Databasfel vid infogning av hashtag: %s" -#: classes/Notice.php:239 +#: classes/Notice.php:241 msgid "Problem saving notice. Too long." msgstr "Problem vid sparande av notis. För långt." -#: classes/Notice.php:243 +#: classes/Notice.php:245 msgid "Problem saving notice. Unknown user." msgstr "Problem vid sparande av notis. Okänd användare." -#: classes/Notice.php:248 +#: classes/Notice.php:250 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:254 +#: classes/Notice.php:256 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4517,19 +4598,19 @@ msgstr "" "För många duplicerade meddelanden för snabbt; ta en vilopaus och posta igen " "om ett par minuter." -#: classes/Notice.php:260 +#: classes/Notice.php:262 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:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "Problem med att spara notis." -#: classes/Notice.php:911 +#: classes/Notice.php:927 msgid "Problem saving group inbox." msgstr "Problem med att spara gruppinkorg." -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4554,7 +4635,12 @@ msgstr "Inte prenumerant!" msgid "Couldn't delete self-subscription." msgstr "Kunde inte ta bort själv-prenumeration." -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "Kunde inte ta bort prenumeration." + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "Kunde inte ta bort prenumeration." @@ -4563,19 +4649,19 @@ msgstr "Kunde inte ta bort prenumeration." msgid "Welcome to %1$s, @%2$s!" msgstr "Välkommen till %1$s, @%2$s!" -#: classes/User_group.php:462 +#: classes/User_group.php:477 msgid "Could not create group." msgstr "Kunde inte skapa grupp." -#: classes/User_group.php:471 +#: classes/User_group.php:486 msgid "Could not set group URI." msgstr "Kunde inte ställa in grupp-URI." -#: classes/User_group.php:492 +#: classes/User_group.php:507 msgid "Could not set group membership." msgstr "Kunde inte ställa in gruppmedlemskap." -#: classes/User_group.php:506 +#: classes/User_group.php:521 msgid "Could not save local group info." msgstr "Kunde inte spara lokal gruppinformation." @@ -4616,194 +4702,171 @@ msgstr "%1$s - %2$s" msgid "Untitled page" msgstr "Namnlös sida" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "Primär webbplatsnavigation" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 -#, fuzzy +#: lib/action.php:430 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Personlig profil och vänners tidslinje" -#: lib/action.php:442 -#, fuzzy +#: lib/action.php:433 msgctxt "MENU" msgid "Personal" msgstr "Personligt" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 -#, fuzzy +#: lib/action.php:435 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Ändra din e-post, avatar, lösenord, profil" -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "Konto" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 -#, fuzzy +#: lib/action.php:440 msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Anslut till tjänster" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "Anslut" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 -#, fuzzy +#: lib/action.php:446 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Ändra webbplatskonfiguration" -#: lib/action.php:460 -#, fuzzy +#: lib/action.php:449 msgctxt "MENU" msgid "Admin" msgstr "Administratör" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 -#, fuzzy, php-format +#: lib/action.php:453 +#, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Bjud in vänner och kollegor att gå med dig på %s" -#: lib/action.php:467 -#, fuzzy +#: lib/action.php:456 msgctxt "MENU" msgid "Invite" msgstr "Bjud in" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 -#, fuzzy +#: lib/action.php:462 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Logga ut från webbplatsen" -#: lib/action.php:476 -#, fuzzy +#: lib/action.php:465 msgctxt "MENU" msgid "Logout" msgstr "Logga ut" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 -#, fuzzy +#: lib/action.php:470 msgctxt "TOOLTIP" msgid "Create an account" msgstr "Skapa ett konto" -#: lib/action.php:484 -#, fuzzy +#: lib/action.php:473 msgctxt "MENU" msgid "Register" msgstr "Registrera" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 -#, fuzzy +#: lib/action.php:476 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Logga in på webbplatsen" -#: lib/action.php:490 -#, fuzzy +#: lib/action.php:479 msgctxt "MENU" msgid "Login" msgstr "Logga in" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 -#, fuzzy +#: lib/action.php:482 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Hjälp mig!" -#: lib/action.php:496 -#, fuzzy +#: lib/action.php:485 msgctxt "MENU" msgid "Help" msgstr "Hjälp" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 -#, fuzzy +#: lib/action.php:488 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Sök efter personer eller text" -#: lib/action.php:502 -#, fuzzy +#: lib/action.php:491 msgctxt "MENU" msgid "Search" msgstr "Sök" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 msgid "Site notice" msgstr "Webbplatsnotis" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "Lokala vyer" -#: lib/action.php:656 +#: lib/action.php:645 msgid "Page notice" msgstr "Sidnotis" -#: lib/action.php:758 +#: lib/action.php:747 msgid "Secondary site navigation" msgstr "Sekundär webbplatsnavigation" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "Hjälp" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "Om" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "Frågor & svar" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "Användarvillkor" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "Sekretess" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "Källa" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "Kontakt" -#: lib/action.php:782 +#: lib/action.php:771 msgid "Badge" msgstr "Emblem" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "Programvarulicens för StatusNet" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4812,12 +4875,12 @@ msgstr "" "**%%site.name%%** är en mikrobloggtjänst tillhandahållen av [%%site.broughtby" "%%](%%site.broughtbyurl%%). " -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** är en mikrobloggtjänst. " -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4828,54 +4891,54 @@ msgstr "" "version %s, tillgänglig under [GNU Affero General Public License](http://www." "fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:832 +#: lib/action.php:821 msgid "Site content license" msgstr "Licens för webbplatsinnehåll" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Innehåll och data av %1$s är privat och konfidensiell." -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "Innehåll och data copyright av %1$s. Alla rättigheter reserverade." -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Innehåll och data copyright av medarbetare. Alla rättigheter reserverade." -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "Alla " -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "licens." -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "Numrering av sidor" -#: lib/action.php:1172 +#: lib/action.php:1161 msgid "After" msgstr "Senare" -#: lib/action.php:1180 +#: lib/action.php:1169 msgid "Before" msgstr "Tidigare" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "Kan inte hantera fjärrinnehåll ännu." -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "Kan inte hantera inbäddat XML-innehåll ännu." -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "Kan inte hantera inbäddat Base64-innehåll ännu." @@ -4890,91 +4953,78 @@ msgid "Changes to that panel are not allowed." msgstr "Ändringar av den panelen tillåts inte." #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 msgid "showForm() not implemented." msgstr "showForm() är inte implementerat." #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 msgid "saveSettings() not implemented." msgstr "saveSetting() är inte implementerat." #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 msgid "Unable to delete design setting." msgstr "Kunde inte ta bort utseendeinställning." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 msgid "Basic site configuration" msgstr "Grundläggande webbplatskonfiguration" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 -#, fuzzy +#: lib/adminpanelaction.php:350 msgctxt "MENU" msgid "Site" msgstr "Webbplats" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 msgid "Design configuration" msgstr "Konfiguration av utseende" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 -#, fuzzy +#: lib/adminpanelaction.php:358 msgctxt "MENU" msgid "Design" msgstr "Utseende" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 msgid "User configuration" msgstr "Konfiguration av användare" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -#, fuzzy -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "Användare" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 msgid "Access configuration" msgstr "Konfiguration av åtkomst" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "Åtkomst" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 msgid "Paths configuration" msgstr "Konfiguration av sökvägar" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -#, fuzzy -msgctxt "MENU" -msgid "Paths" -msgstr "Sökvägar" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 msgid "Sessions configuration" msgstr "Konfiguration av sessioner" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "Sessioner" +msgid "Edit site notice" +msgstr "Webbplatsnotis" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "Konfiguration av sökvägar" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5503,6 +5553,11 @@ msgstr "Välj en tagg för att begränsa lista" msgid "Go" msgstr "Gå" +#: 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 "URL till gruppen eller ämnets hemsida eller blogg" @@ -6117,10 +6172,6 @@ msgstr "Svar" msgid "Favorites" msgstr "Favoriter" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "Användare" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Inkorg" @@ -6146,7 +6197,7 @@ msgstr "Taggar i %ss notiser" msgid "Unknown" msgstr "Okänd" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Prenumerationer" @@ -6154,23 +6205,23 @@ msgstr "Prenumerationer" msgid "All subscriptions" msgstr "Alla prenumerationer" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Prenumeranter" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 msgid "All subscribers" msgstr "Alla prenumeranter" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 msgid "User ID" msgstr "Användar-ID" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "Medlem sedan" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "Alla grupper" @@ -6210,7 +6261,12 @@ msgstr "Upprepa denna notis?" msgid "Repeat this notice" msgstr "Upprepa denna notis" -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, fuzzy, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "Blockera denna användare från denna grupp" + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "Ingen enskild användare definierad för enanvändarläge." @@ -6364,47 +6420,64 @@ msgstr "Meddelande" msgid "Moderate" msgstr "Moderera" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "Användarprofil" + +#: lib/userprofile.php:354 +#, fuzzy +msgctxt "role" +msgid "Administrator" +msgstr "Administratörer" + +#: lib/userprofile.php:355 +#, fuzzy +msgctxt "role" +msgid "Moderator" +msgstr "Moderera" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "ett par sekunder sedan" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "för nån minut sedan" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "för %d minuter sedan" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "för en timma sedan" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "för %d timmar sedan" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "för en dag sedan" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "för %d dagar sedan" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "för en månad sedan" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "för %d månader sedan" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "för ett år sedan" diff --git a/locale/te/LC_MESSAGES/statusnet.po b/locale/te/LC_MESSAGES/statusnet.po index f0527f3fa..f2e49f934 100644 --- a/locale/te/LC_MESSAGES/statusnet.po +++ b/locale/te/LC_MESSAGES/statusnet.po @@ -9,19 +9,20 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:03:50+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:57:23+0000\n" "Language-Team: Telugu\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: te\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 #, fuzzy msgid "Access" msgstr "అంగీకరించు" @@ -121,7 +122,7 @@ msgstr "%1$s మరియు మిత్రులు, పేజీ %2$d" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -176,7 +177,7 @@ msgid "" msgstr "" #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 msgid "You and friends" msgstr "మీరు మరియు మీ స్నేహితులు" @@ -203,11 +204,11 @@ msgstr "" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "నిర్ధారణ సంకేతం కనబడలేదు." @@ -569,7 +570,7 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 msgid "Account" msgstr "ఖాతా" @@ -656,18 +657,6 @@ msgstr "" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%s యొక్క మైక్రోబ్లాగు" -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "%s కాలరేఖ" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "" - #: actions/apitimelinementions.php:117 #, php-format msgid "%1$s / Updates mentioning %2$s" @@ -678,12 +667,12 @@ msgstr "" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "%s బహిరంగ కాలరేఖ" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "అందరి నుండి %s తాజాకరణలు!" @@ -929,7 +918,7 @@ msgid "Conversation" msgstr "సంభాషణ" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "సందేశాలు" @@ -948,7 +937,7 @@ msgstr "మీరు ఈ ఉపకరణం యొక్క యజమాని #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "" @@ -1139,8 +1128,9 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1260,7 +1250,7 @@ msgstr "వివరణ చాలా పెద్దదిగా ఉంది (1 msgid "Could not update group." msgstr "గుంపుని తాజాకరించలేకున్నాం." -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 msgid "Could not create aliases." msgstr "మారుపేర్లని సృష్టించలేకపోయాం." @@ -1380,7 +1370,7 @@ msgid "Cannot normalize that email address" msgstr "" #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "సరైన ఈమెయిల్ చిరునామా కాదు:" @@ -1565,6 +1555,25 @@ msgstr "అటువంటి ఫైలు లేదు." msgid "Cannot read file." msgstr "ఫైలుని చదవలేకపోతున్నాం." +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "తప్పుడు పరిమాణం." + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "మీరు ఇప్పటికే లోనికి ప్రవేశించారు!" + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "వాడుకరిని ఇప్పటికే గుంపునుండి నిరోధించారు." + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1710,12 +1719,18 @@ msgstr "నిర్వాహకున్ని చేయి" msgid "Make this user an admin" msgstr "ఈ వాడుకరిని నిర్వాహకున్ని చేయి" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "%s కాలరేఖ" + #: actions/grouprss.php:140 #, fuzzy, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "%s యొక్క మైక్రోబ్లాగు" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "గుంపులు" @@ -2285,8 +2300,8 @@ msgstr "విషయ రకం " msgid "Only " msgstr "మాత్రమే " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "" @@ -2430,7 +2445,8 @@ msgstr "కొత్త సంకేతపదాన్ని భద్రపర msgid "Password saved." msgstr "సంకేతపదం భద్రమయ్యింది." -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "" @@ -2553,7 +2569,7 @@ msgstr "నేపథ్యాల సంచయం" msgid "SSL" msgstr "" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 #, fuzzy msgid "Never" msgstr "వైదొలగు" @@ -2611,11 +2627,11 @@ msgstr "సరైన ఈమెయిల్ చిరునామా కాదు msgid "Users self-tagged with %1$s - page %2$d" msgstr "%s యొక్క మైక్రోబ్లాగు" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "సందేశపు విషయం సరైనది కాదు" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" @@ -2693,7 +2709,7 @@ msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "భాష" @@ -2719,7 +2735,7 @@ msgstr "" msgid "Bio is too long (max %d chars)." msgstr "స్వపరిచయం చాలా పెద్దగా ఉంది (%d అక్షరాలు గరిష్ఠం)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "కాలమండలాన్ని ఎంచుకోలేదు." @@ -3025,7 +3041,7 @@ msgid "Same as password above. Required." msgstr "పై సంకేతపదం మరోసారి. తప్పనిసరి." #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "ఈమెయిల్" @@ -3122,7 +3138,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "చందాచేరు" @@ -3225,6 +3241,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "%sకి స్పందనలు" +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "మీరు ఇప్పటికే లోనికి ప్రవేశించారు!" + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "వాడుకరికి ప్రొఫైలు లేదు." + #: actions/rsd.php:146 actions/version.php:157 msgid "StatusNet" msgstr "స్టేటస్‌నెట్" @@ -3239,7 +3265,9 @@ msgstr "మీరు ఇప్పటికే లోనికి ప్రవే msgid "User is already sandboxed." msgstr "వాడుకరిని ఇప్పటికే గుంపునుండి నిరోధించారు." +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "" @@ -3264,7 +3292,7 @@ msgstr "" msgid "Turn on debugging output for sessions." msgstr "" -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "సైటు అమరికలను భద్రపరచు" @@ -3296,8 +3324,8 @@ msgstr "సంస్ధ" msgid "Description" msgstr "వివరణ" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "గణాంకాలు" @@ -3431,45 +3459,45 @@ msgstr "మారుపేర్లు" msgid "Group actions" msgstr "గుంపు చర్యలు" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "%s యొక్క సందేశముల ఫీడు" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "%s యొక్క సందేశముల ఫీడు" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "%s యొక్క సందేశముల ఫీడు" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, php-format msgid "FOAF for %s group" msgstr "%s గుంపు" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 msgid "Members" msgstr "సభ్యులు" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(ఏమీలేదు)" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "అందరు సభ్యులూ" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 msgid "Created" msgstr "సృష్టితం" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3479,7 +3507,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:462 +#: actions/showgroup.php:463 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3488,7 +3516,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "నిర్వాహకులు" @@ -3600,147 +3628,138 @@ msgid "User is already silenced." msgstr "వాడుకరిని ఇప్పటికే గుంపునుండి నిరోధించారు." #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +#, fuzzy +msgid "Basic settings for this StatusNet site" msgstr "ఈ స్టేటస్‌నెట్ సైటుకి ప్రాధమిక అమరికలు." -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "సైటు పేరు తప్పనిసరిగా సున్నా కంటే ఎక్కువ పొడవుండాలి." -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 msgid "You must have a valid contact email address." msgstr "మీకు సరైన సంప్రదింపు ఈమెయిలు చిరునామా ఉండాలి." -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "గుర్తు తెలియని భాష \"%s\"." #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "" - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "" - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "" - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "కనిష్ఠ పాఠ్య పరిమితి 140 అక్షరాలు." -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "" -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "సాధారణ" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 msgid "Site name" msgstr "సైటు పేరు" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "మీ సైటు యొక్క పేరు, ఇలా \"మీకంపెనీ మైక్రోబ్లాగు\"" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 #, fuzzy msgid "Contact email address for your site" msgstr "ఈ వాడుకరికై నమోదైన ఈమెయిల్ చిరునామాలు ఏమీ లేవు." -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 msgid "Local" msgstr "స్థానిక" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "అప్రమేయ కాలమండలం" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "" -#: actions/siteadminpanel.php:281 -msgid "Default site language" +#: actions/siteadminpanel.php:262 +#, fuzzy +msgid "Default language" msgstr "అప్రమేయ సైటు భాష" -#: actions/siteadminpanel.php:289 -msgid "Snapshots" -msgstr "" - -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" -msgstr "" - -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" -msgstr "" - -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" -msgstr "" - -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" -msgstr "" - -#: actions/siteadminpanel.php:301 -msgid "Frequency" -msgstr "తరచుదనం" - -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" -msgstr "" - -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "" - -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" msgstr "" -#: actions/siteadminpanel.php:315 +#: actions/siteadminpanel.php:271 msgid "Limits" msgstr "పరిమితులు" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Text limit" msgstr "పాఠ్యపు పరిమితి" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Maximum number of characters for notices." msgstr "సందేశాలలోని అక్షరాల గరిష్ఠ సంఖ్య." -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "Dupe limit" msgstr "" -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "సైటు గమనిక" + +#: actions/sitenoticeadminpanel.php:67 +#, fuzzy +msgid "Edit site-wide message" +msgstr "కొత్త సందేశం" + +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +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 +#, fuzzy +msgid "Site notice text" +msgstr "సైటు గమనిక" + +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" +msgstr "" + +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "సైటు గమనిక" + #: actions/smssettings.php:58 msgid "SMS settings" msgstr "SMS అమరికలు" @@ -3835,6 +3854,66 @@ msgstr "" msgid "No code entered" msgstr "" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +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 +#, fuzzy +msgid "Save snapshot settings" +msgstr "సైటు అమరికలను భద్రపరచు" + #: actions/subedit.php:70 msgid "You are not subscribed to that profile." msgstr "" @@ -4036,7 +4115,7 @@ msgstr "" msgid "Unsubscribed" msgstr "చందాదార్లు" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4228,16 +4307,22 @@ msgstr "%1$s గుంపు సభ్యులు, పేజీ %2$d" msgid "Search for more groups" msgstr "మరిన్ని గుంపులకై వెతుకు" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, php-format msgid "%s is not a member of any group." msgstr "%s ఏ గుంపు లోనూ సభ్యులు కాదు." -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "[గుంపులని వెతికి](%%action.groupsearch%%) వాటిలో చేరడానికి ప్రయత్నించండి." +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "" + #: actions/version.php:73 #, php-format msgid "StatusNet %s" @@ -4281,7 +4366,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 msgid "Version" msgstr "సంచిక" @@ -4345,41 +4430,41 @@ msgstr "" msgid "DB error inserting hashtag: %s" msgstr "" -#: classes/Notice.php:239 +#: classes/Notice.php:241 #, fuzzy msgid "Problem saving notice. Too long." msgstr "సందేశాన్ని భద్రపరచడంలో పొరపాటు." -#: classes/Notice.php:243 +#: classes/Notice.php:245 #, fuzzy msgid "Problem saving notice. Unknown user." msgstr "సందేశాన్ని భద్రపరచడంలో పొరపాటు." -#: classes/Notice.php:248 +#: classes/Notice.php:250 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:254 +#: classes/Notice.php:256 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:260 +#: classes/Notice.php:262 msgid "You are banned from posting notices on this site." msgstr "ఈ సైటులో నోటీసులు రాయడం నుండి మిమ్మల్ని నిషేధించారు." -#: classes/Notice.php:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "సందేశాన్ని భద్రపరచడంలో పొరపాటు." -#: classes/Notice.php:911 +#: classes/Notice.php:927 #, fuzzy msgid "Problem saving group inbox." msgstr "సందేశాన్ని భద్రపరచడంలో పొరపాటు." -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4406,7 +4491,12 @@ msgstr "చందాదార్లు" msgid "Couldn't delete self-subscription." msgstr "చందాని తొలగించలేకపోయాం." -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "చందాని తొలగించలేకపోయాం." + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "చందాని తొలగించలేకపోయాం." @@ -4415,20 +4505,20 @@ msgstr "చందాని తొలగించలేకపోయాం." msgid "Welcome to %1$s, @%2$s!" msgstr "@%2$s, %1$sకి స్వాగతం!" -#: classes/User_group.php:462 +#: classes/User_group.php:477 msgid "Could not create group." msgstr "గుంపుని సృష్టించలేకపోయాం." -#: classes/User_group.php:471 +#: classes/User_group.php:486 #, fuzzy msgid "Could not set group URI." msgstr "గుంపు సభ్యత్వాన్ని అమర్చలేకపోయాం." -#: classes/User_group.php:492 +#: classes/User_group.php:507 msgid "Could not set group membership." msgstr "గుంపు సభ్యత్వాన్ని అమర్చలేకపోయాం." -#: classes/User_group.php:506 +#: classes/User_group.php:521 #, fuzzy msgid "Could not save local group info." msgstr "చందాని సృష్టించలేకపోయాం." @@ -4471,194 +4561,188 @@ msgstr "%1$s - %2$s" msgid "Untitled page" msgstr "" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 +#: lib/action.php:430 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:442 +#: lib/action.php:433 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "వ్యక్తిగత" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 +#: lib/action.php:435 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "మీ ఈమెయిలు, అవతారం, సంకేతపదం మరియు ప్రౌఫైళ్ళను మార్చుకోండి" -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "ఖాతా" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 +#: lib/action.php:440 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "అనుసంధానాలు" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "అనుసంధానించు" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 +#: lib/action.php:446 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "చందాలు" -#: lib/action.php:460 +#: lib/action.php:449 #, fuzzy msgctxt "MENU" msgid "Admin" msgstr "నిర్వాహకులు" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 +#: lib/action.php:453 #, fuzzy, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "ఈ ఫారాన్ని ఉపయోగించి మీ స్నేహితులను మరియు సహోద్యోగులను ఈ సేవను వినియోగించుకోమని ఆహ్వానించండి." -#: lib/action.php:467 +#: lib/action.php:456 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "ఆహ్వానించు" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 +#: lib/action.php:462 #, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "సైటు నుండి నిష్క్రమించు" -#: lib/action.php:476 +#: lib/action.php:465 #, fuzzy msgctxt "MENU" msgid "Logout" msgstr "నిష్క్రమించు" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 +#: lib/action.php:470 #, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "కొత్త ఖాతా సృష్టించు" -#: lib/action.php:484 +#: lib/action.php:473 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "నమోదు" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 +#: lib/action.php:476 #, fuzzy msgctxt "TOOLTIP" msgid "Login to the site" msgstr "సైటులోని ప్రవేశించు" -#: lib/action.php:490 +#: lib/action.php:479 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "ప్రవేశించండి" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 +#: lib/action.php:482 #, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "సహాయం కావాలి!" -#: lib/action.php:496 +#: lib/action.php:485 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "సహాయం" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 +#: lib/action.php:488 #, fuzzy msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "మరిన్ని గుంపులకై వెతుకు" -#: lib/action.php:502 +#: lib/action.php:491 #, fuzzy msgctxt "MENU" msgid "Search" msgstr "వెతుకు" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 msgid "Site notice" msgstr "సైటు గమనిక" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "స్థానిక వీక్షణలు" -#: lib/action.php:656 +#: lib/action.php:645 msgid "Page notice" msgstr "పేజీ గమనిక" -#: lib/action.php:758 +#: lib/action.php:747 #, fuzzy msgid "Secondary site navigation" msgstr "చందాలు" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "సహాయం" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "గురించి" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "ప్రశ్నలు" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "సేవా నియమాలు" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "అంతరంగికత" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "మూలము" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "సంప్రదించు" -#: lib/action.php:782 +#: lib/action.php:771 msgid "Badge" msgstr "బాడ్జి" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "స్టేటస్‌నెట్ మృదూపకరణ లైసెన్సు" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4667,12 +4751,12 @@ msgstr "" "**%%site.name%%** అనేది [%%site.broughtby%%](%%site.broughtbyurl%%) వారు " "అందిస్తున్న మైక్రో బ్లాగింగు సదుపాయం. " -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** అనేది మైక్రో బ్లాగింగు సదుపాయం." -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4683,54 +4767,54 @@ msgstr "" "html) కింద లభ్యమయ్యే [స్టేటస్‌నెట్](http://status.net/) మైక్రోబ్లాగింగ్ ఉపకరణం సంచిక %s " "పై నడుస్తుంది." -#: lib/action.php:832 +#: lib/action.php:821 #, fuzzy msgid "Site content license" msgstr "కొత్త సందేశం" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "అన్నీ " -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "" -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "పేజీకరణ" -#: lib/action.php:1172 +#: lib/action.php:1161 msgid "After" msgstr "తర్వాత" -#: lib/action.php:1180 +#: lib/action.php:1169 msgid "Before" msgstr "ఇంతక్రితం" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "" @@ -4745,93 +4829,83 @@ msgid "Changes to that panel are not allowed." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 msgid "showForm() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 msgid "saveSettings() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 msgid "Unable to delete design setting." msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 msgid "Basic site configuration" msgstr "ప్రాథమిక సైటు స్వరూపణం" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 +#: lib/adminpanelaction.php:350 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "సైటు" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 msgid "Design configuration" msgstr "రూపకల్పన స్వరూపణం" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 +#: lib/adminpanelaction.php:358 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "రూపురేఖలు" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 msgid "User configuration" msgstr "వాడుకరి స్వరూపణం" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -#, fuzzy -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "వాడుకరి" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 #, fuzzy msgid "Access configuration" msgstr "SMS నిర్ధారణ" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "అంగీకరించు" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 #, fuzzy msgid "Paths configuration" msgstr "SMS నిర్ధారణ" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -msgctxt "MENU" -msgid "Paths" -msgstr "" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 #, fuzzy msgid "Sessions configuration" msgstr "రూపకల్పన స్వరూపణం" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "సంచిక" +msgid "Edit site notice" +msgstr "సైటు గమనిక" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "SMS నిర్ధారణ" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5327,6 +5401,11 @@ msgstr "" msgid "Go" msgstr "వెళ్ళు" +#: lib/grantroleform.php:91 +#, php-format +msgid "Grant this user the \"%s\" role" +msgstr "" + #: lib/groupeditform.php:163 #, fuzzy msgid "URL of the homepage or blog of the group or topic" @@ -5884,10 +5963,6 @@ msgstr "స్పందనలు" msgid "Favorites" msgstr "ఇష్టాంశాలు" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "వాడుకరి" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "వచ్చినవి" @@ -5913,7 +5988,7 @@ msgstr "" msgid "Unknown" msgstr "" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "చందాలు" @@ -5921,23 +5996,23 @@ msgstr "చందాలు" msgid "All subscriptions" msgstr "అన్ని చందాలు" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "చందాదార్లు" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 msgid "All subscribers" msgstr "అందరు చందాదార్లు" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 msgid "User ID" msgstr "వాడుకరి ID" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "సభ్యులైన తేదీ" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "అన్ని గుంపులు" @@ -5978,7 +6053,12 @@ msgstr "ఈ నోటీసుని పునరావృతించాలా? msgid "Repeat this notice" msgstr "ఈ నోటీసుని పునరావృతించు" -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, fuzzy, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "ఈ గుంపునుండి ఈ వాడుకరిని నిరోధించు" + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "" @@ -6138,47 +6218,63 @@ msgstr "సందేశం" msgid "Moderate" msgstr "" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "వాడుకరి ప్రొఫైలు" + +#: lib/userprofile.php:354 +#, fuzzy +msgctxt "role" +msgid "Administrator" +msgstr "నిర్వాహకులు" + +#: lib/userprofile.php:355 +msgctxt "role" +msgid "Moderator" +msgstr "" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "కొన్ని క్షణాల క్రితం" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "ఓ నిమిషం క్రితం" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "%d నిమిషాల క్రితం" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "ఒక గంట క్రితం" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "%d గంటల క్రితం" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "ఓ రోజు క్రితం" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "%d రోజుల క్రితం" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "ఓ నెల క్రితం" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "%d నెలల క్రితం" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "ఒక సంవత్సరం క్రితం" diff --git a/locale/tr/LC_MESSAGES/statusnet.po b/locale/tr/LC_MESSAGES/statusnet.po index 71aaa6813..8051f448b 100644 --- a/locale/tr/LC_MESSAGES/statusnet.po +++ b/locale/tr/LC_MESSAGES/statusnet.po @@ -9,19 +9,20 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:03:53+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:57:26+0000\n" "Language-Team: Turkish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tr\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=1; plural=0;\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 #, fuzzy msgid "Access" msgstr "Kabul et" @@ -124,7 +125,7 @@ msgstr "%s ve arkadaşları" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -179,7 +180,7 @@ msgid "" msgstr "" #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 #, fuzzy msgid "You and friends" msgstr "%s ve arkadaşları" @@ -207,11 +208,11 @@ msgstr "" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "Onay kodu bulunamadı." @@ -583,7 +584,7 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 #, fuzzy msgid "Account" msgstr "Hakkında" @@ -676,18 +677,6 @@ msgstr "%1$s'in %2$s'deki durum mesajları " msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%s adli kullanicinin durum mesajlari" -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "" - #: actions/apitimelinementions.php:117 #, fuzzy, php-format msgid "%1$s / Updates mentioning %2$s" @@ -698,12 +687,12 @@ msgstr "%1$s'in %2$s'deki durum mesajları " msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "" @@ -959,7 +948,7 @@ msgid "Conversation" msgstr "Yer" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Durum mesajları" @@ -981,7 +970,7 @@ msgstr "Bize o profili yollamadınız" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "" @@ -1185,8 +1174,9 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1311,7 +1301,7 @@ msgstr "Hakkında bölümü çok uzun (azm 140 karakter)." msgid "Could not update group." msgstr "Kullanıcı güncellenemedi." -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 #, fuzzy msgid "Could not create aliases." msgstr "Avatar bilgisi kaydedilemedi" @@ -1435,7 +1425,7 @@ msgid "Cannot normalize that email address" msgstr "" #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Geçersiz bir eposta adresi." @@ -1628,6 +1618,25 @@ msgstr "Böyle bir durum mesajı yok." msgid "Cannot read file." msgstr "Böyle bir durum mesajı yok." +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "Geçersiz büyüklük." + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "Bize o profili yollamadınız" + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "Kullanıcının profili yok." + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1779,12 +1788,18 @@ msgstr "" msgid "Make this user an admin" msgstr "" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "" + #: actions/grouprss.php:140 #, fuzzy, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "%s adli kullanicinin durum mesajlari" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "" @@ -2371,8 +2386,8 @@ msgstr "Bağlan" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "" @@ -2520,7 +2535,8 @@ msgstr "Yeni parola kaydedilemedi." msgid "Password saved." msgstr "Parola kaydedildi." -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "" @@ -2645,7 +2661,7 @@ msgstr "" msgid "SSL" msgstr "" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 #, fuzzy msgid "Never" msgstr "Geri al" @@ -2705,11 +2721,11 @@ msgstr "Geçersiz bir eposta adresi." msgid "Users self-tagged with %1$s - page %2$d" msgstr "%s adli kullanicinin durum mesajlari" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "Geçersiz durum mesajı" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" @@ -2792,7 +2808,7 @@ msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "" @@ -2818,7 +2834,7 @@ msgstr "" msgid "Bio is too long (max %d chars)." msgstr "Hakkında bölümü çok uzun (azm 140 karakter)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "" @@ -3125,7 +3141,7 @@ msgid "Same as password above. Required." msgstr "" #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "Eposta" @@ -3214,7 +3230,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "Abone ol" @@ -3316,6 +3332,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "%s için cevaplar" +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "Bize o profili yollamadınız" + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "Kullanıcının profili yok." + #: actions/rsd.php:146 actions/version.php:157 #, fuzzy msgid "StatusNet" @@ -3331,7 +3357,9 @@ msgstr "Bize o profili yollamadınız" msgid "User is already sandboxed." msgstr "Kullanıcının profili yok." +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "" @@ -3355,7 +3383,7 @@ msgstr "" msgid "Turn on debugging output for sessions." msgstr "" -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 #, fuzzy msgid "Save site settings" @@ -3391,8 +3419,8 @@ msgstr "Yer" msgid "Description" msgstr "Abonelikler" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "İstatistikler" @@ -3526,47 +3554,47 @@ msgstr "" msgid "Group actions" msgstr "" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "%s için durum RSS beslemesi" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "%s için durum RSS beslemesi" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "%s için durum RSS beslemesi" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, fuzzy, php-format msgid "FOAF for %s group" msgstr "%s için durum RSS beslemesi" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 #, fuzzy msgid "Members" msgstr "Üyelik başlangıcı" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 #, fuzzy msgid "Created" msgstr "Yarat" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3576,7 +3604,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:462 +#: actions/showgroup.php:463 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3585,7 +3613,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "" @@ -3697,149 +3725,137 @@ msgid "User is already silenced." msgstr "Kullanıcının profili yok." #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +msgid "Basic settings for this StatusNet site" msgstr "" -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "" -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 #, fuzzy msgid "You must have a valid contact email address." msgstr "Geçersiz bir eposta adresi." -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "" #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "" - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "" - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "" - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "" -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "" -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 #, fuzzy msgid "Site name" msgstr "Yeni durum mesajı" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 #, fuzzy msgid "Contact email address for your site" msgstr "Kullanıcı için kaydedilmiş eposta adresi yok." -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 #, fuzzy msgid "Local" msgstr "Yer" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "" -#: actions/siteadminpanel.php:281 -msgid "Default site language" -msgstr "" - -#: actions/siteadminpanel.php:289 -msgid "Snapshots" +#: actions/siteadminpanel.php:262 +msgid "Default language" msgstr "" -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" msgstr "" -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" +#: actions/siteadminpanel.php:271 +msgid "Limits" msgstr "" -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" +#: actions/siteadminpanel.php:274 +msgid "Text limit" msgstr "" -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" +#: actions/siteadminpanel.php:274 +msgid "Maximum number of characters for notices." msgstr "" -#: actions/siteadminpanel.php:301 -msgid "Frequency" +#: actions/siteadminpanel.php:278 +msgid "Dupe limit" msgstr "" -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" +#: actions/siteadminpanel.php:278 +msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "" +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "Yeni durum mesajı" -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" +#: actions/sitenoticeadminpanel.php:67 +msgid "Edit site-wide message" msgstr "" -#: actions/siteadminpanel.php:315 -msgid "Limits" -msgstr "" +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +msgid "Unable to save site notice." +msgstr "Durum mesajını kaydederken hata oluştu." -#: actions/siteadminpanel.php:318 -msgid "Text limit" +#: actions/sitenoticeadminpanel.php:113 +msgid "Max length for the site-wide notice is 255 chars" msgstr "" -#: actions/siteadminpanel.php:318 -msgid "Maximum number of characters for notices." -msgstr "" +#: actions/sitenoticeadminpanel.php:176 +#, fuzzy +msgid "Site notice text" +msgstr "Yeni durum mesajı" -#: actions/siteadminpanel.php:322 -msgid "Dupe limit" +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" msgstr "" -#: actions/siteadminpanel.php:322 -msgid "How long users must wait (in seconds) to post the same thing again." -msgstr "" +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "Yeni durum mesajı" #: actions/smssettings.php:58 #, fuzzy @@ -3936,6 +3952,66 @@ msgstr "" msgid "No code entered" msgstr "" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +msgid "Manage snapshot configuration" +msgstr "Abonelikler" + +#: 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 +#, fuzzy +msgid "Save snapshot settings" +msgstr "Ayarlar" + #: actions/subedit.php:70 #, fuzzy msgid "You are not subscribed to that profile." @@ -4144,7 +4220,7 @@ msgstr "Yetkilendirme isteği yok!" msgid "Unsubscribed" msgstr "Aboneliği sonlandır" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4344,16 +4420,22 @@ msgstr "Bütün abonelikler" msgid "Search for more groups" msgstr "" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, fuzzy, php-format msgid "%s is not a member of any group." msgstr "Bize o profili yollamadınız" -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "" + #: actions/version.php:73 #, fuzzy, php-format msgid "StatusNet %s" @@ -4397,7 +4479,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 #, fuzzy msgid "Version" msgstr "Kişisel" @@ -4465,41 +4547,41 @@ msgstr "" msgid "DB error inserting hashtag: %s" msgstr "" -#: classes/Notice.php:239 +#: classes/Notice.php:241 #, fuzzy msgid "Problem saving notice. Too long." msgstr "Durum mesajını kaydederken hata oluştu." -#: classes/Notice.php:243 +#: classes/Notice.php:245 #, fuzzy msgid "Problem saving notice. Unknown user." msgstr "Durum mesajını kaydederken hata oluştu." -#: classes/Notice.php:248 +#: classes/Notice.php:250 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:254 +#: classes/Notice.php:256 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:260 +#: classes/Notice.php:262 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "Durum mesajını kaydederken hata oluştu." -#: classes/Notice.php:911 +#: classes/Notice.php:927 #, fuzzy msgid "Problem saving group inbox." msgstr "Durum mesajını kaydederken hata oluştu." -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4527,7 +4609,12 @@ msgstr "Bu kullanıcıyı zaten takip etmiyorsunuz!" msgid "Couldn't delete self-subscription." msgstr "Abonelik silinemedi." -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "Abonelik silinemedi." + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "Abonelik silinemedi." @@ -4536,22 +4623,22 @@ msgstr "Abonelik silinemedi." msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:462 +#: classes/User_group.php:477 #, fuzzy msgid "Could not create group." msgstr "Avatar bilgisi kaydedilemedi" -#: classes/User_group.php:471 +#: classes/User_group.php:486 #, fuzzy msgid "Could not set group URI." msgstr "Abonelik oluşturulamadı." -#: classes/User_group.php:492 +#: classes/User_group.php:507 #, fuzzy msgid "Could not set group membership." msgstr "Abonelik oluşturulamadı." -#: classes/User_group.php:506 +#: classes/User_group.php:521 #, fuzzy msgid "Could not save local group info." msgstr "Abonelik oluşturulamadı." @@ -4595,192 +4682,186 @@ msgstr "%1$s'in %2$s'deki durum mesajları " msgid "Untitled page" msgstr "" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 +#: lib/action.php:430 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:442 +#: lib/action.php:433 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "Kişisel" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 +#: lib/action.php:435 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Parolayı değiştir" -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "Hakkında" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 +#: lib/action.php:440 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Sunucuya yönlendirme yapılamadı: %s" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "Bağlan" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 +#: lib/action.php:446 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Abonelikler" -#: lib/action.php:460 +#: lib/action.php:449 msgctxt "MENU" msgid "Admin" msgstr "" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 +#: lib/action.php:453 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "" -#: lib/action.php:467 +#: lib/action.php:456 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "Geçersiz büyüklük." #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 +#: lib/action.php:462 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "" -#: lib/action.php:476 +#: lib/action.php:465 #, fuzzy msgctxt "MENU" msgid "Logout" msgstr "Çıkış" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 +#: lib/action.php:470 #, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "Yeni hesap oluştur" -#: lib/action.php:484 +#: lib/action.php:473 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "Kayıt" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 +#: lib/action.php:476 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "" -#: lib/action.php:490 +#: lib/action.php:479 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "Giriş" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 +#: lib/action.php:482 #, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "Yardım" -#: lib/action.php:496 +#: lib/action.php:485 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "Yardım" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 +#: lib/action.php:488 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "" -#: lib/action.php:502 +#: lib/action.php:491 #, fuzzy msgctxt "MENU" msgid "Search" msgstr "Ara" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 #, fuzzy msgid "Site notice" msgstr "Yeni durum mesajı" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "" -#: lib/action.php:656 +#: lib/action.php:645 #, fuzzy msgid "Page notice" msgstr "Yeni durum mesajı" -#: lib/action.php:758 +#: lib/action.php:747 #, fuzzy msgid "Secondary site navigation" msgstr "Abonelikler" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "Yardım" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "Hakkında" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "SSS" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "Gizlilik" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "Kaynak" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "İletişim" -#: lib/action.php:782 +#: lib/action.php:771 msgid "Badge" msgstr "" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4789,12 +4870,12 @@ msgstr "" "**%%site.name%%** [%%site.broughtby%%](%%site.broughtbyurl%%)\" tarafından " "hazırlanan anında mesajlaşma ağıdır. " -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** bir aninda mesajlaşma sosyal ağıdır." -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4805,56 +4886,56 @@ msgstr "" "licenses/agpl-3.0.html) lisansı ile korunan [StatusNet](http://status.net/) " "microbloglama yazılımının %s. versiyonunu kullanmaktadır." -#: lib/action.php:832 +#: lib/action.php:821 #, fuzzy msgid "Site content license" msgstr "Yeni durum mesajı" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "" -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "" -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "" -#: lib/action.php:1172 +#: lib/action.php:1161 #, fuzzy msgid "After" msgstr "« Sonra" -#: lib/action.php:1180 +#: lib/action.php:1169 #, fuzzy msgid "Before" msgstr "Önce »" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "" @@ -4869,95 +4950,86 @@ msgid "Changes to that panel are not allowed." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 msgid "showForm() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 msgid "saveSettings() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 msgid "Unable to delete design setting." msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 #, fuzzy msgid "Basic site configuration" msgstr "Eposta adresi onayı" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 +#: lib/adminpanelaction.php:350 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "Yeni durum mesajı" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 #, fuzzy msgid "Design configuration" msgstr "Eposta adresi onayı" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 +#: lib/adminpanelaction.php:358 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "Kişisel" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 #, fuzzy msgid "User configuration" msgstr "Eposta adresi onayı" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 #, fuzzy msgid "Access configuration" msgstr "Eposta adresi onayı" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "Kabul et" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 #, fuzzy msgid "Paths configuration" msgstr "Eposta adresi onayı" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -msgctxt "MENU" -msgid "Paths" -msgstr "" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 #, fuzzy msgid "Sessions configuration" msgstr "Eposta adresi onayı" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "Kişisel" +msgid "Edit site notice" +msgstr "Yeni durum mesajı" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "Eposta adresi onayı" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5461,6 +5533,11 @@ msgstr "" msgid "Go" msgstr "" +#: lib/grantroleform.php:91 +#, php-format +msgid "Grant this user the \"%s\" role" +msgstr "" + #: lib/groupeditform.php:163 #, fuzzy msgid "URL of the homepage or blog of the group or topic" @@ -6013,10 +6090,6 @@ msgstr "Cevaplar" msgid "Favorites" msgstr "" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "" @@ -6042,7 +6115,7 @@ msgstr "" msgid "Unknown" msgstr "" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Abonelikler" @@ -6050,24 +6123,24 @@ msgstr "Abonelikler" msgid "All subscriptions" msgstr "Bütün abonelikler" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Abone olanlar" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 #, fuzzy msgid "All subscribers" msgstr "Abone olanlar" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 msgid "User ID" msgstr "" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "Üyelik başlangıcı" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "" @@ -6111,7 +6184,12 @@ msgstr "Böyle bir durum mesajı yok." msgid "Repeat this notice" msgstr "Böyle bir durum mesajı yok." -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, fuzzy, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "Böyle bir kullanıcı yok." + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "" @@ -6274,47 +6352,62 @@ msgstr "" msgid "Moderate" msgstr "" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "Kullanıcının profili yok." + +#: lib/userprofile.php:354 +msgctxt "role" +msgid "Administrator" +msgstr "" + +#: lib/userprofile.php:355 +msgctxt "role" +msgid "Moderator" +msgstr "" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "birkaç saniye önce" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "yaklaşık bir dakika önce" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "yaklaşık %d dakika önce" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "yaklaşık bir saat önce" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "yaklaşık %d saat önce" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "yaklaşık bir gün önce" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "yaklaşık %d gün önce" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "yaklaşık bir ay önce" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "yaklaşık %d ay önce" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "yaklaşık bir yıl önce" diff --git a/locale/uk/LC_MESSAGES/statusnet.po b/locale/uk/LC_MESSAGES/statusnet.po index fd168ba50..08f93f255 100644 --- a/locale/uk/LC_MESSAGES/statusnet.po +++ b/locale/uk/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:03:56+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:57:28+0000\n" "Language-Team: Ukrainian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: out-statusnet\n" @@ -23,7 +23,8 @@ msgstr "" "10< =4 && (n%100<10 or n%100>=20) ? 1 : 2);\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 msgid "Access" msgstr "Погодитись" @@ -46,7 +47,6 @@ msgstr "" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -#, fuzzy msgctxt "LABEL" msgid "Private" msgstr "Приватно" @@ -77,7 +77,6 @@ msgid "Save access settings" msgstr "Зберегти параметри доступу" #: actions/accessadminpanel.php:203 -#, fuzzy msgctxt "BUTTON" msgid "Save" msgstr "Зберегти" @@ -122,7 +121,7 @@ msgstr "%1$s та друзі, сторінка %2$d" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -183,7 +182,7 @@ msgstr "" "«розштовхати» %s або щось йому написати." #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 msgid "You and friends" msgstr "Ви з друзями" @@ -210,11 +209,11 @@ msgstr "Оновлення від %1$s та друзів на %2$s!" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 msgid "API method not found." msgstr "API метод не знайдено." @@ -579,7 +578,7 @@ msgstr "" "на доступ до Вашого акаунту %4$s лише тим стороннім додаткам, яким Ви " "довіряєте." -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 msgid "Account" msgstr "Акаунт" @@ -668,18 +667,6 @@ msgstr "%1$s / Обрані від %2$s" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s оновлення обраних від %2$s / %2$s." -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "%s стрічка" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "Оновлення від %1$s на %2$s!" - #: actions/apitimelinementions.php:117 #, php-format msgid "%1$s / Updates mentioning %2$s" @@ -690,12 +677,12 @@ msgstr "%1$s / Оновленні відповіді %2$s" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s оновив цю відповідь на допис від %2$s / %3$s." -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "%s загальна стрічка" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s оновлення від усіх!" @@ -941,7 +928,7 @@ msgid "Conversation" msgstr "Розмова" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Дописи" @@ -960,7 +947,7 @@ msgstr "Ви не є власником цього додатку." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "Виникли певні проблеми з токеном поточної сесії." @@ -1154,8 +1141,9 @@ msgstr "Повернутись до початкових налаштувань" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1271,7 +1259,7 @@ msgstr "опис надто довгий (%d знаків максимум)." msgid "Could not update group." msgstr "Не вдалося оновити групу." -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 msgid "Could not create aliases." msgstr "Неможна призначити додаткові імена." @@ -1393,7 +1381,7 @@ msgid "Cannot normalize that email address" msgstr "Не можна полагодити цю поштову адресу" #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Це недійсна електронна адреса." @@ -1584,6 +1572,25 @@ msgstr "Такого файлу немає." msgid "Cannot read file." msgstr "Не можу прочитати файл." +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "Невірний токен." + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "Ви не можете нікого ізолювати на цьому сайті." + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "Користувачу наразі заклеїли рота скотчем." + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1731,12 +1738,18 @@ msgstr "Зробити адміном" msgid "Make this user an admin" msgstr "Надати цьому користувачеві права адміністратора" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "%s стрічка" + #: actions/grouprss.php:140 #, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Оновлення членів %1$s на %2$s!" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Групи" @@ -1999,7 +2012,6 @@ msgstr "Можна додати персональне повідомлення #. TRANS: Send button for inviting friends #: actions/invite.php:198 -#, fuzzy msgctxt "BUTTON" msgid "Send" msgstr "Надіслати" @@ -2361,8 +2373,8 @@ msgstr "тип змісту " msgid "Only " msgstr "Лише " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "Такий формат даних не підтримується." @@ -2503,7 +2515,8 @@ msgstr "Неможна зберегти новий пароль." msgid "Password saved." msgstr "Пароль збережено." -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "Шлях" @@ -2623,7 +2636,7 @@ msgstr "Директорія фонів" msgid "SSL" msgstr "SSL-шифрування" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 msgid "Never" msgstr "Ніколи" @@ -2679,11 +2692,11 @@ msgstr "Це недійсний особистий теґ: %s" msgid "Users self-tagged with %1$s - page %2$d" msgstr "Користувачі з особистим теґом %1$s — сторінка %2$d" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "Недійсний зміст допису" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "Ліцензія допису «%1$s» є несумісною з ліцензією сайту «%2$s»." @@ -2763,7 +2776,7 @@ msgstr "" "Позначте себе теґами (літери, цифри, -, . та _), відокремлюючи кожен комою " "або пробілом" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "Мова" @@ -2790,7 +2803,7 @@ msgstr "" msgid "Bio is too long (max %d chars)." msgstr "Ви перевищили ліміт (%d знаків максимум)." -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "Часовий пояс не обрано." @@ -3111,7 +3124,7 @@ msgid "Same as password above. Required." msgstr "Такий само, як і пароль вище. Неодмінно." #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "Пошта" @@ -3216,7 +3229,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL-адреса Вашого профілю на іншому сумісному сервісі" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "Підписатись" @@ -3319,6 +3332,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "Відповіді до %1$s на %2$s!" +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "Ви не можете позбавляти користувачів права голосу на цьому сайті." + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "Користувач без відповідного профілю." + #: actions/rsd.php:146 actions/version.php:157 msgid "StatusNet" msgstr "StatusNet" @@ -3331,7 +3354,9 @@ msgstr "Ви не можете нікого ізолювати на цьому msgid "User is already sandboxed." msgstr "Користувача ізольовано доки набереться уму-розуму." +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "Сесії" @@ -3355,7 +3380,7 @@ msgstr "Сесія наладки" msgid "Turn on debugging output for sessions." msgstr "Виводити дані сесії наладки." -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 msgid "Save site settings" msgstr "Зберегти налаштування сайту" @@ -3386,8 +3411,8 @@ msgstr "Організація" msgid "Description" msgstr "Опис" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "Статистика" @@ -3529,45 +3554,45 @@ msgstr "Додаткові імена" msgid "Group actions" msgstr "Діяльність групи" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Стрічка дописів групи %s (RSS 1.0)" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Стрічка дописів групи %s (RSS 2.0)" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Стрічка дописів групи %s (Atom)" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, php-format msgid "FOAF for %s group" msgstr "FOAF для групи %s" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 msgid "Members" msgstr "Учасники" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Пусто)" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "Всі учасники" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 msgid "Created" msgstr "Створено" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3582,7 +3607,7 @@ msgstr "" "короткі дописи про своє життя та інтереси. [Приєднуйтесь](%%action.register%" "%) зараз і долучіться до спілкування! ([Дізнатися більше](%%doc.help%%))" -#: actions/showgroup.php:462 +#: actions/showgroup.php:463 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3595,7 +3620,7 @@ msgstr "" "забезпеченні [StatusNet](http://status.net/). Члени цієї групи роблять " "короткі дописи про своє життя та інтереси. " -#: actions/showgroup.php:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "Адміни" @@ -3717,150 +3742,141 @@ msgid "User is already silenced." msgstr "Користувачу наразі заклеїли рота скотчем." #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +#, fuzzy +msgid "Basic settings for this StatusNet site" msgstr "Загальні налаштування цього сайту StatusNet." -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "Ім’я сайту не може бути порожнім." -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 msgid "You must have a valid contact email address." msgstr "Електронна адреса має бути чинною." -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "Невідома мова «%s»." #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "Помилковий снепшот URL." - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "Помилкове значення снепшоту." - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "Частота повторення снепшотів має містити цифру." - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "Ліміт текстових повідомлень становить 140 знаків." -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "" "Часове обмеження при надсиланні дублікату повідомлення має становити від 1 і " "більше секунд." -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "Основні" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 msgid "Site name" msgstr "Назва сайту" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "Назва Вашого сайту, штибу \"Мікроблоґи компанії ...\"" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "Надано" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "Текст використаний для посілань кредитів унизу кожної сторінки" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "Наданий URL" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "URL використаний для посілань кредитів унизу кожної сторінки" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 msgid "Contact email address for your site" msgstr "Контактна електронна адреса для Вашого сайту" -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 msgid "Local" msgstr "Локаль" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "Часовий пояс за замовчуванням" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "Часовий пояс за замовчуванням для сайту; зазвичай UTC." -#: actions/siteadminpanel.php:281 -msgid "Default site language" +#: actions/siteadminpanel.php:262 +#, fuzzy +msgid "Default language" msgstr "Мова сайту за замовчуванням" -#: actions/siteadminpanel.php:289 -msgid "Snapshots" -msgstr "Снепшоти" - -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" -msgstr "Випадково під час веб-хіта" - -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" -msgstr "Згідно плану робіт" - -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" -msgstr "Снепшоти даних" - -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" -msgstr "Коли надсилати статистичні дані до серверів status.net" - -#: actions/siteadminpanel.php:301 -msgid "Frequency" -msgstr "Частота" - -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" -msgstr "Снепшоти надсилатимуться раз на N веб-хітів" - -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "Звітня URL-адреса" - -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" -msgstr "Снепшоти надсилатимуться на цю URL-адресу" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" +msgstr "" -#: actions/siteadminpanel.php:315 +#: actions/siteadminpanel.php:271 msgid "Limits" msgstr "Обмеження" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Text limit" msgstr "Текстові обмеження" -#: actions/siteadminpanel.php:318 +#: actions/siteadminpanel.php:274 msgid "Maximum number of characters for notices." msgstr "Максимальна кількість знаків у дописі." -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "Dupe limit" msgstr "Часове обмеження" -#: actions/siteadminpanel.php:322 +#: actions/siteadminpanel.php:278 msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" "Як довго користувачі мають зачекати (в секундах) аби надіслати той самий " "допис ще раз." +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "Зауваження сайту" + +#: actions/sitenoticeadminpanel.php:67 +#, fuzzy +msgid "Edit site-wide message" +msgstr "Нове повідомлення" + +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +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 +#, fuzzy +msgid "Site notice text" +msgstr "Зауваження сайту" + +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" +msgstr "" + +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "Зауваження сайту" + #: actions/smssettings.php:58 msgid "SMS settings" msgstr "Налаштування СМС" @@ -3960,6 +3976,66 @@ msgstr "" msgid "No code entered" msgstr "Код не введено" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "Снепшоти" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +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 "Помилковий снепшот URL." + +#: 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 "Коли надсилати статистичні дані до серверів status.net" + +#: actions/snapshotadminpanel.php:217 +msgid "Frequency" +msgstr "Частота" + +#: actions/snapshotadminpanel.php:218 +msgid "Snapshots will be sent once every N web hits" +msgstr "Снепшоти надсилатимуться раз на N веб-хітів" + +#: actions/snapshotadminpanel.php:226 +msgid "Report URL" +msgstr "Звітня URL-адреса" + +#: actions/snapshotadminpanel.php:227 +msgid "Snapshots will be sent to this URL" +msgstr "Снепшоти надсилатимуться на цю URL-адресу" + +#: actions/snapshotadminpanel.php:248 +#, fuzzy +msgid "Save snapshot settings" +msgstr "Зберегти налаштування сайту" + #: actions/subedit.php:70 msgid "You are not subscribed to that profile." msgstr "Ви не підписані до цього профілю." @@ -4167,7 +4243,7 @@ msgstr "У запиті відсутній ID профілю." msgid "Unsubscribed" msgstr "Відписано" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4175,7 +4251,6 @@ msgstr "Ліцензія «%1$s» не відповідає ліцензії с #. TRANS: User admin panel title #: actions/useradminpanel.php:59 -#, fuzzy msgctxt "TITLE" msgid "User" msgstr "Користувач" @@ -4370,17 +4445,23 @@ msgstr "Групи %1$s, сторінка %2$d" msgid "Search for more groups" msgstr "Шукати групи ще" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, php-format msgid "%s is not a member of any group." msgstr "%s не є учасником жодної групи." -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" "Спробуйте [знайти якісь групи](%%action.groupsearch%%) і приєднайтеся до них." +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "Оновлення від %1$s на %2$s!" + #: actions/version.php:73 #, php-format msgid "StatusNet %s" @@ -4436,7 +4517,7 @@ msgstr "" msgid "Plugins" msgstr "Додатки" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 msgid "Version" msgstr "Версія" @@ -4501,22 +4582,22 @@ msgstr "Не можна оновити повідомлення з новим UR msgid "DB error inserting hashtag: %s" msgstr "Помилка бази даних при додаванні теґу: %s" -#: classes/Notice.php:239 +#: classes/Notice.php:241 msgid "Problem saving notice. Too long." msgstr "Проблема при збереженні допису. Надто довге." -#: classes/Notice.php:243 +#: classes/Notice.php:245 msgid "Problem saving notice. Unknown user." msgstr "Проблема при збереженні допису. Невідомий користувач." -#: classes/Notice.php:248 +#: classes/Notice.php:250 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" "Дуже багато дописів за короткий термін; ходіть подихайте повітрям і " "повертайтесь за кілька хвилин." -#: classes/Notice.php:254 +#: classes/Notice.php:256 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4524,19 +4605,19 @@ msgstr "" "Дуже багато повідомлень за короткий термін; ходіть подихайте повітрям і " "повертайтесь за кілька хвилин." -#: classes/Notice.php:260 +#: classes/Notice.php:262 msgid "You are banned from posting notices on this site." msgstr "Вам заборонено надсилати дописи до цього сайту." -#: classes/Notice.php:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "Проблема при збереженні допису." -#: classes/Notice.php:911 +#: classes/Notice.php:927 msgid "Problem saving group inbox." msgstr "Проблема при збереженні вхідних дописів для групи." -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4561,7 +4642,12 @@ msgstr "Не підписано!" msgid "Couldn't delete self-subscription." msgstr "Не можу видалити самопідписку." -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "Не вдалося видалити підписку." + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "Не вдалося видалити підписку." @@ -4570,19 +4656,19 @@ msgstr "Не вдалося видалити підписку." msgid "Welcome to %1$s, @%2$s!" msgstr "Вітаємо на %1$s, @%2$s!" -#: classes/User_group.php:462 +#: classes/User_group.php:477 msgid "Could not create group." msgstr "Не вдалося створити нову групу." -#: classes/User_group.php:471 +#: classes/User_group.php:486 msgid "Could not set group URI." msgstr "Не вдалося встановити URI групи." -#: classes/User_group.php:492 +#: classes/User_group.php:507 msgid "Could not set group membership." msgstr "Не вдалося встановити членство." -#: classes/User_group.php:506 +#: classes/User_group.php:521 msgid "Could not save local group info." msgstr "Не вдалося зберегти інформацію про локальну групу." @@ -4623,194 +4709,171 @@ msgstr "%1$s — %2$s" msgid "Untitled page" msgstr "Сторінка без заголовку" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "Відправна навігація по сайту" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 -#, fuzzy +#: lib/action.php:430 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Персональний профіль і стрічка друзів" -#: lib/action.php:442 -#, fuzzy +#: lib/action.php:433 msgctxt "MENU" msgid "Personal" msgstr "Особисте" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 -#, fuzzy +#: lib/action.php:435 msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Змінити електронну адресу, аватару, пароль, профіль" -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "Акаунт" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 -#, fuzzy +#: lib/action.php:440 msgctxt "TOOLTIP" msgid "Connect to services" msgstr "З’єднання з сервісами" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "З’єднання" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 -#, fuzzy +#: lib/action.php:446 msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Змінити конфігурацію сайту" -#: lib/action.php:460 -#, fuzzy +#: lib/action.php:449 msgctxt "MENU" msgid "Admin" msgstr "Адмін" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 -#, fuzzy, php-format +#: lib/action.php:453 +#, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Запросіть друзів та колег приєднатись до Вас на %s" -#: lib/action.php:467 -#, fuzzy +#: lib/action.php:456 msgctxt "MENU" msgid "Invite" msgstr "Запросити" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 -#, fuzzy +#: lib/action.php:462 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Вийти з сайту" -#: lib/action.php:476 -#, fuzzy +#: lib/action.php:465 msgctxt "MENU" msgid "Logout" msgstr "Вийти" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 -#, fuzzy +#: lib/action.php:470 msgctxt "TOOLTIP" msgid "Create an account" msgstr "Створити новий акаунт" -#: lib/action.php:484 -#, fuzzy +#: lib/action.php:473 msgctxt "MENU" msgid "Register" msgstr "Реєстрація" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 -#, fuzzy +#: lib/action.php:476 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Увійти на сайт" -#: lib/action.php:490 -#, fuzzy +#: lib/action.php:479 msgctxt "MENU" msgid "Login" msgstr "Увійти" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 -#, fuzzy +#: lib/action.php:482 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Допоможіть!" -#: lib/action.php:496 -#, fuzzy +#: lib/action.php:485 msgctxt "MENU" msgid "Help" -msgstr "Допомога" +msgstr "Довідка" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 -#, fuzzy +#: lib/action.php:488 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Пошук людей або текстів" -#: lib/action.php:502 -#, fuzzy +#: lib/action.php:491 msgctxt "MENU" msgid "Search" msgstr "Пошук" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 msgid "Site notice" msgstr "Зауваження сайту" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "Огляд" -#: lib/action.php:656 +#: lib/action.php:645 msgid "Page notice" msgstr "Зауваження сторінки" -#: lib/action.php:758 +#: lib/action.php:747 msgid "Secondary site navigation" msgstr "Другорядна навігація по сайту" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "Допомога" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "Про" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "ЧаПи" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "Умови" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "Конфіденційність" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "Джерело" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "Контакт" -#: lib/action.php:782 +#: lib/action.php:771 msgid "Badge" msgstr "Бедж" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "Ліцензія програмного забезпечення StatusNet" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4819,12 +4882,12 @@ msgstr "" "**%%site.name%%** — це сервіс мікроблоґів наданий вам [%%site.broughtby%%](%%" "site.broughtbyurl%%). " -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** — це сервіс мікроблоґів. " -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4835,54 +4898,54 @@ msgstr "" "для мікроблоґів, версія %s, доступному під [GNU Affero General Public " "License](http://www.fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:832 +#: lib/action.php:821 msgid "Site content license" msgstr "Ліцензія змісту сайту" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Зміст і дані %1$s є приватними і конфіденційними." -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "Авторські права на зміст і дані належать %1$s. Всі права захищено." -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Авторські права на зміст і дані належать розробникам. Всі права захищено." -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "Всі " -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "ліцензія." -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "Нумерація сторінок" -#: lib/action.php:1172 +#: lib/action.php:1161 msgid "After" msgstr "Вперед" -#: lib/action.php:1180 +#: lib/action.php:1169 msgid "Before" msgstr "Назад" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "Поки що не можу обробити віддалений контент." -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "Поки що не можу обробити вбудований XML контент." -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "Поки що не можу обробити вбудований контент Base64." @@ -4897,91 +4960,78 @@ msgid "Changes to that panel are not allowed." msgstr "Для цієї панелі зміни не припустимі." #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 msgid "showForm() not implemented." msgstr "showForm() не виконано." #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 msgid "saveSettings() not implemented." msgstr "saveSettings() не виконано." #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 msgid "Unable to delete design setting." msgstr "Немає можливості видалити налаштування дизайну." #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 msgid "Basic site configuration" msgstr "Основна конфігурація сайту" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 -#, fuzzy +#: lib/adminpanelaction.php:350 msgctxt "MENU" msgid "Site" msgstr "Сайт" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 msgid "Design configuration" msgstr "Конфігурація дизайну" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 -#, fuzzy +#: lib/adminpanelaction.php:358 msgctxt "MENU" msgid "Design" msgstr "Дизайн" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 msgid "User configuration" msgstr "Конфігурація користувача" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -#, fuzzy -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "Користувач" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 msgid "Access configuration" msgstr "Прийняти конфігурацію" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "Погодитись" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 msgid "Paths configuration" msgstr "Конфігурація шляху" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -#, fuzzy -msgctxt "MENU" -msgid "Paths" -msgstr "Шлях" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 msgid "Sessions configuration" msgstr "Конфігурація сесій" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "Сесії" +msgid "Edit site notice" +msgstr "Зауваження сайту" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "Конфігурація шляху" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5510,6 +5560,11 @@ msgstr "Оберіть теґ до звуженого списку" 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 "URL-адреса веб-сторінки, блоґу групи, або тематичного блоґу" @@ -6125,10 +6180,6 @@ msgstr "Відповіді" msgid "Favorites" msgstr "Обрані" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "Користувач" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Вхідні" @@ -6154,7 +6205,7 @@ msgstr "Теґи у дописах %s" msgid "Unknown" msgstr "Невідомо" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Підписки" @@ -6162,23 +6213,23 @@ msgstr "Підписки" msgid "All subscriptions" msgstr "Всі підписки" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Підписчики" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 msgid "All subscribers" msgstr "Всі підписчики" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 msgid "User ID" msgstr "ІД" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "З нами від" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "Всі групи" @@ -6218,7 +6269,12 @@ msgstr "Повторити цей допис?" msgid "Repeat this notice" msgstr "Вторувати цьому допису" -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, fuzzy, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "Блокувати користувача цієї групи" + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "Користувача для однокористувацького режиму не визначено." @@ -6372,47 +6428,64 @@ msgstr "Повідомлення" msgid "Moderate" msgstr "Модерувати" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "Профіль користувача." + +#: lib/userprofile.php:354 +#, fuzzy +msgctxt "role" +msgid "Administrator" +msgstr "Адміни" + +#: lib/userprofile.php:355 +#, fuzzy +msgctxt "role" +msgid "Moderator" +msgstr "Модерувати" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "мить тому" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "хвилину тому" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "близько %d хвилин тому" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "годину тому" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "близько %d годин тому" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "день тому" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "близько %d днів тому" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "місяць тому" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "близько %d місяців тому" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "рік тому" diff --git a/locale/vi/LC_MESSAGES/statusnet.po b/locale/vi/LC_MESSAGES/statusnet.po index d64fae91d..2a3c0ceeb 100644 --- a/locale/vi/LC_MESSAGES/statusnet.po +++ b/locale/vi/LC_MESSAGES/statusnet.po @@ -7,19 +7,20 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:03:59+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:57:31+0000\n" "Language-Team: Vietnamese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: vi\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=1; plural=0;\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 #, fuzzy msgid "Access" msgstr "Chấp nhận" @@ -123,7 +124,7 @@ msgstr "%s và bạn bè" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -178,7 +179,7 @@ msgid "" msgstr "" #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 #, fuzzy msgid "You and friends" msgstr "%s và bạn bè" @@ -206,11 +207,11 @@ msgstr "" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "Phương thức API không tìm thấy!" @@ -585,7 +586,7 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 #, fuzzy msgid "Account" msgstr "Giới thiệu" @@ -677,18 +678,6 @@ msgstr "Tìm kiếm các tin nhắn ưa thích của %s" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "Tất cả các cập nhật của %s" -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, fuzzy, php-format -msgid "%s timeline" -msgstr "Dòng tin nhắn của %s" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "" - #: actions/apitimelinementions.php:117 #, fuzzy, php-format msgid "%1$s / Updates mentioning %2$s" @@ -699,12 +688,12 @@ msgstr "%1$s / Các cập nhật đang trả lời tới %2$s" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, fuzzy, php-format msgid "%s public timeline" msgstr "Dòng tin công cộng" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s cập nhật từ tất cả mọi người!" @@ -963,7 +952,7 @@ msgid "Conversation" msgstr "Không có mã số xác nhận." #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Tin nhắn" @@ -985,7 +974,7 @@ msgstr "Bạn chưa cập nhật thông tin riêng" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 #, fuzzy msgid "There was a problem with your session token." msgstr "Có lỗi xảy ra khi thao tác. Hãy thử lại lần nữa." @@ -1197,8 +1186,9 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1330,7 +1320,7 @@ msgstr "Lý lịch quá dài (không quá 140 ký tự)" 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:478 +#: actions/editgroup.php:264 classes/User_group.php:493 #, fuzzy msgid "Could not create aliases." msgstr "Không thể tạo favorite." @@ -1461,7 +1451,7 @@ msgid "Cannot normalize that email address" msgstr "Không thể bình thường hóa địa chỉ GTalk này" #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "Địa chỉ email không hợp lệ." @@ -1667,6 +1657,25 @@ msgstr "Không có tin nhắn nào." msgid "Cannot read file." msgstr "Không có tin nhắn nào." +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "Kích thước không hợp lệ." + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "Bạn đã theo những người này:" + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "Người dùng không có thông tin." + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1824,12 +1833,18 @@ msgstr "" msgid "Make this user an admin" msgstr "Kênh mà bạn tham gia" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, fuzzy, php-format +msgid "%s timeline" +msgstr "Dòng tin nhắn của %s" + #: actions/grouprss.php:140 #, fuzzy, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "Dòng tin nhắn cho %s" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 #, fuzzy msgid "Groups" @@ -2460,8 +2475,8 @@ msgstr "Kết nối" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "Không hỗ trợ định dạng dữ liệu này." @@ -2613,7 +2628,8 @@ msgstr "Không thể lưu mật khẩu mới" msgid "Password saved." msgstr "Đã lưu mật khẩu." -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "" @@ -2745,7 +2761,7 @@ msgstr "Background Theme:" msgid "SSL" msgstr "SMS" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 #, fuzzy msgid "Never" msgstr "Khôi phục" @@ -2804,11 +2820,11 @@ msgstr "Địa chỉ email không hợp lệ." msgid "Users self-tagged with %1$s - page %2$d" msgstr "Dòng tin nhắn cho %s" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "Nội dung tin nhắn không hợp lệ" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" @@ -2888,7 +2904,7 @@ msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "Ngôn ngữ" @@ -2914,7 +2930,7 @@ msgstr "Tự động theo những người nào đăng ký theo tôi" msgid "Bio is too long (max %d chars)." msgstr "Lý lịch quá dài (không quá 140 ký tự)" -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "" @@ -3228,7 +3244,7 @@ msgid "Same as password above. Required." msgstr "Cùng mật khẩu ở trên. Bắt buộc." #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "Email" @@ -3332,7 +3348,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL trong hồ sơ cá nhân của bạn ở trên các trang microblogging khác" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "Theo bạn này" @@ -3435,6 +3451,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "%s chào mừng bạn " +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "Bạn đã theo những người này:" + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "Hồ sơ ở nơi khác không khớp với hồ sơ này của bạn" + #: actions/rsd.php:146 actions/version.php:157 #, fuzzy msgid "StatusNet" @@ -3450,7 +3476,9 @@ msgstr "Bạn đã theo những người này:" msgid "User is already sandboxed." msgstr "Người dùng không có thông tin." +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "" @@ -3474,7 +3502,7 @@ msgstr "" msgid "Turn on debugging output for sessions." msgstr "" -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 #, fuzzy msgid "Save site settings" @@ -3510,8 +3538,8 @@ msgstr "Thư mời đã gửi" msgid "Description" msgstr "Mô tả" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "Số liệu thống kê" @@ -3647,47 +3675,47 @@ msgstr "" msgid "Group actions" msgstr "Mã nhóm" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Dòng tin nhắn cho %s" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Dòng tin nhắn cho %s" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "Dòng tin nhắn cho %s" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, php-format msgid "FOAF for %s group" msgstr "Hộp thư đi của %s" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 msgid "Members" msgstr "Thành viên" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 #, fuzzy msgid "All members" msgstr "Thành viên" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 #, fuzzy msgid "Created" msgstr "Tạo" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3697,7 +3725,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:462 +#: actions/showgroup.php:463 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3706,7 +3734,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "" @@ -3820,150 +3848,139 @@ msgid "User is already silenced." msgstr "Người dùng không có thông tin." #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +msgid "Basic settings for this StatusNet site" msgstr "" -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "" -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 #, fuzzy msgid "You must have a valid contact email address." msgstr "Địa chỉ email không hợp lệ." -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "" #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "" - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "" - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "" - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "" -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "" -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 #, fuzzy msgid "Site name" msgstr "Thông báo mới" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 #, fuzzy msgid "Contact email address for your site" msgstr "Dia chi email moi de gui tin nhan den %s" -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 #, fuzzy msgid "Local" msgstr "Thành phố" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "" -#: actions/siteadminpanel.php:281 +#: actions/siteadminpanel.php:262 #, fuzzy -msgid "Default site language" +msgid "Default language" msgstr "Ngôn ngữ bạn thích" -#: actions/siteadminpanel.php:289 -msgid "Snapshots" -msgstr "" - -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" msgstr "" -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" +#: actions/siteadminpanel.php:271 +msgid "Limits" msgstr "" -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" +#: actions/siteadminpanel.php:274 +msgid "Text limit" msgstr "" -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" +#: actions/siteadminpanel.php:274 +msgid "Maximum number of characters for notices." msgstr "" -#: actions/siteadminpanel.php:301 -msgid "Frequency" +#: actions/siteadminpanel.php:278 +msgid "Dupe limit" msgstr "" -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" +#: actions/siteadminpanel.php:278 +msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "" +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "Thông báo mới" -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" -msgstr "" +#: actions/sitenoticeadminpanel.php:67 +#, fuzzy +msgid "Edit site-wide message" +msgstr "Tin mới nhất" -#: actions/siteadminpanel.php:315 -msgid "Limits" -msgstr "" +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +msgid "Unable to save site notice." +msgstr "Không thể lưu thông tin Twitter của bạn!" -#: actions/siteadminpanel.php:318 -msgid "Text limit" +#: actions/sitenoticeadminpanel.php:113 +msgid "Max length for the site-wide notice is 255 chars" msgstr "" -#: actions/siteadminpanel.php:318 -msgid "Maximum number of characters for notices." -msgstr "" +#: actions/sitenoticeadminpanel.php:176 +#, fuzzy +msgid "Site notice text" +msgstr "Thông báo mới" -#: actions/siteadminpanel.php:322 -msgid "Dupe limit" +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" msgstr "" -#: actions/siteadminpanel.php:322 -msgid "How long users must wait (in seconds) to post the same thing again." -msgstr "" +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "Thông báo mới" #: actions/smssettings.php:58 #, fuzzy @@ -4075,6 +4092,66 @@ msgstr "" msgid "No code entered" msgstr "Không có mã nào được nhập" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +msgid "Manage snapshot configuration" +msgstr "Tôi theo" + +#: 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 +#, fuzzy +msgid "Save snapshot settings" +msgstr "Thay đổi hình đại diện" + #: actions/subedit.php:70 #, fuzzy msgid "You are not subscribed to that profile." @@ -4284,7 +4361,7 @@ msgstr "Không có URL cho hồ sơ để quay về." msgid "Unsubscribed" msgstr "Hết theo" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4493,16 +4570,22 @@ msgstr "Thành viên" msgid "Search for more groups" msgstr "" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, fuzzy, php-format msgid "%s is not a member of any group." msgstr "Bạn chưa cập nhật thông tin riêng" -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "" + #: actions/version.php:73 #, fuzzy, php-format msgid "StatusNet %s" @@ -4546,7 +4629,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 #, fuzzy msgid "Version" msgstr "Cá nhân" @@ -4617,41 +4700,41 @@ msgstr "Không thể cập nhật thông tin user với địa chỉ email đã msgid "DB error inserting hashtag: %s" msgstr "Lỗi cơ sở dữ liệu khi chèn trả lời: %s" -#: classes/Notice.php:239 +#: classes/Notice.php:241 #, fuzzy msgid "Problem saving notice. Too long." msgstr "Có lỗi xảy ra khi lưu tin nhắn." -#: classes/Notice.php:243 +#: classes/Notice.php:245 #, fuzzy msgid "Problem saving notice. Unknown user." msgstr "Có lỗi xảy ra khi lưu tin nhắn." -#: classes/Notice.php:248 +#: classes/Notice.php:250 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:254 +#: classes/Notice.php:256 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:260 +#: classes/Notice.php:262 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "Có lỗi xảy ra khi lưu tin nhắn." -#: classes/Notice.php:911 +#: classes/Notice.php:927 #, fuzzy msgid "Problem saving group inbox." msgstr "Có lỗi xảy ra khi lưu tin nhắn." -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%s (%s)" @@ -4679,7 +4762,12 @@ msgstr "Chưa đăng nhận!" msgid "Couldn't delete self-subscription." msgstr "Không thể xóa đăng nhận." -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "Không thể xóa đăng nhận." + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "Không thể xóa đăng nhận." @@ -4688,22 +4776,22 @@ msgstr "Không thể xóa đăng nhận." msgid "Welcome to %1$s, @%2$s!" msgstr "%s chào mừng bạn " -#: classes/User_group.php:462 +#: classes/User_group.php:477 #, fuzzy msgid "Could not create group." msgstr "Không thể tạo favorite." -#: classes/User_group.php:471 +#: classes/User_group.php:486 #, fuzzy msgid "Could not set group URI." msgstr "Không thể tạo đăng nhận." -#: classes/User_group.php:492 +#: classes/User_group.php:507 #, fuzzy msgid "Could not set group membership." msgstr "Không thể tạo đăng nhận." -#: classes/User_group.php:506 +#: classes/User_group.php:521 #, fuzzy msgid "Could not save local group info." msgstr "Không thể tạo đăng nhận." @@ -4748,62 +4836,55 @@ msgstr "%s (%s)" msgid "Untitled page" msgstr "" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 +#: lib/action.php:430 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:442 +#: lib/action.php:433 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "Cá nhân" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 +#: lib/action.php:435 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Thay đổi mật khẩu của bạn" -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "Giới thiệu" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 +#: lib/action.php:440 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Không thể chuyển đến máy chủ: %s" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "Kết nối" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 +#: lib/action.php:446 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Tôi theo" -#: lib/action.php:460 +#: lib/action.php:449 msgctxt "MENU" msgid "Admin" msgstr "" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 +#: lib/action.php:453 #, fuzzy, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" @@ -4811,132 +4892,133 @@ msgstr "" "Điền địa chỉ email và nội dung tin nhắn để gửi thư mời bạn bè và đồng nghiệp " "của bạn tham gia vào dịch vụ này." -#: lib/action.php:467 +#: lib/action.php:456 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "Thư mời" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 +#: lib/action.php:462 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "" -#: lib/action.php:476 +#: lib/action.php:465 #, fuzzy msgctxt "MENU" msgid "Logout" msgstr "Thoát" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 +#: lib/action.php:470 #, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "Tạo tài khoản mới" -#: lib/action.php:484 +#: lib/action.php:473 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "Đăng ký" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 +#: lib/action.php:476 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "" -#: lib/action.php:490 +#: lib/action.php:479 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "Đăng nhập" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 +#: lib/action.php:482 #, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "Hướng dẫn" -#: lib/action.php:496 +#: lib/action.php:485 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "Hướng dẫn" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 +#: lib/action.php:488 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "" -#: lib/action.php:502 +#: lib/action.php:491 #, fuzzy msgctxt "MENU" msgid "Search" msgstr "Tìm kiếm" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 #, fuzzy msgid "Site notice" msgstr "Thông báo mới" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "" -#: lib/action.php:656 +#: lib/action.php:645 #, fuzzy msgid "Page notice" msgstr "Thông báo mới" -#: lib/action.php:758 +#: lib/action.php:747 #, fuzzy msgid "Secondary site navigation" msgstr "Tôi theo" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "Hướng dẫn" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "Giới thiệu" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "FAQ" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "Riêng tư" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "Nguồn" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "Liên hệ" -#: lib/action.php:782 +#: lib/action.php:771 #, fuzzy msgid "Badge" msgstr "Tin đã gửi" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4945,12 +5027,12 @@ msgstr "" "**%%site.name%%** là dịch vụ gửi tin nhắn được cung cấp từ [%%site.broughtby%" "%](%%site.broughtbyurl%%). " -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** là dịch vụ gửi tin nhắn. " -#: lib/action.php:817 +#: lib/action.php:806 #, fuzzy, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4961,56 +5043,56 @@ msgstr "" "quyền [GNU Affero General Public License](http://www.fsf.org/licensing/" "licenses/agpl-3.0.html)." -#: lib/action.php:832 +#: lib/action.php:821 #, fuzzy msgid "Site content license" msgstr "Tìm theo nội dung của tin nhắn" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "" -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "" -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "" -#: lib/action.php:1172 +#: lib/action.php:1161 #, fuzzy msgid "After" msgstr "Sau" -#: lib/action.php:1180 +#: lib/action.php:1169 #, fuzzy msgid "Before" msgstr "Trước" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "" @@ -5027,96 +5109,87 @@ msgid "Changes to that panel are not allowed." msgstr "Biệt hiệu không được cho phép." #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 msgid "showForm() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 msgid "saveSettings() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 #, fuzzy msgid "Unable to delete design setting." msgstr "Không thể lưu thông tin Twitter của bạn!" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 #, fuzzy msgid "Basic site configuration" msgstr "Xac nhan dia chi email" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 +#: lib/adminpanelaction.php:350 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "Thư mời" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 #, fuzzy msgid "Design configuration" msgstr "Xác nhận SMS" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 +#: lib/adminpanelaction.php:358 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "Cá nhân" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 #, fuzzy msgid "User configuration" msgstr "Xác nhận SMS" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 #, fuzzy msgid "Access configuration" msgstr "Xác nhận SMS" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "Chấp nhận" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 #, fuzzy msgid "Paths configuration" msgstr "Xác nhận SMS" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -msgctxt "MENU" -msgid "Paths" -msgstr "" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 #, fuzzy msgid "Sessions configuration" msgstr "Xác nhận SMS" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "Cá nhân" +msgid "Edit site notice" +msgstr "Thông báo mới" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "Xác nhận SMS" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5630,6 +5703,11 @@ msgstr "" msgid "Go" msgstr "" +#: lib/grantroleform.php:91 +#, php-format +msgid "Grant this user the \"%s\" role" +msgstr "" + #: lib/groupeditform.php:163 #, fuzzy msgid "URL of the homepage or blog of the group or topic" @@ -6241,10 +6319,6 @@ msgstr "Trả lời" msgid "Favorites" msgstr "Ưa thích" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "Hộp thư đến" @@ -6271,7 +6345,7 @@ msgstr "cảnh báo tin nhắn" msgid "Unknown" msgstr "Không tìm thấy action" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Tôi theo bạn này" @@ -6279,24 +6353,24 @@ msgstr "Tôi theo bạn này" msgid "All subscriptions" msgstr "Tất cả đăng nhận" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Bạn này theo tôi" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 #, fuzzy msgid "All subscribers" msgstr "Bạn này theo tôi" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 msgid "User ID" msgstr "" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "Gia nhập từ" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 #, fuzzy msgid "All groups" msgstr "Nhóm" @@ -6343,7 +6417,12 @@ msgstr "Trả lời tin nhắn này" msgid "Repeat this notice" msgstr "Trả lời tin nhắn này" -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, fuzzy, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "Ban user" + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "" @@ -6515,47 +6594,62 @@ msgstr "Tin mới nhất" msgid "Moderate" msgstr "" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "Hồ sơ" + +#: lib/userprofile.php:354 +msgctxt "role" +msgid "Administrator" +msgstr "" + +#: lib/userprofile.php:355 +msgctxt "role" +msgid "Moderator" +msgstr "" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "vài giây trước" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "1 phút trước" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "%d phút trước" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "1 giờ trước" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "%d giờ trước" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "1 ngày trước" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "%d ngày trước" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "1 tháng trước" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "%d tháng trước" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "1 năm trước" diff --git a/locale/zh_CN/LC_MESSAGES/statusnet.po b/locale/zh_CN/LC_MESSAGES/statusnet.po index 45fdfe6dc..5b2dae110 100644 --- a/locale/zh_CN/LC_MESSAGES/statusnet.po +++ b/locale/zh_CN/LC_MESSAGES/statusnet.po @@ -10,19 +10,20 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:04:02+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:57: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 (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hans\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=1; plural=0;\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 #, fuzzy msgid "Access" msgstr "接受" @@ -125,7 +126,7 @@ msgstr "%s 及好友" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -180,7 +181,7 @@ msgid "" msgstr "" #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 #, fuzzy msgid "You and friends" msgstr "%s 及好友" @@ -208,11 +209,11 @@ msgstr "来自%2$s 上 %1$s 和好友的更新!" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "API 方法未实现!" @@ -583,7 +584,7 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 msgid "Account" msgstr "帐号" @@ -675,18 +676,6 @@ msgstr "%s 的收藏 / %s" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%s 收藏了 %s 的 %s 通告。" -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "%s 时间表" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "%2$s 上 %1$s 的更新!" - #: actions/apitimelinementions.php:117 #, fuzzy, php-format msgid "%1$s / Updates mentioning %2$s" @@ -697,12 +686,12 @@ msgstr "%1$s / 回复 %2$s 的消息" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "回复 %2$s / %3$s 的 %1$s 更新。" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "%s 公众时间表" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "来自所有人的 %s 消息!" @@ -959,7 +948,7 @@ msgid "Conversation" msgstr "确认码" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "通告" @@ -981,7 +970,7 @@ msgstr "您未告知此个人信息" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 #, fuzzy msgid "There was a problem with your session token." msgstr "会话标识有问题,请重试。" @@ -1189,8 +1178,9 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1318,7 +1308,7 @@ msgstr "描述过长(不能超过140字符)。" msgid "Could not update group." msgstr "无法更新组" -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 #, fuzzy msgid "Could not create aliases." msgstr "无法创建收藏。" @@ -1444,7 +1434,7 @@ msgid "Cannot normalize that email address" msgstr "无法识别此电子邮件" #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "不是有效的电子邮件。" @@ -1643,6 +1633,25 @@ msgstr "没有这份通告。" msgid "Cannot read file." msgstr "没有这份通告。" +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "大小不正确。" + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "无法向此用户发送消息。" + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "用户没有个人信息。" + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1801,12 +1810,18 @@ msgstr "admin管理员" msgid "Make this user an admin" msgstr "" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "%s 时间表" + #: actions/grouprss.php:140 #, fuzzy, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "%2$s 上 %1$s 的更新!" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "组" @@ -2410,8 +2425,8 @@ msgstr "连接" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "不支持的数据格式。" @@ -2560,7 +2575,8 @@ msgstr "无法保存新密码。" msgid "Password saved." msgstr "密码已保存。" -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "" @@ -2688,7 +2704,7 @@ msgstr "" msgid "SSL" msgstr "SMS短信" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 #, fuzzy msgid "Never" msgstr "恢复" @@ -2747,11 +2763,11 @@ msgstr "不是有效的电子邮件" msgid "Users self-tagged with %1$s - page %2$d" msgstr "用户自加标签 %s - 第 %d 页" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "通告内容不正确" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" @@ -2829,7 +2845,7 @@ msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "你的标签 (字母letters, 数字numbers, -, ., 和 _), 以逗号或空格分隔" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "语言" @@ -2855,7 +2871,7 @@ msgstr "自动订阅任何订阅我的更新的人(这个选项最适合机器 msgid "Bio is too long (max %d chars)." msgstr "自述过长(不能超过140字符)。" -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "未选择时区。" @@ -3163,7 +3179,7 @@ msgid "Same as password above. Required." msgstr "相同的密码。此项必填。" #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "电子邮件" @@ -3264,7 +3280,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "您在其他兼容的微博客服务的个人信息URL" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "订阅" @@ -3369,6 +3385,16 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "发送给 %1$s 的 %2$s 消息" +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "无法向此用户发送消息。" + +#: actions/revokerole.php:82 +#, fuzzy +msgid "User doesn't have this role." +msgstr "找不到匹配的用户。" + #: actions/rsd.php:146 actions/version.php:157 #, fuzzy msgid "StatusNet" @@ -3384,7 +3410,9 @@ msgstr "无法向此用户发送消息。" msgid "User is already sandboxed." msgstr "用户没有个人信息。" +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "" @@ -3408,7 +3436,7 @@ msgstr "" msgid "Turn on debugging output for sessions." msgstr "" -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 #, fuzzy msgid "Save site settings" @@ -3445,8 +3473,8 @@ msgstr "分页" msgid "Description" msgstr "描述" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "统计" @@ -3581,47 +3609,47 @@ msgstr "" msgid "Group actions" msgstr "组动作" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "%s 的通告聚合" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "%s 的通告聚合" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "%s 的通告聚合" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, php-format msgid "FOAF for %s group" msgstr "%s 的发件箱" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 #, fuzzy msgid "Members" msgstr "注册于" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(没有)" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "所有成员" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 #, fuzzy msgid "Created" msgstr "创建" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3631,7 +3659,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:462 +#: actions/showgroup.php:463 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3642,7 +3670,7 @@ msgstr "" "**%s** 是一个 %%%%site.name%%%% 的用户组,一个微博客服务 [micro-blogging]" "(http://en.wikipedia.org/wiki/Micro-blogging)" -#: actions/showgroup.php:490 +#: actions/showgroup.php:491 #, fuzzy msgid "Admins" msgstr "admin管理员" @@ -3758,150 +3786,139 @@ msgid "User is already silenced." msgstr "用户没有个人信息。" #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +msgid "Basic settings for this StatusNet site" msgstr "" -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "" -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 #, fuzzy msgid "You must have a valid contact email address." msgstr "不是有效的电子邮件" -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "" #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "" - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "" - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "" - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "" -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "" -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 #, fuzzy msgid "Site name" msgstr "新通告" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 #, fuzzy msgid "Contact email address for your site" msgstr "新的电子邮件地址,用于发布 %s 信息" -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 #, fuzzy msgid "Local" msgstr "本地显示" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "" -#: actions/siteadminpanel.php:281 +#: actions/siteadminpanel.php:262 #, fuzzy -msgid "Default site language" +msgid "Default language" msgstr "首选语言" -#: actions/siteadminpanel.php:289 -msgid "Snapshots" -msgstr "" - -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" msgstr "" -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" +#: actions/siteadminpanel.php:271 +msgid "Limits" msgstr "" -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" +#: actions/siteadminpanel.php:274 +msgid "Text limit" msgstr "" -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" +#: actions/siteadminpanel.php:274 +msgid "Maximum number of characters for notices." msgstr "" -#: actions/siteadminpanel.php:301 -msgid "Frequency" +#: actions/siteadminpanel.php:278 +msgid "Dupe limit" msgstr "" -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" +#: actions/siteadminpanel.php:278 +msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "" +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "新通告" -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" -msgstr "" +#: actions/sitenoticeadminpanel.php:67 +#, fuzzy +msgid "Edit site-wide message" +msgstr "新消息" -#: actions/siteadminpanel.php:315 -msgid "Limits" -msgstr "" +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +msgid "Unable to save site notice." +msgstr "无法保存 Twitter 设置!" -#: actions/siteadminpanel.php:318 -msgid "Text limit" +#: actions/sitenoticeadminpanel.php:113 +msgid "Max length for the site-wide notice is 255 chars" msgstr "" -#: actions/siteadminpanel.php:318 -msgid "Maximum number of characters for notices." -msgstr "" +#: actions/sitenoticeadminpanel.php:176 +#, fuzzy +msgid "Site notice text" +msgstr "新通告" -#: actions/siteadminpanel.php:322 -msgid "Dupe limit" +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" msgstr "" -#: actions/siteadminpanel.php:322 -msgid "How long users must wait (in seconds) to post the same thing again." -msgstr "" +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "新通告" #: actions/smssettings.php:58 #, fuzzy @@ -4004,6 +4021,66 @@ msgstr "" msgid "No code entered" msgstr "没有输入验证码" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +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 +#, fuzzy +msgid "Save snapshot settings" +msgstr "头像设置" + #: actions/subedit.php:70 #, fuzzy msgid "You are not subscribed to that profile." @@ -4214,7 +4291,7 @@ msgstr "服务器没有返回个人信息URL。" msgid "Unsubscribed" msgstr "退订" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4421,16 +4498,22 @@ msgstr "%s 组成员, 第 %d 页" msgid "Search for more groups" msgstr "检索人或文字" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, fuzzy, php-format msgid "%s is not a member of any group." msgstr "您未告知此个人信息" -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "%2$s 上 %1$s 的更新!" + #: actions/version.php:73 #, fuzzy, php-format msgid "StatusNet %s" @@ -4474,7 +4557,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 #, fuzzy msgid "Version" msgstr "个人" @@ -4543,42 +4626,42 @@ msgstr "无法添加新URI的信息。" msgid "DB error inserting hashtag: %s" msgstr "添加标签时数据库出错:%s" -#: classes/Notice.php:239 +#: classes/Notice.php:241 #, fuzzy msgid "Problem saving notice. Too long." msgstr "保存通告时出错。" -#: classes/Notice.php:243 +#: classes/Notice.php:245 #, fuzzy msgid "Problem saving notice. Unknown user." msgstr "保存通告时出错。" -#: classes/Notice.php:248 +#: classes/Notice.php:250 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "你在短时间里发布了过多的消息,请深呼吸,过几分钟再发消息。" -#: classes/Notice.php:254 +#: classes/Notice.php:256 #, fuzzy msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "你在短时间里发布了过多的消息,请深呼吸,过几分钟再发消息。" -#: classes/Notice.php:260 +#: classes/Notice.php:262 msgid "You are banned from posting notices on this site." msgstr "在这个网站你被禁止发布消息。" -#: classes/Notice.php:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "保存通告时出错。" -#: classes/Notice.php:911 +#: classes/Notice.php:927 #, fuzzy msgid "Problem saving group inbox." msgstr "保存通告时出错。" -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4607,7 +4690,12 @@ msgstr "未订阅!" msgid "Couldn't delete self-subscription." msgstr "无法删除订阅。" -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "无法删除订阅。" + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "无法删除订阅。" @@ -4616,21 +4704,21 @@ msgstr "无法删除订阅。" msgid "Welcome to %1$s, @%2$s!" msgstr "发送给 %1$s 的 %2$s 消息" -#: classes/User_group.php:462 +#: classes/User_group.php:477 msgid "Could not create group." msgstr "无法创建组。" -#: classes/User_group.php:471 +#: classes/User_group.php:486 #, fuzzy msgid "Could not set group URI." msgstr "无法删除订阅。" -#: classes/User_group.php:492 +#: classes/User_group.php:507 #, fuzzy msgid "Could not set group membership." msgstr "无法删除订阅。" -#: classes/User_group.php:506 +#: classes/User_group.php:521 #, fuzzy msgid "Could not save local group info." msgstr "无法删除订阅。" @@ -4673,198 +4761,192 @@ msgstr "%1$s (%2$s)" msgid "Untitled page" msgstr "无标题页" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "主站导航" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 +#: lib/action.php:430 #, fuzzy msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "个人资料及朋友年表" -#: lib/action.php:442 +#: lib/action.php:433 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "个人" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 +#: lib/action.php:435 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "修改资料" -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "帐号" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 +#: lib/action.php:440 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "无法重定向到服务器:%s" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "连接" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 +#: lib/action.php:446 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "主站导航" -#: lib/action.php:460 +#: lib/action.php:449 #, fuzzy msgctxt "MENU" msgid "Admin" msgstr "admin管理员" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 +#: lib/action.php:453 #, fuzzy, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "使用这个表单来邀请好友和同事加入。" -#: lib/action.php:467 +#: lib/action.php:456 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "邀请" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 +#: lib/action.php:462 #, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "登出本站" -#: lib/action.php:476 +#: lib/action.php:465 #, fuzzy msgctxt "MENU" msgid "Logout" msgstr "登出" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 +#: lib/action.php:470 #, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "创建新帐号" -#: lib/action.php:484 +#: lib/action.php:473 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "注册" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 +#: lib/action.php:476 #, fuzzy msgctxt "TOOLTIP" msgid "Login to the site" msgstr "登入本站" -#: lib/action.php:490 +#: lib/action.php:479 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "登录" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 +#: lib/action.php:482 #, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "帮助" -#: lib/action.php:496 +#: lib/action.php:485 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "帮助" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 +#: lib/action.php:488 #, fuzzy msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "检索人或文字" -#: lib/action.php:502 +#: lib/action.php:491 #, fuzzy msgctxt "MENU" msgid "Search" msgstr "搜索" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 #, fuzzy msgid "Site notice" msgstr "新通告" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "本地显示" -#: lib/action.php:656 +#: lib/action.php:645 #, fuzzy msgid "Page notice" msgstr "新通告" -#: lib/action.php:758 +#: lib/action.php:747 #, fuzzy msgid "Secondary site navigation" msgstr "次项站导航" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "帮助" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "关于" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "常见问题FAQ" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "隐私" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "来源" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "联系人" -#: lib/action.php:782 +#: lib/action.php:771 #, fuzzy msgid "Badge" msgstr "呼叫" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "StatusNet软件注册证" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4873,12 +4955,12 @@ msgstr "" "**%%site.name%%** 是一个微博客服务,提供者为 [%%site.broughtby%%](%%site." "broughtbyurl%%)。" -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** 是一个微博客服务。" -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4889,56 +4971,56 @@ msgstr "" "General Public License](http://www.fsf.org/licensing/licenses/agpl-3.0.html)" "授权。" -#: lib/action.php:832 +#: lib/action.php:821 #, fuzzy msgid "Site content license" msgstr "StatusNet软件注册证" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "全部" -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "注册证" -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "分页" -#: lib/action.php:1172 +#: lib/action.php:1161 #, fuzzy msgid "After" msgstr "« 之后" -#: lib/action.php:1180 +#: lib/action.php:1169 #, fuzzy msgid "Before" msgstr "之前 »" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "" @@ -4955,99 +5037,89 @@ msgid "Changes to that panel are not allowed." msgstr "不允许注册。" #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 #, fuzzy msgid "showForm() not implemented." msgstr "命令尚未实现。" #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 #, fuzzy msgid "saveSettings() not implemented." msgstr "命令尚未实现。" #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 #, fuzzy msgid "Unable to delete design setting." msgstr "无法保存 Twitter 设置!" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 #, fuzzy msgid "Basic site configuration" msgstr "电子邮件地址确认" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 +#: lib/adminpanelaction.php:350 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "邀请" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 #, fuzzy msgid "Design configuration" msgstr "SMS短信确认" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 +#: lib/adminpanelaction.php:358 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "个人" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 #, fuzzy msgid "User configuration" msgstr "SMS短信确认" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -#, fuzzy -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "用户" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 #, fuzzy msgid "Access configuration" msgstr "SMS短信确认" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "接受" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 #, fuzzy msgid "Paths configuration" msgstr "SMS短信确认" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -msgctxt "MENU" -msgid "Paths" -msgstr "" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 #, fuzzy msgid "Sessions configuration" msgstr "SMS短信确认" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "个人" +msgid "Edit site notice" +msgstr "新通告" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "SMS短信确认" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5551,6 +5623,11 @@ msgstr "选择标签缩小清单" msgid "Go" msgstr "执行" +#: lib/grantroleform.php:91 +#, php-format +msgid "Grant this user the \"%s\" role" +msgstr "" + #: lib/groupeditform.php:163 #, fuzzy msgid "URL of the homepage or blog of the group or topic" @@ -6114,10 +6191,6 @@ msgstr "回复" msgid "Favorites" msgstr "收藏夹" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "用户" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "收件箱" @@ -6144,7 +6217,7 @@ msgstr "%s's 的消息的标签" msgid "Unknown" msgstr "未知动作" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "订阅" @@ -6152,25 +6225,25 @@ msgstr "订阅" msgid "All subscriptions" msgstr "所有订阅" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "订阅者" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 #, fuzzy msgid "All subscribers" msgstr "订阅者" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 #, fuzzy msgid "User ID" msgstr "用户" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "用户始于" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "所有组" @@ -6215,7 +6288,12 @@ msgstr "无法删除通告。" msgid "Repeat this notice" msgstr "无法删除通告。" -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, fuzzy, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "该组成员列表。" + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "" @@ -6386,47 +6464,63 @@ msgstr "新消息" msgid "Moderate" msgstr "" -#: lib/util.php:1013 +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "用户没有个人信息。" + +#: lib/userprofile.php:354 +#, fuzzy +msgctxt "role" +msgid "Administrator" +msgstr "admin管理员" + +#: lib/userprofile.php:355 +msgctxt "role" +msgid "Moderator" +msgstr "" + +#: lib/util.php:1015 msgid "a few seconds ago" msgstr "几秒前" -#: lib/util.php:1015 +#: lib/util.php:1017 msgid "about a minute ago" msgstr "一分钟前" -#: lib/util.php:1017 +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "%d 分钟前" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "一小时前" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "%d 小时前" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "一天前" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "%d 天前" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "一个月前" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "%d 个月前" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "一年前" diff --git a/locale/zh_TW/LC_MESSAGES/statusnet.po b/locale/zh_TW/LC_MESSAGES/statusnet.po index 5cca450ca..e7314d5e6 100644 --- a/locale/zh_TW/LC_MESSAGES/statusnet.po +++ b/locale/zh_TW/LC_MESSAGES/statusnet.po @@ -7,19 +7,20 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-02 21:02+0000\n" -"PO-Revision-Date: 2010-03-02 21:04:05+0000\n" +"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"PO-Revision-Date: 2010-03-04 18:57:37+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 (r63186); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hant\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=1; plural=0;\n" #. TRANS: Page title -#: actions/accessadminpanel.php:55 +#. TRANS: Menu item for site administration +#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 #, fuzzy msgid "Access" msgstr "接受" @@ -120,7 +121,7 @@ msgstr "%s與好友" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname -#: actions/all.php:89 actions/all.php:177 actions/allrss.php:115 +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 #: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 #: lib/personalgroupnav.php:100 #, php-format @@ -175,7 +176,7 @@ msgid "" msgstr "" #. TRANS: H1 text -#: actions/all.php:174 +#: actions/all.php:178 #, fuzzy msgid "You and friends" msgstr "%s與好友" @@ -203,11 +204,11 @@ msgstr "" #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 #: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:185 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:152 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 #: actions/apitimelineretweetedtome.php:121 #: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:196 actions/apiusershow.php:101 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "確認碼遺失" @@ -574,7 +575,7 @@ msgid "" "give access to your %4$s account to third parties you trust." msgstr "" -#: actions/apioauthauthorize.php:310 +#: actions/apioauthauthorize.php:310 lib/action.php:438 #, fuzzy msgid "Account" msgstr "關於" @@ -665,18 +666,6 @@ msgstr "%1$s的狀態是%2$s" msgid "%1$s updates favorited by %2$s / %2$s." msgstr "&s的微型部落格" -#: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 -#: actions/grouprss.php:138 actions/userrss.php:90 -#, php-format -msgid "%s timeline" -msgstr "" - -#: actions/apitimelinegroup.php:112 actions/apitimelineuser.php:124 -#: actions/userrss.php:92 -#, php-format -msgid "Updates from %1$s on %2$s!" -msgstr "" - #: actions/apitimelinementions.php:117 #, fuzzy, php-format msgid "%1$s / Updates mentioning %2$s" @@ -687,12 +676,12 @@ msgstr "%1$s的狀態是%2$s" msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:103 +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" msgstr "" -#: actions/apitimelinepublic.php:115 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "" @@ -948,7 +937,7 @@ msgid "Conversation" msgstr "地點" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:216 lib/searchgroupnav.php:82 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 msgid "Notices" msgstr "" @@ -970,7 +959,7 @@ msgstr "無法連結到伺服器:%s" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1228 +#: lib/action.php:1217 msgid "There was a problem with your session token." msgstr "" @@ -1172,8 +1161,9 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174 -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 -#: actions/smssettings.php:181 actions/subscriptions.php:208 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 +#: actions/sitenoticeadminpanel.php:195 actions/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 #: actions/tagother.php:154 actions/useradminpanel.php:294 #: lib/applicationeditform.php:333 lib/applicationeditform.php:334 #: lib/designsettings.php:256 lib/groupeditform.php:202 @@ -1298,7 +1288,7 @@ msgstr "自我介紹過長(共140個字元)" msgid "Could not update group." msgstr "無法更新使用者" -#: actions/editgroup.php:264 classes/User_group.php:478 +#: actions/editgroup.php:264 classes/User_group.php:493 #, fuzzy msgid "Could not create aliases." msgstr "無法存取個人圖像資料" @@ -1421,7 +1411,7 @@ msgid "Cannot normalize that email address" msgstr "" #: actions/emailsettings.php:331 actions/register.php:201 -#: actions/siteadminpanel.php:143 +#: actions/siteadminpanel.php:144 msgid "Not a valid email address." msgstr "此信箱無效" @@ -1613,6 +1603,24 @@ msgstr "無此通知" msgid "Cannot read file." msgstr "無此通知" +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "尺寸錯誤" + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "無法連結到伺服器:%s" + +#: actions/grantrole.php:82 +msgid "User already has this role." +msgstr "" + #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 @@ -1760,12 +1768,18 @@ msgstr "" msgid "Make this user an admin" msgstr "" +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "" + #: actions/grouprss.php:140 #, fuzzy, php-format msgid "Updates from members of %1$s on %2$s!" msgstr "&s的微型部落格" -#: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "" @@ -2328,8 +2342,8 @@ msgstr "連結" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1040 -#: lib/apiaction.php:1068 lib/apiaction.php:1177 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 msgid "Not a supported data format." msgstr "" @@ -2475,7 +2489,8 @@ msgstr "無法存取新密碼" msgid "Password saved." msgstr "" -#: actions/pathsadminpanel.php:59 +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" msgstr "" @@ -2600,7 +2615,7 @@ msgstr "" msgid "SSL" msgstr "" -#: actions/pathsadminpanel.php:323 actions/siteadminpanel.php:294 +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 msgid "Never" msgstr "" @@ -2655,11 +2670,11 @@ msgstr "此信箱無效" msgid "Users self-tagged with %1$s - page %2$d" msgstr "&s的微型部落格" -#: actions/postnotice.php:84 +#: actions/postnotice.php:95 msgid "Invalid notice content" msgstr "" -#: actions/postnotice.php:90 +#: actions/postnotice.php:101 #, php-format msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" @@ -2736,7 +2751,7 @@ msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:151 actions/siteadminpanel.php:280 +#: actions/profilesettings.php:151 msgid "Language" msgstr "" @@ -2762,7 +2777,7 @@ msgstr "" msgid "Bio is too long (max %d chars)." msgstr "自我介紹過長(共140個字元)" -#: actions/profilesettings.php:235 actions/siteadminpanel.php:150 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." msgstr "" @@ -3064,7 +3079,7 @@ msgid "Same as password above. Required." msgstr "" #: actions/register.php:438 actions/register.php:442 -#: actions/siteadminpanel.php:256 lib/accountsettingsaction.php:120 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 msgid "Email" msgstr "電子信箱" @@ -3149,7 +3164,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:368 +#: lib/userprofile.php:394 msgid "Subscribe" msgstr "" @@ -3250,6 +3265,15 @@ msgstr "" msgid "Replies to %1$s on %2$s!" msgstr "&s的微型部落格" +#: actions/revokerole.php:75 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "無法連結到伺服器:%s" + +#: actions/revokerole.php:82 +msgid "User doesn't have this role." +msgstr "" + #: actions/rsd.php:146 actions/version.php:157 #, fuzzy msgid "StatusNet" @@ -3264,7 +3288,9 @@ msgstr "無法連結到伺服器:%s" msgid "User is already sandboxed." msgstr "" +#. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 +#: lib/adminpanelaction.php:390 msgid "Sessions" msgstr "" @@ -3288,7 +3314,7 @@ msgstr "" msgid "Turn on debugging output for sessions." msgstr "" -#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:336 +#: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 #, fuzzy msgid "Save site settings" @@ -3323,8 +3349,8 @@ msgstr "地點" msgid "Description" msgstr "所有訂閱" -#: actions/showapplication.php:192 actions/showgroup.php:437 -#: lib/profileaction.php:174 +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 msgid "Statistics" msgstr "" @@ -3457,47 +3483,47 @@ msgstr "" msgid "Group actions" msgstr "" -#: actions/showgroup.php:336 +#: actions/showgroup.php:337 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "" -#: actions/showgroup.php:342 +#: actions/showgroup.php:343 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "" -#: actions/showgroup.php:348 +#: actions/showgroup.php:349 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "" -#: actions/showgroup.php:353 +#: actions/showgroup.php:354 #, fuzzy, php-format msgid "FOAF for %s group" msgstr "無此通知" -#: actions/showgroup.php:389 actions/showgroup.php:446 lib/groupnav.php:91 +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 #, fuzzy msgid "Members" msgstr "何時加入會員的呢?" -#: actions/showgroup.php:394 lib/profileaction.php:117 -#: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" -#: actions/showgroup.php:400 +#: actions/showgroup.php:401 msgid "All members" msgstr "" -#: actions/showgroup.php:440 +#: actions/showgroup.php:441 #, fuzzy msgid "Created" msgstr "新增" -#: actions/showgroup.php:456 +#: actions/showgroup.php:457 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3507,7 +3533,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:462 +#: actions/showgroup.php:463 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3516,7 +3542,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:490 +#: actions/showgroup.php:491 msgid "Admins" msgstr "" @@ -3627,149 +3653,137 @@ msgid "User is already silenced." msgstr "" #: actions/siteadminpanel.php:69 -msgid "Basic settings for this StatusNet site." +msgid "Basic settings for this StatusNet site" msgstr "" -#: actions/siteadminpanel.php:132 +#: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." msgstr "" -#: actions/siteadminpanel.php:140 +#: actions/siteadminpanel.php:141 #, fuzzy msgid "You must have a valid contact email address." msgstr "此信箱無效" -#: actions/siteadminpanel.php:158 +#: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." msgstr "" #: actions/siteadminpanel.php:165 -msgid "Invalid snapshot report URL." -msgstr "" - -#: actions/siteadminpanel.php:171 -msgid "Invalid snapshot run value." -msgstr "" - -#: actions/siteadminpanel.php:177 -msgid "Snapshot frequency must be a number." -msgstr "" - -#: actions/siteadminpanel.php:183 msgid "Minimum text limit is 140 characters." msgstr "" -#: actions/siteadminpanel.php:189 +#: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." msgstr "" -#: actions/siteadminpanel.php:239 +#: actions/siteadminpanel.php:221 msgid "General" msgstr "" -#: actions/siteadminpanel.php:242 +#: actions/siteadminpanel.php:224 #, fuzzy msgid "Site name" msgstr "新訊息" -#: actions/siteadminpanel.php:243 +#: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" msgstr "" -#: actions/siteadminpanel.php:247 +#: actions/siteadminpanel.php:229 msgid "Brought by" msgstr "" -#: actions/siteadminpanel.php:248 +#: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:252 +#: actions/siteadminpanel.php:234 msgid "Brought by URL" msgstr "" -#: actions/siteadminpanel.php:253 +#: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "" -#: actions/siteadminpanel.php:257 +#: actions/siteadminpanel.php:239 #, fuzzy msgid "Contact email address for your site" msgstr "查無此使用者所註冊的信箱" -#: actions/siteadminpanel.php:263 +#: actions/siteadminpanel.php:245 #, fuzzy msgid "Local" msgstr "地點" -#: actions/siteadminpanel.php:274 +#: actions/siteadminpanel.php:256 msgid "Default timezone" msgstr "" -#: actions/siteadminpanel.php:275 +#: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." msgstr "" -#: actions/siteadminpanel.php:281 -msgid "Default site language" +#: actions/siteadminpanel.php:262 +msgid "Default language" msgstr "" -#: actions/siteadminpanel.php:289 -msgid "Snapshots" -msgstr "" - -#: actions/siteadminpanel.php:292 -msgid "Randomly during Web hit" +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" msgstr "" -#: actions/siteadminpanel.php:293 -msgid "In a scheduled job" +#: actions/siteadminpanel.php:271 +msgid "Limits" msgstr "" -#: actions/siteadminpanel.php:295 -msgid "Data snapshots" +#: actions/siteadminpanel.php:274 +msgid "Text limit" msgstr "" -#: actions/siteadminpanel.php:296 -msgid "When to send statistical data to status.net servers" +#: actions/siteadminpanel.php:274 +msgid "Maximum number of characters for notices." msgstr "" -#: actions/siteadminpanel.php:301 -msgid "Frequency" +#: actions/siteadminpanel.php:278 +msgid "Dupe limit" msgstr "" -#: actions/siteadminpanel.php:302 -msgid "Snapshots will be sent once every N web hits" +#: actions/siteadminpanel.php:278 +msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" -#: actions/siteadminpanel.php:307 -msgid "Report URL" -msgstr "" +#: actions/sitenoticeadminpanel.php:56 +#, fuzzy +msgid "Site Notice" +msgstr "新訊息" -#: actions/siteadminpanel.php:308 -msgid "Snapshots will be sent to this URL" +#: actions/sitenoticeadminpanel.php:67 +msgid "Edit site-wide message" msgstr "" -#: actions/siteadminpanel.php:315 -msgid "Limits" -msgstr "" +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +msgid "Unable to save site notice." +msgstr "新訊息" -#: actions/siteadminpanel.php:318 -msgid "Text limit" +#: actions/sitenoticeadminpanel.php:113 +msgid "Max length for the site-wide notice is 255 chars" msgstr "" -#: actions/siteadminpanel.php:318 -msgid "Maximum number of characters for notices." -msgstr "" +#: actions/sitenoticeadminpanel.php:176 +#, fuzzy +msgid "Site notice text" +msgstr "新訊息" -#: actions/siteadminpanel.php:322 -msgid "Dupe limit" +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" msgstr "" -#: actions/siteadminpanel.php:322 -msgid "How long users must wait (in seconds) to post the same thing again." -msgstr "" +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "新訊息" #: actions/smssettings.php:58 #, fuzzy @@ -3866,6 +3880,66 @@ msgstr "" msgid "No code entered" msgstr "" +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +msgid "Snapshots" +msgstr "" + +#: actions/snapshotadminpanel.php:65 +#, fuzzy +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 +#, fuzzy +msgid "Save snapshot settings" +msgstr "線上即時通設定" + #: actions/subedit.php:70 msgid "You are not subscribed to that profile." msgstr "" @@ -4070,7 +4144,7 @@ msgstr "無確認請求" msgid "Unsubscribed" msgstr "此帳號已註冊" -#: actions/updateprofile.php:62 actions/userauthorization.php:337 +#: actions/updateprofile.php:64 actions/userauthorization.php:337 #, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." @@ -4263,16 +4337,22 @@ msgstr "所有訂閱" msgid "Search for more groups" msgstr "" -#: actions/usergroups.php:153 +#: actions/usergroups.php:157 #, php-format msgid "%s is not a member of any group." msgstr "" -#: actions/usergroups.php:158 +#: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "" + #: actions/version.php:73 #, php-format msgid "StatusNet %s" @@ -4316,7 +4396,7 @@ msgstr "" msgid "Plugins" msgstr "" -#: actions/version.php:196 lib/action.php:778 +#: actions/version.php:196 lib/action.php:767 #, fuzzy msgid "Version" msgstr "地點" @@ -4384,41 +4464,41 @@ msgstr "" msgid "DB error inserting hashtag: %s" msgstr "" -#: classes/Notice.php:239 +#: classes/Notice.php:241 #, fuzzy msgid "Problem saving notice. Too long." msgstr "儲存使用者發生錯誤" -#: classes/Notice.php:243 +#: classes/Notice.php:245 #, fuzzy msgid "Problem saving notice. Unknown user." msgstr "儲存使用者發生錯誤" -#: classes/Notice.php:248 +#: classes/Notice.php:250 msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" -#: classes/Notice.php:254 +#: classes/Notice.php:256 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -#: classes/Notice.php:260 +#: classes/Notice.php:262 msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:326 classes/Notice.php:352 +#: classes/Notice.php:328 classes/Notice.php:354 msgid "Problem saving notice." msgstr "" -#: classes/Notice.php:911 +#: classes/Notice.php:927 #, fuzzy msgid "Problem saving group inbox." msgstr "儲存使用者發生錯誤" -#: classes/Notice.php:1442 +#: classes/Notice.php:1459 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4445,7 +4525,12 @@ msgstr "此帳號已註冊" msgid "Couldn't delete self-subscription." msgstr "無法刪除帳號" -#: classes/Subscription.php:179 lib/subs.php:69 +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "無法刪除帳號" + +#: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." msgstr "無法刪除帳號" @@ -4454,22 +4539,22 @@ msgstr "無法刪除帳號" msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:462 +#: classes/User_group.php:477 #, fuzzy msgid "Could not create group." msgstr "無法存取個人圖像資料" -#: classes/User_group.php:471 +#: classes/User_group.php:486 #, fuzzy msgid "Could not set group URI." msgstr "註冊失敗" -#: classes/User_group.php:492 +#: classes/User_group.php:507 #, fuzzy msgid "Could not set group membership." msgstr "註冊失敗" -#: classes/User_group.php:506 +#: classes/User_group.php:521 #, fuzzy msgid "Could not save local group info." msgstr "註冊失敗" @@ -4513,190 +4598,184 @@ msgstr "%1$s的狀態是%2$s" msgid "Untitled page" msgstr "" -#: lib/action.php:433 +#: lib/action.php:424 msgid "Primary site navigation" msgstr "" #. TRANS: Tooltip for main menu option "Personal" -#: lib/action.php:439 +#: lib/action.php:430 msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:442 +#: lib/action.php:433 #, fuzzy msgctxt "MENU" msgid "Personal" msgstr "地點" #. TRANS: Tooltip for main menu option "Account" -#: lib/action.php:444 +#: lib/action.php:435 #, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "更改密碼" -#: lib/action.php:447 -#, fuzzy -msgctxt "MENU" -msgid "Account" -msgstr "關於" - #. TRANS: Tooltip for main menu option "Services" -#: lib/action.php:450 +#: lib/action.php:440 #, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "無法連結到伺服器:%s" -#: lib/action.php:453 +#: lib/action.php:443 #, fuzzy -msgctxt "MENU" msgid "Connect" msgstr "連結" #. TRANS: Tooltip for menu option "Admin" -#: lib/action.php:457 +#: lib/action.php:446 #, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "確認信箱" -#: lib/action.php:460 +#: lib/action.php:449 msgctxt "MENU" msgid "Admin" msgstr "" #. TRANS: Tooltip for main menu option "Invite" -#: lib/action.php:464 +#: lib/action.php:453 #, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "" -#: lib/action.php:467 +#: lib/action.php:456 #, fuzzy msgctxt "MENU" msgid "Invite" msgstr "尺寸錯誤" #. TRANS: Tooltip for main menu option "Logout" -#: lib/action.php:473 +#: lib/action.php:462 msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "" -#: lib/action.php:476 +#: lib/action.php:465 #, fuzzy msgctxt "MENU" msgid "Logout" msgstr "登出" #. TRANS: Tooltip for main menu option "Register" -#: lib/action.php:481 +#: lib/action.php:470 #, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "新增帳號" -#: lib/action.php:484 +#: lib/action.php:473 #, fuzzy msgctxt "MENU" msgid "Register" msgstr "所有訂閱" #. TRANS: Tooltip for main menu option "Login" -#: lib/action.php:487 +#: lib/action.php:476 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "" -#: lib/action.php:490 +#: lib/action.php:479 #, fuzzy msgctxt "MENU" msgid "Login" msgstr "登入" #. TRANS: Tooltip for main menu option "Help" -#: lib/action.php:493 +#: lib/action.php:482 #, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "求救" -#: lib/action.php:496 +#: lib/action.php:485 #, fuzzy msgctxt "MENU" msgid "Help" msgstr "求救" #. TRANS: Tooltip for main menu option "Search" -#: lib/action.php:499 +#: lib/action.php:488 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "" -#: lib/action.php:502 +#: lib/action.php:491 msgctxt "MENU" msgid "Search" msgstr "" #. TRANS: DT element for site notice. String is hidden in default CSS. -#: lib/action.php:524 +#. TRANS: Menu item for site administration +#: lib/action.php:513 lib/adminpanelaction.php:398 #, fuzzy msgid "Site notice" msgstr "新訊息" -#: lib/action.php:590 +#: lib/action.php:579 msgid "Local views" msgstr "" -#: lib/action.php:656 +#: lib/action.php:645 #, fuzzy msgid "Page notice" msgstr "新訊息" -#: lib/action.php:758 +#: lib/action.php:747 msgid "Secondary site navigation" msgstr "" -#: lib/action.php:763 +#: lib/action.php:752 msgid "Help" msgstr "求救" -#: lib/action.php:765 +#: lib/action.php:754 msgid "About" msgstr "關於" -#: lib/action.php:767 +#: lib/action.php:756 msgid "FAQ" msgstr "常見問題" -#: lib/action.php:771 +#: lib/action.php:760 msgid "TOS" msgstr "" -#: lib/action.php:774 +#: lib/action.php:763 msgid "Privacy" msgstr "" -#: lib/action.php:776 +#: lib/action.php:765 msgid "Source" msgstr "" -#: lib/action.php:780 +#: lib/action.php:769 msgid "Contact" msgstr "好友名單" -#: lib/action.php:782 +#: lib/action.php:771 msgid "Badge" msgstr "" -#: lib/action.php:810 +#: lib/action.php:799 msgid "StatusNet software license" msgstr "" -#: lib/action.php:813 +#: lib/action.php:802 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4705,12 +4784,12 @@ msgstr "" "**%%site.name%%**是由[%%site.broughtby%%](%%site.broughtbyurl%%)所提供的微型" "部落格服務" -#: lib/action.php:815 +#: lib/action.php:804 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%**是個微型部落格" -#: lib/action.php:817 +#: lib/action.php:806 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4718,55 +4797,55 @@ msgid "" "org/licensing/licenses/agpl-3.0.html)." msgstr "" -#: lib/action.php:832 +#: lib/action.php:821 #, fuzzy msgid "Site content license" msgstr "新訊息" -#: lib/action.php:837 +#: lib/action.php:826 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:842 +#: lib/action.php:831 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:845 +#: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:858 +#: lib/action.php:847 msgid "All " msgstr "" -#: lib/action.php:864 +#: lib/action.php:853 msgid "license." msgstr "" -#: lib/action.php:1163 +#: lib/action.php:1152 msgid "Pagination" msgstr "" -#: lib/action.php:1172 +#: lib/action.php:1161 msgid "After" msgstr "" -#: lib/action.php:1180 +#: lib/action.php:1169 #, fuzzy msgid "Before" msgstr "之前的內容»" -#: lib/activity.php:449 +#: lib/activity.php:453 msgid "Can't handle remote content yet." msgstr "" -#: lib/activity.php:477 +#: lib/activity.php:481 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:481 +#: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." msgstr "" @@ -4781,95 +4860,86 @@ msgid "Changes to that panel are not allowed." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:211 +#: lib/adminpanelaction.php:229 msgid "showForm() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:241 +#: lib/adminpanelaction.php:259 msgid "saveSettings() not implemented." msgstr "" #. TRANS: Client error message -#: lib/adminpanelaction.php:265 +#: lib/adminpanelaction.php:283 msgid "Unable to delete design setting." msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:330 +#: lib/adminpanelaction.php:348 #, fuzzy msgid "Basic site configuration" msgstr "確認信箱" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:332 +#: lib/adminpanelaction.php:350 #, fuzzy msgctxt "MENU" msgid "Site" msgstr "新訊息" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:338 +#: lib/adminpanelaction.php:356 #, fuzzy msgid "Design configuration" msgstr "確認信箱" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:340 +#: lib/adminpanelaction.php:358 #, fuzzy msgctxt "MENU" msgid "Design" msgstr "地點" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:346 +#: lib/adminpanelaction.php:364 #, fuzzy msgid "User configuration" msgstr "確認信箱" #. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:348 -msgctxt "MENU" +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" msgstr "" #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:354 +#: lib/adminpanelaction.php:372 #, fuzzy msgid "Access configuration" msgstr "確認信箱" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:356 -#, fuzzy -msgctxt "MENU" -msgid "Access" -msgstr "接受" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:362 +#: lib/adminpanelaction.php:380 #, fuzzy msgid "Paths configuration" msgstr "確認信箱" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:364 -msgctxt "MENU" -msgid "Paths" -msgstr "" - #. TRANS: Menu item title/tooltip -#: lib/adminpanelaction.php:370 +#: lib/adminpanelaction.php:388 #, fuzzy msgid "Sessions configuration" msgstr "確認信箱" -#. TRANS: Menu item for site administration -#: lib/adminpanelaction.php:372 +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 #, fuzzy -msgctxt "MENU" -msgid "Sessions" -msgstr "地點" +msgid "Edit site notice" +msgstr "新訊息" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +#, fuzzy +msgid "Snapshots configuration" +msgstr "確認信箱" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5361,6 +5431,11 @@ msgstr "" 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 "" @@ -5907,10 +5982,6 @@ msgstr "" msgid "Favorites" msgstr "" -#: lib/personalgroupnav.php:115 -msgid "User" -msgstr "" - #: lib/personalgroupnav.php:125 msgid "Inbox" msgstr "" @@ -5936,7 +6007,7 @@ msgstr "" msgid "Unknown" msgstr "" -#: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "" @@ -5944,24 +6015,24 @@ msgstr "" msgid "All subscriptions" msgstr "所有訂閱" -#: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "" -#: lib/profileaction.php:157 +#: lib/profileaction.php:159 #, fuzzy msgid "All subscribers" msgstr "所有訂閱" -#: lib/profileaction.php:178 +#: lib/profileaction.php:180 msgid "User ID" msgstr "" -#: lib/profileaction.php:183 +#: lib/profileaction.php:185 msgid "Member since" msgstr "何時加入會員的呢?" -#: lib/profileaction.php:245 +#: lib/profileaction.php:247 msgid "All groups" msgstr "" @@ -6004,7 +6075,12 @@ msgstr "無此通知" msgid "Repeat this notice" msgstr "無此通知" -#: lib/router.php:668 +#: lib/revokeroleform.php:91 +#, fuzzy, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "無此使用者" + +#: lib/router.php:671 msgid "No single user defined for single-user mode." msgstr "" @@ -6165,47 +6241,62 @@ msgstr "" msgid "Moderate" msgstr "" -#: lib/util.php:1013 -msgid "a few seconds ago" +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "無此通知" + +#: lib/userprofile.php:354 +msgctxt "role" +msgid "Administrator" +msgstr "" + +#: lib/userprofile.php:355 +msgctxt "role" +msgid "Moderator" msgstr "" #: lib/util.php:1015 -msgid "about a minute ago" +msgid "a few seconds ago" msgstr "" #: lib/util.php:1017 +msgid "about a minute ago" +msgstr "" + +#: lib/util.php:1019 #, php-format msgid "about %d minutes ago" msgstr "" -#: lib/util.php:1019 +#: lib/util.php:1021 msgid "about an hour ago" msgstr "" -#: lib/util.php:1021 +#: lib/util.php:1023 #, php-format msgid "about %d hours ago" msgstr "" -#: lib/util.php:1023 +#: lib/util.php:1025 msgid "about a day ago" msgstr "" -#: lib/util.php:1025 +#: lib/util.php:1027 #, php-format msgid "about %d days ago" msgstr "" -#: lib/util.php:1027 +#: lib/util.php:1029 msgid "about a month ago" msgstr "" -#: lib/util.php:1029 +#: lib/util.php:1031 #, php-format msgid "about %d months ago" msgstr "" -#: lib/util.php:1031 +#: lib/util.php:1033 msgid "about a year ago" msgstr "" -- cgit v1.2.3-54-g00ecf From 5dbcc184c9ea70f25d4e10908a0d17a33ac3d1f6 Mon Sep 17 00:00:00 2001 From: Siebrand Mazeland Date: Thu, 4 Mar 2010 20:04:44 +0100 Subject: Add Breton to language.php --- lib/language.php | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/language.php b/lib/language.php index f5ee7fac5..64b59e739 100644 --- a/lib/language.php +++ b/lib/language.php @@ -289,6 +289,7 @@ function get_all_languages() { 'ar' => array('q' => 0.8, 'lang' => 'ar', 'name' => 'Arabic', 'direction' => 'rtl'), 'arz' => array('q' => 0.8, 'lang' => 'arz', 'name' => 'Egyptian Spoken Arabic', 'direction' => 'rtl'), 'bg' => array('q' => 0.8, 'lang' => 'bg', 'name' => 'Bulgarian', 'direction' => 'ltr'), + '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'), 'de' => array('q' => 0.8, 'lang' => 'de', 'name' => 'German', 'direction' => 'ltr'), -- cgit v1.2.3-54-g00ecf From be4b482f13615fb603736cb1e906efb4a9e06fd0 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 4 Mar 2010 14:11:18 -0500 Subject: Updated note on geo location and added a note on user roles --- README | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/README b/README index e729769f8..ca241daef 100644 --- a/README +++ b/README @@ -86,8 +86,9 @@ Notable changes this version: - Support for the new distributed status update standard OStatus , based on PubSubHubbub, Salmon, Webfinger, and Activity Streams. -- Support for location. Notices are (optionally) marked with lat-long - information, and can be shown on a map. +- Support for location using the Geolocation API. Notices are (optionally) + marked with lat-long information with geo microformats, and can be shown + on a map. - No fixed content size. Notice size is configurable, from 1 to unlimited number of characters. Default is still 140! - An authorization framework, allowing different levels of users. @@ -97,6 +98,8 @@ Notable changes this version: - A flag system that lets users flag profiles for moderator review. - Support for OAuth authentication in the Twitter API. +- User roles system that lets the owner of the site to assign + administrator and moderator roles to other users. - A pluggable authentication system. - An authentication plugin for LDAP servers. - Many features that were core in 0.8.x are now plugins, such -- cgit v1.2.3-54-g00ecf From 3060bdafc57fcd32b68388d3ffc341634f0b3d55 Mon Sep 17 00:00:00 2001 From: Siebrand Mazeland Date: Thu, 4 Mar 2010 20:16:30 +0100 Subject: Localisation updates for !StatusNet from !translatewiki.net !sntrans Added Breton. Signed-off-by: Siebrand Mazeland --- locale/br/LC_MESSAGES/statusnet.po | 6106 ++++++++++++++++++++++++++++++++++++ locale/statusnet.po | 2 +- 2 files changed, 6107 insertions(+), 1 deletion(-) create mode 100644 locale/br/LC_MESSAGES/statusnet.po diff --git a/locale/br/LC_MESSAGES/statusnet.po b/locale/br/LC_MESSAGES/statusnet.po new file mode 100644 index 000000000..53e971a31 --- /dev/null +++ b/locale/br/LC_MESSAGES/statusnet.po @@ -0,0 +1,6106 @@ +# Translation of StatusNet to Breton +# +# Author@translatewiki.net: Fulup +# Author@translatewiki.net: Y-M D +# -- +# 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-03-04 19:12+0000\n" +"PO-Revision-Date: 2010-03-04 19:12:57+0000\n" +"Language-Team: Dutch\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\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:374 +msgid "Access" +msgstr "Moned" + +#. TRANS: Page notice +#: actions/accessadminpanel.php:67 +msgid "Site access settings" +msgstr "" + +#. TRANS: Form legend for registration form. +#: actions/accessadminpanel.php:161 +msgid "Registration" +msgstr "Enskrivadur" + +#. TRANS: Checkbox instructions for admin setting "Private" +#: actions/accessadminpanel.php:165 +msgid "Prohibit anonymous users (not logged in) from viewing site?" +msgstr "" + +#. TRANS: Checkbox label for prohibiting anonymous users from viewing site. +#: actions/accessadminpanel.php:167 +msgctxt "LABEL" +msgid "Private" +msgstr "Prevez" + +#. TRANS: Checkbox instructions for admin setting "Invite only" +#: actions/accessadminpanel.php:174 +msgid "Make registration invitation only." +msgstr "Aotreañ an enskrivadur goude bezañ bet pedet hepken." + +#. TRANS: Checkbox label for configuring site as invite only. +#: actions/accessadminpanel.php:176 +msgid "Invite only" +msgstr "Tud pedet hepken" + +#. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) +#: actions/accessadminpanel.php:183 +msgid "Disable new registrations." +msgstr "Diweredekaat an enskrivadurioù nevez." + +#. TRANS: Checkbox label for disabling new user registrations. +#: actions/accessadminpanel.php:185 +msgid "Closed" +msgstr "Serr" + +#. TRANS: Title / tooltip for button to save access settings in site admin panel +#: actions/accessadminpanel.php:202 +msgid "Save access settings" +msgstr "Enrollañ an arventennoù moned" + +#: actions/accessadminpanel.php:203 +msgctxt "BUTTON" +msgid "Save" +msgstr "Enrollañ" + +#. TRANS: Server error when page not found (404) +#: actions/all.php:64 actions/public.php:98 actions/replies.php:93 +#: actions/showfavorites.php:138 actions/tag.php:52 +msgid "No such page" +msgstr "N'eus ket eus ar bajenn-se" + +#: actions/all.php:75 actions/allrss.php:68 +#: actions/apiaccountupdatedeliverydevice.php:113 +#: 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:75 actions/apigroupcreate.php:112 +#: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 +#: actions/apigroupleave.php:99 actions/apigrouplist.php:90 +#: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 +#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 +#: actions/apitimelineuser.php:81 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:91 actions/userrss.php:38 +#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 +#: lib/command.php:355 lib/command.php:401 lib/command.php:462 +#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 +#: lib/profileaction.php:77 +msgid "No such user." +msgstr "N'eus ket eus an implijer-se." + +#. TRANS: Page title. %1$s is user nickname, %2$d is page number +#: actions/all.php:86 +#, php-format +msgid "%1$s and friends, page %2$d" +msgstr "%1$s hag e vignoned, pajenn %2$d" + +#. TRANS: Page title. %1$s is user nickname +#. TRANS: H1 text. %1$s is user nickname +#: actions/all.php:89 actions/all.php:181 actions/allrss.php:115 +#: actions/apitimelinefriends.php:114 actions/apitimelinehome.php:115 +#: lib/personalgroupnav.php:100 +#, php-format +msgid "%s and friends" +msgstr "%s hag e vignoned" + +#. TRANS: %1$s is user nickname +#: actions/all.php:103 +#, php-format +msgid "Feed for friends of %s (RSS 1.0)" +msgstr "Gwazh evit mignoned %s (RSS 1.0)" + +#. TRANS: %1$s is user nickname +#: actions/all.php:112 +#, php-format +msgid "Feed for friends of %s (RSS 2.0)" +msgstr "Gwazh evit mignoned %s (RSS 2.0)" + +#. TRANS: %1$s is user nickname +#: actions/all.php:121 +#, php-format +msgid "Feed for friends of %s (Atom)" +msgstr "Gwazh evit mignoned %s (Atom)" + +#. TRANS: %1$s is user nickname +#: actions/all.php:134 +#, php-format +msgid "" +"This is the timeline for %s and friends but no one has posted anything yet." +msgstr "" + +#: actions/all.php:139 +#, php-format +msgid "" +"Try subscribing to more people, [join a group](%%action.groups%%) or post " +"something yourself." +msgstr "" + +#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" +#: actions/all.php:142 +#, php-format +msgid "" +"You can try to [nudge %1$s](../%2$s) from his profile or [post something to " +"his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." +msgstr "" + +#: actions/all.php:145 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." +msgstr "" + +#. TRANS: H1 text +#: actions/all.php:178 +msgid "You and friends" +msgstr "C'hwi hag o mignoned" + +#: actions/allrss.php:119 actions/apitimelinefriends.php:119 +#: actions/apitimelinehome.php:120 +#, php-format +msgid "Updates from %1$s and friends on %2$s!" +msgstr "Hizivadennoù %1$s ha mignoned e %2$s!" + +#: actions/apiaccountratelimitstatus.php:70 +#: actions/apiaccountupdatedeliverydevice.php:93 +#: actions/apiaccountupdateprofile.php:97 +#: actions/apiaccountupdateprofilebackgroundimage.php:94 +#: actions/apiaccountupdateprofilecolors.php:118 +#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156 +#: actions/apifavoritecreate.php:99 actions/apifavoritedestroy.php:100 +#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100 +#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:138 +#: actions/apigroupismember.php:114 actions/apigroupjoin.php:155 +#: actions/apigroupleave.php:141 actions/apigrouplist.php:132 +#: actions/apigrouplistall.php:120 actions/apigroupmembership.php:106 +#: actions/apigroupshow.php:115 actions/apihelptest.php:88 +#: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 +#: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 +#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 +#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 +#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 +#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelineretweetedtome.php:121 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 +#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +msgid "API method not found." +msgstr "N'eo ket bet kavet an hentenn API !" + +#: actions/apiaccountupdatedeliverydevice.php:85 +#: 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:117 +#: actions/apifavoritecreate.php:90 actions/apifavoritedestroy.php:91 +#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91 +#: actions/apigroupcreate.php:104 actions/apigroupjoin.php:91 +#: actions/apigroupleave.php:91 actions/apistatusesretweet.php:65 +#: actions/apistatusesupdate.php:118 +msgid "This method requires a POST." +msgstr "Ezhomm en deus an argerzh-mañ eus ur POST." + +#: actions/apiaccountupdatedeliverydevice.php:105 +msgid "" +"You must specify a parameter named 'device' with a value of one of: sms, im, " +"none" +msgstr "" + +#: actions/apiaccountupdatedeliverydevice.php:132 +msgid "Could not update user." +msgstr "Diposubl eo hizivaat an implijer." + +#: 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:98 lib/galleryaction.php:66 +#: lib/profileaction.php:84 +msgid "User has no profile." +msgstr "An implijer-mañ n'eus profil ebet dezhañ." + +#: actions/apiaccountupdateprofile.php:147 +msgid "Could not save profile." +msgstr "Diposubl eo enrollañ ar profil." + +#: actions/apiaccountupdateprofilebackgroundimage.php:108 +#: actions/apiaccountupdateprofileimage.php:97 +#: actions/apistatusesupdate.php:131 actions/avatarsettings.php:257 +#: actions/designadminpanel.php:122 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 "" + +#: 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 "" + +#: actions/apiaccountupdateprofilebackgroundimage.php:187 +#: actions/apiaccountupdateprofilecolors.php:142 +msgid "Could not update your design." +msgstr "Diposubl eo hizivat ho design." + +#: actions/apiblockcreate.php:105 +msgid "You cannot block yourself!" +msgstr "Ne c'helloc'h ket ho stankañ ho unan !" + +#: actions/apiblockcreate.php:126 +msgid "Block user failed." +msgstr "N'eo ket bet stanke an implijer." + +#: actions/apiblockdestroy.php:114 +msgid "Unblock user failed." +msgstr "N'eus ket bet tu distankañ an implijer." + +#: actions/apidirectmessage.php:89 +#, php-format +msgid "Direct messages from %s" +msgstr "Kemennadennoù war-eeun kaset gant %s" + +#: actions/apidirectmessage.php:93 +#, php-format +msgid "All the direct messages sent from %s" +msgstr "An holl gemennadennoù war-eeun kaset gant %s" + +#: actions/apidirectmessage.php:101 +#, php-format +msgid "Direct messages to %s" +msgstr "Kemennadennoù war-eeun kaset da %s" + +#: actions/apidirectmessage.php:105 +#, php-format +msgid "All the direct messages sent to %s" +msgstr "An holl gemennadennoù war-eeun kaset da %s" + +#: actions/apidirectmessagenew.php:126 +msgid "No message text!" +msgstr "Kemenadenn hep testenn !" + +#: actions/apidirectmessagenew.php:135 actions/newmessage.php:150 +#, php-format +msgid "That's too long. Max message size is %d chars." +msgstr "Re hir eo ! Ment hirañ ar gemenadenn a zo a %d arouezenn." + +#: actions/apidirectmessagenew.php:146 +msgid "Recipient user not found." +msgstr "N'eo ket bet kavet ar resever." + +#: actions/apidirectmessagenew.php:150 +msgid "Can't send direct messages to users who aren't your friend." +msgstr "" +"Ne c'helloc'h ket kas kemennadennoù personel d'an implijerien n'int ket ho " +"mignoned." + +#: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:109 +#: actions/apistatusesdestroy.php:113 +msgid "No status found with that ID." +msgstr "N'eo bet kavet statud ebet gant an ID-mañ." + +#: actions/apifavoritecreate.php:119 +msgid "This status is already a favorite." +msgstr "Ur pennroll eo dija an ali-mañ." + +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +msgid "Could not create favorite." +msgstr "Diposupl eo krouiñ ar pennroll-mañ." + +#: actions/apifavoritedestroy.php:122 +msgid "That status is not a favorite." +msgstr "N'eo ket ar statud-mañ ur pennroll." + +#: actions/apifavoritedestroy.php:134 actions/disfavor.php:87 +msgid "Could not delete favorite." +msgstr "Diposupl eo dilemel ar pennroll-mañ." + +#: actions/apifriendshipscreate.php:109 +msgid "Could not follow user: User not found." +msgstr "Diposupl eo heuliañ an implijer : N'eo ket bet kavet an implijer." + +#: actions/apifriendshipscreate.php:118 +#, php-format +msgid "Could not follow user: %s is already on your list." +msgstr "Diposubl eo heuliañ an implijer : war ho listenn emañ %s dija." + +#: actions/apifriendshipsdestroy.php:109 +msgid "Could not unfollow user: User not found." +msgstr "" +"Diposupl eo paouez heuliañ an implijer : N'eo ket bet kavet an implijer." + +#: actions/apifriendshipsdestroy.php:120 +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." +msgstr "" + +#: actions/apifriendshipsshow.php:134 +msgid "Could not determine source user." +msgstr "Diposubl eo termeniñ an implijer mammenn." + +#: actions/apifriendshipsshow.php:142 +msgid "Could not find target user." +msgstr "Diposubl eo kavout an implijer pal." + +#: actions/apigroupcreate.php:166 actions/editgroup.php:186 +#: actions/newgroup.php:126 actions/profilesettings.php:215 +#: actions/register.php:205 +msgid "Nickname must have only lowercase letters and numbers and no spaces." +msgstr "" + +#: actions/apigroupcreate.php:175 actions/editgroup.php:190 +#: actions/newgroup.php:130 actions/profilesettings.php:238 +#: actions/register.php:208 +msgid "Nickname already in use. Try another one." +msgstr "Implijet eo dija al lesanv-se. Klaskit unan all." + +#: actions/apigroupcreate.php:182 actions/editgroup.php:193 +#: actions/newgroup.php:133 actions/profilesettings.php:218 +#: actions/register.php:210 +msgid "Not a valid nickname." +msgstr "N'eo ket ul lesanv mat." + +#: actions/apigroupcreate.php:198 actions/editapplication.php:215 +#: actions/editgroup.php:199 actions/newapplication.php:203 +#: actions/newgroup.php:139 actions/profilesettings.php:222 +#: actions/register.php:217 +msgid "Homepage is not a valid URL." +msgstr "N'eo ket chomlec'h al lec'hienn personel un URL reizh." + +#: actions/apigroupcreate.php:207 actions/editgroup.php:202 +#: actions/newgroup.php:142 actions/profilesettings.php:225 +#: actions/register.php:220 +msgid "Full name is too long (max 255 chars)." +msgstr "Re hir eo an anv klok (255 arouezenn d'ar muiañ)." + +#: actions/apigroupcreate.php:215 actions/editapplication.php:190 +#: actions/newapplication.php:172 +#, php-format +msgid "Description is too long (max %d chars)." +msgstr "Re hir eo an deskrivadur (%d arouezenn d'ar muiañ)." + +#: actions/apigroupcreate.php:226 actions/editgroup.php:208 +#: actions/newgroup.php:148 actions/profilesettings.php:232 +#: actions/register.php:227 +msgid "Location is too long (max 255 chars)." +msgstr "Re hir eo al lec'hiadur (255 arouezenn d'ar muiañ)." + +#: actions/apigroupcreate.php:245 actions/editgroup.php:219 +#: actions/newgroup.php:159 +#, php-format +msgid "Too many aliases! Maximum %d." +msgstr "Re a aliasoù ! %d d'ar muiañ." + +#: actions/apigroupcreate.php:266 actions/editgroup.php:228 +#: actions/newgroup.php:168 +#, php-format +msgid "Invalid alias: \"%s\"" +msgstr "Alias fall : \"%s\"" + +#: actions/apigroupcreate.php:275 actions/editgroup.php:232 +#: actions/newgroup.php:172 +#, php-format +msgid "Alias \"%s\" already in use. Try another one." +msgstr "Implijet e vez an alias \"%s\" dija. Klaskit gant unan all." + +#: actions/apigroupcreate.php:288 actions/editgroup.php:238 +#: actions/newgroup.php:178 +msgid "Alias can't be the same as nickname." +msgstr "Ne c'hell ket an alias bezañ ar memes hini eget al lesanv." + +#: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 +#: actions/apigroupleave.php:104 actions/apigroupmembership.php:91 +#: actions/apigroupshow.php:82 actions/apitimelinegroup.php:91 +msgid "Group not found!" +msgstr "N'eo ket bet kavet ar strollad" + +#: actions/apigroupjoin.php:110 actions/joingroup.php:100 +msgid "You are already a member of that group." +msgstr "Un ezel eus ar strollad-mañ eo dija." + +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +msgid "You have been blocked from that group by the admin." +msgstr "Stanket oc'h bet eus ar strollad-mañ gant ur merour." + +#: actions/apigroupjoin.php:138 actions/joingroup.php:134 +#, php-format +msgid "Could not join user %1$s to group %2$s." +msgstr "Diposubl eo stagañ an implijer %1$s d'ar strollad %2$s." + +#: actions/apigroupleave.php:114 +msgid "You are not a member of this group." +msgstr "N'oc'h ket ezel eus ar strollad-mañ." + +#: actions/apigroupleave.php:124 actions/leavegroup.php:129 +#, php-format +msgid "Could not remove user %1$s from group %2$s." +msgstr "Diposubl eo dilemel an implijer %1$s deus ar strollad %2$s." + +#: actions/apigrouplist.php:95 +#, php-format +msgid "%s's groups" +msgstr "Strollad %s" + +#: actions/apigrouplistall.php:90 actions/usergroups.php:62 +#, php-format +msgid "%s groups" +msgstr "Strolladoù %s" + +#: actions/apigrouplistall.php:94 +#, php-format +msgid "groups on %s" +msgstr "strolladoù war %s" + +#: actions/apioauthauthorize.php:101 +msgid "No oauth_token parameter provided." +msgstr "Arventenn oauth_token nann-roet." + +#: actions/apioauthauthorize.php:106 +msgid "Invalid token." +msgstr "Fichenn direizh." + +#: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 +#: actions/deletenotice.php:157 actions/disfavor.php:74 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:54 +#: actions/groupblock.php:66 actions/grouplogo.php:312 +#: actions/groupunblock.php:66 actions/imsettings.php:206 +#: actions/invite.php:56 actions/login.php:115 actions/makeadmin.php:66 +#: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 +#: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135 +#: actions/othersettings.php:145 actions/passwordsettings.php:138 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 +#: actions/register.php:165 actions/remotesubscribe.php:77 +#: actions/repeat.php:83 actions/smssettings.php:228 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 "" + +#: actions/apioauthauthorize.php:135 +msgid "Invalid nickname / password!" +msgstr "Lesanv / ger tremen direizh !" + +#: actions/apioauthauthorize.php:159 +msgid "Database error deleting OAuth application user." +msgstr "" + +#: actions/apioauthauthorize.php:185 +msgid "Database error inserting OAuth application user." +msgstr "" + +#: actions/apioauthauthorize.php:214 +#, php-format +msgid "" +"The request token %s has been authorized. Please exchange it for an access " +"token." +msgstr "" + +#: actions/apioauthauthorize.php:227 +#, php-format +msgid "The request token %s has been denied and revoked." +msgstr "" + +#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 +#: actions/designadminpanel.php:103 actions/editapplication.php:139 +#: actions/emailsettings.php:256 actions/grouplogo.php:322 +#: actions/imsettings.php:220 actions/newapplication.php:121 +#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44 +#: actions/smssettings.php:248 lib/designsettings.php:304 +msgid "Unexpected form submission." +msgstr "" + +#: actions/apioauthauthorize.php:259 +msgid "An application would like to connect to your account" +msgstr "" + +#: actions/apioauthauthorize.php:276 +msgid "Allow or deny access" +msgstr "Aotreañ pe nac'h ar moned" + +#: actions/apioauthauthorize.php:292 +#, php-format +msgid "" +"The application %1$s by %2$s would like " +"the ability to %3$s your %4$s account data. You should only " +"give access to your %4$s account to third parties you trust." +msgstr "" + +#: actions/apioauthauthorize.php:310 lib/action.php:438 +msgid "Account" +msgstr "Kont" + +#: actions/apioauthauthorize.php:313 actions/login.php:230 +#: actions/profilesettings.php:106 actions/register.php:424 +#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/userauthorization.php:145 lib/groupeditform.php:152 +#: lib/userprofile.php:131 +msgid "Nickname" +msgstr "Lesanv" + +#: actions/apioauthauthorize.php:316 actions/login.php:233 +#: actions/register.php:429 lib/accountsettingsaction.php:116 +msgid "Password" +msgstr "Ger-tremen" + +#: actions/apioauthauthorize.php:328 +msgid "Deny" +msgstr "Nac'hañ" + +#: actions/apioauthauthorize.php:334 +msgid "Allow" +msgstr "Aotreañ" + +#: actions/apioauthauthorize.php:351 +msgid "Allow or deny access to your account information." +msgstr "Aotreañ pe nac'hañ ar moned da ditouroù ho kont." + +#: actions/apistatusesdestroy.php:107 +msgid "This method requires a POST or DELETE." +msgstr "Ezhomm en deus an argerzh-mañ ur POST pe un DELETE." + +#: actions/apistatusesdestroy.php:130 +msgid "You may not delete another user's status." +msgstr "Ne c'helloc'h ket dilemel statud un implijer all." + +#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 +#: actions/deletenotice.php:52 actions/shownotice.php:92 +msgid "No such notice." +msgstr "N'eus ket eus an ali-se." + +#: actions/apistatusesretweet.php:83 +msgid "Cannot repeat your own notice." +msgstr "Ne c'helloc'h ket adlavar ho alioù." + +#: actions/apistatusesretweet.php:91 +msgid "Already repeated that notice." +msgstr "Adlavaret o peus dija an ali-mañ." + +#: actions/apistatusesshow.php:138 +msgid "Status deleted." +msgstr "Statud diverket." + +#: actions/apistatusesshow.php:144 +msgid "No status with that ID found." +msgstr "N'eo ket bet kavet a statud evit an ID-mañ" + +#: actions/apistatusesupdate.php:161 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:202 +msgid "Not found" +msgstr "N'eo ket bet kavet" + +#: actions/apistatusesupdate.php:225 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 +msgid "Unsupported format." +msgstr "Diembreget eo ar furmad-se." + +#: actions/apitimelinefavorites.php:108 +#, php-format +msgid "%1$s / Favorites from %2$s" +msgstr "%1$s / Pennroll %2$s" + +#: actions/apitimelinefavorites.php:117 +#, php-format +msgid "%1$s updates favorited by %2$s / %2$s." +msgstr "%1$s statud pennroll da %2$s / %2$s." + +#: actions/apitimelinementions.php:117 +#, php-format +msgid "%1$s / Updates mentioning %2$s" +msgstr "%1$s / Hizivadennoù a veneg %2$s" + +#: actions/apitimelinementions.php:127 +#, php-format +msgid "%1$s updates that reply to updates from %2$s / %3$s." +msgstr "" + +#: actions/apitimelinepublic.php:107 actions/publicrss.php:103 +#, php-format +msgid "%s public timeline" +msgstr "Oberezhioù publik %s" + +#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#, php-format +msgid "%s updates from everyone!" +msgstr "%s statud an holl !" + +#: actions/apitimelineretweetedtome.php:111 +#, php-format +msgid "Repeated to %s" +msgstr "Adkemeret evit %s" + +#: actions/apitimelineretweetsofme.php:114 +#, php-format +msgid "Repeats of %s" +msgstr "Adkemeret eus %s" + +#: actions/apitimelinetag.php:102 actions/tag.php:67 +#, php-format +msgid "Notices tagged with %s" +msgstr "Alioù merket gant %s" + +#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#, php-format +msgid "Updates tagged with %1$s on %2$s!" +msgstr "" + +#: actions/apiusershow.php:96 +msgid "Not found." +msgstr "N'eo ket bet kavet." + +#: actions/attachment.php:73 +msgid "No such attachment." +msgstr "N'eo ket bet kavet ar restr stag." + +#: 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 "Lesanv ebet." + +#: actions/avatarbynickname.php:64 +msgid "No size." +msgstr "Ment ebet." + +#: actions/avatarbynickname.php:69 +msgid "Invalid size." +msgstr "Ment direizh." + +#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: lib/accountsettingsaction.php:112 +msgid "Avatar" +msgstr "Avatar" + +#: actions/avatarsettings.php:78 +#, php-format +msgid "You can upload your personal avatar. The maximum file size is %s." +msgstr "" + +#: actions/avatarsettings.php:106 actions/avatarsettings.php:185 +#: actions/remotesubscribe.php:191 actions/userauthorization.php:72 +#: actions/userrss.php:103 +msgid "User without matching profile" +msgstr "Implijer hep profil klotaus" + +#: actions/avatarsettings.php:119 actions/avatarsettings.php:197 +#: actions/grouplogo.php:254 +msgid "Avatar settings" +msgstr "Arventennoù an avatar" + +#: actions/avatarsettings.php:127 actions/avatarsettings.php:205 +#: actions/grouplogo.php:202 actions/grouplogo.php:262 +msgid "Original" +msgstr "Orin" + +#: actions/avatarsettings.php:142 actions/avatarsettings.php:217 +#: actions/grouplogo.php:213 actions/grouplogo.php:274 +msgid "Preview" +msgstr "Rakwelet" + +#: actions/avatarsettings.php:149 actions/showapplication.php:252 +#: lib/deleteuserform.php:66 lib/noticelist.php:655 +msgid "Delete" +msgstr "Diverkañ" + +#: actions/avatarsettings.php:166 actions/grouplogo.php:236 +msgid "Upload" +msgstr "Enporzhiañ" + +#: actions/avatarsettings.php:231 actions/grouplogo.php:289 +msgid "Crop" +msgstr "Adframmañ" + +#: actions/avatarsettings.php:328 +msgid "Pick a square area of the image to be your avatar" +msgstr "" + +#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +msgid "Lost our file data." +msgstr "Kollet eo bet roadennoù." + +#: actions/avatarsettings.php:366 +msgid "Avatar updated." +msgstr "Hizivaet eo bet an avatar." + +#: actions/avatarsettings.php:369 +msgid "Failed updating avatar." +msgstr "Ur gudenn 'zo bet e-pad hizivadenn an avatar." + +#: actions/avatarsettings.php:393 +msgid "Avatar deleted." +msgstr "Dilammet eo bet an Avatar." + +#: actions/block.php:69 +msgid "You already blocked that user." +msgstr "Stanket o peus dija an implijer-mañ." + +#: actions/block.php:105 actions/block.php:128 actions/groupblock.php:160 +msgid "Block user" +msgstr "Stankañ an implijer-mañ" + +#: actions/block.php:130 +msgid "" +"Are you sure you want to block this user? Afterwards, they will be " +"unsubscribed from you, unable to subscribe to you in the future, and you " +"will not be notified of any @-replies from them." +msgstr "" + +#: actions/block.php:143 actions/deleteapplication.php:153 +#: actions/deletenotice.php:145 actions/deleteuser.php:150 +#: actions/groupblock.php:178 +msgid "No" +msgstr "Ket" + +#: actions/block.php:143 actions/deleteuser.php:150 +msgid "Do not block this user" +msgstr "Arabat stankañ an implijer-mañ" + +#: actions/block.php:144 actions/deleteapplication.php:158 +#: actions/deletenotice.php:146 actions/deleteuser.php:151 +#: actions/groupblock.php:179 lib/repeatform.php:132 +msgid "Yes" +msgstr "Ya" + +#: actions/block.php:144 actions/groupmembers.php:355 lib/blockform.php:80 +msgid "Block this user" +msgstr "Stankañ an implijer-mañ" + +#: actions/block.php:167 +msgid "Failed to save block information." +msgstr "Diposubl eo enrollañ an titouroù stankañ." + +#: 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:212 +#: lib/command.php:260 +msgid "No such group." +msgstr "N'eus ket eus ar strollad-se." + +#: actions/blockedfromgroup.php:97 +#, php-format +msgid "%s blocked profiles" +msgstr "%s profil stanket" + +#: actions/blockedfromgroup.php:100 +#, php-format +msgid "%1$s blocked profiles, page %2$d" +msgstr "%1$s profil stanket, pajenn %2$d" + +#: actions/blockedfromgroup.php:115 +msgid "A list of the users blocked from joining this group." +msgstr "" +"Ur roll eus an implijerien evit pere eo stanket an enskrivadur d'ar strollad." + +#: actions/blockedfromgroup.php:288 +msgid "Unblock user from group" +msgstr "Distankañ implijer ar strollad" + +#: actions/blockedfromgroup.php:320 lib/unblockform.php:69 +msgid "Unblock" +msgstr "Distankañ" + +#: actions/blockedfromgroup.php:320 lib/unblockform.php:80 +msgid "Unblock this user" +msgstr "Distankañ an implijer-se" + +#: actions/bookmarklet.php:50 +msgid "Post to " +msgstr "Postañ war " + +#: actions/confirmaddress.php:75 +msgid "No confirmation code." +msgstr "Kod kadarnaat ebet." + +#: actions/confirmaddress.php:80 +msgid "Confirmation code not found." +msgstr "N'eo ket bet kavet ar c'hod kadarnaat." + +#: actions/confirmaddress.php:85 +msgid "That confirmation code is not for you!" +msgstr "N'eo ket ar c'hod-se evidoc'h !" + +#: actions/confirmaddress.php:90 +#, php-format +msgid "Unrecognized address type %s" +msgstr "N'eo ket bet anavezet seurt ar chomlec'h %s" + +#: actions/confirmaddress.php:94 +msgid "That address has already been confirmed." +msgstr "Kadarnaet eo bet dija ar chomlec'h-mañ." + +#: actions/confirmaddress.php:114 actions/emailsettings.php:296 +#: actions/emailsettings.php:427 actions/imsettings.php:258 +#: actions/imsettings.php:401 actions/othersettings.php:174 +#: actions/profilesettings.php:283 actions/smssettings.php:278 +#: actions/smssettings.php:420 +msgid "Couldn't update user." +msgstr "Diposubl eo hizivaat an implijer." + +#: actions/confirmaddress.php:126 actions/emailsettings.php:391 +#: actions/imsettings.php:363 actions/smssettings.php:382 +msgid "Couldn't delete email confirmation." +msgstr "Diposubl eo dilemel ar postel kadarnadur." + +#: actions/confirmaddress.php:144 +msgid "Confirm address" +msgstr "Chomlec'h kadarnaet" + +#: actions/confirmaddress.php:159 +#, php-format +msgid "The address \"%s\" has been confirmed for your account." +msgstr "Kadarnaet eo bet ar chomlec'h \"%s\" evit ho kont." + +#: actions/conversation.php:99 +msgid "Conversation" +msgstr "Kaozeadenn" + +#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 +#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +msgid "Notices" +msgstr "Ali" + +#: actions/deleteapplication.php:63 +msgid "You must be logged in to delete an application." +msgstr "Rankout a reoc'h bezañ kevreet evit dilemel ur poellad." + +#: actions/deleteapplication.php:71 +msgid "Application not found." +msgstr "N'eo ket bet kavet ar poellad" + +#: actions/deleteapplication.php:78 actions/editapplication.php:77 +#: actions/showapplication.php:94 +msgid "You are not the owner of this application." +msgstr "N'oc'h ket perc'henn ar poellad-se." + +#: actions/deleteapplication.php:102 actions/editapplication.php:127 +#: actions/newapplication.php:110 actions/showapplication.php:118 +#: lib/action.php:1217 +msgid "There was a problem with your session token." +msgstr "" + +#: actions/deleteapplication.php:123 actions/deleteapplication.php:147 +msgid "Delete application" +msgstr "Dilemel ar poelad" + +#: actions/deleteapplication.php:149 +msgid "" +"Are you sure you want to delete this application? This will clear all data " +"about the application from the database, including all existing user " +"connections." +msgstr "" + +#: actions/deleteapplication.php:156 +msgid "Do not delete this application" +msgstr "Arabat eo dilemel ar poellad-mañ" + +#: actions/deleteapplication.php:160 +msgid "Delete this application" +msgstr "Dilemel ar poelad-se" + +#. TRANS: Client error message +#: 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:63 +#: lib/settingsaction.php:72 +msgid "Not logged in." +msgstr "Nann-luget." + +#: actions/deletenotice.php:71 +msgid "Can't delete this notice." +msgstr "Diposupl eo dilemel an ali-mañ." + +#: actions/deletenotice.php:103 +msgid "" +"You are about to permanently delete a notice. Once this is done, it cannot " +"be undone." +msgstr "" + +#: actions/deletenotice.php:109 actions/deletenotice.php:141 +msgid "Delete notice" +msgstr "Dilemel un ali" + +#: actions/deletenotice.php:144 +msgid "Are you sure you want to delete this notice?" +msgstr "Ha sur oc'h ho peus c'hoant dilemel an ali-mañ ?" + +#: actions/deletenotice.php:145 +msgid "Do not delete this notice" +msgstr "Arabat dilemel an ali-mañ" + +#: actions/deletenotice.php:146 lib/noticelist.php:655 +msgid "Delete this notice" +msgstr "Dilemel an ali-mañ" + +#: actions/deleteuser.php:67 +msgid "You cannot delete users." +msgstr "Ne c'helloc'h ket diverkañ implijerien" + +#: actions/deleteuser.php:74 +msgid "You can only delete local users." +msgstr "Ne c'helloc'h nemet dilemel an implijerien lec'hel." + +#: actions/deleteuser.php:110 actions/deleteuser.php:133 +msgid "Delete user" +msgstr "Diverkañ an implijer" + +#: 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 "" + +#: actions/deleteuser.php:151 lib/deleteuserform.php:77 +msgid "Delete this user" +msgstr "Diverkañ an implijer-se" + +#: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 +#: lib/groupnav.php:119 +msgid "Design" +msgstr "Design" + +#: actions/designadminpanel.php:73 +msgid "Design settings for this StatusNet site." +msgstr "Arventennoù design evit al lec'hienn StatusNet-mañ." + +#: actions/designadminpanel.php:275 +msgid "Invalid logo URL." +msgstr "URL fall evit al logo." + +#: actions/designadminpanel.php:279 +#, php-format +msgid "Theme not available: %s" +msgstr "N'eus ket tu kaout an dodenn : %s" + +#: actions/designadminpanel.php:375 +msgid "Change logo" +msgstr "Cheñch al logo" + +#: actions/designadminpanel.php:380 +msgid "Site logo" +msgstr "Logo al lec'hienn" + +#: actions/designadminpanel.php:387 +msgid "Change theme" +msgstr "Lakaat un dodenn all" + +#: actions/designadminpanel.php:404 +msgid "Site theme" +msgstr "Dodenn al lec'hienn" + +#: actions/designadminpanel.php:405 +msgid "Theme for the site." +msgstr "Dodenn evit al lec'hienn." + +#: actions/designadminpanel.php:417 lib/designsettings.php:101 +msgid "Change background image" +msgstr "Kemmañ ar skeudenn foñs" + +#: actions/designadminpanel.php:422 actions/designadminpanel.php:497 +#: lib/designsettings.php:178 +msgid "Background" +msgstr "Background" + +#: actions/designadminpanel.php:427 +#, php-format +msgid "" +"You can upload a background image for the site. The maximum file size is %1" +"$s." +msgstr "" + +#: actions/designadminpanel.php:457 lib/designsettings.php:139 +msgid "On" +msgstr "Gweredekaet" + +#: actions/designadminpanel.php:473 lib/designsettings.php:155 +msgid "Off" +msgstr "Diweredekaet" + +#: actions/designadminpanel.php:474 lib/designsettings.php:156 +msgid "Turn background image on or off." +msgstr "Gweredekaat pe diweredekaat ar skeudenn foñs." + +#: actions/designadminpanel.php:479 lib/designsettings.php:161 +msgid "Tile background image" +msgstr "" + +#: actions/designadminpanel.php:488 lib/designsettings.php:170 +msgid "Change colours" +msgstr "Kemmañ al livioù" + +#: actions/designadminpanel.php:510 lib/designsettings.php:191 +msgid "Content" +msgstr "Endalc'h" + +#: actions/designadminpanel.php:523 lib/designsettings.php:204 +msgid "Sidebar" +msgstr "Barenn kostez" + +#: actions/designadminpanel.php:536 lib/designsettings.php:217 +msgid "Text" +msgstr "Testenn" + +#: actions/designadminpanel.php:549 lib/designsettings.php:230 +msgid "Links" +msgstr "Liammoù" + +#: actions/designadminpanel.php:577 lib/designsettings.php:247 +msgid "Use defaults" +msgstr "Implijout an talvoudoù dre ziouer" + +#: actions/designadminpanel.php:578 lib/designsettings.php:248 +msgid "Restore default designs" +msgstr "Adlakaat an neuz dre ziouer." + +#: actions/designadminpanel.php:584 lib/designsettings.php:254 +msgid "Reset back to default" +msgstr "Adlakaat an arventennoù dre ziouer" + +#: actions/designadminpanel.php:586 actions/emailsettings.php:195 +#: actions/imsettings.php:163 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/smssettings.php:181 +#: actions/snapshotadminpanel.php:245 actions/subscriptions.php:208 +#: actions/tagother.php:154 actions/useradminpanel.php:294 +#: lib/applicationeditform.php:333 lib/applicationeditform.php:334 +#: lib/designsettings.php:256 lib/groupeditform.php:202 +msgid "Save" +msgstr "Enrollañ" + +#: actions/designadminpanel.php:587 lib/designsettings.php:257 +msgid "Save design" +msgstr "Enrollañ an design" + +#: actions/disfavor.php:81 +msgid "This notice is not a favorite!" +msgstr "N'eo ket an ali-mañ ur pennroll !" + +#: actions/disfavor.php:94 +msgid "Add to favorites" +msgstr "Ouzhpennañ d'ar pennrolloù" + +#: actions/doc.php:158 +#, php-format +msgid "No such document \"%s\"" +msgstr "N'eo ket bet kavet ar restr \"%s\"" + +#: actions/editapplication.php:54 +msgid "Edit Application" +msgstr "Kemmañ ar poellad" + +#: actions/editapplication.php:66 +msgid "You must be logged in to edit an application." +msgstr "Ret eo bezañ kevreet evit kemmañ ur poellad." + +#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166 +#: actions/showapplication.php:87 +msgid "No such application." +msgstr "N'eus ket eus an arload-mañ." + +#: actions/editapplication.php:161 +msgid "Use this form to edit your application." +msgstr "Implijit ar furmskrid-mañ evit kemmañ ho poellad." + +#: actions/editapplication.php:177 actions/newapplication.php:159 +msgid "Name is required." +msgstr "Ret eo lakaat un anv." + +#: actions/editapplication.php:180 actions/newapplication.php:165 +msgid "Name is too long (max 255 chars)." +msgstr "Re hir eo an anv (255 arouezenn d'ar muiañ)." + +#: actions/editapplication.php:183 actions/newapplication.php:162 +msgid "Name already in use. Try another one." +msgstr "Implijet eo dija an anv-mañ. Klaskit unan all." + +#: actions/editapplication.php:186 actions/newapplication.php:168 +msgid "Description is required." +msgstr "Ezhomm 'zo un deskrivadur." + +#: actions/editapplication.php:194 +msgid "Source URL is too long." +msgstr "Mammenn URL re hir." + +#: actions/editapplication.php:200 actions/newapplication.php:185 +msgid "Source URL is not valid." +msgstr "N'eo ket mat an URL mammenn." + +#: actions/editapplication.php:203 actions/newapplication.php:188 +msgid "Organization is required." +msgstr "Ezhomm 'zo eus an aozadur." + +#: actions/editapplication.php:206 actions/newapplication.php:191 +msgid "Organization is too long (max 255 chars)." +msgstr "Re hir eo an aozadur (255 arouezenn d'ar muiañ)." + +#: actions/editapplication.php:209 actions/newapplication.php:194 +msgid "Organization homepage is required." +msgstr "Ret eo kaout pajenn degemer an aozadur." + +#: actions/editapplication.php:218 actions/newapplication.php:206 +msgid "Callback is too long." +msgstr "Rez hir eo ar c'hounadur (Callback)." + +#: actions/editapplication.php:225 actions/newapplication.php:215 +msgid "Callback URL is not valid." +msgstr "N'eo ket mat an URL kounadur (Callback)." + +#: actions/editapplication.php:258 +msgid "Could not update application." +msgstr "Diposubl eo hizivaat ar poellad" + +#: actions/editgroup.php:56 +#, php-format +msgid "Edit %s group" +msgstr "Kemmañ ar strollad %s" + +#: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 +msgid "You must be logged in to create a group." +msgstr "Rankout a reoc'h bezañ luget evit krouiñ ur strollad." + +#: 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 "Rankout a reer bezañ merour evit kemmañ ar strollad." + +#: actions/editgroup.php:158 +msgid "Use this form to edit the group." +msgstr "Leunit ar furmskrid-mañ evit kemmañ dibarzhioù ar strollad." + +#: actions/editgroup.php:205 actions/newgroup.php:145 +#, php-format +msgid "description is too long (max %d chars)." +msgstr "re hir eo an deskrivadur (%d arouezenn d'ar muiañ)." + +#: actions/editgroup.php:258 +msgid "Could not update group." +msgstr "Diposubl eo hizivaat ar strollad." + +#: actions/editgroup.php:264 classes/User_group.php:493 +msgid "Could not create aliases." +msgstr "Diposubl eo krouiñ an aliasoù." + +#: actions/editgroup.php:280 +msgid "Options saved." +msgstr "Enrollet eo bet ho dibarzhioù." + +#: actions/emailsettings.php:60 +msgid "Email settings" +msgstr "Arventennoù ar postel" + +#: actions/emailsettings.php:71 +#, php-format +msgid "Manage how you get email from %%site.name%%." +msgstr "Merañ ar posteloù a fell deoc'h resevout a-berzh %%site.name%%." + +#: actions/emailsettings.php:100 actions/imsettings.php:100 +#: actions/smssettings.php:104 +msgid "Address" +msgstr "Chomlec'h" + +#: actions/emailsettings.php:105 +msgid "Current confirmed email address." +msgstr "Chomlec'h postel gwiriekaet er mare-mañ." + +#: actions/emailsettings.php:107 actions/emailsettings.php:140 +#: actions/imsettings.php:108 actions/smssettings.php:115 +#: actions/smssettings.php:158 +msgid "Remove" +msgstr "Dilemel" + +#: actions/emailsettings.php:113 +msgid "" +"Awaiting confirmation on this address. Check your inbox (and spam box!) for " +"a message with further instructions." +msgstr "" + +#: actions/emailsettings.php:117 actions/imsettings.php:120 +#: actions/smssettings.php:126 lib/applicationeditform.php:331 +#: lib/applicationeditform.php:332 +msgid "Cancel" +msgstr "Nullañ" + +#: actions/emailsettings.php:121 +msgid "Email address" +msgstr "Chomlec'h postel" + +#: actions/emailsettings.php:123 +msgid "Email address, like \"UserName@example.org\"" +msgstr "Chomlec'h postel, evel \"AnvImplijer@example.org\"" + +#: actions/emailsettings.php:126 actions/imsettings.php:133 +#: actions/smssettings.php:145 +msgid "Add" +msgstr "Ouzhpennañ" + +#: actions/emailsettings.php:133 actions/smssettings.php:152 +msgid "Incoming email" +msgstr "Postel o tont" + +#: actions/emailsettings.php:138 actions/smssettings.php:157 +msgid "Send email to this address to post new notices." +msgstr "" + +#: actions/emailsettings.php:145 actions/smssettings.php:162 +msgid "Make a new email address for posting to; cancels the old one." +msgstr "" + +#: actions/emailsettings.php:148 actions/smssettings.php:164 +msgid "New" +msgstr "Nevez" + +#: actions/emailsettings.php:153 actions/imsettings.php:139 +#: actions/smssettings.php:169 +msgid "Preferences" +msgstr "Penndibaboù" + +#: actions/emailsettings.php:158 +msgid "Send me notices of new subscriptions through email." +msgstr "" + +#: actions/emailsettings.php:163 +msgid "Send me email when someone adds my notice as a favorite." +msgstr "Kas din ur postel pa lak unan bennak unan eus va alioù evel pennroll." + +#: actions/emailsettings.php:169 +msgid "Send me email when someone sends me a private message." +msgstr "Kas din ur postel pa gas unan bennak ur gemennadenn bersonel din." + +#: actions/emailsettings.php:174 +msgid "Send me email when someone sends me an \"@-reply\"." +msgstr "Kas din ur postel pa gas unan bennak ur \"@-respont\" din." + +#: actions/emailsettings.php:179 +msgid "Allow friends to nudge me and send me an email." +msgstr "" + +#: actions/emailsettings.php:185 +msgid "I want to post notices by email." +msgstr "C'hoant am eus kas va alioù dre bostel." + +#: actions/emailsettings.php:191 +msgid "Publish a MicroID for my email address." +msgstr "Embann ur MicroID evit ma chomlec'h postel." + +#: actions/emailsettings.php:302 actions/imsettings.php:264 +#: actions/othersettings.php:180 actions/smssettings.php:284 +msgid "Preferences saved." +msgstr "Penndibaboù enrollet" + +#: actions/emailsettings.php:320 +msgid "No email address." +msgstr "N'eus chomlec'h postel ebet." + +#: actions/emailsettings.php:327 +msgid "Cannot normalize that email address" +msgstr "" + +#: actions/emailsettings.php:331 actions/register.php:201 +#: actions/siteadminpanel.php:144 +msgid "Not a valid email address." +msgstr "N'eo ket ur chomlec'h postel reizh." + +#: actions/emailsettings.php:334 +msgid "That is already your email address." +msgstr "Ho postel eo dija." + +#: actions/emailsettings.php:337 +msgid "That email address already belongs to another user." +msgstr "" + +#: actions/emailsettings.php:353 actions/imsettings.php:319 +#: actions/smssettings.php:337 +msgid "Couldn't insert confirmation code." +msgstr "" + +#: actions/emailsettings.php:359 +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 "" + +#: actions/emailsettings.php:379 actions/imsettings.php:351 +#: actions/smssettings.php:370 +msgid "No pending confirmation to cancel." +msgstr "" + +#: actions/emailsettings.php:383 actions/imsettings.php:355 +msgid "That is the wrong IM address." +msgstr "N'eo ket mat ar chomlec'h postelerezh prim." + +#: actions/emailsettings.php:395 actions/imsettings.php:367 +#: actions/smssettings.php:386 +msgid "Confirmation cancelled." +msgstr "Nullet eo bet ar gadarnadenn." + +#: actions/emailsettings.php:413 +msgid "That is not your email address." +msgstr "N'eo ket ho postel." + +#: actions/emailsettings.php:432 actions/imsettings.php:408 +#: actions/smssettings.php:425 +msgid "The address was removed." +msgstr "Dilamet eo bet ar chomlec'h." + +#: actions/emailsettings.php:446 actions/smssettings.php:518 +msgid "No incoming email address." +msgstr "" + +#: actions/emailsettings.php:456 actions/emailsettings.php:478 +#: actions/smssettings.php:528 actions/smssettings.php:552 +msgid "Couldn't update user record." +msgstr "" + +#: actions/emailsettings.php:459 actions/smssettings.php:531 +msgid "Incoming email address removed." +msgstr "" + +#: actions/emailsettings.php:481 actions/smssettings.php:555 +msgid "New incoming email address added." +msgstr "" + +#: actions/favor.php:79 +msgid "This notice is already a favorite!" +msgstr "Ouzhpennet eo bet an ali-mañ d'ho pennrolloù dija !" + +#: actions/favor.php:92 lib/disfavorform.php:140 +msgid "Disfavor favorite" +msgstr "" + +#: actions/favorited.php:65 lib/popularnoticesection.php:91 +#: lib/publicgroupnav.php:93 +msgid "Popular notices" +msgstr "Alioù poblek" + +#: actions/favorited.php:67 +#, php-format +msgid "Popular notices, page %d" +msgstr "Alioù poblek, pajenn %d" + +#: actions/favorited.php:79 +msgid "The most popular notices on the site right now." +msgstr "An alioù ar brudetañ el lec'hienn er mare-mañ." + +#: actions/favorited.php:150 +msgid "Favorite notices appear on this page but no one has favorited one yet." +msgstr "" + +#: 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 "" + +#: 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 "" + +#: actions/favoritesrss.php:111 actions/showfavorites.php:77 +#: lib/personalgroupnav.php:115 +#, php-format +msgid "%s's favorite notices" +msgstr "Alioù pennrollet eus %s" + +#: actions/favoritesrss.php:115 +#, php-format +msgid "Updates favored by %1$s on %2$s!" +msgstr "Hizivadennoù brientek gant %1$s war %2$s !" + +#: actions/featured.php:69 lib/featureduserssection.php:87 +#: lib/publicgroupnav.php:89 +msgid "Featured users" +msgstr "" + +#: actions/featured.php:71 +#, php-format +msgid "Featured users, page %d" +msgstr "" + +#: actions/featured.php:99 +#, php-format +msgid "A selection of some great users on %s" +msgstr "Un dibab eus implijerien vat e %s" + +#: actions/file.php:34 +msgid "No notice ID." +msgstr "ID ali ebet." + +#: actions/file.php:38 +msgid "No notice." +msgstr "Ali ebet." + +#: actions/file.php:42 +msgid "No attachments." +msgstr "N'eus restr stag ebet." + +#: actions/file.php:51 +msgid "No uploaded attachments." +msgstr "" + +#: actions/finishremotesubscribe.php:69 +msgid "Not expecting this response!" +msgstr "Ne oa ket gortozet ar respont-mañ !" + +#: actions/finishremotesubscribe.php:80 +msgid "User being listened to does not exist." +msgstr "" + +#: actions/finishremotesubscribe.php:87 actions/remotesubscribe.php:59 +msgid "You can use the local subscription!" +msgstr "" + +#: actions/finishremotesubscribe.php:99 +msgid "That user has blocked you from subscribing." +msgstr "An implijer-se en deus ho stanket evit en enskrivañ." + +#: actions/finishremotesubscribe.php:110 +msgid "You are not authorized." +msgstr "N'oc'h ket aotreet." + +#: actions/finishremotesubscribe.php:113 +msgid "Could not convert request token to access token." +msgstr "" + +#: actions/finishremotesubscribe.php:118 +msgid "Remote service uses unknown version of OMB protocol." +msgstr "" + +#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306 +msgid "Error updating remote profile" +msgstr "" + +#: actions/getfile.php:79 +msgid "No such file." +msgstr "Restr ezvezant." + +#: actions/getfile.php:83 +msgid "Cannot read file." +msgstr "Diposupl eo lenn ar restr." + +#: actions/grantrole.php:62 actions/revokerole.php:62 +#, fuzzy +msgid "Invalid role." +msgstr "Fichenn direizh." + +#: actions/grantrole.php:66 actions/revokerole.php:66 +msgid "This role is reserved and cannot be set." +msgstr "" + +#: actions/grantrole.php:75 +#, fuzzy +msgid "You cannot grant user roles on this site." +msgstr "Ne c'helloc'h ket kas kemennadennoù d'an implijer-mañ." + +#: actions/grantrole.php:82 +#, fuzzy +msgid "User already has this role." +msgstr "An implijer-mañ n'eus profil ebet dezhañ." + +#: actions/groupblock.php:71 actions/groupunblock.php:71 +#: actions/makeadmin.php:71 actions/subedit.php:46 +#: lib/profileformaction.php:70 +msgid "No profile specified." +msgstr "N'eo bet resisaet profil ebet" + +#: 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:77 +msgid "No profile with that ID." +msgstr "N'eus profil ebet gant an ID-mañ." + +#: actions/groupblock.php:81 actions/groupunblock.php:81 +#: actions/makeadmin.php:81 +msgid "No group specified." +msgstr "N'eo bet resisaet strollad ebet" + +#: actions/groupblock.php:91 +msgid "Only an admin can block group members." +msgstr "N'eus neme ur merour a c'hell stankañ izili ur strollad." + +#: actions/groupblock.php:95 +msgid "User is already blocked from group." +msgstr "An implijer-mañ a zo stanket dija eus ar strollad." + +#: actions/groupblock.php:100 +msgid "User is not a member of group." +msgstr "N'eo ket an implijer-mañ ezel eus ur strollad." + +#: actions/groupblock.php:136 actions/groupmembers.php:323 +msgid "Block user from group" +msgstr "Stankañ an implijer-mañ eus ar strollad" + +#: actions/groupblock.php:162 +#, 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 "" + +#: actions/groupblock.php:178 +msgid "Do not block this user from this group" +msgstr "Arabat stankañ an implijer-mañ eus ar strollad." + +#: actions/groupblock.php:179 +msgid "Block this user from this group" +msgstr "Stankañ an implijer-mañ eus ar strollad-se" + +#: actions/groupblock.php:196 +msgid "Database error blocking user from group." +msgstr "" + +#: actions/groupbyid.php:74 actions/userbyid.php:70 +msgid "No ID." +msgstr "ID ebet" + +#: actions/groupdesignsettings.php:68 +msgid "You must be logged in to edit a group." +msgstr "" + +#: actions/groupdesignsettings.php:144 +msgid "Group design" +msgstr "Design ar strollad" + +#: actions/groupdesignsettings.php:155 +msgid "" +"Customize the way your group looks with a background image and a colour " +"palette of your choice." +msgstr "" + +#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 +#: lib/designsettings.php:391 lib/designsettings.php:413 +msgid "Couldn't update your design." +msgstr "Diposubl eo hizivaat ho design." + +#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231 +msgid "Design preferences saved." +msgstr "Enrollet eo bet an arventennoù design." + +#: actions/grouplogo.php:142 actions/grouplogo.php:195 +msgid "Group logo" +msgstr "Logo ar strollad" + +#: actions/grouplogo.php:153 +#, php-format +msgid "" +"You can upload a logo image for your group. The maximum file size is %s." +msgstr "" + +#: actions/grouplogo.php:181 +msgid "User without matching profile." +msgstr "" + +#: actions/grouplogo.php:365 +msgid "Pick a square area of the image to be the logo." +msgstr "" + +#: actions/grouplogo.php:399 +msgid "Logo updated." +msgstr "Logo hizivaet." + +#: actions/grouplogo.php:401 +msgid "Failed updating logo." +msgstr "N'eo ket bet kaset da benn an hizivadenn." + +#: actions/groupmembers.php:100 lib/groupnav.php:92 +#, php-format +msgid "%s group members" +msgstr "Izili ar strollad %s" + +#: actions/groupmembers.php:103 +#, php-format +msgid "%1$s group members, page %2$d" +msgstr "Izili ar strollad %1$s, pajenn %2$d" + +#: actions/groupmembers.php:118 +msgid "A list of the users in this group." +msgstr "Roll an implijerien enrollet er strollad-mañ." + +#: actions/groupmembers.php:182 lib/groupnav.php:107 +msgid "Admin" +msgstr "Merañ" + +#: actions/groupmembers.php:355 lib/blockform.php:69 +msgid "Block" +msgstr "Stankañ" + +#: actions/groupmembers.php:450 +msgid "Make user an admin of the group" +msgstr "Lakaat an implijer da vezañ ur merour eus ar strollad" + +#: actions/groupmembers.php:482 +msgid "Make Admin" +msgstr "Lakaat ur merour" + +#: actions/groupmembers.php:482 +msgid "Make this user an admin" +msgstr "Lakaat an implijer-mañ da verour" + +#: actions/grouprss.php:138 actions/userrss.php:90 +#: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 +#, php-format +msgid "%s timeline" +msgstr "Oberezhioù %s" + +#: actions/grouprss.php:140 +#, php-format +msgid "Updates from members of %1$s on %2$s!" +msgstr "Hizivadenn izili %1$s e %2$s !" + +#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 +msgid "Groups" +msgstr "Strolladoù" + +#: actions/groups.php:64 +#, php-format +msgid "Groups, page %d" +msgstr "Strollad, pajenn %d" + +#: 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:124 lib/groupeditform.php:122 +msgid "Create a new group" +msgstr "Krouiñ ur strollad nevez" + +#: 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 "Klask strolladoù" + +#: actions/groupsearch.php:79 actions/noticesearch.php:117 +#: actions/peoplesearch.php:83 +msgid "No results." +msgstr "Disoc'h ebet." + +#: 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 "" +"Ma ne gavoc'h ket ar strollad emaoc'h o klask, neuze e c'helloc'h [krouiñ " +"anezhañ](%%action.newgroup%%)." + +#: 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 "N'eus nemet ur merour a c'hell distankañ izili ur strollad." + +#: actions/groupunblock.php:95 +msgid "User is not blocked from group." +msgstr "N'eo ket stanket an implijer-mañ eus ar strollad." + +#: actions/groupunblock.php:128 actions/unblock.php:86 +msgid "Error removing the block." +msgstr "Ur fazi a zo bet e-pad nulladenn ar stankadenn." + +#: actions/imsettings.php:59 +msgid "IM settings" +msgstr "Arventennoù ar bostelerezh prim" + +#: actions/imsettings.php:70 +#, php-format +msgid "" +"You can send and receive notices through Jabber/GTalk [instant messages](%%" +"doc.im%%). Configure your address and settings below." +msgstr "" + +#: actions/imsettings.php:89 +msgid "IM is not available." +msgstr "Dizimplijadus eo ar bostelerezh prim" + +#: actions/imsettings.php:106 +msgid "Current confirmed Jabber/GTalk address." +msgstr "Chomlec'h Jabber/GTalk kadarnaet er mare-mañ." + +#: actions/imsettings.php:114 +#, 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 "" + +#: actions/imsettings.php:124 +msgid "IM address" +msgstr "Chomlec'h postelerezh prim" + +#: actions/imsettings.php:126 +#, 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 "" + +#: actions/imsettings.php:143 +msgid "Send me notices through Jabber/GTalk." +msgstr "Kas din an alioù dre Jabber/GTalk." + +#: actions/imsettings.php:148 +msgid "Post a notice when my Jabber/GTalk status changes." +msgstr "" + +#: actions/imsettings.php:153 +msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." +msgstr "" + +#: actions/imsettings.php:159 +msgid "Publish a MicroID for my Jabber/GTalk address." +msgstr "Embann ur MicroID evit ma chomlec'h Jabber/GTalk." + +#: actions/imsettings.php:285 +msgid "No Jabber ID." +msgstr "ID Jabber ebet." + +#: actions/imsettings.php:292 +msgid "Cannot normalize that Jabber ID" +msgstr "Diposubl eo implijout an ID Jabber-mañ" + +#: actions/imsettings.php:296 +msgid "Not a valid Jabber ID" +msgstr "N'eo ket un ID Jabber reizh." + +#: actions/imsettings.php:299 +msgid "That is already your Jabber ID." +msgstr "Ho ID Jabber eo dija" + +#: actions/imsettings.php:302 +msgid "Jabber ID already belongs to another user." +msgstr "Implijet eo an Jabber ID-mañ gant un implijer all." + +#: actions/imsettings.php:327 +#, php-format +msgid "" +"A confirmation code was sent to the IM address you added. You must approve %" +"s for sending messages to you." +msgstr "" + +#: actions/imsettings.php:387 +msgid "That is not your Jabber ID." +msgstr "N'eo ket ho ID Jabber." + +#: actions/inbox.php:59 +#, php-format +msgid "Inbox for %1$s - page %2$d" +msgstr "Boest degemer %1$s - pajenn %2$d" + +#: actions/inbox.php:62 +#, php-format +msgid "Inbox for %s" +msgstr "Bost resevout %s" + +#: 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 "Diweredekaat eo bet ar bedadennoù." + +#: 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 "Fall eo ar postel : %s" + +#: actions/invite.php:110 +msgid "Invitation(s) sent" +msgstr "Kaset eo bet ar bedadenn(où)" + +#: actions/invite.php:112 +msgid "Invite new users" +msgstr "Pediñ implijerien nevez" + +#: actions/invite.php:128 +msgid "You are already subscribed to these users:" +msgstr "Koumanantet oc'h dija d'an implijerien-mañ :" + +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#, php-format +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + +#: actions/invite.php:136 +msgid "" +"These people are already users and you were automatically subscribed to them:" +msgstr "" +"Implijerien eo dija an dud-mañ ha koumanantet oc'h bet ez emgefre d'an " +"implijerien da-heul :" + +#: actions/invite.php:144 +msgid "Invitation(s) sent to the following people:" +msgstr "Pedadennoù bet kaset d'an implijerien da-heul :" + +#: 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 "Chomlec'hioù postel" + +#: actions/invite.php:189 +msgid "Addresses of friends to invite (one per line)" +msgstr "Chomlec'hioù an implijerien da bediñ (unan dre linenn)" + +#: actions/invite.php:192 +msgid "Personal message" +msgstr "Kemenadenn bersonel" + +#: 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 "Kas" + +#: actions/invite.php:227 +#, php-format +msgid "%1$s has invited you to join them on %2$s" +msgstr "%1$s a bed ac'hanoc'h d'en em enskrivañ war %2$s" + +#: actions/invite.php:229 +#, 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 "Rankout a reoc'h bezañ luget evit mont en ur strollad." + +#: actions/joingroup.php:88 actions/leavegroup.php:88 +msgid "No nickname or ID." +msgstr "Lesanv pe ID ebet." + +#: actions/joingroup.php:141 +#, php-format +msgid "%1$s joined group %2$s" +msgstr "%1$s a zo bet er strollad %2$s" + +#: actions/leavegroup.php:60 +msgid "You must be logged in to leave a group." +msgstr "Ret eo deoc'h bezañ kevreet evit kuitaat ur strollad" + +#: actions/leavegroup.php:100 lib/command.php:265 +msgid "You are not a member of that group." +msgstr "N'oc'h ket un ezel eus ar strollad-mañ." + +#: actions/leavegroup.php:137 +#, php-format +msgid "%1$s left group %2$s" +msgstr "%1$s en deus kuitaet ar strollad %2$s" + +#: actions/login.php:80 actions/otp.php:62 actions/register.php:137 +msgid "Already logged in." +msgstr "Kevreet oc'h dija." + +#: actions/login.php:126 +msgid "Incorrect username or password." +msgstr "Anv implijer pe ger-tremen direizh." + +#: actions/login.php:132 actions/otp.php:120 +msgid "Error setting user. You are probably not authorized." +msgstr "" +"Ur fazi 'zo bet e-pad hizivadenn an implijer. Moarvat n'oc'h ket aotreet " +"evit en ober." + +#: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 +msgid "Login" +msgstr "Kevreañ" + +#: actions/login.php:227 +msgid "Login to site" +msgstr "Kevreañ d'al lec'hienn" + +#: actions/login.php:236 actions/register.php:478 +msgid "Remember me" +msgstr "Kaout soñj" + +#: actions/login.php:237 actions/register.php:480 +msgid "Automatically login in the future; not for shared computers!" +msgstr "" +"Digeriñ va dalc'h war-eeun ar wechoù o tont ; arabat en ober war " +"urzhiataeroù rannet pe publik !" + +#: actions/login.php:247 +msgid "Lost or forgotten password?" +msgstr "Ha kollet o peus ho ker-tremen ?" + +#: actions/login.php:266 +msgid "" +"For security reasons, please re-enter your user name and password before " +"changing your settings." +msgstr "" +"Evit abegoù a surentezh, mar plij adlakait hoc'h anv implijer hag ho ker-" +"tremen a-benn enrollañ ho penndibaboù." + +#: actions/login.php:270 +#, php-format +msgid "" +"Login with your username and password. Don't have a username yet? [Register]" +"(%%action.register%%) a new account." +msgstr "" +"Kevreit gant ho anv implijer hag ho ker tremen. N'o peus ket a anv implijer " +"evit c'hoazh ? [Krouit](%%action.register%%) ur gont nevez." + +#: actions/makeadmin.php:92 +msgid "Only an admin can make another user an admin." +msgstr "N'eus nemet ur merour a c'hall lakaat un implijer all da vezañ merour." + +#: actions/makeadmin.php:96 +#, php-format +msgid "%1$s is already an admin for group \"%2$s\"." +msgstr "%1$s a zo dija merour ar strollad \"%2$s\"." + +#: 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 "Diposubl eo lakaat %1$s da merour ar strollad %2$s." + +#: actions/microsummary.php:69 +msgid "No current status" +msgstr "Statud ebet er mare-mañ" + +#: actions/newapplication.php:52 +msgid "New Application" +msgstr "Poellad nevez" + +#: actions/newapplication.php:64 +msgid "You must be logged in to register an application." +msgstr "Ret eo deoc'h bezañ luget evit enrollañ ur poellad." + +#: actions/newapplication.php:143 +msgid "Use this form to register a new application." +msgstr "Implijit ar furmskrid-mañ evit enskrivañ ur poellad nevez." + +#: actions/newapplication.php:176 +msgid "Source URL is required." +msgstr "Ezhomm 'zo eus ar vammenn URL." + +#: actions/newapplication.php:258 actions/newapplication.php:267 +msgid "Could not create application." +msgstr "N'eo ket posubl krouiñ ar poellad." + +#: actions/newgroup.php:53 +msgid "New group" +msgstr "Strollad nevez" + +#: actions/newgroup.php:110 +msgid "Use this form to create a new group." +msgstr "Implijit ar furmskrid-mañ a-benn krouiñ ur strollad nevez." + +#: actions/newmessage.php:71 actions/newmessage.php:231 +msgid "New message" +msgstr "Kemennadenn nevez" + +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +msgid "You can't send a message to this user." +msgstr "Ne c'helloc'h ket kas kemennadennoù d'an implijer-mañ." + +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 +#: lib/command.php:475 +msgid "No content!" +msgstr "Goullo eo !" + +#: actions/newmessage.php:158 +msgid "No recipient specified." +msgstr "N'o peus ket lakaet a resever." + +#: actions/newmessage.php:164 lib/command.php:361 +msgid "" +"Don't send a message to yourself; just say it to yourself quietly instead." +msgstr "" +"Na gasit ket a gemennadenn deoc'h c'hwi ho unan ; lavarit an traoù-se en ho " +"penn kentoc'h." + +#: actions/newmessage.php:181 +msgid "Message sent" +msgstr "Kaset eo bet ar gemenadenn" + +#: actions/newmessage.php:185 +#, php-format +msgid "Direct message to %s sent." +msgstr "Kaset eo bet da %s ar gemennadenn war-eeun." + +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +msgid "Ajax Error" +msgstr "Fazi Ajax" + +#: actions/newnotice.php:69 +msgid "New notice" +msgstr "Ali nevez" + +#: actions/newnotice.php:211 +msgid "Notice posted" +msgstr "Ali embannet" + +#: 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 "Klask un destenn" + +#: actions/noticesearch.php:91 +#, php-format +msgid "Search results for \"%1$s\" on %2$s" +msgstr "Disoc'hoù ar c'hlask evit \"%1$s\" e %2$s" + +#: 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 "Hizivadenn gant \"%s\"" + +#: 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 his email yet." +msgstr "" + +#: actions/nudge.php:94 +msgid "Nudge sent" +msgstr "Kaset eo bet ar blinkadenn" + +#: actions/nudge.php:97 +msgid "Nudge sent!" +msgstr "Kaset eo bet ar blinkadenn !" + +#: actions/oauthappssettings.php:59 +msgid "You must be logged in to list your applications." +msgstr "Rankout a reoc'h bezañ kevreet evit rollañ ho poelladoù." + +#: actions/oauthappssettings.php:74 +msgid "OAuth applications" +msgstr "Poelladoù OAuth" + +#: actions/oauthappssettings.php:85 +msgid "Applications you have registered" +msgstr "Ar poelladoù o peus enrollet" + +#: actions/oauthappssettings.php:135 +#, php-format +msgid "You have not registered any applications yet." +msgstr "N'o peus enrollet poellad ebet evit poent." + +#: actions/oauthconnectionssettings.php:72 +msgid "Connected applications" +msgstr "Poeladoù kevreet." + +#: 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 "N'oc'h ket un implijer eus ar poellad-mañ." + +#: actions/oauthconnectionssettings.php:186 +msgid "Unable to revoke access for app: " +msgstr "Dibosupl eo nullañ moned ar poellad : " + +#: actions/oauthconnectionssettings.php:198 +#, php-format +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:79 actions/shownotice.php:100 +msgid "Notice has no profile" +msgstr "N'en deus ket an ali a profil" + +#: actions/oembed.php:86 actions/shownotice.php:180 +#, php-format +msgid "%1$s's status on %2$s" +msgstr "Statud %1$s war %2$s" + +#: actions/oembed.php:157 +msgid "content type " +msgstr "seurt an danvez " + +#: actions/oembed.php:160 +msgid "Only " +msgstr "Hepken " + +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 +#: lib/apiaction.php:1070 lib/apiaction.php:1179 +msgid "Not a supported data format." +msgstr "" + +#: actions/opensearch.php:64 +msgid "People Search" +msgstr "Klask tud" + +#: actions/opensearch.php:67 +msgid "Notice Search" +msgstr "Klask alioù" + +#: actions/othersettings.php:60 +msgid "Other settings" +msgstr "Arventennoù all" + +#: actions/othersettings.php:71 +msgid "Manage various other options." +msgstr "Dibarzhioù all da gefluniañ." + +#: actions/othersettings.php:108 +msgid " (free service)" +msgstr " (servij digoust)" + +#: 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 "N'eus bet diferet ID implijer ebet." + +#: 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 "Boest kas %1$s - pajenn %2$d" + +#: actions/outbox.php:61 +#, php-format +msgid "Outbox for %s" +msgstr "Boest kas %s" + +#: 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 "Cheñch ger-tremen" + +#: actions/passwordsettings.php:69 +msgid "Change your password." +msgstr "Kemmañ ho ger tremen." + +#: actions/passwordsettings.php:96 actions/recoverpassword.php:231 +msgid "Password change" +msgstr "Kemmañ ar ger-tremen" + +#: actions/passwordsettings.php:104 +msgid "Old password" +msgstr "Ger-tremen kozh" + +#: actions/passwordsettings.php:108 actions/recoverpassword.php:235 +msgid "New password" +msgstr "Ger-tremen nevez" + +#: actions/passwordsettings.php:109 +msgid "6 or more characters" +msgstr "6 arouezenn pe muioc'h" + +#: actions/passwordsettings.php:112 actions/recoverpassword.php:239 +#: actions/register.php:433 actions/smssettings.php:134 +msgid "Confirm" +msgstr "Kadarnaat" + +#: actions/passwordsettings.php:113 actions/recoverpassword.php:240 +msgid "Same as password above" +msgstr "Memestra eget ar ger tremen a-us" + +#: actions/passwordsettings.php:117 +msgid "Change" +msgstr "Kemmañ" + +#: actions/passwordsettings.php:154 actions/register.php:230 +msgid "Password must be 6 or more characters." +msgstr "" + +#: actions/passwordsettings.php:157 actions/register.php:233 +msgid "Passwords don't match." +msgstr "Ne glot ket ar gerioù-tremen." + +#: actions/passwordsettings.php:165 +msgid "Incorrect old password" +msgstr "ger-termen kozh amreizh" + +#: actions/passwordsettings.php:181 +msgid "Error saving user; invalid." +msgstr "Ur fazi 'zo bet e-pad enolladenn an implijer ; diwiriek." + +#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +msgid "Can't save new password." +msgstr "Dibosupl eo enrollañ ar ger-tremen nevez." + +#: actions/passwordsettings.php:192 actions/recoverpassword.php:211 +msgid "Password saved." +msgstr "Ger-tremen enrollet." + +#. TRANS: Menu item for site administration +#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 +msgid "Paths" +msgstr "Hentoù" + +#: 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 "Lec'hien" + +#: actions/pathsadminpanel.php:238 +msgid "Server" +msgstr "Servijer" + +#: actions/pathsadminpanel.php:238 +msgid "Site's server hostname." +msgstr "" + +#: actions/pathsadminpanel.php:242 +msgid "Path" +msgstr "Hent" + +#: actions/pathsadminpanel.php:242 +msgid "Site path" +msgstr "Hent al lec'hien" + +#: 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 "URLioù brav" + +#: actions/pathsadminpanel.php:252 +msgid "Use fancy (more readable and memorable) URLs?" +msgstr "" + +#: actions/pathsadminpanel.php:259 +msgid "Theme" +msgstr "Danvez" + +#: actions/pathsadminpanel.php:264 +msgid "Theme server" +msgstr "Servijer danvezioù" + +#: actions/pathsadminpanel.php:268 +msgid "Theme path" +msgstr "Hentad an tem" + +#: actions/pathsadminpanel.php:272 +msgid "Theme directory" +msgstr "" + +#: actions/pathsadminpanel.php:279 +msgid "Avatars" +msgstr "Avataroù" + +#: actions/pathsadminpanel.php:284 +msgid "Avatar server" +msgstr "Servijer avatar" + +#: actions/pathsadminpanel.php:288 +msgid "Avatar path" +msgstr "" + +#: actions/pathsadminpanel.php:292 +msgid "Avatar directory" +msgstr "" + +#: actions/pathsadminpanel.php:301 +msgid "Backgrounds" +msgstr "Backgroundoù" + +#: actions/pathsadminpanel.php:305 +msgid "Background server" +msgstr "Servijer ar backgroundoù" + +#: actions/pathsadminpanel.php:309 +msgid "Background path" +msgstr "" + +#: actions/pathsadminpanel.php:313 +msgid "Background directory" +msgstr "" + +#: actions/pathsadminpanel.php:320 +msgid "SSL" +msgstr "SSL" + +#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202 +msgid "Never" +msgstr "Morse" + +#: actions/pathsadminpanel.php:324 +msgid "Sometimes" +msgstr "A-wechoù" + +#: actions/pathsadminpanel.php:325 +msgid "Always" +msgstr "Atav" + +#: actions/pathsadminpanel.php:329 +msgid "Use SSL" +msgstr "Implij SSl" + +#: actions/pathsadminpanel.php:330 +msgid "When to use SSL" +msgstr "" + +#: actions/pathsadminpanel.php:335 +msgid "SSL server" +msgstr "Servijer SSL" + +#: actions/pathsadminpanel.php:336 +msgid "Server to direct SSL requests to" +msgstr "" + +#: actions/pathsadminpanel.php:352 +msgid "Save paths" +msgstr "Enrollañ an hentadoù." + +#: 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 "Klask tud" + +#: actions/peopletag.php:70 +#, php-format +msgid "Not a valid people tag: %s" +msgstr "N'eo ket reizh ar merk-se : %s" + +#: actions/peopletag.php:144 +#, 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 "Arventennoù ar profil" + +#: 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:448 +#: actions/showgroup.php:255 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:149 +msgid "Full name" +msgstr "Anv klok" + +#: actions/profilesettings.php:115 actions/register.php:453 +#: lib/applicationeditform.php:228 lib/groupeditform.php:161 +msgid "Homepage" +msgstr "Pajenn degemer" + +#: actions/profilesettings.php:117 actions/register.php:455 +msgid "URL of your homepage, blog, or profile on another site" +msgstr "" + +#: actions/profilesettings.php:122 actions/register.php:461 +#, php-format +msgid "Describe yourself and your interests in %d chars" +msgstr "" + +#: actions/profilesettings.php:125 actions/register.php:464 +msgid "Describe yourself and your interests" +msgstr "" + +#: actions/profilesettings.php:127 actions/register.php:466 +msgid "Bio" +msgstr "Buhezskrid" + +#: actions/profilesettings.php:132 actions/register.php:471 +#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/userauthorization.php:166 lib/groupeditform.php:177 +#: lib/userprofile.php:164 +msgid "Location" +msgstr "Lec'hiadur" + +#: actions/profilesettings.php:134 actions/register.php:473 +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:209 +msgid "Tags" +msgstr "Balizennoù" + +#: actions/profilesettings.php:147 +msgid "" +"Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" +msgstr "" + +#: actions/profilesettings.php:151 +msgid "Language" +msgstr "Yezh" + +#: actions/profilesettings.php:152 +msgid "Preferred language" +msgstr "Yezh d'ober ganti da gentañ" + +#: actions/profilesettings.php:161 +msgid "Timezone" +msgstr "Takad eur" + +#: 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:223 +#, php-format +msgid "Bio is too long (max %d chars)." +msgstr "" + +#: actions/profilesettings.php:235 actions/siteadminpanel.php:151 +msgid "Timezone not selected." +msgstr "N'eo bet dibabet gwerzhid-eur ebet." + +#: 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 "Balizenn direizh : \"%s\"" + +#: 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 "Diposubl eo enrollañ ar profil." + +#: actions/profilesettings.php:383 +msgid "Couldn't save tags." +msgstr "Diposubl eo enrollañ ar balizennoù." + +#. TRANS: Message after successful saving of administrative settings. +#: actions/profilesettings.php:391 lib/adminpanelaction.php:141 +msgid "Settings saved." +msgstr "Enrollet eo bet an arventennoù." + +#: 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 "Bezit an hini gentañ da bostañ !" + +#: 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 "Luget oc'h dija !" + +#: actions/recoverpassword.php:62 +msgid "No such recovery code." +msgstr "Kod adtapout nann-kavet." + +#: actions/recoverpassword.php:66 +msgid "Not a recovery code." +msgstr "N'eo ket ur c'hod adtapout an dra-mañ." + +#: 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 "Adtapout ar ger-tremen" + +#: 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 "Adtapout" + +#: actions/recoverpassword.php:208 +msgid "Reset password" +msgstr "Adderaouekaat ar ger-tremen" + +#: actions/recoverpassword.php:209 +msgid "Recover password" +msgstr "Adtapout ar ger-tremen" + +#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +msgid "Password recovery requested" +msgstr "Goulennet eo an adtapout gerioù-tremen" + +#: actions/recoverpassword.php:213 +msgid "Unknown action" +msgstr "Ober dianav" + +#: actions/recoverpassword.php:236 +msgid "6 or more characters, and don't forget it!" +msgstr "6 arouezenn pe muioc'h, ha n'e zisoñjit ket !" + +#: actions/recoverpassword.php:243 +msgid "Reset" +msgstr "Adderaouekaat" + +#: actions/recoverpassword.php:252 +msgid "Enter a nickname or email address." +msgstr "Lakait ul lesanv pe ur chomlec'h postel." + +#: actions/recoverpassword.php:272 +msgid "No user with that email address or username." +msgstr "" + +#: actions/recoverpassword.php:287 +msgid "No registered email address for that user." +msgstr "" + +#: actions/recoverpassword.php:301 +msgid "Error saving address confirmation." +msgstr "" + +#: actions/recoverpassword.php:325 +msgid "" +"Instructions for recovering your password have been sent to the email " +"address registered to your account." +msgstr "" + +#: actions/recoverpassword.php:344 +msgid "Unexpected password reset." +msgstr "" + +#: actions/recoverpassword.php:352 +msgid "Password must be 6 chars or more." +msgstr "" + +#: actions/recoverpassword.php:356 +msgid "Password and confirmation do not match." +msgstr "" + +#: actions/recoverpassword.php:375 actions/register.php:248 +msgid "Error setting user." +msgstr "" + +#: actions/recoverpassword.php:382 +msgid "New password successfully saved. You are now logged in." +msgstr "" + +#: actions/register.php:85 actions/register.php:189 actions/register.php:405 +msgid "Sorry, only invited people can register." +msgstr "" + +#: actions/register.php:92 +msgid "Sorry, invalid invitation code." +msgstr "Digarezit, kod pedadenn direizh." + +#: actions/register.php:112 +msgid "Registration successful" +msgstr "" + +#: actions/register.php:114 actions/register.php:503 lib/logingroupnav.php:85 +msgid "Register" +msgstr "Krouiñ ur gont" + +#: actions/register.php:135 +msgid "Registration not allowed." +msgstr "" + +#: actions/register.php:198 +msgid "You can't register if you don't agree to the license." +msgstr "" + +#: actions/register.php:212 +msgid "Email address already exists." +msgstr "Implijet eo dija ar chomlec'h postel-se." + +#: actions/register.php:243 actions/register.php:265 +msgid "Invalid username or password." +msgstr "" + +#: actions/register.php:343 +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:425 +msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." +msgstr "" + +#: actions/register.php:430 +msgid "6 or more characters. Required." +msgstr "6 arouezenn pe muioc'h. Rekis." + +#: actions/register.php:434 +msgid "Same as password above. Required." +msgstr "Memestra hag ar ger-tremen a-us. Rekis." + +#: actions/register.php:438 actions/register.php:442 +#: actions/siteadminpanel.php:238 lib/accountsettingsaction.php:120 +msgid "Email" +msgstr "Postel" + +#: actions/register.php:439 actions/register.php:443 +msgid "Used only for updates, announcements, and password recovery" +msgstr "" + +#: actions/register.php:450 +msgid "Longer name, preferably your \"real\" name" +msgstr "" + +#: actions/register.php:494 +msgid "My text and files are available under " +msgstr "" + +#: actions/register.php:496 +msgid "Creative Commons Attribution 3.0" +msgstr "" + +#: actions/register.php:497 +msgid "" +" except this private data: password, email address, IM address, and phone " +"number." +msgstr "" + +#: actions/register.php:538 +#, 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:562 +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:394 +msgid "Subscribe" +msgstr "En em enskrivañ" + +#: 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 "N'eus bet diferet ali ebet." + +#: actions/repeat.php:76 +msgid "You can't repeat your own notice." +msgstr "Ne c'helloc'h ket adkemer ho ali deoc'h." + +#: actions/repeat.php:90 +msgid "You already repeated that notice." +msgstr "Adkemeret o peus dija an ali-mañ." + +#: actions/repeat.php:114 lib/noticelist.php:674 +msgid "Repeated" +msgstr "Adlavaret" + +#: actions/repeat.php:119 +msgid "Repeated!" +msgstr "Adlavaret !" + +#: actions/replies.php:126 actions/repliesrss.php:68 +#: lib/personalgroupnav.php:105 +#, php-format +msgid "Replies to %s" +msgstr "Respontoù da %s" + +#: actions/replies.php:128 +#, php-format +msgid "Replies to %1$s, page %2$d" +msgstr "Respontoù da %1$s, pajenn %2$d" + +#: 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 +#, 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 "" + +#: 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 his or her " +"attention](%%%%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 +#, fuzzy +msgid "You cannot revoke user roles on this site." +msgstr "Ne c'helloc'h ket kas kemennadennoù d'an implijer-mañ." + +#: actions/revokerole.php:82 +msgid "User doesn't have this role." +msgstr "" + +#: actions/rsd.php:146 actions/version.php:157 +msgid "StatusNet" +msgstr "StatusNet" + +#: actions/sandbox.php:65 actions/unsandbox.php:65 +msgid "You cannot sandbox users on this site." +msgstr "" + +#: 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:390 +msgid "Sessions" +msgstr "Dalc'hoù" + +#: actions/sessionsadminpanel.php:65 +msgid "Session settings for this StatusNet site." +msgstr "" + +#: actions/sessionsadminpanel.php:175 +msgid "Handle sessions" +msgstr "Merañ an dalc'hoù" + +#: 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 "" + +#: actions/showapplication.php:159 lib/applicationeditform.php:180 +msgid "Icon" +msgstr "" + +#: actions/showapplication.php:169 actions/version.php:195 +#: lib/applicationeditform.php:195 +msgid "Name" +msgstr "Anv" + +#: actions/showapplication.php:178 lib/applicationeditform.php:222 +msgid "Organization" +msgstr "" + +#: actions/showapplication.php:187 actions/version.php:198 +#: lib/applicationeditform.php:209 lib/groupeditform.php:172 +msgid "Description" +msgstr "" + +#: actions/showapplication.php:192 actions/showgroup.php:438 +#: lib/profileaction.php:176 +msgid "Statistics" +msgstr "Stadegoù" + +#: 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 notices to his favorites 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 :)" +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 "strollad %s" + +#: actions/showgroup.php:84 +#, php-format +msgid "%1$s group, page %2$d" +msgstr "" + +#: actions/showgroup.php:226 +msgid "Group profile" +msgstr "Profil ar strollad" + +#: actions/showgroup.php:271 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:177 +msgid "URL" +msgstr "URL" + +#: actions/showgroup.php:282 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:194 +msgid "Note" +msgstr "Notenn" + +#: actions/showgroup.php:292 lib/groupeditform.php:184 +msgid "Aliases" +msgstr "Aliasoù" + +#: actions/showgroup.php:301 +msgid "Group actions" +msgstr "Oberoù ar strollad" + +#: actions/showgroup.php:337 +#, php-format +msgid "Notice feed for %s group (RSS 1.0)" +msgstr "" + +#: actions/showgroup.php:343 +#, php-format +msgid "Notice feed for %s group (RSS 2.0)" +msgstr "" + +#: actions/showgroup.php:349 +#, php-format +msgid "Notice feed for %s group (Atom)" +msgstr "" + +#: actions/showgroup.php:354 +#, php-format +msgid "FOAF for %s group" +msgstr "" + +#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +msgid "Members" +msgstr "Izili" + +#: actions/showgroup.php:395 lib/profileaction.php:117 +#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 +msgid "(None)" +msgstr "(hini ebet)" + +#: actions/showgroup.php:401 +msgid "All members" +msgstr "An holl izili" + +#: actions/showgroup.php:441 +msgid "Created" +msgstr "Krouet" + +#: actions/showgroup.php:457 +#, 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:463 +#, 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:491 +msgid "Admins" +msgstr "Merourien" + +#: actions/showmessage.php:81 +msgid "No such message." +msgstr "N'eus ket eus ar gemennadenn-se." + +#: 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 " merket %s" + +#: 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 his or her attention](%%%%" +"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 +#, fuzzy +msgid "Basic settings for this StatusNet site" +msgstr "Arventennoù design evit al lec'hienn StatusNet-mañ." + +#: 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 140 characters." +msgstr "" + +#: actions/siteadminpanel.php:171 +msgid "Dupe limit must 1 or more seconds." +msgstr "" + +#: actions/siteadminpanel.php:221 +msgid "General" +msgstr "Hollek" + +#: actions/siteadminpanel.php:224 +msgid "Site name" +msgstr "Anv al lec'hienn" + +#: actions/siteadminpanel.php:225 +msgid "The name of your site, like \"Yourcompany Microblog\"" +msgstr "" + +#: actions/siteadminpanel.php:229 +msgid "Brought by" +msgstr "Degaset gant" + +#: 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 "Lec'hel" + +#: 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 +#, fuzzy +msgid "Default language" +msgstr "Yezh d'ober ganti da gentañ" + +#: actions/siteadminpanel.php:263 +msgid "Site language when autodetection from browser settings is not available" +msgstr "" + +#: actions/siteadminpanel.php:271 +msgid "Limits" +msgstr "Bevennoù" + +#: 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 +#, fuzzy +msgid "Site Notice" +msgstr "Ali" + +#: actions/sitenoticeadminpanel.php:67 +#, fuzzy +msgid "Edit site-wide message" +msgstr "Kemennadenn nevez" + +#: actions/sitenoticeadminpanel.php:103 +#, fuzzy +msgid "Unable to save site notice." +msgstr "Diposubl eo enrollañ an titouroù stankañ." + +#: actions/sitenoticeadminpanel.php:113 +msgid "Max length for the site-wide notice is 255 chars" +msgstr "" + +#: actions/sitenoticeadminpanel.php:176 +#, fuzzy +msgid "Site notice text" +msgstr "Eilañ an ali" + +#: actions/sitenoticeadminpanel.php:178 +msgid "Site-wide notice text (255 chars max; HTML okay)" +msgstr "" + +#: actions/sitenoticeadminpanel.php:198 +#, fuzzy +msgid "Save site notice" +msgstr "Dilemel un ali" + +#: actions/smssettings.php:58 +msgid "SMS settings" +msgstr "Arventennoù SMS" + +#: actions/smssettings.php:69 +#, php-format +msgid "You can receive SMS messages through email from %%site.name%%." +msgstr "" + +#: actions/smssettings.php:91 +msgid "SMS is not available." +msgstr "Dizimplijadus eo an SMS." + +#: actions/smssettings.php:112 +msgid "Current confirmed SMS-enabled phone number." +msgstr "" + +#: actions/smssettings.php:123 +msgid "Awaiting confirmation on this phone number." +msgstr "" + +#: actions/smssettings.php:130 +msgid "Confirmation code" +msgstr "Kod kadarnaat" + +#: actions/smssettings.php:131 +msgid "Enter the code you received on your phone." +msgstr "" + +#: actions/smssettings.php:138 +msgid "SMS phone number" +msgstr "Niverenn bellgomz evit an SMS" + +#: actions/smssettings.php:140 +msgid "Phone number, no punctuation or spaces, with area code" +msgstr "" + +#: actions/smssettings.php:174 +msgid "" +"Send me notices through SMS; I understand I may incur exorbitant charges " +"from my carrier." +msgstr "" + +#: actions/smssettings.php:306 +msgid "No phone number." +msgstr "Niverenn bellgomz ebet." + +#: actions/smssettings.php:311 +msgid "No carrier selected." +msgstr "" + +#: actions/smssettings.php:318 +msgid "That is already your phone number." +msgstr "" + +#: actions/smssettings.php:321 +msgid "That phone number already belongs to another user." +msgstr "" + +#: actions/smssettings.php:347 +msgid "" +"A confirmation code was sent to the phone number you added. Check your phone " +"for the code and instructions on how to use it." +msgstr "" + +#: actions/smssettings.php:374 +msgid "That is the wrong confirmation number." +msgstr "" + +#: actions/smssettings.php:405 +msgid "That is not your phone number." +msgstr "" + +#: actions/smssettings.php:465 +msgid "Mobile carrier" +msgstr "" + +#: actions/smssettings.php:469 +msgid "Select a carrier" +msgstr "" + +#: actions/smssettings.php:476 +#, 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 "" + +#: actions/smssettings.php:498 +msgid "No code entered" +msgstr "N'eo bet lakaet kod ebet" + +#. TRANS: Menu item for site administration +#: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196 +#: lib/adminpanelaction.php:406 +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 "Stankter" + +#: 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 +#, fuzzy +msgid "Save snapshot settings" +msgstr "Enrollañ an arventennoù moned" + +#: actions/subedit.php:70 +msgid "You are not subscribed to that profile." +msgstr "" + +#: actions/subedit.php:83 classes/Subscription.php:89 +#: classes/Subscription.php:116 +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:199 +msgid "Jabber" +msgstr "Jabber" + +#: actions/subscriptions.php:204 lib/connectsettingsaction.php:115 +msgid "SMS" +msgstr "SMS" + +#: 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:75 +msgid "User profile" +msgstr "" + +#: actions/tagother.php:81 actions/userauthorization.php:132 +#: lib/userprofile.php:102 +msgid "Photo" +msgstr "Skeudenn" + +#: 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/twitapitrends.php:85 +msgid "API method under construction." +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 "" + +#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 +#: lib/personalgroupnav.php:109 +msgid "Profile" +msgstr "Profil" + +#: actions/useradminpanel.php:222 +msgid "Bio Limit" +msgstr "Bevenn ar bio" + +#: actions/useradminpanel.php:223 +msgid "Maximum length of a profile bio in characters." +msgstr "" + +#: actions/useradminpanel.php:231 +msgid "New users" +msgstr "Implijerien nevez" + +#: actions/useradminpanel.php:235 +msgid "New user welcome" +msgstr "Degemer an implijerien nevez" + +#: 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 "Pedadennoù" + +#: 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:165 +msgid "License" +msgstr "Aotre implijout" + +#: actions/userauthorization.php:217 +msgid "Accept" +msgstr "Degemer" + +#: 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 "Disteurel" + +#: 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 "" + +#: actions/usergroups.php:64 +#, php-format +msgid "%1$s groups, page %2$d" +msgstr "" + +#: actions/usergroups.php:130 +msgid "Search for more groups" +msgstr "Klask muioc'h a strolladoù" + +#: actions/usergroups.php:157 +#, php-format +msgid "%s is not a member of any group." +msgstr "" + +#: actions/usergroups.php:162 +#, php-format +msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." +msgstr "" + +#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: lib/atomusernoticefeed.php:72 +#, php-format +msgid "Updates from %1$s on %2$s!" +msgstr "Hizivadennoù eus %1$s e %2$s!" + +#: actions/version.php:73 +#, php-format +msgid "StatusNet %s" +msgstr "StatusNet %s" + +#: actions/version.php:153 +#, php-format +msgid "" +"This site is powered by %1$s version %2$s, Copyright 2008-2010 StatusNet, " +"Inc. and contributors." +msgstr "" + +#: actions/version.php:161 +msgid "Contributors" +msgstr "Aozerien" + +#: actions/version.php:168 +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:174 +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:180 +#, 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:189 +msgid "Plugins" +msgstr "Pluginoù" + +#: actions/version.php:196 lib/action.php:767 +msgid "Version" +msgstr "Stumm" + +#: actions/version.php:197 +msgid "Author(s)" +msgstr "Aozer(ien)" + +#: classes/File.php:144 +#, 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." +msgstr "" + +#: classes/File.php:154 +#, php-format +msgid "A file this large would exceed your user quota of %d bytes." +msgstr "" + +#: classes/File.php:161 +#, php-format +msgid "A file this large would exceed your monthly quota of %d bytes." +msgstr "" + +#: classes/Group_member.php:41 +msgid "Group join failed." +msgstr "C'hwitet eo bet an enskrivadur d'ar strollad." + +#: classes/Group_member.php:53 +msgid "Not part of group." +msgstr "N'eo ezel eus strollad ebet." + +#: classes/Group_member.php:60 +msgid "Group leave failed." +msgstr "C'hwitet eo bet an disenskrivadur d'ar strollad." + +#: classes/Local_group.php:41 +msgid "Could not update local group." +msgstr "" + +#: classes/Login_token.php:76 +#, php-format +msgid "Could not create login token for %s" +msgstr "" + +#: classes/Message.php:45 +msgid "You are banned from sending direct messages." +msgstr "" + +#: classes/Message.php:61 +msgid "Could not insert message." +msgstr "Diposubl eo ensoc'hañ ur gemenadenn" + +#: classes/Message.php:71 +msgid "Could not update message with new URI." +msgstr "" + +#: classes/Notice.php:172 +#, php-format +msgid "DB error inserting hashtag: %s" +msgstr "" + +#: classes/Notice.php:241 +msgid "Problem saving notice. Too long." +msgstr "" + +#: classes/Notice.php:245 +msgid "Problem saving notice. Unknown user." +msgstr "" + +#: classes/Notice.php:250 +msgid "" +"Too many notices too fast; take a breather and post again in a few minutes." +msgstr "" + +#: classes/Notice.php:256 +msgid "" +"Too many duplicate messages too quickly; take a breather and post again in a " +"few minutes." +msgstr "" + +#: classes/Notice.php:262 +msgid "You are banned from posting notices on this site." +msgstr "" + +#: classes/Notice.php:328 classes/Notice.php:354 +msgid "Problem saving notice." +msgstr "" + +#: classes/Notice.php:927 +msgid "Problem saving group inbox." +msgstr "" + +#: classes/Notice.php:1459 +#, php-format +msgid "RT @%1$s %2$s" +msgstr "RT @%1$s %2$s" + +#: classes/Subscription.php:66 lib/oauthstore.php:465 +msgid "You have been banned from subscribing." +msgstr "" + +#: classes/Subscription.php:70 +msgid "Already subscribed!" +msgstr "" + +#: classes/Subscription.php:74 +msgid "User has blocked you." +msgstr "" + +#: classes/Subscription.php:157 +msgid "Not subscribed!" +msgstr "" + +#: classes/Subscription.php:163 +msgid "Couldn't delete self-subscription." +msgstr "" + +#: classes/Subscription.php:190 +#, fuzzy +msgid "Couldn't delete subscription OMB token." +msgstr "Diposubl eo dilemel ar postel kadarnadur." + +#: classes/Subscription.php:201 lib/subs.php:69 +msgid "Couldn't delete subscription." +msgstr "" + +#: classes/User.php:373 +#, php-format +msgid "Welcome to %1$s, @%2$s!" +msgstr "" + +#: classes/User_group.php:477 +msgid "Could not create group." +msgstr "" + +#: classes/User_group.php:486 +msgid "Could not set group URI." +msgstr "" + +#: classes/User_group.php:507 +msgid "Could not set group membership." +msgstr "" + +#: classes/User_group.php:521 +msgid "Could not save local group info." +msgstr "" + +#: lib/accountsettingsaction.php:108 +msgid "Change your profile settings" +msgstr "" + +#: lib/accountsettingsaction.php:112 +msgid "Upload an avatar" +msgstr "" + +#: lib/accountsettingsaction.php:116 +msgid "Change your password" +msgstr "Cheñch ar ger-tremen" + +#: lib/accountsettingsaction.php:120 +msgid "Change email handling" +msgstr "" + +#: lib/accountsettingsaction.php:124 +msgid "Design your profile" +msgstr "" + +#: lib/accountsettingsaction.php:128 +msgid "Other" +msgstr "All" + +#: lib/accountsettingsaction.php:128 +msgid "Other options" +msgstr "" + +#: lib/action.php:144 +#, php-format +msgid "%1$s - %2$s" +msgstr "%1$s - %2$s" + +#: lib/action.php:159 +msgid "Untitled page" +msgstr "" + +#: lib/action.php:424 +msgid "Primary site navigation" +msgstr "" + +#. TRANS: Tooltip for main menu option "Personal" +#: lib/action.php:430 +msgctxt "TOOLTIP" +msgid "Personal profile and friends timeline" +msgstr "" + +#: lib/action.php:433 +msgctxt "MENU" +msgid "Personal" +msgstr "" + +#. TRANS: Tooltip for main menu option "Account" +#: lib/action.php:435 +msgctxt "TOOLTIP" +msgid "Change your email, avatar, password, profile" +msgstr "" + +#. TRANS: Tooltip for main menu option "Services" +#: lib/action.php:440 +msgctxt "TOOLTIP" +msgid "Connect to services" +msgstr "" + +#: lib/action.php:443 +#, fuzzy +msgid "Connect" +msgstr "Endalc'h" + +#. TRANS: Tooltip for menu option "Admin" +#: lib/action.php:446 +msgctxt "TOOLTIP" +msgid "Change site configuration" +msgstr "" + +#: lib/action.php:449 +msgctxt "MENU" +msgid "Admin" +msgstr "" + +#. TRANS: Tooltip for main menu option "Invite" +#: lib/action.php:453 +#, php-format +msgctxt "TOOLTIP" +msgid "Invite friends and colleagues to join you on %s" +msgstr "" + +#: lib/action.php:456 +msgctxt "MENU" +msgid "Invite" +msgstr "" + +#. TRANS: Tooltip for main menu option "Logout" +#: lib/action.php:462 +msgctxt "TOOLTIP" +msgid "Logout from the site" +msgstr "" + +#: lib/action.php:465 +msgctxt "MENU" +msgid "Logout" +msgstr "" + +#. TRANS: Tooltip for main menu option "Register" +#: lib/action.php:470 +msgctxt "TOOLTIP" +msgid "Create an account" +msgstr "" + +#: lib/action.php:473 +msgctxt "MENU" +msgid "Register" +msgstr "" + +#. TRANS: Tooltip for main menu option "Login" +#: lib/action.php:476 +msgctxt "TOOLTIP" +msgid "Login to the site" +msgstr "" + +#: lib/action.php:479 +msgctxt "MENU" +msgid "Login" +msgstr "" + +#. TRANS: Tooltip for main menu option "Help" +#: lib/action.php:482 +msgctxt "TOOLTIP" +msgid "Help me!" +msgstr "" + +#: lib/action.php:485 +msgctxt "MENU" +msgid "Help" +msgstr "" + +#. TRANS: Tooltip for main menu option "Search" +#: lib/action.php:488 +msgctxt "TOOLTIP" +msgid "Search for people or text" +msgstr "" + +#: lib/action.php:491 +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:513 lib/adminpanelaction.php:398 +msgid "Site notice" +msgstr "" + +#: lib/action.php:579 +msgid "Local views" +msgstr "" + +#: lib/action.php:645 +msgid "Page notice" +msgstr "" + +#: lib/action.php:747 +msgid "Secondary site navigation" +msgstr "" + +#: lib/action.php:752 +msgid "Help" +msgstr "Skoazell" + +#: lib/action.php:754 +msgid "About" +msgstr "Diwar-benn" + +#: lib/action.php:756 +msgid "FAQ" +msgstr "FAG" + +#: lib/action.php:760 +msgid "TOS" +msgstr "" + +#: lib/action.php:763 +msgid "Privacy" +msgstr "Prevezded" + +#: lib/action.php:765 +msgid "Source" +msgstr "Mammenn" + +#: lib/action.php:769 +msgid "Contact" +msgstr "Darempred" + +#: lib/action.php:771 +msgid "Badge" +msgstr "" + +#: lib/action.php:799 +msgid "StatusNet software license" +msgstr "" + +#: lib/action.php:802 +#, php-format +msgid "" +"**%%site.name%%** is a microblogging service brought to you by [%%site." +"broughtby%%](%%site.broughtbyurl%%). " +msgstr "" + +#: lib/action.php:804 +#, php-format +msgid "**%%site.name%%** is a microblogging service. " +msgstr "" + +#: lib/action.php:806 +#, 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 "" + +#: lib/action.php:821 +msgid "Site content license" +msgstr "" + +#: lib/action.php:826 +#, php-format +msgid "Content and data of %1$s are private and confidential." +msgstr "" + +#: lib/action.php:831 +#, php-format +msgid "Content and data copyright by %1$s. All rights reserved." +msgstr "" + +#: lib/action.php:834 +msgid "Content and data copyright by contributors. All rights reserved." +msgstr "" + +#: lib/action.php:847 +msgid "All " +msgstr "Pep tra " + +#: lib/action.php:853 +msgid "license." +msgstr "aotre implijout." + +#: lib/action.php:1152 +msgid "Pagination" +msgstr "Pajennadur" + +#: lib/action.php:1161 +msgid "After" +msgstr "War-lerc'h" + +#: lib/action.php:1169 +msgid "Before" +msgstr "Kent" + +#: lib/activity.php:453 +msgid "Can't handle remote content yet." +msgstr "" + +#: lib/activity.php:481 +msgid "Can't handle embedded XML content yet." +msgstr "" + +#: lib/activity.php:485 +msgid "Can't handle embedded Base64 content yet." +msgstr "" + +#. TRANS: Client error message +#: lib/adminpanelaction.php:98 +msgid "You cannot make changes to this site." +msgstr "" + +#. TRANS: Client error message +#: 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 +#: lib/adminpanelaction.php:283 +msgid "Unable to delete design setting." +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:348 +msgid "Basic site configuration" +msgstr "" + +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:350 +msgctxt "MENU" +msgid "Site" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:356 +msgid "Design configuration" +msgstr "" + +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:358 +msgctxt "MENU" +msgid "Design" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:364 +msgid "User configuration" +msgstr "" + +#. TRANS: Menu item for site administration +#: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 +msgid "User" +msgstr "Implijer" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:372 +msgid "Access configuration" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:380 +msgid "Paths configuration" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:388 +msgid "Sessions configuration" +msgstr "" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:396 +#, fuzzy +msgid "Edit site notice" +msgstr "Eilañ an ali" + +#. TRANS: Menu item title/tooltip +#: lib/adminpanelaction.php:404 +msgid "Snapshots configuration" +msgstr "" + +#: lib/apiauth.php:94 +msgid "API resource requires read-write access, but you only have read access." +msgstr "" + +#: lib/apiauth.php:272 +#, php-format +msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" +msgstr "" + +#: lib/applicationeditform.php:136 +msgid "Edit application" +msgstr "Kemmañ an arload" + +#: lib/applicationeditform.php:184 +msgid "Icon for this application" +msgstr "" + +#: lib/applicationeditform.php:204 +#, php-format +msgid "Describe your application in %d characters" +msgstr "" + +#: lib/applicationeditform.php:207 +msgid "Describe your application" +msgstr "" + +#: lib/applicationeditform.php:216 +msgid "Source URL" +msgstr "Mammenn URL" + +#: lib/applicationeditform.php:218 +msgid "URL of the homepage of this application" +msgstr "" + +#: lib/applicationeditform.php:224 +msgid "Organization responsible for this application" +msgstr "" + +#: lib/applicationeditform.php:230 +msgid "URL for the homepage of the organization" +msgstr "" + +#: lib/applicationeditform.php:236 +msgid "URL to redirect to after authentication" +msgstr "" + +#: lib/applicationeditform.php:258 +msgid "Browser" +msgstr "Merdeer" + +#: lib/applicationeditform.php:274 +msgid "Desktop" +msgstr "" + +#: lib/applicationeditform.php:275 +msgid "Type of application, browser or desktop" +msgstr "" + +#: lib/applicationeditform.php:297 +msgid "Read-only" +msgstr "" + +#: lib/applicationeditform.php:315 +msgid "Read-write" +msgstr "" + +#: lib/applicationeditform.php:316 +msgid "Default access for this application: read-only, or read-write" +msgstr "" + +#: lib/applicationlist.php:154 +msgid "Revoke" +msgstr "" + +#: lib/attachmentlist.php:87 +msgid "Attachments" +msgstr "" + +#: lib/attachmentlist.php:265 +msgid "Author" +msgstr "Aozer" + +#: lib/attachmentlist.php:278 +msgid "Provider" +msgstr "Pourvezer" + +#: lib/attachmentnoticesection.php:67 +msgid "Notices where this attachment appears" +msgstr "" + +#: lib/attachmenttagcloudsection.php:48 +msgid "Tags for this attachment" +msgstr "" + +#: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 +msgid "Password changing failed" +msgstr "" + +#: lib/authenticationplugin.php:235 +msgid "Password changing is not allowed" +msgstr "" + +#: lib/channel.php:138 lib/channel.php:158 +msgid "Command results" +msgstr "" + +#: lib/channel.php:210 lib/mailhandler.php:142 +msgid "Command complete" +msgstr "" + +#: lib/channel.php:221 +msgid "Command failed" +msgstr "" + +#: lib/command.php:44 +msgid "Sorry, this command is not yet implemented." +msgstr "" + +#: lib/command.php:88 +#, php-format +msgid "Could not find a user with nickname %s" +msgstr "" + +#: lib/command.php:92 +msgid "It does not make a lot of sense to nudge yourself!" +msgstr "" + +#: lib/command.php:99 +#, php-format +msgid "Nudge sent to %s" +msgstr "" + +#: lib/command.php:126 +#, php-format +msgid "" +"Subscriptions: %1$s\n" +"Subscribers: %2$s\n" +"Notices: %3$s" +msgstr "" + +#: lib/command.php:152 lib/command.php:390 lib/command.php:451 +msgid "Notice with that id does not exist" +msgstr "" + +#: lib/command.php:168 lib/command.php:406 lib/command.php:467 +#: lib/command.php:523 +msgid "User has no last notice" +msgstr "" + +#: lib/command.php:190 +msgid "Notice marked as fave." +msgstr "" + +#: lib/command.php:217 +msgid "You are already a member of that group" +msgstr "" + +#: lib/command.php:231 +#, php-format +msgid "Could not join user %s to group %s" +msgstr "" + +#: lib/command.php:236 +#, php-format +msgid "%s joined group %s" +msgstr "%s zo emezelet er strollad %s" + +#: lib/command.php:275 +#, php-format +msgid "Could not remove user %s to group %s" +msgstr "" + +#: lib/command.php:280 +#, php-format +msgid "%s left group %s" +msgstr "%s {{Gender:.|en|he}} deus kuitaet ar strollad %s" + +#: lib/command.php:309 +#, php-format +msgid "Fullname: %s" +msgstr "Anv klok : %s" + +#: lib/command.php:312 lib/mail.php:254 +#, php-format +msgid "Location: %s" +msgstr "" + +#: lib/command.php:315 lib/mail.php:256 +#, php-format +msgid "Homepage: %s" +msgstr "" + +#: lib/command.php:318 +#, php-format +msgid "About: %s" +msgstr "Diwar-benn : %s" + +#: lib/command.php:349 +#, php-format +msgid "Message too long - maximum is %d characters, you sent %d" +msgstr "" + +#: lib/command.php:367 +#, php-format +msgid "Direct message to %s sent" +msgstr "" + +#: lib/command.php:369 +msgid "Error sending direct message." +msgstr "" + +#: lib/command.php:413 +msgid "Cannot repeat your own notice" +msgstr "" + +#: lib/command.php:418 +msgid "Already repeated that notice" +msgstr "" + +#: lib/command.php:426 +#, php-format +msgid "Notice from %s repeated" +msgstr "" + +#: lib/command.php:428 +msgid "Error repeating notice." +msgstr "" + +#: lib/command.php:482 +#, php-format +msgid "Notice too long - maximum is %d characters, you sent %d" +msgstr "" + +#: lib/command.php:491 +#, php-format +msgid "Reply to %s sent" +msgstr "" + +#: lib/command.php:493 +msgid "Error saving notice." +msgstr "" + +#: lib/command.php:547 +msgid "Specify the name of the user to subscribe to" +msgstr "" + +#: lib/command.php:554 lib/command.php:589 +msgid "No such user" +msgstr "" + +#: lib/command.php:561 +#, php-format +msgid "Subscribed to %s" +msgstr "" + +#: lib/command.php:582 lib/command.php:685 +msgid "Specify the name of the user to unsubscribe from" +msgstr "" + +#: lib/command.php:595 +#, php-format +msgid "Unsubscribed from %s" +msgstr "" + +#: lib/command.php:613 lib/command.php:636 +msgid "Command not yet implemented." +msgstr "" + +#: lib/command.php:616 +msgid "Notification off." +msgstr "" + +#: lib/command.php:618 +msgid "Can't turn off notification." +msgstr "" + +#: lib/command.php:639 +msgid "Notification on." +msgstr "" + +#: lib/command.php:641 +msgid "Can't turn on notification." +msgstr "" + +#: lib/command.php:654 +msgid "Login command is disabled" +msgstr "" + +#: lib/command.php:665 +#, php-format +msgid "This link is useable only once, and is good for only 2 minutes: %s" +msgstr "" + +#: lib/command.php:692 +#, php-format +msgid "Unsubscribed %s" +msgstr "" + +#: lib/command.php:709 +msgid "You are not subscribed to anyone." +msgstr "" + +#: lib/command.php:711 +#, 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:731 +msgid "No one is subscribed to you." +msgstr "" + +#: lib/command.php:733 +#, 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:753 +msgid "You are not a member of any groups." +msgstr "" + +#: lib/command.php:755 +#, 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:769 +msgid "" +"Commands:\n" +"on - turn on notifications\n" +"off - turn off notifications\n" +"help - show this help\n" +"follow - 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 - unsubscribe from user\n" +"d - direct message to user\n" +"get - get last notice from user\n" +"whois - get profile info on user\n" +"lose - force user to stop following you\n" +"fav - add user's last notice as a 'fave'\n" +"fav # - add notice with the given id as a 'fave'\n" +"repeat # - repeat a notice with a given id\n" +"repeat - repeat the last notice from user\n" +"reply # - reply to notice with a given id\n" +"reply - reply to the last notice from user\n" +"join - join group\n" +"login - Get a link to login to the web interface\n" +"drop - leave group\n" +"stats - get your stats\n" +"stop - same as 'off'\n" +"quit - same as 'off'\n" +"sub - same as 'follow'\n" +"unsub - same as 'leave'\n" +"last - same as 'get'\n" +"on - not yet implemented.\n" +"off - not yet implemented.\n" +"nudge - remind a user to update.\n" +"invite - not yet implemented.\n" +"track - not yet implemented.\n" +"untrack - 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:148 +msgid "No configuration file found. " +msgstr "" + +#: lib/common.php:149 +msgid "I looked for configuration files in the following places: " +msgstr "" + +#: lib/common.php:151 +msgid "You may wish to run the installer to fix this." +msgstr "" + +#: lib/common.php:152 +msgid "Go to the installer." +msgstr "" + +#: lib/connectsettingsaction.php:110 +msgid "IM" +msgstr "IM" + +#: 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 "RSS 1.0" + +#: lib/feed.php:87 +msgid "RSS 2.0" +msgstr "RSS 2.0" + +#: lib/feed.php:89 +msgid "Atom" +msgstr "Atom" + +#: lib/feed.php:91 +msgid "FOAF" +msgstr "Mignon ur mignon (FOAF)" + +#: lib/feedlist.php:64 +msgid "Export data" +msgstr "" + +#: lib/galleryaction.php:121 +msgid "Filter tags" +msgstr "Silañ ar balizennoù" + +#: lib/galleryaction.php:131 +msgid "All" +msgstr "An holl" + +#: lib/galleryaction.php:139 +msgid "Select tag to filter" +msgstr "" + +#: lib/galleryaction.php:140 +msgid "Tag" +msgstr "Merk" + +#: lib/galleryaction.php:141 +msgid "Choose a tag to narrow list" +msgstr "" + +#: lib/galleryaction.php:143 +msgid "Go" +msgstr "Mont" + +#: 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 "Strollad" + +#: lib/groupnav.php:101 +msgid "Blocked" +msgstr "Stanket" + +#: lib/groupnav.php:102 +#, php-format +msgid "%s blocked users" +msgstr "%s implijer stanket" + +#: lib/groupnav.php:108 +#, php-format +msgid "Edit %s group properties" +msgstr "" + +#: lib/groupnav.php:113 +msgid "Logo" +msgstr "Logo" + +#: 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 "" + +#: lib/htmloutputter.php:103 +msgid "This page is not available in a media type you accept" +msgstr "" + +#: lib/imagefile.php:75 +#, php-format +msgid "That file is too big. The maximum file size is %s." +msgstr "" + +#: lib/imagefile.php:80 +msgid "Partial upload." +msgstr "" + +#: lib/imagefile.php:88 lib/mediafile.php:170 +msgid "System error uploading file." +msgstr "" + +#: lib/imagefile.php:96 +msgid "Not an image or corrupt file." +msgstr "" + +#: lib/imagefile.php:109 +msgid "Unsupported image file format." +msgstr "" + +#: lib/imagefile.php:122 +msgid "Lost our file." +msgstr "" + +#: lib/imagefile.php:166 lib/imagefile.php:231 +msgid "Unknown file type" +msgstr "" + +#: lib/imagefile.php:251 +msgid "MB" +msgstr "Mo" + +#: lib/imagefile.php:253 +msgid "kB" +msgstr "Ko" + +#: lib/jabber.php:220 +#, php-format +msgid "[%s]" +msgstr "[%s]" + +#: lib/jabber.php:400 +#, php-format +msgid "Unknown inbox source %d." +msgstr "" + +#: lib/joinform.php:114 +msgid "Join" +msgstr "Stagañ" + +#: lib/leaveform.php:114 +msgid "Leave" +msgstr "Kuitañ" + +#: lib/logingroupnav.php:80 +msgid "Login with a username and password" +msgstr "" + +#: lib/logingroupnav.php:86 +msgid "Sign up for a new account" +msgstr "" + +#: lib/mail.php:172 +msgid "Email address confirmation" +msgstr "" + +#: lib/mail.php:174 +#, php-format +msgid "" +"Hey, %s.\n" +"\n" +"Someone just entered this email address on %s.\n" +"\n" +"If it was you, and you want to confirm your entry, use the URL below:\n" +"\n" +"\t%s\n" +"\n" +"If not, just ignore this message.\n" +"\n" +"Thanks for your time, \n" +"%s\n" +msgstr "" + +#: lib/mail.php:236 +#, php-format +msgid "%1$s is now listening to your notices on %2$s." +msgstr "" + +#: lib/mail.php:241 +#, php-format +msgid "" +"%1$s is now listening to your notices on %2$s.\n" +"\n" +"\t%3$s\n" +"\n" +"%4$s%5$s%6$s\n" +"Faithfully yours,\n" +"%7$s.\n" +"\n" +"----\n" +"Change your email address or notification options at %8$s\n" +msgstr "" + +#: lib/mail.php:258 +#, php-format +msgid "Bio: %s" +msgstr "" + +#: lib/mail.php:286 +#, php-format +msgid "New email address for posting to %s" +msgstr "" + +#: lib/mail.php:289 +#, 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 "" + +#: lib/mail.php:413 +#, php-format +msgid "%s status" +msgstr "Statud %s" + +#: lib/mail.php:439 +msgid "SMS confirmation" +msgstr "" + +#: lib/mail.php:463 +#, php-format +msgid "You've been nudged by %s" +msgstr "" + +#: lib/mail.php:467 +#, php-format +msgid "" +"%1$s (%2$s) is wondering what you are up to these days and is inviting you " +"to post some news.\n" +"\n" +"So let's hear from you :)\n" +"\n" +"%3$s\n" +"\n" +"Don't reply to this email; it won't get to them.\n" +"\n" +"With kind regards,\n" +"%4$s\n" +msgstr "" + +#: lib/mail.php:510 +#, php-format +msgid "New private message from %s" +msgstr "Kemenadenn personel nevez a-berzh %s" + +#: lib/mail.php:514 +#, php-format +msgid "" +"%1$s (%2$s) sent you a private message:\n" +"\n" +"------------------------------------------------------\n" +"%3$s\n" +"------------------------------------------------------\n" +"\n" +"You can reply to their message here:\n" +"\n" +"%4$s\n" +"\n" +"Don't reply to this email; it won't get to them.\n" +"\n" +"With kind regards,\n" +"%5$s\n" +msgstr "" + +#: lib/mail.php:559 +#, php-format +msgid "%s (@%s) added your notice as a favorite" +msgstr "" + +#: lib/mail.php:561 +#, 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 "" + +#: lib/mail.php:624 +#, php-format +msgid "%s (@%s) sent a notice to your attention" +msgstr "" + +#: lib/mail.php:626 +#, 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" +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:482 +msgid "from" +msgstr "eus" + +#: 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:216 +msgid "File exceeds user's quota." +msgstr "" + +#: lib/mediafile.php:196 lib/mediafile.php:233 +msgid "File could not be moved to destination directory." +msgstr "" + +#: lib/mediafile.php:201 lib/mediafile.php:237 +msgid "Could not determine file's MIME type." +msgstr "" + +#: lib/mediafile.php:270 +#, php-format +msgid " Try using another %s format." +msgstr "" + +#: lib/mediafile.php:275 +#, 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 "Da" + +#: 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 "Kas un ali" + +#: lib/noticeform.php:173 +#, php-format +msgid "What's up, %s?" +msgstr "Penaos 'mañ kont, %s ?" + +#: lib/noticeform.php:192 +msgid "Attach" +msgstr "Stagañ" + +#: lib/noticeform.php:196 +msgid "Attach a file" +msgstr "Stagañ ur restr" + +#: 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 "" + +#: lib/noticelist.php:429 +#, php-format +msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" +msgstr "" + +#: lib/noticelist.php:430 +msgid "N" +msgstr "N" + +#: lib/noticelist.php:430 +msgid "S" +msgstr "S" + +#: lib/noticelist.php:431 +msgid "E" +msgstr "R" + +#: lib/noticelist.php:431 +msgid "W" +msgstr "K" + +#: lib/noticelist.php:438 +msgid "at" +msgstr "e" + +#: lib/noticelist.php:566 +msgid "in context" +msgstr "" + +#: lib/noticelist.php:601 +msgid "Repeated by" +msgstr "" + +#: lib/noticelist.php:628 +msgid "Reply to this notice" +msgstr "" + +#: lib/noticelist.php:629 +msgid "Reply" +msgstr "Respont" + +#: lib/noticelist.php:673 +msgid "Notice repeated" +msgstr "" + +#: lib/nudgeform.php:116 +msgid "Nudge this user" +msgstr "Kas ur blinkadenn d'an implijer-mañ" + +#: lib/nudgeform.php:128 +msgid "Nudge" +msgstr "Blinkadenn" + +#: lib/nudgeform.php:128 +msgid "Send a nudge to this user" +msgstr "Kas ur blinkadenn d'an implijer-mañ" + +#: lib/oauthstore.php:283 +msgid "Error inserting new profile" +msgstr "" + +#: lib/oauthstore.php:291 +msgid "Error inserting avatar" +msgstr "" + +#: lib/oauthstore.php:311 +msgid "Error inserting remote profile" +msgstr "" + +#: lib/oauthstore.php:345 +msgid "Duplicate notice" +msgstr "Eilañ an ali" + +#: lib/oauthstore.php:490 +msgid "Couldn't insert new subscription." +msgstr "" + +#: lib/personalgroupnav.php:99 +msgid "Personal" +msgstr "Hiniennel" + +#: lib/personalgroupnav.php:104 +msgid "Replies" +msgstr "Respontoù" + +#: lib/personalgroupnav.php:114 +msgid "Favorites" +msgstr "Pennrolloù" + +#: lib/personalgroupnav.php:125 +msgid "Inbox" +msgstr "Boest resev" + +#: lib/personalgroupnav.php:126 +msgid "Your incoming messages" +msgstr "ar gemennadennoù o peus resevet" + +#: lib/personalgroupnav.php:130 +msgid "Outbox" +msgstr "Boest kas" + +#: lib/personalgroupnav.php:131 +msgid "Your sent messages" +msgstr "Ar c'hemenadennoù kaset ganeoc'h" + +#: lib/personaltagcloudsection.php:56 +#, php-format +msgid "Tags in %s's notices" +msgstr "" + +#: lib/plugin.php:114 +msgid "Unknown" +msgstr "Dianav" + +#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +msgid "Subscriptions" +msgstr "Koumanantoù" + +#: lib/profileaction.php:126 +msgid "All subscriptions" +msgstr "" + +#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +msgid "Subscribers" +msgstr "Ar re koumanantet" + +#: lib/profileaction.php:159 +msgid "All subscribers" +msgstr "An holl re koumanantet" + +#: lib/profileaction.php:180 +msgid "User ID" +msgstr "ID an implijer" + +#: lib/profileaction.php:185 +msgid "Member since" +msgstr "Ezel abaoe" + +#: lib/profileaction.php:247 +msgid "All groups" +msgstr "An holl strolladoù" + +#: lib/profileformaction.php:123 +msgid "No return-to arguments." +msgstr "" + +#: lib/profileformaction.php:137 +msgid "Unimplemented method." +msgstr "" + +#: lib/publicgroupnav.php:78 +msgid "Public" +msgstr "Foran" + +#: lib/publicgroupnav.php:82 +msgid "User groups" +msgstr "Strolladoù implijerien" + +#: 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 "Poblek" + +#: lib/repeatform.php:107 +msgid "Repeat this notice?" +msgstr "Adkregiñ gant an ali-mañ ?" + +#: lib/repeatform.php:132 +msgid "Repeat this notice" +msgstr "Adkregiñ gant an ali-mañ" + +#: lib/revokeroleform.php:91 +#, fuzzy, php-format +msgid "Revoke the \"%s\" role from this user" +msgstr "Stankañ an implijer-mañ eus ar strollad-se" + +#: lib/router.php:671 +msgid "No single user defined for single-user mode." +msgstr "" + +#: lib/sandboxform.php:67 +msgid "Sandbox" +msgstr "Poull-traezh" + +#: lib/sandboxform.php:78 +msgid "Sandbox this user" +msgstr "" + +#: lib/searchaction.php:120 +msgid "Search site" +msgstr "Klask el lec'hienn" + +#: lib/searchaction.php:126 +msgid "Keyword(s)" +msgstr "Ger(ioù) alc'hwez" + +#: lib/searchaction.php:127 +msgid "Search" +msgstr "Klask" + +#: lib/searchaction.php:162 +msgid "Search help" +msgstr "Skoazell diwar-benn ar c'hlask" + +#: lib/searchgroupnav.php:80 +msgid "People" +msgstr "Tud" + +#: lib/searchgroupnav.php:81 +msgid "Find people on this site" +msgstr "Klask tud el lec'hienn-mañ" + +#: lib/searchgroupnav.php:83 +msgid "Find content of notices" +msgstr "Klask alioù en danvez" + +#: lib/searchgroupnav.php:85 +msgid "Find groups on this site" +msgstr "Klask strolladoù el lec'hienn-mañ" + +#: lib/section.php:89 +msgid "Untitled section" +msgstr "" + +#: lib/section.php:106 +msgid "More..." +msgstr "Muioc'h..." + +#: lib/silenceform.php:67 +msgid "Silence" +msgstr "Didrouz" + +#: 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 "Pediñ" + +#: 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 "Hini ebet" + +#: 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/userprofile.php:116 +msgid "Edit Avatar" +msgstr "Kemmañ an Avatar" + +#: lib/userprofile.php:236 +msgid "User actions" +msgstr "Obererezh an implijer" + +#: lib/userprofile.php:251 +msgid "Edit profile settings" +msgstr "" + +#: lib/userprofile.php:252 +msgid "Edit" +msgstr "Aozañ" + +#: lib/userprofile.php:275 +msgid "Send a direct message to this user" +msgstr "Kas ur gemennadenn war-eeun d'an implijer-mañ" + +#: lib/userprofile.php:276 +msgid "Message" +msgstr "Kemennadenn" + +#: lib/userprofile.php:314 +msgid "Moderate" +msgstr "Habaskaat" + +#: lib/userprofile.php:352 +#, fuzzy +msgid "User role" +msgstr "Strolladoù implijerien" + +#: lib/userprofile.php:354 +#, fuzzy +msgctxt "role" +msgid "Administrator" +msgstr "Merourien" + +#: lib/userprofile.php:355 +#, fuzzy +msgctxt "role" +msgid "Moderator" +msgstr "Habaskaat" + +#: lib/util.php:1015 +msgid "a few seconds ago" +msgstr "un nebeud eilennoù zo" + +#: lib/util.php:1017 +msgid "about a minute ago" +msgstr "1 vunutenn zo well-wazh" + +#: lib/util.php:1019 +#, php-format +msgid "about %d minutes ago" +msgstr "%d munutenn zo well-wazh" + +#: lib/util.php:1021 +msgid "about an hour ago" +msgstr "1 eurvezh zo well-wazh" + +#: lib/util.php:1023 +#, php-format +msgid "about %d hours ago" +msgstr "%d eurvezh zo well-wazh" + +#: lib/util.php:1025 +msgid "about a day ago" +msgstr "1 devezh zo well-wazh" + +#: lib/util.php:1027 +#, php-format +msgid "about %d days ago" +msgstr "%d devezh zo well-wazh" + +#: lib/util.php:1029 +msgid "about a month ago" +msgstr "miz zo well-wazh" + +#: lib/util.php:1031 +#, php-format +msgid "about %d months ago" +msgstr "%d miz zo well-wazh" + +#: lib/util.php:1033 +msgid "about a year ago" +msgstr "bloaz zo well-wazh" + +#: 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:402 +#, php-format +msgid "Message too long - maximum is %1$d characters, you sent %2$d." +msgstr "" +"Re hir eo ar gemennadenn - ar ment brasañ a zo %1$d arouezenn, %2$d " +"arouezenn o peus lakaet." diff --git a/locale/statusnet.po b/locale/statusnet.po index b7a421fd4..b4b22d311 100644 --- a/locale/statusnet.po +++ b/locale/statusnet.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-04 18:55+0000\n" +"POT-Creation-Date: 2010-03-04 19:12+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" -- cgit v1.2.3-54-g00ecf From fc3b53853f177e98c10f44c14a3125221ce3e83c Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Thu, 4 Mar 2010 11:18:30 -0800 Subject: Make indenting consistent in README --- README | 516 ++++++++++++++++++++++++++++++++--------------------------------- 1 file changed, 258 insertions(+), 258 deletions(-) diff --git a/README b/README index 0518e9a5a..9b6e957dd 100644 --- a/README +++ b/README @@ -35,7 +35,7 @@ Identi.ca . It is shared with you in hope that you too make an Open Software Service available to your users. To learn more, please see the Open Software Service Definition 1.1: - http://www.opendefinition.org/ossd + http://www.opendefinition.org/ossd StatusNet, Inc. also offers this software as a Web service, requiring no installation on your part. The software run @@ -254,11 +254,11 @@ especially if you've previously installed PHP/MySQL packages. 3. Make your target directory writeable by the Web server. - chmod a+w /var/www/statusnet/ + chmod a+w /var/www/statusnet/ On some systems, this will probably work: - chgrp www-data /var/www/statusnet/ + chgrp www-data /var/www/statusnet/ chmod g+w /var/www/statusnet/ If your Web server runs as another user besides "www-data", try @@ -269,9 +269,9 @@ especially if you've previously installed PHP/MySQL packages. file subdirectories writeable by the Web server. An insecure way to do this is: - chmod a+w /var/www/statusnet/avatar - chmod a+w /var/www/statusnet/background - chmod a+w /var/www/statusnet/file + chmod a+w /var/www/statusnet/avatar + chmod a+w /var/www/statusnet/background + chmod a+w /var/www/statusnet/file You can also make the avatar, background, and file directories writeable by the Web server group, as noted above. @@ -279,7 +279,7 @@ especially if you've previously installed PHP/MySQL packages. 5. Create a database to hold your microblog data. Something like this should work: - mysqladmin -u "username" --password="password" create statusnet + mysqladmin -u "username" --password="password" create statusnet Note that StatusNet must have its own database; you can't share the database with another program. You can name it whatever you want, @@ -293,9 +293,9 @@ especially if you've previously installed PHP/MySQL packages. database. If you have shell access, this will probably work from the MySQL shell: - GRANT ALL on statusnet.* - TO 'statusnetuser'@'localhost' - IDENTIFIED BY 'statusnetpassword'; + GRANT ALL on statusnet.* + TO 'statusnetuser'@'localhost' + IDENTIFIED BY 'statusnetpassword'; You should change 'statusnetuser' and 'statusnetpassword' to your preferred new username and password. You may want to test logging in to MySQL as @@ -303,7 +303,7 @@ especially if you've previously installed PHP/MySQL packages. 7. In a browser, navigate to the StatusNet install script; something like: - http://yourserver.example.com/statusnet/install.php + http://yourserver.example.com/statusnet/install.php Enter the database connection information and your site name. The install program will configure your site and install the initial, @@ -357,7 +357,7 @@ your server. You should now be able to navigate to a "fancy" URL on your server, like: - http://example.net/statusnet/main/register + http://example.net/statusnet/main/register If you changed your HTTP server configuration, you may need to restart the server first. @@ -368,11 +368,11 @@ directory is 'All' in your Apache configuration file. This is usually /etc/apache2/sites-available/default. See the Apache documentation for .htaccess files for more details: - http://httpd.apache.org/docs/2.2/howto/htaccess.html + http://httpd.apache.org/docs/2.2/howto/htaccess.html Also, check that mod_rewrite is installed and enabled: - http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html + http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html Sphinx ------ @@ -380,8 +380,8 @@ Sphinx To use a Sphinx server to search users and notices, you'll need to enable the SphinxSearch plugin. Add to your config.php: - addPlugin('SphinxSearch'); - $config['sphinx']['server'] = 'searchhost.local'; + addPlugin('SphinxSearch'); + $config['sphinx']['server'] = 'searchhost.local'; You also need to install, compile and enable the sphinx pecl extension for php on the client side, which itself depends on the sphinx development files. @@ -416,26 +416,26 @@ For this to work, there *must* be a domain or sub-domain for which all 2. Make sure the maildaemon.php file is executable: - chmod +x scripts/maildaemon.php + chmod +x scripts/maildaemon.php Note that "daemon" is kind of a misnomer here; the script is more of a filter than a daemon. 2. Edit /etc/aliases on your mail server and add the following line: - *: /path/to/statusnet/scripts/maildaemon.php + *: /path/to/statusnet/scripts/maildaemon.php 3. Run whatever code you need to to update your aliases database. For many mail servers (Postfix, Exim, Sendmail), this should work: - newaliases + newaliases You may need to restart your mail server for the new database to take effect. 4. Set the following in your config.php file: - $config['mail']['domain'] = 'yourdomain.example.net'; + $config['mail']['domain'] = 'yourdomain.example.net'; At this point, post-by-email and post-by-SMS-gateway should work. Note that if your mail server is on a different computer from your email @@ -489,7 +489,7 @@ search, indexing, bridging, or other cool services. To configure a downstream site to receive your public stream, add their "JID" (Jabber ID) to your config.php as follows: - $config['xmpp']['public'][] = 'downstream@example.net'; + $config['xmpp']['public'][] = 'downstream@example.net'; (Don't miss those square brackets at the end.) Note that your XMPP broadcasting must be configured as mentioned above. Although you can @@ -518,7 +518,7 @@ server is probably a good idea for high-volume sites. 3. In your config.php files (both the Web server and the queues server!), set the following variable: - $config['queue']['enabled'] = true; + $config['queue']['enabled'] = true; You may also want to look at the 'daemon' section of this file for more daemon options. Note that if you set the 'user' and/or 'group' @@ -577,15 +577,15 @@ following files: display.css: a CSS2 file for "default" styling for all browsers. ie6.css: a CSS2 file for override styling for fixing up Internet - Explorer 6. + Explorer 6. ie7.css: a CSS2 file for override styling for fixing up Internet - Explorer 7. + Explorer 7. logo.png: a logo image for the site. default-avatar-profile.png: a 96x96 pixel image to use as the avatar for - users who don't upload their own. + users who don't upload their own. default-avatar-stream.png: Ditto, but 48x48. For streams of notices. default-avatar-mini.png: Ditto ditto, but 24x24. For subscriptions - listing on profile pages. + listing on profile pages. You may want to start by copying the files from the default theme to your own directory. @@ -634,17 +634,17 @@ Access to file attachments can also be restricted to logged-in users only. 1. Add a directory outside the web root where your file uploads will be stored. Usually a command like this will work: - mkdir /var/www/statusnet-files + mkdir /var/www/statusnet-files 2. Make the file uploads directory writeable by the web server. An insecure way to do this is: - chmod a+x /var/www/statusnet-files + chmod a+x /var/www/statusnet-files 3. Tell StatusNet to use this directory for file uploads. Add a line like this to your config.php: - $config['attachments']['dir'] = '/var/www/statusnet-files'; + $config['attachments']['dir'] = '/var/www/statusnet-files'; Upgrading ========= @@ -696,12 +696,12 @@ instructions; read to the end first before trying them. If your database is at version 0.8.0 or above, you can run a special upgrade script: - mysql -u -p db/08to09.sql + mysql -u -p db/08to09.sql Otherwise, go to your StatusNet directory and AFTER YOU MAKE A BACKUP run the rebuilddb.sh script like this: - ./scripts/rebuilddb.sh rootuser rootpassword database db/statusnet.sql + ./scripts/rebuilddb.sh rootuser rootpassword database db/statusnet.sql Here, rootuser and rootpassword are the username and password for a user who can drop and create databases as well as tables; typically @@ -785,7 +785,7 @@ Almost all configuration options are made through a two-dimensional associative array, cleverly named $config. A typical configuration line will be: - $config['section']['option'] = value; + $config['section']['option'] = value; For brevity, the following documentation describes each section and option. @@ -798,78 +798,78 @@ This section is a catch-all for site-wide variables. name: the name of your site, like 'YourCompany Microblog'. server: the server part of your site's URLs, like 'example.net'. path: The path part of your site's URLs, like 'statusnet' or '' - (installed in root). + (installed in root). fancy: whether or not your site uses fancy URLs (see Fancy URLs - section above). Default is false. + section above). Default is false. logfile: full path to a file for StatusNet to save logging - information to. You may want to use this if you don't have - access to syslog. + information to. You may want to use this if you don't have + access to syslog. logdebug: whether to log additional debug info like backtraces on - hard errors. Default false. + hard errors. Default false. locale_path: full path to the directory for locale data. Unless you - store all your locale data in one place, you probably - don't need to use this. + store all your locale data in one place, you probably + don't need to use this. language: default language for your site. Defaults to US English. - Note that this is overridden if a user is logged in and has - selected a different language. It is also overridden if the - user is NOT logged in, but their browser requests a different - langauge. Since pretty much everybody's browser requests a - language, that means that changing this setting has little or - no effect in practice. + Note that this is overridden if a user is logged in and has + selected a different language. It is also overridden if the + user is NOT logged in, but their browser requests a different + langauge. Since pretty much everybody's browser requests a + language, that means that changing this setting has little or + no effect in practice. languages: A list of languages supported on your site. Typically you'd - only change this if you wanted to disable support for one - or another language: - "unset($config['site']['languages']['de'])" will disable - support for German. + only change this if you wanted to disable support for one + or another language: + "unset($config['site']['languages']['de'])" will disable + support for German. theme: Theme for your site (see Theme section). Two themes are - provided by default: 'default' and 'stoica' (the one used by - Identi.ca). It's appreciated if you don't use the 'stoica' theme - except as the basis for your own. + provided by default: 'default' and 'stoica' (the one used by + Identi.ca). It's appreciated if you don't use the 'stoica' theme + except as the basis for your own. email: contact email address for your site. By default, it's extracted - from your Web server environment; you may want to customize it. + from your Web server environment; you may want to customize it. broughtbyurl: name of an organization or individual who provides the - service. Each page will include a link to this name in the - footer. A good way to link to the blog, forum, wiki, - corporate portal, or whoever is making the service available. + service. Each page will include a link to this name in the + footer. A good way to link to the blog, forum, wiki, + corporate portal, or whoever is making the service available. broughtby: text used for the "brought by" link. timezone: default timezone for message display. Users can set their - own time zone. Defaults to 'UTC', which is a pretty good default. + own time zone. Defaults to 'UTC', which is a pretty good default. closed: If set to 'true', will disallow registration on your site. This is a cheap way to restrict accounts to only one individual or group; just register the accounts you want on the service, *then* set this variable to 'true'. inviteonly: If set to 'true', will only allow registration if the user - was invited by an existing user. + was invited by an existing user. private: If set to 'true', anonymous users will be redirected to the - 'login' page. Also, API methods that normally require no - authentication will require it. Note that this does not turn - off registration; use 'closed' or 'inviteonly' for the - behaviour you want. + 'login' page. Also, API methods that normally require no + authentication will require it. Note that this does not turn + off registration; use 'closed' or 'inviteonly' for the + behaviour you want. notice: A plain string that will appear on every page. A good place to put introductory information about your service, or info about upgrades and outages, or other community info. Any HTML will - be escaped. + be escaped. logo: URL of an image file to use as the logo for the site. Overrides - the logo in the theme, if any. + the logo in the theme, if any. ssl: Whether to use SSL and https:// URLs for some or all pages. - Possible values are 'always' (use it for all pages), 'never' - (don't use it for any pages), or 'sometimes' (use it for - sensitive pages that include passwords like login and registration, - but not for regular pages). Default to 'never'. + Possible values are 'always' (use it for all pages), 'never' + (don't use it for any pages), or 'sometimes' (use it for + sensitive pages that include passwords like login and registration, + but not for regular pages). Default to 'never'. sslserver: use an alternate server name for SSL URLs, like - 'secure.example.org'. You should be careful to set cookie - parameters correctly so that both the SSL server and the - "normal" server can access the session cookie and - preferably other cookies as well. + 'secure.example.org'. You should be careful to set cookie + parameters correctly so that both the SSL server and the + "normal" server can access the session cookie and + preferably other cookies as well. shorturllength: Length of URL at which URLs in a message exceeding 140 - characters will be sent to the user's chosen - shortening service. + characters will be sent to the user's chosen + shortening service. dupelimit: minimum time allowed for one person to say the same thing - twice. Default 60s. Anything lower is considered a user - or UI error. + twice. Default 60s. Anything lower is considered a user + or UI error. textlimit: default max size for texts in the site. Defaults to 140. - 0 means no limit. Can be fine-tuned for notices, messages, - profile bios and group descriptions. + 0 means no limit. Can be fine-tuned for notices, messages, + profile bios and group descriptions. db -- @@ -879,24 +879,24 @@ DB_DataObject (see ). The ones that you may want to set are listed below for clarity. database: a DSN (Data Source Name) for your StatusNet database. This is - in the format 'protocol://username:password@hostname/databasename', - where 'protocol' is 'mysql' or 'mysqli' (or possibly 'postgresql', if you - really know what you're doing), 'username' is the username, - 'password' is the password, and etc. + in the format 'protocol://username:password@hostname/databasename', + where 'protocol' is 'mysql' or 'mysqli' (or possibly 'postgresql', if you + really know what you're doing), 'username' is the username, + 'password' is the password, and etc. ini_yourdbname: if your database is not named 'statusnet', you'll need - to set this to point to the location of the - statusnet.ini file. Note that the real name of your database - should go in there, not literally 'yourdbname'. + to set this to point to the location of the + statusnet.ini file. Note that the real name of your database + should go in there, not literally 'yourdbname'. db_driver: You can try changing this to 'MDB2' to use the other driver - type for DB_DataObject, but note that it breaks the OpenID - libraries, which only support PEAR::DB. + type for DB_DataObject, but note that it breaks the OpenID + libraries, which only support PEAR::DB. debug: On a database error, you may get a message saying to set this - value to 5 to see debug messages in the browser. This breaks - just about all pages, and will also expose the username and - password + value to 5 to see debug messages in the browser. This breaks + just about all pages, and will also expose the username and + password quote_identifiers: Set this to true if you're using postgresql. type: either 'mysql' or 'postgresql' (used for some bits of - database-type-specific SQL in the code). Defaults to mysql. + database-type-specific SQL in the code). Defaults to mysql. mirror: you can set this to an array of DSNs, like the above 'database' value. If it's set, certain read-only actions will use a random value out of this array for the database, rather @@ -906,17 +906,17 @@ mirror: you can set this to an array of DSNs, like the above requests to go to the 'database' (master) server, you'll need to include it in this array, too. utf8: whether to talk to the database in UTF-8 mode. This is the default - with new installations, but older sites may want to turn it off - until they get their databases fixed up. See "UTF-8 database" - above for details. + with new installations, but older sites may want to turn it off + until they get their databases fixed up. See "UTF-8 database" + above for details. schemacheck: when to let plugins check the database schema to add - tables or update them. Values can be 'runtime' (default) - or 'script'. 'runtime' can be costly (plugins check the - schema on every hit, adding potentially several db - queries, some quite long), but not everyone knows how to - run a script. If you can, set this to 'script' and run - scripts/checkschema.php whenever you install or upgrade a - plugin. + tables or update them. Values can be 'runtime' (default) + or 'script'. 'runtime' can be costly (plugins check the + schema on every hit, adding potentially several db + queries, some quite long), but not everyone knows how to + run a script. If you can, set this to 'script' and run + scripts/checkschema.php whenever you install or upgrade a + plugin. syslog ------ @@ -925,13 +925,13 @@ By default, StatusNet sites log error messages to the syslog facility. (You can override this using the 'logfile' parameter described above). appname: The name that StatusNet uses to log messages. By default it's - "statusnet", but if you have more than one installation on the - server, you may want to change the name for each instance so - you can track log messages more easily. + "statusnet", but if you have more than one installation on the + server, you may want to change the name for each instance so + you can track log messages more easily. priority: level to log at. Currently ignored. facility: what syslog facility to used. Defaults to LOG_USER, only - reset if you know what syslog is and have a good reason - to change it. + reset if you know what syslog is and have a good reason + to change it. queue ----- @@ -942,51 +942,51 @@ sending out SMS email or XMPP messages, for off-line processing. See enabled: Whether to uses queues. Defaults to false. subsystem: Which kind of queueserver to use. Values include "db" for - our hacked-together database queuing (no other server - required) and "stomp" for a stomp server. + our hacked-together database queuing (no other server + required) and "stomp" for a stomp server. stomp_server: "broker URI" for stomp server. Something like - "tcp://hostname:61613". More complicated ones are - possible; see your stomp server's documentation for - details. + "tcp://hostname:61613". More complicated ones are + possible; see your stomp server's documentation for + details. queue_basename: a root name to use for queues (stomp only). Typically - something like '/queue/sitename/' makes sense. If running - multiple instances on the same server, make sure that - either this setting or $config['site']['nickname'] are - unique for each site to keep them separate. + something like '/queue/sitename/' makes sense. If running + multiple instances on the same server, make sure that + either this setting or $config['site']['nickname'] are + unique for each site to keep them separate. stomp_username: username for connecting to the stomp server; defaults - to null. + to null. stomp_password: password for connecting to the stomp server; defaults - to null. + to null. stomp_persistent: keep items across queue server restart, if enabled. softlimit: an absolute or relative "soft memory limit"; daemons will - restart themselves gracefully when they find they've hit - this amount of memory usage. Defaults to 90% of PHP's global - memory_limit setting. + restart themselves gracefully when they find they've hit + this amount of memory usage. Defaults to 90% of PHP's global + memory_limit setting. inboxes: delivery of messages to receiver's inboxes can be delayed to - queue time for best interactive performance on the sender. - This may however be annoyingly slow when using the DB queues, - so you can set this to false if it's causing trouble. + queue time for best interactive performance on the sender. + This may however be annoyingly slow when using the DB queues, + so you can set this to false if it's causing trouble. breakout: for stomp, individual queues are by default grouped up for - best scalability. If some need to be run by separate daemons, - etc they can be manually adjusted here. + best scalability. If some need to be run by separate daemons, + etc they can be manually adjusted here. - Default will share all queues for all sites within each group. - Specify as / or //, - using nickname identifier as site. + Default will share all queues for all sites within each group. + Specify as / or //, + using nickname identifier as site. - 'main/distrib' separate "distrib" queue covering all sites - 'xmpp/xmppout/mysite' separate "xmppout" queue covering just 'mysite' + 'main/distrib' separate "distrib" queue covering all sites + 'xmpp/xmppout/mysite' separate "xmppout" queue covering just 'mysite' max_retries: for stomp, drop messages after N failed attempts to process. - Defaults to 10. + Defaults to 10. dead_letter_dir: for stomp, optional directory to dump data on failed - queue processing events after discarding them. + queue processing events after discarding them. license ------- @@ -997,11 +997,11 @@ choice for any public site. Note that some other servers will not accept notices if you apply a stricter license than this. type: one of 'cc' (for Creative Commons licenses), 'allrightsreserved' - (default copyright), or 'private' (for private and confidential - information). + (default copyright), or 'private' (for private and confidential + information). owner: for 'allrightsreserved' or 'private', an assigned copyright - holder (for example, an employer for a private site). If - not specified, will be attributed to 'contributors'. + holder (for example, an employer for a private site). If + not specified, will be attributed to 'contributors'. url: URL of the license, used for links. title: Title for the license, like 'Creative Commons Attribution 3.0'. image: A button shown on each page for the license. @@ -1013,7 +1013,7 @@ This is for configuring out-going email. We use PEAR's Mail module, see: http://pear.php.net/manual/en/package.mail.mail.factory.php backend: the backend to use for mail, one of 'mail', 'sendmail', and - 'smtp'. Defaults to PEAR's default, 'mail'. + 'smtp'. Defaults to PEAR's default, 'mail'. params: if the mail backend requires any parameters, you can provide them in an associative array. @@ -1023,24 +1023,24 @@ nickname This is for configuring nicknames in the service. blacklist: an array of strings for usernames that may not be - registered. A default array exists for strings that are - used by StatusNet (e.g. 'doc', 'main', 'avatar', 'theme') - but you may want to add others if you have other software - installed in a subdirectory of StatusNet or if you just - don't want certain words used as usernames. + registered. A default array exists for strings that are + used by StatusNet (e.g. 'doc', 'main', 'avatar', 'theme') + but you may want to add others if you have other software + installed in a subdirectory of StatusNet or if you just + don't want certain words used as usernames. featured: an array of nicknames of 'featured' users of the site. - Can be useful to draw attention to well-known users, or - interesting people, or whatever. + Can be useful to draw attention to well-known users, or + interesting people, or whatever. avatar ------ For configuring avatar access. -dir: Directory to look for avatar files and to put them into. +dir: Directory to look for avatar files and to put them into. Defaults to avatar subdirectory of install directory; if you change it, make sure to change path, too. -path: Path to avatars. Defaults to path for avatar subdirectory, +path: Path to avatars. Defaults to path for avatar subdirectory, but you can change it if you wish. Note that this will be included with the avatar server, too. server: If set, defines another server where avatars are stored in the @@ -1051,8 +1051,8 @@ server: If set, defines another server where avatars are stored in the typically only make 2 connections to a single server at a time , so this can parallelize the job. Defaults to null. -ssl: Whether to access avatars using HTTPS. Defaults to null, meaning - to guess based on site-wide SSL settings. +ssl: Whether to access avatars using HTTPS. Defaults to null, meaning + to guess based on site-wide SSL settings. public ------ @@ -1060,13 +1060,13 @@ public For configuring the public stream. localonly: If set to true, only messages posted by users of this - service (rather than other services, filtered through OMB) - are shown in the public stream. Default true. + service (rather than other services, filtered through OMB) + are shown in the public stream. Default true. blacklist: An array of IDs of users to hide from the public stream. - Useful if you have someone making excessive Twitterfeed posts - to the site, other kinds of automated posts, testing bots, etc. + Useful if you have someone making excessive Twitterfeed posts + to the site, other kinds of automated posts, testing bots, etc. autosource: Sources of notices that are from automatic posters, and thus - should be kept off the public timeline. Default empty. + should be kept off the public timeline. Default empty. theme ----- @@ -1074,15 +1074,15 @@ theme server: Like avatars, you can speed up page loading by pointing the theme file lookup to another server (virtual or real). Defaults to NULL, meaning to use the site server. -dir: Directory where theme files are stored. Used to determine +dir: Directory where theme files are stored. Used to determine whether to show parts of a theme file. Defaults to the theme subdirectory of the install directory. -path: Path part of theme URLs, before the theme name. Relative to the +path: Path part of theme URLs, before the theme name. Relative to the theme server. It may make sense to change this path when upgrading, (using version numbers as the path) to make sure that all files are reloaded by caching clients or proxies. Defaults to null, which means to use the site path + '/theme'. -ssl: Whether to use SSL for theme elements. Default is null, which means +ssl: Whether to use SSL for theme elements. Default is null, which means guess based on site SSL settings. javascript @@ -1091,9 +1091,9 @@ javascript server: You can speed up page loading by pointing the theme file lookup to another server (virtual or real). Defaults to NULL, meaning to use the site server. -path: Path part of Javascript URLs. Defaults to null, +path: Path part of Javascript URLs. Defaults to null, which means to use the site path + '/js/'. -ssl: Whether to use SSL for JavaScript files. Default is null, which means +ssl: Whether to use SSL for JavaScript files. Default is null, which means guess based on site SSL settings. xmpp @@ -1104,25 +1104,25 @@ For configuring the XMPP sub-system. enabled: Whether to accept and send messages by XMPP. Default false. server: server part of XMPP ID for update user. port: connection port for clients. Default 5222, which you probably - shouldn't need to change. + shouldn't need to change. user: username for the client connection. Users will receive messages - from 'user'@'server'. + from 'user'@'server'. resource: a unique identifier for the connection to the server. This - is actually used as a prefix for each XMPP component in the system. + is actually used as a prefix for each XMPP component in the system. password: password for the user account. host: some XMPP domains are served by machines with a different - hostname. (For example, @gmail.com GTalk users connect to - talk.google.com). Set this to the correct hostname if that's the - case with your server. + hostname. (For example, @gmail.com GTalk users connect to + talk.google.com). Set this to the correct hostname if that's the + case with your server. encryption: Whether to encrypt the connection between StatusNet and the - XMPP server. Defaults to true, but you can get - considerably better performance turning it off if you're - connecting to a server on the same machine or on a - protected network. + XMPP server. Defaults to true, but you can get + considerably better performance turning it off if you're + connecting to a server on the same machine or on a + protected network. debug: if turned on, this will make the XMPP library blurt out all of - the incoming and outgoing messages as XML stanzas. Use as a - last resort, and never turn it on if you don't have queues - enabled, since it will spit out sensitive data to the browser. + the incoming and outgoing messages as XML stanzas. Use as a + last resort, and never turn it on if you don't have queues + enabled, since it will spit out sensitive data to the browser. public: an array of JIDs to send _all_ notices to. This is useful for participating in third-party search and archiving services. @@ -1139,8 +1139,8 @@ tag Miscellaneous tagging stuff. dropoff: Decay factor for tag listing, in seconds. - Defaults to exponential decay over ten days; you can twiddle - with it to try and get better results for your site. + Defaults to exponential decay over ten days; you can twiddle + with it to try and get better results for your site. popular ------- @@ -1148,8 +1148,8 @@ popular Settings for the "popular" section of the site. dropoff: Decay factor for popularity listing, in seconds. - Defaults to exponential decay over ten days; you can twiddle - with it to try and get better results for your site. + Defaults to exponential decay over ten days; you can twiddle + with it to try and get better results for your site. daemon ------ @@ -1160,11 +1160,11 @@ piddir: directory that daemon processes should write their PID file (process ID) to. Defaults to /var/run/, which is where this stuff should usually go on Unix-ish systems. user: If set, the daemons will try to change their effective user ID - to this user before running. Probably a good idea, especially if - you start the daemons as root. Note: user name, like 'daemon', - not 1001. + to this user before running. Probably a good idea, especially if + you start the daemons as root. Note: user name, like 'daemon', + not 1001. group: If set, the daemons will try to change their effective group ID - to this named group. Again, a name, not a numerical ID. + to this named group. Again, a name, not a numerical ID. memcached --------- @@ -1176,11 +1176,11 @@ enabled: Set to true to enable. Default false. server: a string with the hostname of the memcached server. Can also be an array of hostnames, if you've got more than one server. base: memcached uses key-value pairs to store data. We build long, - funny-looking keys to make sure we don't have any conflicts. The - base of the key is usually a simplified version of the site name - (like "Identi.ca" => "identica"), but you can overwrite this if - you need to. You can safely ignore it if you only have one - StatusNet site using your memcached server. + funny-looking keys to make sure we don't have any conflicts. The + base of the key is usually a simplified version of the site name + (like "Identi.ca" => "identica"), but you can overwrite this if + you need to. You can safely ignore it if you only have one + StatusNet site using your memcached server. port: Port to connect to; defaults to 11211. emailpost @@ -1189,7 +1189,7 @@ emailpost For post-by-email. enabled: Whether to enable post-by-email. Defaults to true. You will - also need to set up maildaemon.php. + also need to set up maildaemon.php. sms --- @@ -1197,7 +1197,7 @@ sms For SMS integration. enabled: Whether to enable SMS integration. Defaults to true. Queues - should also be enabled. + should also be enabled. integration ----------- @@ -1212,7 +1212,7 @@ inboxes For notice inboxes. enabled: No longer used. If you set this to something other than true, - StatusNet will no longer run. + StatusNet will no longer run. throttle -------- @@ -1221,8 +1221,8 @@ For notice-posting throttles. enabled: Whether to throttle posting. Defaults to false. count: Each user can make this many posts in 'timespan' seconds. So, if count - is 100 and timespan is 3600, then there can be only 100 posts - from a user every hour. + is 100 and timespan is 3600, then there can be only 100 posts + from a user every hour. timespan: see 'count'. profile @@ -1231,7 +1231,7 @@ profile Profile management. biolimit: max character length of bio; 0 means no limit; null means to use - the site text limit default. + the site text limit default. newuser ------- @@ -1239,13 +1239,13 @@ newuser Options with new users. default: nickname of a user account to automatically subscribe new - users to. Typically this would be system account for e.g. - service updates or announcements. Users are able to unsub - if they want. Default is null; no auto subscribe. + users to. Typically this would be system account for e.g. + service updates or announcements. Users are able to unsub + if they want. Default is null; no auto subscribe. welcome: nickname of a user account that sends welcome messages to new - users. Can be the same as 'default' account, although on - busy servers it may be a good idea to keep that one just for - 'urgent' messages. Default is null; no message. + users. Can be the same as 'default' account, although on + busy servers it may be a good idea to keep that one just for + 'urgent' messages. Default is null; no message. If either of these special user accounts are specified, the users should be created before the configuration is updated. @@ -1262,19 +1262,19 @@ helps StatusNet developers take your needs into account when updating the software. run: string indicating when to run the statistics. Values can be 'web' - (run occasionally at Web time), 'cron' (run from a cron script), - or 'never' (don't ever run). If you set it to 'cron', remember to - schedule the script to run on a regular basis. + (run occasionally at Web time), 'cron' (run from a cron script), + or 'never' (don't ever run). If you set it to 'cron', remember to + schedule the script to run on a regular basis. frequency: if run value is 'web', how often to report statistics. - Measured in Web hits; depends on how active your site is. - Default is 10000 -- that is, one report every 10000 Web hits, - on average. + Measured in Web hits; depends on how active your site is. + Default is 10000 -- that is, one report every 10000 Web hits, + on average. reporturl: URL to post statistics to. Defaults to StatusNet developers' - report system, but if they go evil or disappear you may - need to update this to another value. Note: if you - don't want to report stats, it's much better to - set 'run' to 'never' than to set this value to something - nonsensical. + report system, but if they go evil or disappear you may + need to update this to another value. Note: if you + don't want to report stats, it's much better to + set 'run' to 'never' than to set this value to something + nonsensical. attachments ----------- @@ -1287,14 +1287,14 @@ We suggest the use of the pecl file_info extension to handle mime type detection. supported: an array of mime types you accept to store and distribute, - like 'image/gif', 'video/mpeg', 'audio/mpeg', etc. Make sure you - setup your server to properly recognize the types you want to - support. -uploads: false to disable uploading files with notices (true by default). + like 'image/gif', 'video/mpeg', 'audio/mpeg', etc. Make sure you + setup your server to properly recognize the types you want to + support. +uploads: false to disable uploading files with notices (true by default). filecommand: The required MIME_Type library may need to use the 'file' - command. It tries the one in the Web server's path, but if - you're having problems with uploads, try setting this to the - correct value. Note: 'file' must accept '-b' and '-i' options. + command. It tries the one in the Web server's path, but if + you're having problems with uploads, try setting this to the + correct value. Note: 'file' must accept '-b' and '-i' options. For quotas, be sure you've set the upload_max_filesize and post_max_size in php.ini to be large enough to handle your upload. In httpd.conf @@ -1302,26 +1302,26 @@ in php.ini to be large enough to handle your upload. In httpd.conf set too low (it's optional, so it may not be there at all). file_quota: maximum size for a single file upload in bytes. A user can send - any amount of notices with attachments as long as each attachment - is smaller than file_quota. + any amount of notices with attachments as long as each attachment + is smaller than file_quota. user_quota: total size in bytes a user can store on this server. Each user - can store any number of files as long as their total size does - not exceed the user_quota. + can store any number of files as long as their total size does + not exceed the user_quota. monthly_quota: total size permitted in the current month. This is the total - size in bytes that a user can upload each month. + size in bytes that a user can upload each month. dir: directory accessible to the Web process where uploads should go. - Defaults to the 'file' subdirectory of the install directory, which - should be writeable by the Web user. + Defaults to the 'file' subdirectory of the install directory, which + should be writeable by the Web user. server: server name to use when creating URLs for uploaded files. - Defaults to null, meaning to use the default Web server. Using - a virtual server here can speed up Web performance. + Defaults to null, meaning to use the default Web server. Using + a virtual server here can speed up Web performance. path: URL path, relative to the server, to find files. Defaults to - main path + '/file/'. + main path + '/file/'. ssl: whether to use HTTPS for file URLs. Defaults to null, meaning to - guess based on other SSL settings. + guess based on other SSL settings. filecommand: command to use for determining the type of a file. May be - skipped if fileinfo extension is installed. Defaults to - '/usr/bin/file'. + skipped if fileinfo extension is installed. Defaults to + '/usr/bin/file'. group ----- @@ -1329,10 +1329,10 @@ group Options for group functionality. maxaliases: maximum number of aliases a group can have. Default 3. Set - to 0 or less to prevent aliases in a group. + to 0 or less to prevent aliases in a group. desclimit: maximum number of characters to allow in group descriptions. - null (default) means to use the site-wide text limits. 0 - means no limit. + null (default) means to use the site-wide text limits. 0 + means no limit. oohembed -------- @@ -1347,11 +1347,11 @@ search Some stuff for search. type: type of search. Ignored if PostgreSQL or Sphinx are enabled. Can either - be 'fulltext' (default) or 'like'. The former is faster and more efficient - but requires the lame old MyISAM engine for MySQL. The latter - will work with InnoDB but could be miserably slow on large - systems. We'll probably add another type sometime in the future, - with our own indexing system (maybe like MediaWiki's). + be 'fulltext' (default) or 'like'. The former is faster and more efficient + but requires the lame old MyISAM engine for MySQL. The latter + will work with InnoDB but could be miserably slow on large + systems. We'll probably add another type sometime in the future, + with our own indexing system (maybe like MediaWiki's). sessions -------- @@ -1363,7 +1363,7 @@ handle: boolean. Whether we should register our own PHP session-handling Setting this to true makes some sense on large or multi-server sites, but it probably won't hurt for smaller ones, either. debug: whether to output debugging info for session storage. Can help - with weird session bugs, sometimes. Default false. + with weird session bugs, sometimes. Default false. background ---------- @@ -1372,14 +1372,14 @@ Users can upload backgrounds for their pages; this section defines their use. server: the server to use for background. Using a separate (even - virtual) server for this can speed up load times. Default is - null; same as site server. + virtual) server for this can speed up load times. Default is + null; same as site server. dir: directory to write backgrounds too. Default is '/background/' - subdir of install dir. + subdir of install dir. path: path to backgrounds. Default is sub-path of install path; note - that you may need to change this if you change site-path too. + that you may need to change this if you change site-path too. ssl: Whether or not to use HTTPS for background files. Defaults to - null, meaning to guess from site-wide SSL settings. + null, meaning to guess from site-wide SSL settings. ping ---- @@ -1388,7 +1388,7 @@ Using the "XML-RPC Ping" method initiated by weblogs.com, the site can notify third-party servers of updates. notify: an array of URLs for ping endpoints. Default is the empty - array (no notification). + array (no notification). design ------ @@ -1410,8 +1410,8 @@ notice Configuration options specific to notices. contentlimit: max length of the plain-text content of a notice. - Default is null, meaning to use the site-wide text limit. - 0 means no limit. + Default is null, meaning to use the site-wide text limit. + 0 means no limit. message ------- @@ -1419,8 +1419,8 @@ message Configuration options specific to messages. contentlimit: max length of the plain-text content of a message. - Default is null, meaning to use the site-wide text limit. - 0 means no limit. + Default is null, meaning to use the site-wide text limit. + 0 means no limit. logincommand ------------ @@ -1428,14 +1428,14 @@ logincommand Configuration options for the login command. disabled: whether to enable this command. If enabled, users who send - the text 'login' to the site through any channel will - receive a link to login to the site automatically in return. - Possibly useful for users who primarily use an XMPP or SMS - interface and can't be bothered to remember their site - password. Note that the security implications of this are - pretty serious and have not been thoroughly tested. You - should enable it only after you've convinced yourself that - it is safe. Default is 'false'. + the text 'login' to the site through any channel will + receive a link to login to the site automatically in return. + Possibly useful for users who primarily use an XMPP or SMS + interface and can't be bothered to remember their site + password. Note that the security implications of this are + pretty serious and have not been thoroughly tested. You + should enable it only after you've convinced yourself that + it is safe. Default is 'false'. singleuser ---------- @@ -1454,11 +1454,11 @@ Web crawlers. See http://www.robotstxt.org/ for more information on the format of this file. crawldelay: if non-empty, this value is provided as the Crawl-Delay: - for the robots.txt file. see http://ur1.ca/l5a0 - for more information. Default is zero, no explicit delay. + for the robots.txt file. see http://ur1.ca/l5a0 + for more information. Default is zero, no explicit delay. disallow: Array of (virtual) directories to disallow. Default is 'main', - 'search', 'message', 'settings', 'admin'. Ignored when site - is private, in which case the entire site ('/') is disallowed. + 'search', 'message', 'settings', 'admin'. Ignored when site + is private, in which case the entire site ('/') is disallowed. Plugins ======= -- cgit v1.2.3-54-g00ecf From 064c45890f896f2af8a0231449fa5337bb79c509 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Thu, 4 Mar 2010 14:45:55 -0800 Subject: fix ver ref in upgrade instructions --- README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README b/README index daa393cbe..45b72e9ac 100644 --- a/README +++ b/README @@ -690,7 +690,7 @@ instructions; read to the end first before trying them. 9. Copy htaccess.sample to .htaccess in the new directory. Change the RewriteBase to use the correct path. 10. Rebuild the database. (You can safely skip this step and go to #12 - if you're upgrading from another 0.8.x version). + if you're upgrading from another 0.9.x version). NOTE: this step is destructive and cannot be reversed. YOU CAN EASILY DESTROY YOUR SITE WITH THIS STEP. Don't -- cgit v1.2.3-54-g00ecf From 029b8c90142e08b0ed44f0528ddea7d4dcc32980 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Fri, 5 Mar 2010 02:27:01 +0000 Subject: Fix for errant deletion of all Twitter foreign_links --- plugins/TwitterBridge/twitter.php | 11 ++++++++++- plugins/TwitterBridge/twitterauthorization.php | 13 ++++++++++++- plugins/TwitterBridge/twittersettings.php | 11 ++++++++++- 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/plugins/TwitterBridge/twitter.php b/plugins/TwitterBridge/twitter.php index ceb83b037..42db3c673 100644 --- a/plugins/TwitterBridge/twitter.php +++ b/plugins/TwitterBridge/twitter.php @@ -264,7 +264,16 @@ function remove_twitter_link($flink) common_log(LOG_INFO, 'Removing Twitter bridge Foreign link for ' . "user $user->nickname (user id: $user->id)."); - $result = $flink->delete(); + $result = false; + + // Be extra careful to make sure we have a good flink + // before deleting + if (!empty($flink->user_id) + && !empty($flink->foreign_id) + && !empty($flink->service)) + { + $result = $flink->delete(); + } if (empty($result)) { common_log(LOG_ERR, 'Could not remove Twitter bridge ' . diff --git a/plugins/TwitterBridge/twitterauthorization.php b/plugins/TwitterBridge/twitterauthorization.php index c93f6666b..029c3a44b 100644 --- a/plugins/TwitterBridge/twitterauthorization.php +++ b/plugins/TwitterBridge/twitterauthorization.php @@ -273,7 +273,13 @@ class TwitterauthorizationAction extends Action $flink->user_id = $user_id; $flink->service = TWITTER_SERVICE; - $flink->delete(); // delete stale flink, if any + + // delete stale flink, if any + $result = $flink->find(true); + + if (!empty($result)) { + $flink->delete(); + } $flink->user_id = $user_id; $flink->foreign_id = $twuid; @@ -455,6 +461,11 @@ class TwitterauthorizationAction extends Action $user = User::register($args); + if (empty($user)) { + $this->serverError(_('Error registering user.')); + return; + } + $result = $this->saveForeignLink($user->id, $this->twuid, $this->access_token); diff --git a/plugins/TwitterBridge/twittersettings.php b/plugins/TwitterBridge/twittersettings.php index 0137060e9..f22a059f7 100644 --- a/plugins/TwitterBridge/twittersettings.php +++ b/plugins/TwitterBridge/twittersettings.php @@ -250,7 +250,16 @@ class TwittersettingsAction extends ConnectSettingsAction $user = common_current_user(); $flink = Foreign_link::getByUserID($user->id, TWITTER_SERVICE); - $result = $flink->delete(); + $result = false; + + // Be extra careful to make sure we have a good flink + // before deleting + if (!empty($flink->user_id) + && !empty($flink->foreign_id) + && !empty($flink->service)) + { + $result = $flink->delete(); + } if (empty($result)) { common_log_db_error($flink, 'DELETE', __FILE__); -- cgit v1.2.3-54-g00ecf From 6a377a4ba409083e05d16b163013f0f09c606170 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Fri, 5 Mar 2010 03:14:40 +0000 Subject: A better way to safely delete Foreign_links --- classes/Foreign_link.php | 17 +++++++++++++++++ plugins/TwitterBridge/twitter.php | 11 +---------- plugins/TwitterBridge/twitterauthorization.php | 2 +- plugins/TwitterBridge/twittersettings.php | 11 +---------- 4 files changed, 20 insertions(+), 21 deletions(-) diff --git a/classes/Foreign_link.php b/classes/Foreign_link.php index ae8c22fd8..e47b2e309 100644 --- a/classes/Foreign_link.php +++ b/classes/Foreign_link.php @@ -113,4 +113,21 @@ class Foreign_link extends Memcached_DataObject return User::staticGet($this->user_id); } + // Make sure we only ever delete one record at a time + function safeDelete() + { + if (!empty($this->user_id) + && !empty($this->foreign_id) + && !empty($this->service)) + { + return $this->delete(); + } else { + common_debug(LOG_WARNING, + 'Foreign_link::safeDelete() tried to delete a ' + . 'Foreign_link without a fully specified compound key: ' + . var_export($this, true)); + return false; + } + } + } diff --git a/plugins/TwitterBridge/twitter.php b/plugins/TwitterBridge/twitter.php index 42db3c673..508699939 100644 --- a/plugins/TwitterBridge/twitter.php +++ b/plugins/TwitterBridge/twitter.php @@ -264,16 +264,7 @@ function remove_twitter_link($flink) common_log(LOG_INFO, 'Removing Twitter bridge Foreign link for ' . "user $user->nickname (user id: $user->id)."); - $result = false; - - // Be extra careful to make sure we have a good flink - // before deleting - if (!empty($flink->user_id) - && !empty($flink->foreign_id) - && !empty($flink->service)) - { - $result = $flink->delete(); - } + $result = $flink->safeDelete(); if (empty($result)) { common_log(LOG_ERR, 'Could not remove Twitter bridge ' . diff --git a/plugins/TwitterBridge/twitterauthorization.php b/plugins/TwitterBridge/twitterauthorization.php index 029c3a44b..bc004cb95 100644 --- a/plugins/TwitterBridge/twitterauthorization.php +++ b/plugins/TwitterBridge/twitterauthorization.php @@ -278,7 +278,7 @@ class TwitterauthorizationAction extends Action $result = $flink->find(true); if (!empty($result)) { - $flink->delete(); + $flink->safeDelete(); } $flink->user_id = $user_id; diff --git a/plugins/TwitterBridge/twittersettings.php b/plugins/TwitterBridge/twittersettings.php index f22a059f7..631b29f52 100644 --- a/plugins/TwitterBridge/twittersettings.php +++ b/plugins/TwitterBridge/twittersettings.php @@ -250,16 +250,7 @@ class TwittersettingsAction extends ConnectSettingsAction $user = common_current_user(); $flink = Foreign_link::getByUserID($user->id, TWITTER_SERVICE); - $result = false; - - // Be extra careful to make sure we have a good flink - // before deleting - if (!empty($flink->user_id) - && !empty($flink->foreign_id) - && !empty($flink->service)) - { - $result = $flink->delete(); - } + $result = $flink->safeDelete(); if (empty($result)) { common_log_db_error($flink, 'DELETE', __FILE__); -- cgit v1.2.3-54-g00ecf From 6aac7cc6cd011b3c86f3f4c8e00a14f992a78306 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Fri, 5 Mar 2010 02:27:01 +0000 Subject: Fix for errant deletion of all Twitter foreign_links --- plugins/TwitterBridge/twitter.php | 11 ++++++++++- plugins/TwitterBridge/twitterauthorization.php | 13 ++++++++++++- plugins/TwitterBridge/twittersettings.php | 11 ++++++++++- 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/plugins/TwitterBridge/twitter.php b/plugins/TwitterBridge/twitter.php index 13e499d65..90805bfc4 100644 --- a/plugins/TwitterBridge/twitter.php +++ b/plugins/TwitterBridge/twitter.php @@ -273,7 +273,16 @@ function remove_twitter_link($flink) common_log(LOG_INFO, 'Removing Twitter bridge Foreign link for ' . "user $user->nickname (user id: $user->id)."); - $result = $flink->delete(); + $result = false; + + // Be extra careful to make sure we have a good flink + // before deleting + if (!empty($flink->user_id) + && !empty($flink->foreign_id) + && !empty($flink->service)) + { + $result = $flink->delete(); + } if (empty($result)) { common_log(LOG_ERR, 'Could not remove Twitter bridge ' . diff --git a/plugins/TwitterBridge/twitterauthorization.php b/plugins/TwitterBridge/twitterauthorization.php index cabf69d7a..bce679622 100644 --- a/plugins/TwitterBridge/twitterauthorization.php +++ b/plugins/TwitterBridge/twitterauthorization.php @@ -273,7 +273,13 @@ class TwitterauthorizationAction extends Action $flink->user_id = $user_id; $flink->service = TWITTER_SERVICE; - $flink->delete(); // delete stale flink, if any + + // delete stale flink, if any + $result = $flink->find(true); + + if (!empty($result)) { + $flink->delete(); + } $flink->user_id = $user_id; $flink->foreign_id = $twuid; @@ -455,6 +461,11 @@ class TwitterauthorizationAction extends Action $user = User::register($args); + if (empty($user)) { + $this->serverError(_('Error registering user.')); + return; + } + $result = $this->saveForeignLink($user->id, $this->twuid, $this->access_token); diff --git a/plugins/TwitterBridge/twittersettings.php b/plugins/TwitterBridge/twittersettings.php index 0137060e9..f22a059f7 100644 --- a/plugins/TwitterBridge/twittersettings.php +++ b/plugins/TwitterBridge/twittersettings.php @@ -250,7 +250,16 @@ class TwittersettingsAction extends ConnectSettingsAction $user = common_current_user(); $flink = Foreign_link::getByUserID($user->id, TWITTER_SERVICE); - $result = $flink->delete(); + $result = false; + + // Be extra careful to make sure we have a good flink + // before deleting + if (!empty($flink->user_id) + && !empty($flink->foreign_id) + && !empty($flink->service)) + { + $result = $flink->delete(); + } if (empty($result)) { common_log_db_error($flink, 'DELETE', __FILE__); -- cgit v1.2.3-54-g00ecf From e3c4b0c85d3fbae9604b22d3666fe36a3c1c7551 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Fri, 5 Mar 2010 03:14:40 +0000 Subject: A better way to safely delete Foreign_links --- classes/Foreign_link.php | 17 +++++++++++++++++ plugins/TwitterBridge/twitter.php | 11 +---------- plugins/TwitterBridge/twitterauthorization.php | 2 +- plugins/TwitterBridge/twittersettings.php | 11 +---------- 4 files changed, 20 insertions(+), 21 deletions(-) diff --git a/classes/Foreign_link.php b/classes/Foreign_link.php index ae8c22fd8..e47b2e309 100644 --- a/classes/Foreign_link.php +++ b/classes/Foreign_link.php @@ -113,4 +113,21 @@ class Foreign_link extends Memcached_DataObject return User::staticGet($this->user_id); } + // Make sure we only ever delete one record at a time + function safeDelete() + { + if (!empty($this->user_id) + && !empty($this->foreign_id) + && !empty($this->service)) + { + return $this->delete(); + } else { + common_debug(LOG_WARNING, + 'Foreign_link::safeDelete() tried to delete a ' + . 'Foreign_link without a fully specified compound key: ' + . var_export($this, true)); + return false; + } + } + } diff --git a/plugins/TwitterBridge/twitter.php b/plugins/TwitterBridge/twitter.php index 90805bfc4..2805b3ab5 100644 --- a/plugins/TwitterBridge/twitter.php +++ b/plugins/TwitterBridge/twitter.php @@ -273,16 +273,7 @@ function remove_twitter_link($flink) common_log(LOG_INFO, 'Removing Twitter bridge Foreign link for ' . "user $user->nickname (user id: $user->id)."); - $result = false; - - // Be extra careful to make sure we have a good flink - // before deleting - if (!empty($flink->user_id) - && !empty($flink->foreign_id) - && !empty($flink->service)) - { - $result = $flink->delete(); - } + $result = $flink->safeDelete(); if (empty($result)) { common_log(LOG_ERR, 'Could not remove Twitter bridge ' . diff --git a/plugins/TwitterBridge/twitterauthorization.php b/plugins/TwitterBridge/twitterauthorization.php index bce679622..e20731e5c 100644 --- a/plugins/TwitterBridge/twitterauthorization.php +++ b/plugins/TwitterBridge/twitterauthorization.php @@ -278,7 +278,7 @@ class TwitterauthorizationAction extends Action $result = $flink->find(true); if (!empty($result)) { - $flink->delete(); + $flink->safeDelete(); } $flink->user_id = $user_id; diff --git a/plugins/TwitterBridge/twittersettings.php b/plugins/TwitterBridge/twittersettings.php index f22a059f7..631b29f52 100644 --- a/plugins/TwitterBridge/twittersettings.php +++ b/plugins/TwitterBridge/twittersettings.php @@ -250,16 +250,7 @@ class TwittersettingsAction extends ConnectSettingsAction $user = common_current_user(); $flink = Foreign_link::getByUserID($user->id, TWITTER_SERVICE); - $result = false; - - // Be extra careful to make sure we have a good flink - // before deleting - if (!empty($flink->user_id) - && !empty($flink->foreign_id) - && !empty($flink->service)) - { - $result = $flink->delete(); - } + $result = $flink->safeDelete(); if (empty($result)) { common_log_db_error($flink, 'DELETE', __FILE__); -- cgit v1.2.3-54-g00ecf From dbe6b979d7e07b47aa4cab5c7ccf54d3ba24f319 Mon Sep 17 00:00:00 2001 From: Dave Hall Date: Thu, 4 Mar 2010 17:07:40 +1100 Subject: implement mail headers --- lib/mail.php | 67 +++++++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 51 insertions(+), 16 deletions(-) diff --git a/lib/mail.php b/lib/mail.php index c724764cc..807b6a363 100644 --- a/lib/mail.php +++ b/lib/mail.php @@ -133,12 +133,13 @@ function mail_notify_from() * @param User &$user user to send email to * @param string $subject subject of the email * @param string $body body of the email + * @param array $headers optional list of email headers * @param string $address optional specification of email address * * @return boolean success flag */ -function mail_to_user(&$user, $subject, $body, $address=null) +function mail_to_user(&$user, $subject, $body, $headers=array(), $address=null) { if (!$address) { $address = $user->email; @@ -180,7 +181,9 @@ function mail_confirm_address($user, $code, $nickname, $address) $nickname, common_config('site', 'name'), common_local_url('confirmaddress', array('code' => $code)), common_config('site', 'name')); - return mail_to_user($user, $subject, $body, $address); + $headers = array(); + + return mail_to_user($user, $subject, $body, $headers, $address); } /** @@ -231,6 +234,7 @@ function mail_subscribe_notify_profile($listenee, $other) $recipients = $listenee->email; + $headers = _mail_prepare_headers('subscribe', $listenee->nickname, $other->nickname); $headers['From'] = mail_notify_from(); $headers['To'] = $name . ' <' . $listenee->email . '>'; $headers['Subject'] = sprintf(_('%1$s is now listening to '. @@ -476,7 +480,10 @@ function mail_notify_nudge($from, $to) common_local_url('all', array('nickname' => $to->nickname)), common_config('site', 'name')); common_init_locale(); - return mail_to_user($to, $subject, $body); + + $headers = _mail_prepare_headers('nudge', $to->nickname, $from->nickname); + + return mail_to_user($to, $subject, $body, $headers); } /** @@ -526,8 +533,10 @@ function mail_notify_message($message, $from=null, $to=null) common_local_url('newmessage', array('to' => $from->id)), common_config('site', 'name')); + $headers = _mail_prepare_headers('message', $to->nickname, $from->nickname); + common_init_locale(); - return mail_to_user($to, $subject, $body); + return mail_to_user($to, $subject, $body, $headers); } /** @@ -578,8 +587,10 @@ function mail_notify_fave($other, $user, $notice) common_config('site', 'name'), $user->nickname); + $headers = _mail_prepare_headers('fave', $other->nickname, $user->nickname); + common_init_locale(); - mail_to_user($other, $subject, $body); + mail_to_user($other, $subject, $body, $headers); } /** @@ -611,19 +622,19 @@ function mail_notify_attn($user, $notice) common_init_locale($user->language); - if ($notice->conversation != $notice->id) { - $conversationEmailText = "The full conversation can be read here:\n\n". - "\t%5\$s\n\n "; - $conversationUrl = common_local_url('conversation', + if ($notice->conversation != $notice->id) { + $conversationEmailText = "The full conversation can be read here:\n\n". + "\t%5\$s\n\n "; + $conversationUrl = common_local_url('conversation', array('id' => $notice->conversation)).'#notice-'.$notice->id; - } else { - $conversationEmailText = "%5\$s"; - $conversationUrl = null; - } + } else { + $conversationEmailText = "%5\$s"; + $conversationUrl = null; + } $subject = sprintf(_('%s (@%s) sent a notice to your attention'), $bestname, $sender->nickname); - $body = sprintf(_("%1\$s (@%9\$s) just sent a notice to your attention (an '@-reply') on %2\$s.\n\n". + $body = sprintf(_("%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". @@ -641,7 +652,7 @@ function mail_notify_attn($user, $notice) common_local_url('shownotice', array('notice' => $notice->id)),//%3 $notice->content,//%4 - $conversationUrl,//%5 + $conversationUrl,//%5 common_local_url('newnotice', array('replyto' => $sender->nickname, 'inreplyto' => $notice->id)),//%6 common_local_url('replies', @@ -649,6 +660,30 @@ function mail_notify_attn($user, $notice) common_local_url('emailsettings'), //%8 $sender->nickname); //%9 + $headers = _mail_prepare_headers('mention', $user->nickname, $sender->nickname); + common_init_locale(); - mail_to_user($user, $subject, $body); + mail_to_user($user, $subject, $body, $headers); } + +/** + * Prepare the common mail headers used in notification emails + * + * @param string $msg_type type of message being sent to the user + * @param string $to nickname of the receipient + * @param string $from nickname of the user triggering the notification + * + * @return array list of mail headers to include in the message + */ +function _mail_prepare_headers($msg_type, $to, $from) +{ + $headers = array( + 'X-StatusNet-MessageType' => $msg_type, + 'X-StatusNet-TargetUser' => $to, + 'X-StatusNet-SourceUser' => $from, + 'X-StatusNet-Domain' => common_config('site', 'server') + ); + + return $headers; +} + -- cgit v1.2.3-54-g00ecf From 086d517b877f82513bc9f5208580b7d57453a8e2 Mon Sep 17 00:00:00 2001 From: Rasmus Lerdorf Date: Tue, 2 Mar 2010 16:07:35 -0800 Subject: Fix a few typos --- actions/recoverpassword.php | 2 +- scripts/fixup_utf8.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/actions/recoverpassword.php b/actions/recoverpassword.php index dcff35f6e..1e2775e7a 100644 --- a/actions/recoverpassword.php +++ b/actions/recoverpassword.php @@ -21,7 +21,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } # You have 24 hours to claim your password -define(MAX_RECOVERY_TIME, 24 * 60 * 60); +define('MAX_RECOVERY_TIME', 24 * 60 * 60); class RecoverpasswordAction extends Action { diff --git a/scripts/fixup_utf8.php b/scripts/fixup_utf8.php index 30befadfd..2af6f9cb0 100755 --- a/scripts/fixup_utf8.php +++ b/scripts/fixup_utf8.php @@ -249,7 +249,7 @@ class UTF8FixerUpper $sql = 'SELECT id, fullname, location, description FROM user_group ' . 'WHERE LENGTH(fullname) != CHAR_LENGTH(fullname) '. 'OR LENGTH(location) != CHAR_LENGTH(location) '. - 'OR LENGTH(description) != CHAR_LENGTH(description) '; + 'OR LENGTH(description) != CHAR_LENGTH(description) '. 'AND modified < "'.$this->max_date.'" '. 'ORDER BY modified DESC'; -- cgit v1.2.3-54-g00ecf From 982edc653f36c45f49165b85c3538fb62d2684e7 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 2 Mar 2010 22:09:52 -0800 Subject: Another typo --- plugins/TwitterBridge/daemons/synctwitterfriends.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/TwitterBridge/daemons/synctwitterfriends.php b/plugins/TwitterBridge/daemons/synctwitterfriends.php index 671e3c7af..df7da0943 100755 --- a/plugins/TwitterBridge/daemons/synctwitterfriends.php +++ b/plugins/TwitterBridge/daemons/synctwitterfriends.php @@ -221,7 +221,7 @@ class SyncTwitterFriendsDaemon extends ParallelizingDaemon // Twitter friend if (!save_twitter_user($friend_id, $friend_name)) { - common_log(LOG_WARNING, $this-name() . + common_log(LOG_WARNING, $this->name() . " - Couldn't save $screen_name's friend, $friend_name."); continue; } -- cgit v1.2.3-54-g00ecf From 89e313e45b1b08fc80ab908e4dd531689319aa6f Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Fri, 5 Mar 2010 10:55:07 -0800 Subject: OStatus fix: send the feed's root element, not the DOM document, down to low-level feed processing as entry context on PuSH input. --- plugins/OStatus/classes/Ostatus_profile.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/plugins/OStatus/classes/Ostatus_profile.php b/plugins/OStatus/classes/Ostatus_profile.php index fcca1a252..abc8100ce 100644 --- a/plugins/OStatus/classes/Ostatus_profile.php +++ b/plugins/OStatus/classes/Ostatus_profile.php @@ -428,10 +428,18 @@ class Ostatus_profile extends Memcached_DataObject * Currently assumes that all items in the feed are new, * coming from a PuSH hub. * - * @param DOMDocument $feed + * @param DOMDocument $doc + * @param string $source identifier ("push") */ - public function processFeed($feed, $source) + public function processFeed(DOMDocument $doc, $source) { + $feed = $doc->documentElement; + + if ($feed->localName != 'feed' || $feed->namespaceURI != Activity::ATOM) { + common_log(LOG_ERR, __METHOD__ . ": not an Atom feed, ignoring"); + return; + } + $entries = $feed->getElementsByTagNameNS(Activity::ATOM, 'entry'); if ($entries->length == 0) { common_log(LOG_ERR, __METHOD__ . ": no entries in feed update, ignoring"); @@ -449,6 +457,7 @@ class Ostatus_profile extends Memcached_DataObject * * @param DOMElement $entry * @param DOMElement $feed for context + * @param string $source identifier ("push" or "salmon") */ public function processEntry($entry, $feed, $source) { -- cgit v1.2.3-54-g00ecf From 248aed7cf430d263f3d5dd98552f35f69de6fe67 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Fri, 5 Mar 2010 12:21:30 -0800 Subject: ticket #697: merge two dupe config bits in config.php.sample --- config.php.sample | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config.php.sample b/config.php.sample index b8852dc67..33ac94a6d 100644 --- a/config.php.sample +++ b/config.php.sample @@ -124,6 +124,8 @@ $config['sphinx']['port'] = 3312; // Email info, used for all outbound email // $config['mail']['notifyfrom'] = 'microblog@example.net'; +// Domain for generating no-reply and incoming email addresses, if enabled. +// Defaults to site server name. // $config['mail']['domain'] = 'microblog.example.net'; // See http://pear.php.net/manual/en/package.mail.mail.factory.php for options // $config['mail']['backend'] = 'smtp'; @@ -131,8 +133,6 @@ $config['sphinx']['port'] = 3312; // 'host' => 'localhost', // 'port' => 25, // ); -// For incoming email, if enabled. Defaults to site server name. -// $config['mail']['domain'] = 'incoming.example.net'; // exponential decay factor for tags, default 10 days // raise this if traffic is slow, lower it if it's fast -- cgit v1.2.3-54-g00ecf From 54de8ad9f20a51cdaf78404c45e91a1f652670f1 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Fri, 5 Mar 2010 11:27:48 -0800 Subject: Initial install-time test for PCRE compiled without Unicode properties, which causes corruption in feeds and other linking problems. Error message links to help info at http://status.net/wiki/Red_Hat_Enterprise_Linux#PCRE_library --- install.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/install.php b/install.php index 8c9b6138b..7fece8999 100644 --- a/install.php +++ b/install.php @@ -301,6 +301,19 @@ function checkPrereqs() $pass = false; } + // Look for known library bugs + $str = "abcdefghijklmnopqrstuvwxyz"; + $replaced = preg_replace('/[\p{Cc}\p{Cs}]/u', '*', $str); + if ($str != $replaced) { + printf('

      PHP is linked to a version of the PCRE library ' . + 'that does not support Unicode properties. ' . + 'If you are running Red Hat Enterprise Linux / ' . + 'CentOS 5.3 or earlier, see our documentation page on fixing this.

      '); + $pass = false; + } + $reqs = array('gd', 'curl', 'xmlwriter', 'mbstring', 'xml', 'dom', 'simplexml'); -- cgit v1.2.3-54-g00ecf From 0c0420f606bd9caaf61dc4e307bbb5b8465480e0 Mon Sep 17 00:00:00 2001 From: Siebrand Mazeland Date: Fri, 5 Mar 2010 23:41:51 +0100 Subject: Localisation updates for !StatusNet from !translatewiki.net !sntrans Signed-off-by: Siebrand Mazeland --- locale/ar/LC_MESSAGES/statusnet.po | 71 +++---- locale/arz/LC_MESSAGES/statusnet.po | 5 +- locale/bg/LC_MESSAGES/statusnet.po | 5 +- locale/ca/LC_MESSAGES/statusnet.po | 5 +- locale/cs/LC_MESSAGES/statusnet.po | 5 +- locale/de/LC_MESSAGES/statusnet.po | 362 ++++++++++++++++------------------ locale/el/LC_MESSAGES/statusnet.po | 5 +- locale/en_GB/LC_MESSAGES/statusnet.po | 5 +- locale/es/LC_MESSAGES/statusnet.po | 5 +- locale/fa/LC_MESSAGES/statusnet.po | 5 +- locale/fi/LC_MESSAGES/statusnet.po | 5 +- locale/fr/LC_MESSAGES/statusnet.po | 79 +++----- locale/ga/LC_MESSAGES/statusnet.po | 5 +- locale/he/LC_MESSAGES/statusnet.po | 5 +- locale/hsb/LC_MESSAGES/statusnet.po | 5 +- locale/ia/LC_MESSAGES/statusnet.po | 5 +- locale/is/LC_MESSAGES/statusnet.po | 5 +- locale/it/LC_MESSAGES/statusnet.po | 100 +++------- locale/ja/LC_MESSAGES/statusnet.po | 5 +- locale/ko/LC_MESSAGES/statusnet.po | 5 +- locale/mk/LC_MESSAGES/statusnet.po | 77 +++----- locale/nb/LC_MESSAGES/statusnet.po | 5 +- locale/nl/LC_MESSAGES/statusnet.po | 80 +++----- locale/nn/LC_MESSAGES/statusnet.po | 5 +- locale/pl/LC_MESSAGES/statusnet.po | 5 +- locale/pt/LC_MESSAGES/statusnet.po | 5 +- locale/pt_BR/LC_MESSAGES/statusnet.po | 5 +- locale/ru/LC_MESSAGES/statusnet.po | 79 +++----- locale/statusnet.po | 2 +- locale/sv/LC_MESSAGES/statusnet.po | 19 +- locale/te/LC_MESSAGES/statusnet.po | 5 +- locale/tr/LC_MESSAGES/statusnet.po | 5 +- locale/uk/LC_MESSAGES/statusnet.po | 113 +++++------ locale/vi/LC_MESSAGES/statusnet.po | 5 +- locale/zh_CN/LC_MESSAGES/statusnet.po | 5 +- locale/zh_TW/LC_MESSAGES/statusnet.po | 5 +- 36 files changed, 457 insertions(+), 655 deletions(-) diff --git a/locale/ar/LC_MESSAGES/statusnet.po b/locale/ar/LC_MESSAGES/statusnet.po index 3e2f7c7b4..9f7bd5cbb 100644 --- a/locale/ar/LC_MESSAGES/statusnet.po +++ b/locale/ar/LC_MESSAGES/statusnet.po @@ -10,11 +10,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:55:52+0000\n" +"PO-Revision-Date: 2010-03-05 22:34:53+0000\n" "Language-Team: Arabic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ar\n" "X-Message-Group: out-statusnet\n" @@ -1422,12 +1422,12 @@ msgstr "ألغِ تفضيل المفضلة" #: actions/favorited.php:65 lib/popularnoticesection.php:91 #: lib/publicgroupnav.php:93 msgid "Popular notices" -msgstr "إشعارات مشهورة" +msgstr "إشعارات محبوبة" #: actions/favorited.php:67 #, php-format msgid "Popular notices, page %d" -msgstr "إشعارات مشهورة، الصفحة %d" +msgstr "إشعارات محبوبة، الصفحة %d" #: actions/favorited.php:79 msgid "The most popular notices on the site right now." @@ -3426,6 +3426,11 @@ msgid "" "their life and interests. [Join now](%%%%action.register%%%%) to become part " "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" +"**%s** مجموعة مستخدمين على %%%%site.name%%%%، خدمة [التدوين المُصغّر](http://" +"en.wikipedia.org/wiki/Micro-blogging) المبنية على البرنامج الحر [StatusNet]" +"(http://status.net/). يتشارك أعضاؤها رسائل قصيرة عن حياتهم واهتماماتهم. " +"[انضم الآن](%%%%action.register%%%%) لتصبح عضوًا في هذه المجموعة ومجموعات " +"أخرى عديدة! ([اقرأ المزيد](%%%%doc.help%%%%))" #: actions/showgroup.php:463 #, php-format @@ -3435,6 +3440,9 @@ msgid "" "[StatusNet](http://status.net/) tool. Its members share short messages about " "their life and interests. " msgstr "" +"**%s** مجموعة مستخدمين على %%%%site.name%%%%، خدمة [التدوين المُصغّر](http://" +"en.wikipedia.org/wiki/Micro-blogging) المبنية على البرنامج الحر [StatusNet]" +"(http://status.net/). يتشارك أعضاؤها رسائل قصيرة عن حياتهم واهتماماتهم. " #: actions/showgroup.php:491 msgid "Admins" @@ -3468,9 +3476,9 @@ msgid " tagged %s" msgstr "" #: actions/showstream.php:79 -#, fuzzy, php-format +#, php-format msgid "%1$s, page %2$d" -msgstr "%1$s والأصدقاء, الصفحة %2$d" +msgstr "%1$s، الصفحة %2$d" #: actions/showstream.php:122 #, php-format @@ -3523,6 +3531,11 @@ msgid "" "[StatusNet](http://status.net/) tool. [Join now](%%%%action.register%%%%) to " "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" +"لدى **%s** حساب على %%site.name%%، خدمة [التدوين المُصغّر](http://en." +"wikipedia.org/wiki/Micro-blogging) المبنية على البرنامج الحر [StatusNet]" +"(http://status.net/). يتشارك أعضاؤها رسائل قصيرة عن حياتهم واهتماماتهم. " +"[انضم الآن](%%%%action.register%%%%) لتتابع إشعارت **%s** وغيره! ([اقرأ " +"المزيد](%%%%doc.help%%%%))" #: actions/showstream.php:248 #, php-format @@ -3546,7 +3559,6 @@ msgid "User is already silenced." msgstr "المستخدم مسكت من قبل." #: actions/siteadminpanel.php:69 -#, fuzzy msgid "Basic settings for this StatusNet site" msgstr "الإعدادات الأساسية لموقع StatusNet هذا." @@ -3616,9 +3628,8 @@ msgid "Default timezone for the site; usually UTC." msgstr "المنطقة الزمنية المبدئية للموقع؛ ت‌ع‌م عادة." #: actions/siteadminpanel.php:262 -#, fuzzy msgid "Default language" -msgstr "لغة الموقع المبدئية" +msgstr "اللغة المبدئية" #: actions/siteadminpanel.php:263 msgid "Site language when autodetection from browser settings is not available" @@ -3645,14 +3656,12 @@ msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" #: actions/sitenoticeadminpanel.php:56 -#, fuzzy msgid "Site Notice" msgstr "إشعار الموقع" #: actions/sitenoticeadminpanel.php:67 -#, fuzzy msgid "Edit site-wide message" -msgstr "رسالة جديدة" +msgstr "عدّل رسالة الموقع العامة" #: actions/sitenoticeadminpanel.php:103 #, fuzzy @@ -3664,18 +3673,16 @@ msgid "Max length for the site-wide notice is 255 chars" msgstr "" #: actions/sitenoticeadminpanel.php:176 -#, fuzzy msgid "Site notice text" -msgstr "إشعار الموقع" +msgstr "نص إشعار الموقع" #: actions/sitenoticeadminpanel.php:178 msgid "Site-wide notice text (255 chars max; HTML okay)" -msgstr "" +msgstr "نص إشعار عام للموقع (255 حرف كحد أقصى؛ يسمح بHTML)" #: actions/sitenoticeadminpanel.php:198 -#, fuzzy msgid "Save site notice" -msgstr "إشعار الموقع" +msgstr "احفظ إشعار الموقع" #: actions/smssettings.php:58 msgid "SMS settings" @@ -4492,13 +4499,11 @@ msgid "Connect to services" msgstr "اتصالات" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "اتصل" #. TRANS: Tooltip for menu option "Admin" #: lib/action.php:446 -#, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "غيّر ضبط الموقع" @@ -4522,7 +4527,6 @@ msgstr "ادعُ" #. TRANS: Tooltip for main menu option "Logout" #: lib/action.php:462 -#, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "اخرج من الموقع" @@ -4534,7 +4538,6 @@ msgstr "اخرج" #. TRANS: Tooltip for main menu option "Register" #: lib/action.php:470 -#, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "أنشئ حسابًا" @@ -4709,7 +4712,7 @@ msgstr "" #. TRANS: Client error message #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." -msgstr "" +msgstr "لا يمكنك إجراء تغييرات على هذا الموقع." #. TRANS: Client error message #: lib/adminpanelaction.php:110 @@ -4780,9 +4783,8 @@ msgstr "ضبط الجلسات" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:396 -#, fuzzy msgid "Edit site notice" -msgstr "إشعار الموقع" +msgstr "عدّل إشعار الموقع" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:404 @@ -4805,7 +4807,7 @@ msgstr "عدّل التطبيق" #: lib/applicationeditform.php:184 msgid "Icon for this application" -msgstr "" +msgstr "أيقونة لهذا التطبيق" #: lib/applicationeditform.php:204 #, php-format @@ -4838,7 +4840,7 @@ msgstr "" #: lib/applicationeditform.php:258 msgid "Browser" -msgstr "" +msgstr "متصفح" #: lib/applicationeditform.php:274 msgid "Desktop" @@ -5060,23 +5062,23 @@ msgstr "" #: lib/command.php:613 lib/command.php:636 msgid "Command not yet implemented." -msgstr "" +msgstr "الأمر لم يُجهزّ بعد." #: lib/command.php:616 msgid "Notification off." -msgstr "" +msgstr "الإشعار مُطفأ." #: lib/command.php:618 msgid "Can't turn off notification." -msgstr "" +msgstr "تعذّر إطفاء الإشعارات." #: lib/command.php:639 msgid "Notification on." -msgstr "" +msgstr "الإشعار يعمل." #: lib/command.php:641 msgid "Can't turn on notification." -msgstr "" +msgstr "تعذّر تشغيل الإشعار." #: lib/command.php:654 msgid "Login command is disabled" @@ -5902,7 +5904,7 @@ msgstr "مُختارون" #: lib/publicgroupnav.php:92 msgid "Popular" -msgstr "مشهورة" +msgstr "محبوبة" #: lib/repeatform.php:107 msgid "Repeat this notice?" @@ -6077,15 +6079,14 @@ msgid "User role" msgstr "ملف المستخدم الشخصي" #: lib/userprofile.php:354 -#, fuzzy msgctxt "role" msgid "Administrator" -msgstr "الإداريون" +msgstr "إداري" #: lib/userprofile.php:355 msgctxt "role" msgid "Moderator" -msgstr "" +msgstr "مراقب" #: lib/util.php:1015 msgid "a few seconds ago" diff --git a/locale/arz/LC_MESSAGES/statusnet.po b/locale/arz/LC_MESSAGES/statusnet.po index dd00dbf7d..3654f6326 100644 --- a/locale/arz/LC_MESSAGES/statusnet.po +++ b/locale/arz/LC_MESSAGES/statusnet.po @@ -11,11 +11,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:55:56+0000\n" +"PO-Revision-Date: 2010-03-05 22:34:56+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 (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: arz\n" "X-Message-Group: out-statusnet\n" @@ -4505,7 +4505,6 @@ msgid "Connect to services" msgstr "كونيكشونات (Connections)" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "اتصل" diff --git a/locale/bg/LC_MESSAGES/statusnet.po b/locale/bg/LC_MESSAGES/statusnet.po index e24c60c5a..71b22dd4f 100644 --- a/locale/bg/LC_MESSAGES/statusnet.po +++ b/locale/bg/LC_MESSAGES/statusnet.po @@ -10,11 +10,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:55:59+0000\n" +"PO-Revision-Date: 2010-03-05 22:34:58+0000\n" "Language-Team: Bulgarian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: bg\n" "X-Message-Group: out-statusnet\n" @@ -4699,7 +4699,6 @@ msgid "Connect to services" msgstr "Свързване към услуги" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "Свързване" diff --git a/locale/ca/LC_MESSAGES/statusnet.po b/locale/ca/LC_MESSAGES/statusnet.po index f38b97ccf..8a91dad60 100644 --- a/locale/ca/LC_MESSAGES/statusnet.po +++ b/locale/ca/LC_MESSAGES/statusnet.po @@ -11,11 +11,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:56:02+0000\n" +"PO-Revision-Date: 2010-03-05 22:35:02+0000\n" "Language-Team: Catalan\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ca\n" "X-Message-Group: out-statusnet\n" @@ -4763,7 +4763,6 @@ msgid "Connect to services" msgstr "No s'ha pogut redirigir al servidor: %s" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "Connexió" diff --git a/locale/cs/LC_MESSAGES/statusnet.po b/locale/cs/LC_MESSAGES/statusnet.po index f4d284ee9..8a8ccf6e6 100644 --- a/locale/cs/LC_MESSAGES/statusnet.po +++ b/locale/cs/LC_MESSAGES/statusnet.po @@ -10,11 +10,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:56:05+0000\n" +"PO-Revision-Date: 2010-03-05 22:35:06+0000\n" "Language-Team: Czech\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: cs\n" "X-Message-Group: out-statusnet\n" @@ -4705,7 +4705,6 @@ msgid "Connect to services" msgstr "Nelze přesměrovat na server: %s" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "Připojit" diff --git a/locale/de/LC_MESSAGES/statusnet.po b/locale/de/LC_MESSAGES/statusnet.po index f71b407d5..5007074b7 100644 --- a/locale/de/LC_MESSAGES/statusnet.po +++ b/locale/de/LC_MESSAGES/statusnet.po @@ -4,6 +4,7 @@ # Author@translatewiki.net: Lutzgh # Author@translatewiki.net: March # Author@translatewiki.net: McDutchie +# Author@translatewiki.net: Michael # Author@translatewiki.net: Michi # Author@translatewiki.net: Pill # Author@translatewiki.net: Umherirrender @@ -15,11 +16,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:56:08+0000\n" +"PO-Revision-Date: 2010-03-05 22:35:09+0000\n" "Language-Team: German\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: out-statusnet\n" @@ -49,7 +50,6 @@ msgstr "" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -#, fuzzy msgctxt "LABEL" msgid "Private" msgstr "Privat" @@ -80,7 +80,6 @@ msgid "Save access settings" msgstr "Zugangs-Einstellungen speichern" #: actions/accessadminpanel.php:203 -#, fuzzy msgctxt "BUTTON" msgid "Save" msgstr "Speichern" @@ -170,12 +169,12 @@ msgstr "" #. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" #: actions/all.php:142 -#, fuzzy, php-format +#, php-format msgid "" "You can try to [nudge %1$s](../%2$s) from his profile or [post something to " "his or her attention](%%%%action.newnotice%%%%?status_textarea=%3$s)." msgstr "" -"Du kannst [%s in seinem Profil einen Stups geben](../%s) oder [ihm etwas " +"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." @@ -448,7 +447,7 @@ msgstr "Zu viele Pseudonyme! Maximale Anzahl ist %d." #: actions/newgroup.php:168 #, php-format msgid "Invalid alias: \"%s\"" -msgstr "Ungültiger Tag: „%s“" +msgstr "Ungültiges Stichwort: „%s“" #: actions/apigroupcreate.php:275 actions/editgroup.php:232 #: actions/newgroup.php:172 @@ -572,7 +571,7 @@ msgstr "" #: actions/apioauthauthorize.php:276 msgid "Allow or deny access" -msgstr "" +msgstr "Zugriff erlauben oder ablehnen" #: actions/apioauthauthorize.php:292 #, php-format @@ -601,16 +600,15 @@ msgstr "Passwort" #: actions/apioauthauthorize.php:328 msgid "Deny" -msgstr "" +msgstr "Ablehnen" #: actions/apioauthauthorize.php:334 -#, fuzzy msgid "Allow" -msgstr "Alle" +msgstr "Erlauben" #: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." -msgstr "" +msgstr "Zugang zu deinem Konto erlauben oder ablehnen" #: actions/apistatusesdestroy.php:107 msgid "This method requires a POST or DELETE." @@ -816,6 +814,9 @@ msgid "" "unsubscribed from you, unable to subscribe to you in the future, and you " "will not be notified of any @-replies from them." msgstr "" +"Bist du sicher, dass du den Benutzer blockieren willst? Die Verbindung zum " +"Benutzer wird gelöscht, dieser kann dich in Zukunft nicht mehr abonnieren " +"und bekommt keine @-Antworten." #: actions/block.php:143 actions/deleteapplication.php:153 #: actions/deletenotice.php:145 actions/deleteuser.php:150 @@ -950,9 +951,8 @@ msgstr "Nachricht hat kein Profil" #: actions/deleteapplication.php:78 actions/editapplication.php:77 #: actions/showapplication.php:94 -#, fuzzy msgid "You are not the owner of this application." -msgstr "Du bist kein Mitglied dieser Gruppe." +msgstr "Du bist Besitzer dieses Programms" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 @@ -961,9 +961,8 @@ msgid "There was a problem with your session token." msgstr "Es gab ein Problem mit deinem Sessiontoken." #: actions/deleteapplication.php:123 actions/deleteapplication.php:147 -#, fuzzy msgid "Delete application" -msgstr "Unbekannte Nachricht." +msgstr "Programm entfernen" #: actions/deleteapplication.php:149 msgid "" @@ -978,9 +977,8 @@ msgid "Do not delete this application" msgstr "Diese Nachricht nicht löschen" #: actions/deleteapplication.php:160 -#, fuzzy msgid "Delete this application" -msgstr "Nachricht löschen" +msgstr "Programm löschen" #. TRANS: Client error message #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 @@ -1038,6 +1036,8 @@ 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 "" +"Bist du sicher, dass du den Benutzer löschen wisst? Alle Daten des Benutzers " +"werden aus der Datenbank gelöscht (ohne ein Backup)." #: actions/deleteuser.php:151 lib/deleteuserform.php:77 msgid "Delete this user" @@ -1046,7 +1046,7 @@ msgstr "Diesen Benutzer löschen" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 #: lib/groupnav.php:119 msgid "Design" -msgstr "" +msgstr "Design" #: actions/designadminpanel.php:73 msgid "Design settings for this StatusNet site." @@ -1113,7 +1113,7 @@ msgstr "Hintergrundbild ein- oder ausschalten." #: actions/designadminpanel.php:479 lib/designsettings.php:161 msgid "Tile background image" -msgstr "" +msgstr "Hintergrundbild kacheln" #: actions/designadminpanel.php:488 lib/designsettings.php:170 msgid "Change colours" @@ -1137,7 +1137,7 @@ msgstr "Links" #: actions/designadminpanel.php:577 lib/designsettings.php:247 msgid "Use defaults" -msgstr "" +msgstr "Standardeinstellungen benutzen" #: actions/designadminpanel.php:578 lib/designsettings.php:248 msgid "Restore default designs" @@ -1172,9 +1172,9 @@ msgid "Add to favorites" msgstr "Zu Favoriten hinzufügen" #: actions/doc.php:158 -#, fuzzy, php-format +#, php-format msgid "No such document \"%s\"" -msgstr "Unbekanntes Dokument." +msgstr "Unbekanntes Dokument \"%s\"" #: actions/editapplication.php:54 msgid "Edit Application" @@ -1232,11 +1232,11 @@ msgstr "Homepage der Organisation ist erforderlich (Pflichtangabe)." #: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." -msgstr "" +msgstr "Antwort ist zu lang" #: actions/editapplication.php:225 actions/newapplication.php:215 msgid "Callback URL is not valid." -msgstr "" +msgstr "Antwort URL ist nicht gültig" #: actions/editapplication.php:258 #, fuzzy @@ -1585,13 +1585,12 @@ msgid "Cannot read file." msgstr "Datei konnte nicht gelesen werden." #: actions/grantrole.php:62 actions/revokerole.php:62 -#, fuzzy msgid "Invalid role." -msgstr "Ungültige Größe." +msgstr "Ungültige Aufgabe" #: actions/grantrole.php:66 actions/revokerole.php:66 msgid "This role is reserved and cannot be set." -msgstr "" +msgstr "Diese Aufgabe ist reserviert und kann nicht gesetzt werden" #: actions/grantrole.php:75 #, fuzzy @@ -1599,9 +1598,8 @@ msgid "You cannot grant user roles on this site." msgstr "Du kannst diesem Benutzer keine Nachricht schicken." #: actions/grantrole.php:82 -#, fuzzy msgid "User already has this role." -msgstr "Nutzer ist bereits ruhig gestellt." +msgstr "Nutzer hat diese Aufgabe bereits" #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 @@ -1657,7 +1655,6 @@ msgid "Database error blocking user from group." msgstr "Datenbank Fehler beim Versuch den Nutzer aus der Gruppe zu blockieren." #: actions/groupbyid.php:74 actions/userbyid.php:70 -#, fuzzy msgid "No ID." msgstr "Keine ID" @@ -1674,6 +1671,8 @@ msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." msgstr "" +"Stelle ein wie die Gruppenseite aussehen soll. Hintergrundbild und " +"Farbpalette frei wählbar." #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 @@ -1777,6 +1776,11 @@ msgid "" "for one](%%%%action.groupsearch%%%%) or [start your own!](%%%%action.newgroup" "%%%%)" msgstr "" +"Finde und rede mit Gleichgesinnten in %%%%site.name%%%% Gruppen. Nachdem du " +"einer Gruppe beigetreten bis kannst du mit \\\"!Gruppenname\\\" eine " +"Nachricht an alle Gruppenmitglieder schicken. Du kannst nach einer [Gruppe " +"suchen](%%%%action.groupsearch%%%%) oder deine eigene [Gruppe aufmachen!](%%%" +"%action.newgroup%%%%)" #: actions/groups.php:107 actions/usergroups.php:124 lib/groupeditform.php:122 msgid "Create a new group" @@ -1832,7 +1836,6 @@ msgid "Error removing the block." msgstr "Fehler beim Freigeben des Benutzers." #: actions/imsettings.php:59 -#, fuzzy msgid "IM settings" msgstr "IM-Einstellungen" @@ -1930,9 +1933,9 @@ msgid "That is not your Jabber ID." msgstr "Dies ist nicht deine JabberID." #: actions/inbox.php:59 -#, fuzzy, php-format +#, php-format msgid "Inbox for %1$s - page %2$d" -msgstr "Posteingang von %s" +msgstr "Posteingang von %s - Seite %2$d" #: actions/inbox.php:62 #, php-format @@ -2023,7 +2026,6 @@ msgstr "" #. TRANS: Send button for inviting friends #: actions/invite.php:198 -#, fuzzy msgctxt "BUTTON" msgid "Send" msgstr "Senden" @@ -2094,14 +2096,13 @@ msgid "You must be logged in to join a group." msgstr "Du musst angemeldet sein, um Mitglied einer Gruppe zu werden." #: actions/joingroup.php:88 actions/leavegroup.php:88 -#, fuzzy msgid "No nickname or ID." -msgstr "Kein Nutzername." +msgstr "Kein Benutzername oder ID" #: actions/joingroup.php:141 -#, fuzzy, php-format +#, php-format msgid "%1$s joined group %2$s" -msgstr "%s ist der Gruppe %s beigetreten" +msgstr "%1$s ist der Gruppe %2$s beigetreten" #: actions/leavegroup.php:60 msgid "You must be logged in to leave a group." @@ -2112,9 +2113,9 @@ msgid "You are not a member of that group." msgstr "Du bist kein Mitglied dieser Gruppe." #: actions/leavegroup.php:137 -#, fuzzy, php-format +#, php-format msgid "%1$s left group %2$s" -msgstr "%s hat die Gruppe %s verlassen" +msgstr "%1$s hat die Gruppe %2$s verlassen" #: actions/login.php:80 actions/otp.php:62 actions/register.php:137 msgid "Already logged in." @@ -2206,7 +2207,7 @@ msgstr "Benutzer dieses Formular, um eine neue Gruppe zu erstellen." #: actions/newapplication.php:176 msgid "Source URL is required." -msgstr "" +msgstr "Quell-URL ist erforderlich." #: actions/newapplication.php:258 actions/newapplication.php:267 #, fuzzy @@ -2290,6 +2291,8 @@ msgid "" "Be the first to [post on this topic](%%%%action.newnotice%%%%?" "status_textarea=%s)!" msgstr "" +"Sei der erste der [zu diesem Thema etwas schreibt](%%%%action.newnotice%%%%?" +"status_textarea=%s)!" #: actions/noticesearch.php:124 #, php-format @@ -2324,9 +2327,8 @@ msgid "Nudge sent!" msgstr "Stups gesendet!" #: actions/oauthappssettings.php:59 -#, fuzzy msgid "You must be logged in to list your applications." -msgstr "Du musst angemeldet sein, um eine Gruppe zu bearbeiten." +msgstr "Du musst angemeldet sein, um deine Programm anzuzeigen" #: actions/oauthappssettings.php:74 msgid "OAuth applications" @@ -2334,29 +2336,28 @@ msgstr "OAuth-Anwendungen" #: actions/oauthappssettings.php:85 msgid "Applications you have registered" -msgstr "" +msgstr "Registrierte Programme" #: actions/oauthappssettings.php:135 #, php-format msgid "You have not registered any applications yet." -msgstr "" +msgstr "Du hast noch keine Programme registriert" #: actions/oauthconnectionssettings.php:72 msgid "Connected applications" -msgstr "" +msgstr "Verbundene Programme" #: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" #: actions/oauthconnectionssettings.php:175 -#, fuzzy msgid "You are not a user of that application." -msgstr "Du bist kein Mitglied dieser Gruppe." +msgstr "Du bist kein Benutzer dieses Programms." #: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " -msgstr "" +msgstr "Kann Zugang dieses Programm nicht entfernen: " #: actions/oauthconnectionssettings.php:198 #, php-format @@ -2382,7 +2383,7 @@ msgstr "Content-Typ " #: actions/oembed.php:160 msgid "Only " -msgstr "" +msgstr "Nur " #: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 #: lib/apiaction.php:1070 lib/apiaction.php:1179 @@ -2407,7 +2408,7 @@ msgstr "Verwalte zahlreiche andere Einstellungen." #: actions/othersettings.php:108 msgid " (free service)" -msgstr "" +msgstr "(kostenloser Dienst)" #: actions/othersettings.php:116 msgid "Shorten URLs with" @@ -2532,7 +2533,7 @@ msgstr "Passwort gespeichert." #. TRANS: Menu item for site administration #: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" -msgstr "" +msgstr "Pfad" #: actions/pathsadminpanel.php:70 msgid "Path and server settings for this StatusNet site." @@ -2600,15 +2601,15 @@ msgstr "Schicke URLs (lesbarer und besser zu merken) verwenden?" #: actions/pathsadminpanel.php:259 msgid "Theme" -msgstr "" +msgstr "Motiv" #: actions/pathsadminpanel.php:264 msgid "Theme server" -msgstr "" +msgstr "Motiv-Server" #: actions/pathsadminpanel.php:268 msgid "Theme path" -msgstr "" +msgstr "Motiv-Pfad" #: actions/pathsadminpanel.php:272 msgid "Theme directory" @@ -2784,14 +2785,14 @@ msgstr "Teile meine aktuelle Position wenn ich Nachrichten sende" #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" -msgstr "Tags" +msgstr "Stichwörter" #: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -"Tags über dich selbst (Buchstaben, Zahlen, -, ., und _) durch Kommas oder " -"Leerzeichen getrennt" +"Stichwörter über dich selbst (Buchstaben, Zahlen, -, ., und _) durch Kommas " +"oder Leerzeichen getrennt" #: actions/profilesettings.php:151 msgid "Language" @@ -2832,7 +2833,7 @@ msgstr "Die eingegebene Sprache ist zu lang (maximal 50 Zeichen)" #: actions/profilesettings.php:253 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" -msgstr "Ungültiger Tag: „%s“" +msgstr "Ungültiges Stichwort: „%s“" #: actions/profilesettings.php:306 msgid "Couldn't update user for autosubscribe." @@ -2903,6 +2904,8 @@ msgstr "Sei der erste der etwas schreibt!" msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" +"Warum nicht ein [Benutzerkonto anlegen](%%action.register%%) und den ersten " +"Beitrag abschicken!" #: actions/public.php:242 #, php-format @@ -2926,23 +2929,23 @@ msgstr "" #: actions/publictagcloud.php:57 msgid "Public tag cloud" -msgstr "Öffentliche Tag-Wolke" +msgstr "Öffentliche Stichwort-Wolke" #: actions/publictagcloud.php:63 #, php-format msgid "These are most popular recent tags on %s " -msgstr "Das sind die beliebtesten Tags auf %s " +msgstr "Das sind die beliebtesten Stichwörter auf %s " #: actions/publictagcloud.php:69 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "" -"Bis jetzt hat noch niemand eine Nachricht mit dem Tag [hashtag](%%doc.tags%" -"%) gepostet." +"Bis jetzt hat noch niemand eine Nachricht mit dem Stichwort [hashtag](%%doc." +"tags%%) gepostet." #: actions/publictagcloud.php:72 msgid "Be the first to post one!" -msgstr "" +msgstr "Sei der Erste der etwas schreibt!" #: actions/publictagcloud.php:75 #, php-format @@ -2953,7 +2956,7 @@ msgstr "" #: actions/publictagcloud.php:134 msgid "Tag cloud" -msgstr "Tag-Wolke" +msgstr "Stichwort-Wolke" #: actions/recoverpassword.php:36 msgid "You are already logged in!" @@ -2995,7 +2998,7 @@ msgstr "" #: actions/recoverpassword.php:188 msgid "Password recovery" -msgstr "" +msgstr "Password-Wiederherstellung" #: actions/recoverpassword.php:191 msgid "Nickname or email address" @@ -3151,7 +3154,7 @@ msgstr "Meine Texte und Daten sind verfügbar unter" #: actions/register.php:496 msgid "Creative Commons Attribution 3.0" -msgstr "" +msgstr "Creative Commons Namensnennung 3.0" #: actions/register.php:497 msgid "" @@ -3162,7 +3165,7 @@ msgstr "" "Telefonnummer." #: actions/register.php:538 -#, fuzzy, php-format +#, php-format msgid "" "Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may " "want to...\n" @@ -3274,19 +3277,16 @@ msgid "You can't repeat your own notice." msgstr "Du kannst deine eigene Nachricht nicht wiederholen." #: actions/repeat.php:90 -#, fuzzy msgid "You already repeated that notice." -msgstr "Du hast diesen Benutzer bereits blockiert." +msgstr "Nachricht bereits wiederholt" #: actions/repeat.php:114 lib/noticelist.php:674 -#, fuzzy msgid "Repeated" -msgstr "Erstellt" +msgstr "Wiederholt" #: actions/repeat.php:119 -#, fuzzy msgid "Repeated!" -msgstr "Erstellt" +msgstr "Wiederholt!" #: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 @@ -3331,12 +3331,12 @@ msgid "" msgstr "" #: actions/replies.php:206 -#, fuzzy, php-format +#, 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)." msgstr "" -"Du kannst [%s in seinem Profil einen Stups geben](../%s) oder [ihm etwas " +"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." @@ -3373,7 +3373,7 @@ msgstr "Dieser Benutzer hat dich blockiert." #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 #: lib/adminpanelaction.php:390 msgid "Sessions" -msgstr "" +msgstr "Sitzung" #: actions/sessionsadminpanel.php:65 #, fuzzy @@ -3382,7 +3382,7 @@ msgstr "Design-Einstellungen für diese StatusNet-Website." #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" -msgstr "" +msgstr "Sitzung verwalten" #: actions/sessionsadminpanel.php:177 msgid "Whether to handle sessions ourselves." @@ -3413,7 +3413,7 @@ msgstr "Nachricht hat kein Profil" #: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" -msgstr "" +msgstr "Symbol" #: actions/showapplication.php:169 actions/version.php:195 #: lib/applicationeditform.php:195 @@ -3771,7 +3771,7 @@ msgstr "" #: actions/siteadminpanel.php:221 msgid "General" -msgstr "" +msgstr "Allgemein" #: actions/siteadminpanel.php:224 msgid "Site name" @@ -3808,14 +3808,13 @@ msgstr "Lokale Ansichten" #: actions/siteadminpanel.php:256 msgid "Default timezone" -msgstr "" +msgstr "Standard Zeitzone" #: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." -msgstr "" +msgstr "Standard Zeitzone für die Seite (meistens UTC)." #: actions/siteadminpanel.php:262 -#, fuzzy msgid "Default language" msgstr "Bevorzugte Sprache" @@ -3825,51 +3824,49 @@ msgstr "" #: actions/siteadminpanel.php:271 msgid "Limits" -msgstr "" +msgstr "Limit" #: actions/siteadminpanel.php:274 msgid "Text limit" -msgstr "" +msgstr "Textlimit" #: actions/siteadminpanel.php:274 msgid "Maximum number of characters for notices." -msgstr "" +msgstr "Maximale Anzahl von Zeichen pro Nachricht" #: actions/siteadminpanel.php:278 msgid "Dupe limit" -msgstr "" +msgstr "Wiederholungslimit" #: actions/siteadminpanel.php:278 msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" +"Wie lange muss ein Benutzer warten bis er eine identische Nachricht " +"abschicken kann (in Sekunden)." #: actions/sitenoticeadminpanel.php:56 -#, fuzzy msgid "Site Notice" -msgstr "Seitennachricht" +msgstr "Seitenbenachrichtigung" #: actions/sitenoticeadminpanel.php:67 -#, fuzzy msgid "Edit site-wide message" msgstr "Neue Nachricht" #: actions/sitenoticeadminpanel.php:103 -#, fuzzy msgid "Unable to save site notice." -msgstr "Konnte Twitter-Einstellungen nicht speichern." +msgstr "Konnte Seitenbenachrichtigung nicht speichern" #: actions/sitenoticeadminpanel.php:113 msgid "Max length for the site-wide notice is 255 chars" -msgstr "" +msgstr "Maximale Länge von Systembenachrichtigungen ist 255 Zeichen" #: actions/sitenoticeadminpanel.php:176 -#, fuzzy msgid "Site notice text" -msgstr "Seitennachricht" +msgstr "Seitenbenachrichtigung" #: actions/sitenoticeadminpanel.php:178 msgid "Site-wide notice text (255 chars max; HTML okay)" -msgstr "" +msgstr "Systembenachrichtigung (max. 255 Zeichen; HTML erlaubt)" #: actions/sitenoticeadminpanel.php:198 #, fuzzy @@ -3877,7 +3874,6 @@ msgid "Save site notice" msgstr "Seitennachricht" #: actions/smssettings.php:58 -#, fuzzy msgid "SMS settings" msgstr "SMS-Einstellungen" @@ -3907,7 +3903,6 @@ msgid "Enter the code you received on your phone." msgstr "Gib den Code ein, den du auf deinem Handy via SMS bekommen hast." #: actions/smssettings.php:138 -#, fuzzy msgid "SMS phone number" msgstr "SMS-Telefonnummer" @@ -3940,7 +3935,6 @@ msgid "That phone number already belongs to another user." msgstr "Diese Telefonnummer wird bereits von einem anderen Benutzer verwendet." #: actions/smssettings.php:347 -#, fuzzy 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." @@ -4028,7 +4022,7 @@ msgstr "" #: actions/snapshotadminpanel.php:226 msgid "Report URL" -msgstr "" +msgstr "URL melden" #: actions/snapshotadminpanel.php:227 msgid "Snapshots will be sent to this URL" @@ -4050,17 +4044,15 @@ msgstr "Konnte Abonnement nicht erstellen." #: actions/subscribe.php:77 msgid "This action only accepts POST requests." -msgstr "" +msgstr "Diese Aktion nimmt nur POST-Requests" #: actions/subscribe.php:107 -#, fuzzy msgid "No such profile." -msgstr "Datei nicht gefunden." +msgstr "Profil nicht gefunden." #: actions/subscribe.php:117 -#, fuzzy msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." -msgstr "Du hast dieses Profil nicht abonniert." +msgstr "Du hast dieses OMB 0.1 Profil nicht abonniert." #: actions/subscribe.php:145 msgid "Subscribed" @@ -4197,8 +4189,8 @@ msgid "" "Tags for this user (letters, numbers, -, ., and _), comma- or space- " "separated" msgstr "" -"Tags für diesen Benutzer (Buchstaben, Nummer, -, ., und _), durch Komma oder " -"Leerzeichen getrennt" +"Stichwörter für diesen Benutzer (Buchstaben, Nummer, -, ., und _), durch " +"Komma oder Leerzeichen getrennt" #: actions/tagother.php:193 msgid "" @@ -4209,7 +4201,7 @@ msgstr "" #: actions/tagother.php:200 msgid "Could not save tags." -msgstr "Konnte Tags nicht speichern." +msgstr "Konnte Stichwörter nicht speichern." #: actions/tagother.php:236 msgid "Use this form to add tags to your subscribers or subscriptions." @@ -4219,7 +4211,7 @@ msgstr "" #: actions/tagrss.php:35 msgid "No such tag." -msgstr "Tag nicht vorhanden." +msgstr "Stichwort nicht vorhanden." #: actions/twitapitrends.php:85 msgid "API method under construction." @@ -4256,7 +4248,6 @@ msgstr "" #. TRANS: User admin panel title #: actions/useradminpanel.php:59 -#, fuzzy msgctxt "TITLE" msgid "User" msgstr "Benutzer" @@ -4276,7 +4267,7 @@ msgstr "Willkommens-Nachricht ungültig. Maximale Länge sind 255 Zeichen." #: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." -msgstr "" +msgstr "Ungültiges Abonnement: '%1$s' ist kein Benutzer" #: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 @@ -4297,7 +4288,7 @@ msgstr "Neue Nutzer" #: actions/useradminpanel.php:235 msgid "New user welcome" -msgstr "" +msgstr "Neue Benutzer empfangen" #: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." @@ -4355,9 +4346,8 @@ msgid "Reject" msgstr "Ablehnen" #: actions/userauthorization.php:220 -#, fuzzy msgid "Reject this subscription" -msgstr "%s Abonnements" +msgstr "Abonnement ablehnen" #: actions/userauthorization.php:232 msgid "No authorization request!" @@ -4368,15 +4358,14 @@ msgid "Subscription authorized" msgstr "Abonnement autorisiert" #: actions/userauthorization.php:256 -#, fuzzy msgid "" "The subscription has been authorized, but no callback URL was passed. Check " "with the site’s instructions for details on how to authorize the " "subscription. Your subscription token is:" msgstr "" -"Das Abonnement wurde bestätigt, aber es wurde keine Callback-URL " -"zurückgegeben. Lies nochmal die Anweisungen der Site, wie Abonnements " -"bestätigt werden. Dein Abonnement-Token ist:" +"Das Abonnement wurde bestätigt, aber es wurde keine Antwort-URL angegeben. " +"Lies nochmal die Anweisungen auf der Seite wie Abonnements bestätigt werden. " +"Dein Abonnement-Token ist:" #: actions/userauthorization.php:266 msgid "Subscription rejected" @@ -4437,15 +4426,17 @@ msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." msgstr "" +"Stelle ein wie deine Profilseite aussehen soll. Hintergrundbild und " +"Farbpalette sind frei wählbar." #: actions/userdesignsettings.php:282 msgid "Enjoy your hotdog!" -msgstr "" +msgstr "Hab Spaß!" #: actions/usergroups.php:64 -#, fuzzy, php-format +#, php-format msgid "%1$s groups, page %2$d" -msgstr "%s Gruppen-Mitglieder, Seite %d" +msgstr "%1$s Gruppen, Seite %2$d" #: actions/usergroups.php:130 msgid "Search for more groups" @@ -4460,6 +4451,7 @@ msgstr "%s ist in keiner Gruppe Mitglied." #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" +"Versuche [Gruppen zu finden](%%action.groupsearch%%) und diesen beizutreten." #: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 @@ -4468,9 +4460,9 @@ msgid "Updates from %1$s on %2$s!" msgstr "Aktualisierungen von %1$s auf %2$s!" #: actions/version.php:73 -#, fuzzy, php-format +#, php-format msgid "StatusNet %s" -msgstr "Statistiken" +msgstr "StatusNet %s" #: actions/version.php:153 #, php-format @@ -4478,10 +4470,12 @@ msgid "" "This site is powered by %1$s version %2$s, Copyright 2008-2010 StatusNet, " "Inc. and contributors." msgstr "" +"Die Seite wird mit %1$s Version %2$s betrieben. Copyright 2008-2010 " +"StatusNet, Inc. und Mitarbeiter" #: actions/version.php:161 msgid "Contributors" -msgstr "" +msgstr "Mitarbeiter" #: actions/version.php:168 msgid "" @@ -4490,6 +4484,10 @@ msgid "" "Software Foundation, either version 3 of the License, or (at your option) " "any later version. " msgstr "" +"StatusNet ist freie Software: Sie dürfen es weiter verteilen und/oder " +"verändern unter Berücksichtigung der Regeln zur GNU General Public License " +"wie veröffentlicht durch die Free Software Foundation, entweder Version 3 " +"der Lizenz, oder jede höhere Version." #: actions/version.php:174 msgid "" @@ -4508,17 +4506,15 @@ msgstr "" #: actions/version.php:189 msgid "Plugins" -msgstr "" +msgstr "Erweiterungen" #: actions/version.php:196 lib/action.php:767 -#, fuzzy msgid "Version" -msgstr "Eigene" +msgstr "Version" #: actions/version.php:197 -#, fuzzy msgid "Author(s)" -msgstr "Autor" +msgstr "Autor(en)" #: classes/File.php:144 #, php-format @@ -4538,22 +4534,18 @@ msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" #: classes/Group_member.php:41 -#, fuzzy msgid "Group join failed." -msgstr "Gruppenprofil" +msgstr "Konnte Gruppe nicht beitreten" #: classes/Group_member.php:53 -#, fuzzy msgid "Not part of group." -msgstr "Konnte Gruppe nicht aktualisieren." +msgstr "Nicht Mitglied der Gruppe" #: classes/Group_member.php:60 -#, fuzzy msgid "Group leave failed." -msgstr "Gruppenprofil" +msgstr "Konnte Gruppe nicht verlassen" #: classes/Local_group.php:41 -#, fuzzy msgid "Could not update local group." msgstr "Konnte Gruppe nicht aktualisieren." @@ -4563,9 +4555,8 @@ msgid "Could not create login token for %s" msgstr "Konnte keinen Favoriten erstellen." #: classes/Message.php:45 -#, fuzzy msgid "You are banned from sending direct messages." -msgstr "Fehler beim Senden der Nachricht" +msgstr "Direktes senden von Nachrichten wurde blockiert" #: classes/Message.php:61 msgid "Could not insert message." @@ -4614,14 +4605,13 @@ msgid "Problem saving notice." msgstr "Problem bei Speichern der Nachricht." #: classes/Notice.php:927 -#, fuzzy msgid "Problem saving group inbox." msgstr "Problem bei Speichern der Nachricht." #: classes/Notice.php:1459 -#, fuzzy, php-format +#, php-format msgid "RT @%1$s %2$s" -msgstr "%1$s (%2$s)" +msgstr "RT @%1$s %2$s" #: classes/Subscription.php:66 lib/oauthstore.php:465 msgid "You have been banned from subscribing." @@ -4694,9 +4684,8 @@ msgid "Change email handling" msgstr "Ändere die E-Mail-Verarbeitung" #: lib/accountsettingsaction.php:124 -#, fuzzy msgid "Design your profile" -msgstr "Benutzerprofil" +msgstr "Passe dein Profil an" #: lib/accountsettingsaction.php:128 msgid "Other" @@ -4707,9 +4696,9 @@ msgid "Other options" msgstr "Sonstige Optionen" #: lib/action.php:144 -#, fuzzy, php-format +#, php-format msgid "%1$s - %2$s" -msgstr "%1$s (%2$s)" +msgstr "%1$s - %2$s" #: lib/action.php:159 msgid "Untitled page" @@ -4721,23 +4710,20 @@ msgstr "Hauptnavigation" #. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:430 -#, fuzzy msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Persönliches Profil und Freundes-Zeitleiste" #: lib/action.php:433 -#, fuzzy msgctxt "MENU" msgid "Personal" msgstr "Eigene" #. TRANS: Tooltip for main menu option "Account" #: lib/action.php:435 -#, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" -msgstr "Ändere deine E-Mail, dein Avatar, Passwort, Profil" +msgstr "Ändere deine E-Mail, Avatar, Passwort und Profil" #. TRANS: Tooltip for main menu option "Services" #: lib/action.php:440 @@ -4747,7 +4733,6 @@ msgid "Connect to services" msgstr "Konnte nicht zum Server umleiten: %s" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "Verbinden" @@ -4759,85 +4744,73 @@ msgid "Change site configuration" msgstr "Hauptnavigation" #: lib/action.php:449 -#, fuzzy msgctxt "MENU" msgid "Admin" -msgstr "Admin" +msgstr "Administrator" #. TRANS: Tooltip for main menu option "Invite" #: lib/action.php:453 -#, fuzzy, php-format +#, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Lade Freunde und Kollegen ein dir auf %s zu folgen" #: lib/action.php:456 -#, fuzzy msgctxt "MENU" msgid "Invite" msgstr "Einladen" #. TRANS: Tooltip for main menu option "Logout" #: lib/action.php:462 -#, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Von der Seite abmelden" #: lib/action.php:465 -#, fuzzy msgctxt "MENU" msgid "Logout" msgstr "Abmelden" #. TRANS: Tooltip for main menu option "Register" #: lib/action.php:470 -#, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "Neues Konto erstellen" #: lib/action.php:473 -#, fuzzy msgctxt "MENU" msgid "Register" msgstr "Registrieren" #. TRANS: Tooltip for main menu option "Login" #: lib/action.php:476 -#, fuzzy msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Auf der Seite anmelden" #: lib/action.php:479 -#, fuzzy msgctxt "MENU" msgid "Login" msgstr "Anmelden" #. TRANS: Tooltip for main menu option "Help" #: lib/action.php:482 -#, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "Hilf mir!" #: lib/action.php:485 -#, fuzzy msgctxt "MENU" msgid "Help" msgstr "Hilfe" #. TRANS: Tooltip for main menu option "Search" #: lib/action.php:488 -#, fuzzy msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Suche nach Leuten oder Text" #: lib/action.php:491 -#, fuzzy msgctxt "MENU" msgid "Search" msgstr "Suchen" @@ -4941,7 +4914,6 @@ msgid "Content and data copyright by contributors. All rights reserved." msgstr "" #: lib/action.php:847 -#, fuzzy msgid "All " msgstr "Alle " @@ -5002,13 +4974,11 @@ msgstr "Konnte die Design Einstellungen nicht löschen." #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:348 -#, fuzzy msgid "Basic site configuration" -msgstr "Bestätigung der E-Mail-Adresse" +msgstr "Basis Seiteneinstellungen" #. TRANS: Menu item for site administration #: lib/adminpanelaction.php:350 -#, fuzzy msgctxt "MENU" msgid "Site" msgstr "Seite" @@ -5021,16 +4991,14 @@ msgstr "SMS-Konfiguration" #. TRANS: Menu item for site administration #: lib/adminpanelaction.php:358 -#, fuzzy msgctxt "MENU" msgid "Design" -msgstr "Eigene" +msgstr "Design" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:364 -#, fuzzy msgid "User configuration" -msgstr "SMS-Konfiguration" +msgstr "Benutzereinstellung" #. TRANS: Menu item for site administration #: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 @@ -5051,9 +5019,8 @@ msgstr "SMS-Konfiguration" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:388 -#, fuzzy msgid "Sessions configuration" -msgstr "SMS-Konfiguration" +msgstr "Sitzungseinstellungen" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:396 @@ -5078,11 +5045,11 @@ msgstr "" #: lib/applicationeditform.php:136 msgid "Edit application" -msgstr "" +msgstr "Programm bearbeiten" #: lib/applicationeditform.php:184 msgid "Icon for this application" -msgstr "" +msgstr "Programmsymbol" #: lib/applicationeditform.php:204 #, fuzzy, php-format @@ -5119,7 +5086,7 @@ msgstr "" #: lib/applicationeditform.php:258 msgid "Browser" -msgstr "" +msgstr "Browser" #: lib/applicationeditform.php:274 msgid "Desktop" @@ -5131,11 +5098,11 @@ msgstr "" #: lib/applicationeditform.php:297 msgid "Read-only" -msgstr "" +msgstr "Schreibgeschützt" #: lib/applicationeditform.php:315 msgid "Read-write" -msgstr "" +msgstr "Lese/Schreibzugriff" #: lib/applicationeditform.php:316 msgid "Default access for this application: read-only, or read-write" @@ -5164,12 +5131,11 @@ msgstr "Nachrichten in denen dieser Anhang erscheint" #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" -msgstr "Tags für diesen Anhang" +msgstr "Stichworte für diesen Anhang" #: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 -#, fuzzy msgid "Password changing failed" -msgstr "Passwort geändert" +msgstr "Passwort konnte nicht geändert werden" #: lib/authenticationplugin.php:235 #, fuzzy @@ -5213,6 +5179,9 @@ msgid "" "Subscribers: %2$s\n" "Notices: %3$s" msgstr "" +"Abonnements: %1$s\n" +"Abonnenten: %2$s\n" +"Mitteilungen: %3$s" #: lib/command.php:152 lib/command.php:390 lib/command.php:451 msgid "Notice with that id does not exist" @@ -5369,7 +5338,7 @@ msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" #: lib/command.php:692 -#, fuzzy, php-format +#, php-format msgid "Unsubscribed %s" msgstr "%s nicht mehr abonniert" @@ -5501,7 +5470,7 @@ msgstr "" #: lib/designsettings.php:418 msgid "Design defaults restored." -msgstr "" +msgstr "Standard Design wieder hergestellt." #: lib/disfavorform.php:114 lib/disfavorform.php:140 #, fuzzy @@ -5539,7 +5508,7 @@ msgstr "Daten exportieren" #: lib/galleryaction.php:121 msgid "Filter tags" -msgstr "Tags filtern" +msgstr "Stichworte filtern" #: lib/galleryaction.php:131 msgid "All" @@ -5552,12 +5521,12 @@ msgstr "Wähle einen Netzanbieter" #: lib/galleryaction.php:140 msgid "Tag" -msgstr "Tag" +msgstr "Stichwort" #: lib/galleryaction.php:141 #, fuzzy msgid "Choose a tag to narrow list" -msgstr "Wähle einen Tag, um die Liste einzuschränken" +msgstr "Wähle ein Stichwort, um die Liste einzuschränken" #: lib/galleryaction.php:143 msgid "Go" @@ -5637,7 +5606,7 @@ msgstr "Gruppen mit den meisten Beiträgen" #: lib/grouptagcloudsection.php:56 #, php-format msgid "Tags in %s group's notices" -msgstr "Tags in den Nachrichten der Gruppe %s" +msgstr "Stichworte in den Nachrichten der Gruppe %s" #: lib/htmloutputter.php:103 msgid "This page is not available in a media type you accept" @@ -6037,7 +6006,6 @@ msgid "Available characters" msgstr "Verfügbare Zeichen" #: lib/messageform.php:178 lib/noticeform.php:236 -#, fuzzy msgctxt "Send button for sending notice" msgid "Send" msgstr "Senden" @@ -6053,11 +6021,11 @@ msgstr "Was ist los, %s?" #: lib/noticeform.php:192 msgid "Attach" -msgstr "" +msgstr "Anhängen" #: lib/noticeform.php:196 msgid "Attach a file" -msgstr "" +msgstr "Datei anhängen" #: lib/noticeform.php:212 msgid "Share my location" @@ -6096,7 +6064,7 @@ msgstr "W" #: lib/noticelist.php:438 msgid "at" -msgstr "" +msgstr "in" #: lib/noticelist.php:566 msgid "in context" @@ -6182,7 +6150,7 @@ msgstr "Deine gesendeten Nachrichten" #: lib/personaltagcloudsection.php:56 #, php-format msgid "Tags in %s's notices" -msgstr "Tags in %ss Nachrichten" +msgstr "Stichworte in %ss Nachrichten" #: lib/plugin.php:114 #, fuzzy @@ -6236,15 +6204,15 @@ msgstr "Benutzer-Gruppen" #: lib/publicgroupnav.php:84 lib/publicgroupnav.php:85 msgid "Recent tags" -msgstr "Aktuelle Tags" +msgstr "Aktuelle Stichworte" #: lib/publicgroupnav.php:88 msgid "Featured" -msgstr "Featured" +msgstr "Beliebte Benutzer" #: lib/publicgroupnav.php:92 msgid "Popular" -msgstr "Beliebt" +msgstr "Beliebte Beiträge" #: lib/repeatform.php:107 msgid "Repeat this notice?" diff --git a/locale/el/LC_MESSAGES/statusnet.po b/locale/el/LC_MESSAGES/statusnet.po index 6b5c3973f..34c193e29 100644 --- a/locale/el/LC_MESSAGES/statusnet.po +++ b/locale/el/LC_MESSAGES/statusnet.po @@ -10,11 +10,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:56:10+0000\n" +"PO-Revision-Date: 2010-03-05 22:35:20+0000\n" "Language-Team: Greek\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: el\n" "X-Message-Group: out-statusnet\n" @@ -4625,7 +4625,6 @@ msgid "Connect to services" msgstr "Αδυναμία ανακατεύθηνσης στο διακομιστή: %s" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "Σύνδεση" diff --git a/locale/en_GB/LC_MESSAGES/statusnet.po b/locale/en_GB/LC_MESSAGES/statusnet.po index cac1893e8..d5bb03f3e 100644 --- a/locale/en_GB/LC_MESSAGES/statusnet.po +++ b/locale/en_GB/LC_MESSAGES/statusnet.po @@ -10,11 +10,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:56:13+0000\n" +"PO-Revision-Date: 2010-03-05 22:35:23+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 (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: en-gb\n" "X-Message-Group: out-statusnet\n" @@ -4671,7 +4671,6 @@ msgid "Connect to services" msgstr "Connect to services" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "Connect" diff --git a/locale/es/LC_MESSAGES/statusnet.po b/locale/es/LC_MESSAGES/statusnet.po index 4aa92796a..04e49bc11 100644 --- a/locale/es/LC_MESSAGES/statusnet.po +++ b/locale/es/LC_MESSAGES/statusnet.po @@ -14,11 +14,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:56:16+0000\n" +"PO-Revision-Date: 2010-03-05 22:35:26+0000\n" "Language-Team: Spanish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: es\n" "X-Message-Group: out-statusnet\n" @@ -4727,7 +4727,6 @@ msgid "Connect to services" msgstr "Conectar a los servicios" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "Conectarse" diff --git a/locale/fa/LC_MESSAGES/statusnet.po b/locale/fa/LC_MESSAGES/statusnet.po index a68568600..8e2a72d04 100644 --- a/locale/fa/LC_MESSAGES/statusnet.po +++ b/locale/fa/LC_MESSAGES/statusnet.po @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:56:22+0000\n" +"PO-Revision-Date: 2010-03-05 22:35:32+0000\n" "Last-Translator: Ahmad Sufi Mahmudi\n" "Language-Team: Persian\n" "MIME-Version: 1.0\n" @@ -20,7 +20,7 @@ msgstr "" "X-Language-Code: fa\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" #. TRANS: Page title @@ -4629,7 +4629,6 @@ msgid "Connect to services" msgstr "متصل شدن به خدمات" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "وصل‌شدن" diff --git a/locale/fi/LC_MESSAGES/statusnet.po b/locale/fi/LC_MESSAGES/statusnet.po index b4978769f..dc707ff1b 100644 --- a/locale/fi/LC_MESSAGES/statusnet.po +++ b/locale/fi/LC_MESSAGES/statusnet.po @@ -11,11 +11,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:56:19+0000\n" +"PO-Revision-Date: 2010-03-05 22:35:29+0000\n" "Language-Team: Finnish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fi\n" "X-Message-Group: out-statusnet\n" @@ -4805,7 +4805,6 @@ msgid "Connect to services" msgstr "Ei voitu uudelleenohjata palvelimelle: %s" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "Yhdistä" diff --git a/locale/fr/LC_MESSAGES/statusnet.po b/locale/fr/LC_MESSAGES/statusnet.po index c8d14b83d..1965123ea 100644 --- a/locale/fr/LC_MESSAGES/statusnet.po +++ b/locale/fr/LC_MESSAGES/statusnet.po @@ -15,11 +15,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:56:25+0000\n" +"PO-Revision-Date: 2010-03-05 22:35:34+0000\n" "Language-Team: French\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: out-statusnet\n" @@ -1591,24 +1591,20 @@ msgid "Cannot read file." msgstr "Impossible de lire le fichier" #: actions/grantrole.php:62 actions/revokerole.php:62 -#, fuzzy msgid "Invalid role." -msgstr "Jeton incorrect." +msgstr "Rôle invalide." #: actions/grantrole.php:66 actions/revokerole.php:66 msgid "This role is reserved and cannot be set." -msgstr "" +msgstr "Ce rôle est réservé et ne peut pas être défini." #: actions/grantrole.php:75 -#, fuzzy msgid "You cannot grant user roles on this site." -msgstr "" -"Vous ne pouvez pas mettre des utilisateur dans le bac à sable sur ce site." +msgstr "Vous ne pouvez pas attribuer des rôles aux utilisateurs sur ce site." #: actions/grantrole.php:82 -#, fuzzy msgid "User already has this role." -msgstr "Cet utilisateur est déjà réduit au silence." +msgstr "L'utilisateur a déjà ce rôle." #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 @@ -3377,14 +3373,12 @@ msgid "Replies to %1$s on %2$s!" msgstr "Réponses à %1$s sur %2$s !" #: actions/revokerole.php:75 -#, fuzzy msgid "You cannot revoke user roles on this site." -msgstr "Vous ne pouvez pas réduire des utilisateurs au silence sur ce site." +msgstr "Vous ne pouvez pas révoquer les rôles des utilisateurs sur ce site." #: actions/revokerole.php:82 -#, fuzzy msgid "User doesn't have this role." -msgstr "Utilisateur sans profil correspondant." +msgstr "L'utilisateur ne possède pas ce rôle." #: actions/rsd.php:146 actions/version.php:157 msgid "StatusNet" @@ -3791,9 +3785,8 @@ msgid "User is already silenced." msgstr "Cet utilisateur est déjà réduit au silence." #: actions/siteadminpanel.php:69 -#, fuzzy msgid "Basic settings for this StatusNet site" -msgstr "Paramètres basiques pour ce site StatusNet." +msgstr "Paramètres basiques pour ce site StatusNet" #: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." @@ -3861,13 +3854,14 @@ msgid "Default timezone for the site; usually UTC." msgstr "Zone horaire par défaut pour ce site ; généralement UTC." #: actions/siteadminpanel.php:262 -#, fuzzy msgid "Default language" -msgstr "Langue du site par défaut" +msgstr "Langue par défaut" #: actions/siteadminpanel.php:263 msgid "Site language when autodetection from browser settings is not available" msgstr "" +"Langue du site lorsque la détection automatique des paramètres du navigateur " +"n'est pas disponible" #: actions/siteadminpanel.php:271 msgid "Limits" @@ -3892,37 +3886,33 @@ msgstr "" "la même chose de nouveau." #: actions/sitenoticeadminpanel.php:56 -#, fuzzy msgid "Site Notice" -msgstr "Notice du site" +msgstr "Avis du site" #: actions/sitenoticeadminpanel.php:67 -#, fuzzy msgid "Edit site-wide message" -msgstr "Nouveau message" +msgstr "Modifier un message portant sur tout le site" #: actions/sitenoticeadminpanel.php:103 -#, fuzzy msgid "Unable to save site notice." -msgstr "Impossible de sauvegarder les parmètres de la conception." +msgstr "Impossible d'enregistrer l'avis du site." #: actions/sitenoticeadminpanel.php:113 msgid "Max length for the site-wide notice is 255 chars" -msgstr "" +msgstr "La longueur maximale pour l'avis du site est de 255 caractères" #: actions/sitenoticeadminpanel.php:176 -#, fuzzy msgid "Site notice text" -msgstr "Notice du site" +msgstr "Texte de l'avis du site" #: actions/sitenoticeadminpanel.php:178 msgid "Site-wide notice text (255 chars max; HTML okay)" msgstr "" +"Texte de l'avis portant sur tout le site (max. 255 caractères ; HTML activé)" #: actions/sitenoticeadminpanel.php:198 -#, fuzzy msgid "Save site notice" -msgstr "Notice du site" +msgstr "Enregistrer l'avis du site" #: actions/smssettings.php:58 msgid "SMS settings" @@ -4034,9 +4024,8 @@ msgid "Snapshots" msgstr "Instantanés" #: actions/snapshotadminpanel.php:65 -#, fuzzy msgid "Manage snapshot configuration" -msgstr "Modifier la configuration du site" +msgstr "Gérer la configuration des instantanés" #: actions/snapshotadminpanel.php:127 msgid "Invalid snapshot run value." @@ -4083,9 +4072,8 @@ msgid "Snapshots will be sent to this URL" msgstr "Les instantanés seront envoyés à cette URL" #: actions/snapshotadminpanel.php:248 -#, fuzzy msgid "Save snapshot settings" -msgstr "Sauvegarder les paramètres du site" +msgstr "Sauvegarder les paramètres des instantanés" #: actions/subedit.php:70 msgid "You are not subscribed to that profile." @@ -4702,9 +4690,8 @@ msgid "Couldn't delete self-subscription." msgstr "Impossible de supprimer l’abonnement à soi-même." #: classes/Subscription.php:190 -#, fuzzy msgid "Couldn't delete subscription OMB token." -msgstr "Impossible de cesser l’abonnement" +msgstr "Impossible de supprimer le jeton OMB de l'abonnement ." #: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." @@ -4796,7 +4783,6 @@ msgid "Connect to services" msgstr "Se connecter aux services" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "Connecter" @@ -5085,15 +5071,13 @@ msgstr "Configuration des sessions" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:396 -#, fuzzy msgid "Edit site notice" -msgstr "Notice du site" +msgstr "Modifier l'avis du site" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:404 -#, fuzzy msgid "Snapshots configuration" -msgstr "Configuration des chemins" +msgstr "Configuration des instantanés" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5634,7 +5618,7 @@ msgstr "Aller" #: lib/grantroleform.php:91 #, php-format msgid "Grant this user the \"%s\" role" -msgstr "" +msgstr "Accorder le rôle « %s » à cet utilisateur" #: lib/groupeditform.php:163 msgid "URL of the homepage or blog of the group or topic" @@ -6346,9 +6330,9 @@ msgid "Repeat this notice" msgstr "Reprendre cet avis" #: lib/revokeroleform.php:91 -#, fuzzy, php-format +#, php-format msgid "Revoke the \"%s\" role from this user" -msgstr "Bloquer cet utilisateur de de groupe" +msgstr "Révoquer le rôle « %s » de cet utilisateur" #: lib/router.php:671 msgid "No single user defined for single-user mode." @@ -6505,21 +6489,18 @@ msgid "Moderate" msgstr "Modérer" #: lib/userprofile.php:352 -#, fuzzy msgid "User role" -msgstr "Profil de l’utilisateur" +msgstr "Rôle de l'utilisateur" #: lib/userprofile.php:354 -#, fuzzy msgctxt "role" msgid "Administrator" -msgstr "Administrateurs" +msgstr "Administrateur" #: lib/userprofile.php:355 -#, fuzzy msgctxt "role" msgid "Moderator" -msgstr "Modérer" +msgstr "Modérateur" #: lib/util.php:1015 msgid "a few seconds ago" diff --git a/locale/ga/LC_MESSAGES/statusnet.po b/locale/ga/LC_MESSAGES/statusnet.po index 97c3d45f1..b88dc4e2c 100644 --- a/locale/ga/LC_MESSAGES/statusnet.po +++ b/locale/ga/LC_MESSAGES/statusnet.po @@ -9,11 +9,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:56:28+0000\n" +"PO-Revision-Date: 2010-03-05 22:35:38+0000\n" "Language-Team: Irish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ga\n" "X-Message-Group: out-statusnet\n" @@ -4863,7 +4863,6 @@ msgid "Connect to services" msgstr "Non se pode redireccionar ao servidor: %s" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "Conectar" diff --git a/locale/he/LC_MESSAGES/statusnet.po b/locale/he/LC_MESSAGES/statusnet.po index ea9275685..0856fd8fe 100644 --- a/locale/he/LC_MESSAGES/statusnet.po +++ b/locale/he/LC_MESSAGES/statusnet.po @@ -8,11 +8,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:56:31+0000\n" +"PO-Revision-Date: 2010-03-05 22:35:40+0000\n" "Language-Team: Hebrew\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: out-statusnet\n" @@ -4707,7 +4707,6 @@ msgid "Connect to services" msgstr "נכשלה ההפניה לשרת: %s" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "התחבר" diff --git a/locale/hsb/LC_MESSAGES/statusnet.po b/locale/hsb/LC_MESSAGES/statusnet.po index b4a6ec7a8..8c129a376 100644 --- a/locale/hsb/LC_MESSAGES/statusnet.po +++ b/locale/hsb/LC_MESSAGES/statusnet.po @@ -10,11 +10,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:56:34+0000\n" +"PO-Revision-Date: 2010-03-05 22:35:43+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: hsb\n" "X-Message-Group: out-statusnet\n" @@ -4501,7 +4501,6 @@ msgid "Connect to services" msgstr "Zwiski" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "Zwjazać" diff --git a/locale/ia/LC_MESSAGES/statusnet.po b/locale/ia/LC_MESSAGES/statusnet.po index 8f3976673..4116b91d5 100644 --- a/locale/ia/LC_MESSAGES/statusnet.po +++ b/locale/ia/LC_MESSAGES/statusnet.po @@ -9,11 +9,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:56:37+0000\n" +"PO-Revision-Date: 2010-03-05 22:35:46+0000\n" "Language-Team: Interlingua\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: out-statusnet\n" @@ -4754,7 +4754,6 @@ msgid "Connect to services" msgstr "Connecter con servicios" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "Connecter" diff --git a/locale/is/LC_MESSAGES/statusnet.po b/locale/is/LC_MESSAGES/statusnet.po index 84a90d7d8..be9a80250 100644 --- a/locale/is/LC_MESSAGES/statusnet.po +++ b/locale/is/LC_MESSAGES/statusnet.po @@ -9,11 +9,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:56:39+0000\n" +"PO-Revision-Date: 2010-03-05 22:35:49+0000\n" "Language-Team: Icelandic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: is\n" "X-Message-Group: out-statusnet\n" @@ -4755,7 +4755,6 @@ msgid "Connect to services" msgstr "Gat ekki framsent til vefþjóns: %s" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "Tengjast" diff --git a/locale/it/LC_MESSAGES/statusnet.po b/locale/it/LC_MESSAGES/statusnet.po index 5f72eb1a7..05b829067 100644 --- a/locale/it/LC_MESSAGES/statusnet.po +++ b/locale/it/LC_MESSAGES/statusnet.po @@ -10,11 +10,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:56:42+0000\n" +"PO-Revision-Date: 2010-03-05 22:35:52+0000\n" "Language-Team: Italian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: it\n" "X-Message-Group: out-statusnet\n" @@ -45,7 +45,6 @@ msgstr "" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -#, fuzzy msgctxt "LABEL" msgid "Private" msgstr "Privato" @@ -76,7 +75,6 @@ msgid "Save access settings" msgstr "Salva impostazioni di accesso" #: actions/accessadminpanel.php:203 -#, fuzzy msgctxt "BUTTON" msgid "Save" msgstr "Salva" @@ -1582,23 +1580,20 @@ msgid "Cannot read file." msgstr "Impossibile leggere il file." #: actions/grantrole.php:62 actions/revokerole.php:62 -#, fuzzy msgid "Invalid role." -msgstr "Token non valido." +msgstr "Ruolo non valido." #: actions/grantrole.php:66 actions/revokerole.php:66 msgid "This role is reserved and cannot be set." -msgstr "" +msgstr "Questo ruolo è riservato e non può essere impostato." #: actions/grantrole.php:75 -#, fuzzy msgid "You cannot grant user roles on this site." -msgstr "Non puoi mettere in \"sandbox\" gli utenti su questo sito." +msgstr "Non puoi concedere i ruoli agli utenti su questo sito." #: actions/grantrole.php:82 -#, fuzzy msgid "User already has this role." -msgstr "L'utente è già stato zittito." +msgstr "L'utente ricopre già questo ruolo." #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 @@ -2019,7 +2014,6 @@ msgstr "Puoi aggiungere un messaggio personale agli inviti." #. TRANS: Send button for inviting friends #: actions/invite.php:198 -#, fuzzy msgctxt "BUTTON" msgid "Send" msgstr "Invia" @@ -3339,14 +3333,12 @@ msgid "Replies to %1$s on %2$s!" msgstr "Risposte a %1$s su %2$s!" #: actions/revokerole.php:75 -#, fuzzy msgid "You cannot revoke user roles on this site." -msgstr "Non puoi zittire gli utenti su questo sito." +msgstr "Non puoi revocare i ruoli degli utenti su questo sito." #: actions/revokerole.php:82 -#, fuzzy msgid "User doesn't have this role." -msgstr "Utente senza profilo corrispondente." +msgstr "L'utente non ricopre questo ruolo." #: actions/rsd.php:146 actions/version.php:157 msgid "StatusNet" @@ -3747,9 +3739,8 @@ msgid "User is already silenced." msgstr "L'utente è già stato zittito." #: actions/siteadminpanel.php:69 -#, fuzzy msgid "Basic settings for this StatusNet site" -msgstr "Impostazioni di base per questo sito StatusNet." +msgstr "Impostazioni di base per questo sito StatusNet" #: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." @@ -3817,13 +3808,14 @@ msgid "Default timezone for the site; usually UTC." msgstr "Fuso orario predefinito; tipicamente UTC" #: actions/siteadminpanel.php:262 -#, fuzzy msgid "Default language" msgstr "Lingua predefinita" #: actions/siteadminpanel.php:263 msgid "Site language when autodetection from browser settings is not available" msgstr "" +"Lingua del sito quando il rilevamento automatico del browser non è " +"disponibile" #: actions/siteadminpanel.php:271 msgid "Limits" @@ -3848,37 +3840,32 @@ msgstr "" "nuovamente lo stesso messaggio" #: actions/sitenoticeadminpanel.php:56 -#, fuzzy msgid "Site Notice" msgstr "Messaggio del sito" #: actions/sitenoticeadminpanel.php:67 -#, fuzzy msgid "Edit site-wide message" -msgstr "Nuovo messaggio" +msgstr "Modifica il messaggio del sito" #: actions/sitenoticeadminpanel.php:103 -#, fuzzy msgid "Unable to save site notice." -msgstr "Impossibile salvare la impostazioni dell'aspetto." +msgstr "Impossibile salvare il messaggio del sito." #: actions/sitenoticeadminpanel.php:113 msgid "Max length for the site-wide notice is 255 chars" -msgstr "" +msgstr "La dimensione massima del messaggio del sito è di 255 caratteri" #: actions/sitenoticeadminpanel.php:176 -#, fuzzy msgid "Site notice text" -msgstr "Messaggio del sito" +msgstr "Testo messaggio del sito" #: actions/sitenoticeadminpanel.php:178 msgid "Site-wide notice text (255 chars max; HTML okay)" -msgstr "" +msgstr "Testo messaggio del sito (massimo 255 caratteri, HTML consentito)" #: actions/sitenoticeadminpanel.php:198 -#, fuzzy msgid "Save site notice" -msgstr "Messaggio del sito" +msgstr "Salva messaggio" #: actions/smssettings.php:58 msgid "SMS settings" @@ -3986,9 +3973,8 @@ msgid "Snapshots" msgstr "Snapshot" #: actions/snapshotadminpanel.php:65 -#, fuzzy msgid "Manage snapshot configuration" -msgstr "Modifica la configurazione del sito" +msgstr "Gestisci configurazione snapshot" #: actions/snapshotadminpanel.php:127 msgid "Invalid snapshot run value." @@ -4035,9 +4021,8 @@ msgid "Snapshots will be sent to this URL" msgstr "Gli snapshot verranno inviati a questo URL" #: actions/snapshotadminpanel.php:248 -#, fuzzy msgid "Save snapshot settings" -msgstr "Salva impostazioni" +msgstr "Salva impostazioni snapshot" #: actions/subedit.php:70 msgid "You are not subscribed to that profile." @@ -4258,7 +4243,6 @@ msgstr "" #. TRANS: User admin panel title #: actions/useradminpanel.php:59 -#, fuzzy msgctxt "TITLE" msgid "User" msgstr "Utente" @@ -4651,9 +4635,8 @@ msgid "Couldn't delete self-subscription." msgstr "Impossibile eliminare l'auto-abbonamento." #: classes/Subscription.php:190 -#, fuzzy msgid "Couldn't delete subscription OMB token." -msgstr "Impossibile eliminare l'abbonamento." +msgstr "Impossibile eliminare il token di abbonamento OMB." #: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." @@ -4723,123 +4706,105 @@ msgstr "Esplorazione sito primaria" #. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:430 -#, fuzzy msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Profilo personale e attività degli amici" #: lib/action.php:433 -#, fuzzy msgctxt "MENU" msgid "Personal" msgstr "Personale" #. TRANS: Tooltip for main menu option "Account" #: lib/action.php:435 -#, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Modifica la tua email, immagine, password o il tuo profilo" #. TRANS: Tooltip for main menu option "Services" #: lib/action.php:440 -#, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Connettiti con altri servizi" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "Connetti" #. TRANS: Tooltip for menu option "Admin" #: lib/action.php:446 -#, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Modifica la configurazione del sito" #: lib/action.php:449 -#, fuzzy msgctxt "MENU" msgid "Admin" msgstr "Amministra" #. TRANS: Tooltip for main menu option "Invite" #: lib/action.php:453 -#, fuzzy, php-format +#, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Invita amici e colleghi a seguirti su %s" #: lib/action.php:456 -#, fuzzy msgctxt "MENU" msgid "Invite" msgstr "Invita" #. TRANS: Tooltip for main menu option "Logout" #: lib/action.php:462 -#, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Termina la tua sessione sul sito" #: lib/action.php:465 -#, fuzzy msgctxt "MENU" msgid "Logout" msgstr "Esci" #. TRANS: Tooltip for main menu option "Register" #: lib/action.php:470 -#, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "Crea un account" #: lib/action.php:473 -#, fuzzy msgctxt "MENU" msgid "Register" msgstr "Registrati" #. TRANS: Tooltip for main menu option "Login" #: lib/action.php:476 -#, fuzzy msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Accedi al sito" #: lib/action.php:479 -#, fuzzy msgctxt "MENU" msgid "Login" msgstr "Accedi" #. TRANS: Tooltip for main menu option "Help" #: lib/action.php:482 -#, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "Aiutami!" #: lib/action.php:485 -#, fuzzy msgctxt "MENU" msgid "Help" msgstr "Aiuto" #. TRANS: Tooltip for main menu option "Search" #: lib/action.php:488 -#, fuzzy msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Cerca persone o del testo" #: lib/action.php:491 -#, fuzzy msgctxt "MENU" msgid "Search" msgstr "Cerca" @@ -5008,7 +4973,6 @@ msgstr "Configurazione di base" #. TRANS: Menu item for site administration #: lib/adminpanelaction.php:350 -#, fuzzy msgctxt "MENU" msgid "Site" msgstr "Sito" @@ -5020,7 +4984,6 @@ msgstr "Configurazione aspetto" #. TRANS: Menu item for site administration #: lib/adminpanelaction.php:358 -#, fuzzy msgctxt "MENU" msgid "Design" msgstr "Aspetto" @@ -5052,15 +5015,13 @@ msgstr "Configurazione sessioni" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:396 -#, fuzzy msgid "Edit site notice" -msgstr "Messaggio del sito" +msgstr "Modifica messaggio del sito" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:404 -#, fuzzy msgid "Snapshots configuration" -msgstr "Configurazione percorsi" +msgstr "Configurazione snapshot" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5598,7 +5559,7 @@ msgstr "Vai" #: lib/grantroleform.php:91 #, php-format msgid "Grant this user the \"%s\" role" -msgstr "" +msgstr "Concedi a questo utente il ruolo \"%s\"" #: lib/groupeditform.php:163 msgid "URL of the homepage or blog of the group or topic" @@ -6305,9 +6266,9 @@ msgid "Repeat this notice" msgstr "Ripeti questo messaggio" #: lib/revokeroleform.php:91 -#, fuzzy, php-format +#, php-format msgid "Revoke the \"%s\" role from this user" -msgstr "Blocca l'utente da questo gruppo" +msgstr "Revoca il ruolo \"%s\" a questo utente" #: lib/router.php:671 msgid "No single user defined for single-user mode." @@ -6464,21 +6425,18 @@ msgid "Moderate" msgstr "Modera" #: lib/userprofile.php:352 -#, fuzzy msgid "User role" -msgstr "Profilo utente" +msgstr "Ruolo dell'utente" #: lib/userprofile.php:354 -#, fuzzy msgctxt "role" msgid "Administrator" -msgstr "Amministratori" +msgstr "Amministratore" #: lib/userprofile.php:355 -#, fuzzy msgctxt "role" msgid "Moderator" -msgstr "Modera" +msgstr "Moderatore" #: lib/util.php:1015 msgid "a few seconds ago" diff --git a/locale/ja/LC_MESSAGES/statusnet.po b/locale/ja/LC_MESSAGES/statusnet.po index def172250..95695792b 100644 --- a/locale/ja/LC_MESSAGES/statusnet.po +++ b/locale/ja/LC_MESSAGES/statusnet.po @@ -12,11 +12,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:56:45+0000\n" +"PO-Revision-Date: 2010-03-05 22:35:55+0000\n" "Language-Team: Japanese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ja\n" "X-Message-Group: out-statusnet\n" @@ -4735,7 +4735,6 @@ msgid "Connect to services" msgstr "サービスへ接続" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "接続" diff --git a/locale/ko/LC_MESSAGES/statusnet.po b/locale/ko/LC_MESSAGES/statusnet.po index fa8b67239..09af2e6f0 100644 --- a/locale/ko/LC_MESSAGES/statusnet.po +++ b/locale/ko/LC_MESSAGES/statusnet.po @@ -8,11 +8,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:56:48+0000\n" +"PO-Revision-Date: 2010-03-05 22:35:58+0000\n" "Language-Team: Korean\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63299); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ko\n" "X-Message-Group: out-statusnet\n" @@ -4779,7 +4779,6 @@ msgid "Connect to services" msgstr "서버에 재접속 할 수 없습니다 : %s" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "연결" diff --git a/locale/mk/LC_MESSAGES/statusnet.po b/locale/mk/LC_MESSAGES/statusnet.po index 60e5a3c29..a5736795f 100644 --- a/locale/mk/LC_MESSAGES/statusnet.po +++ b/locale/mk/LC_MESSAGES/statusnet.po @@ -10,11 +10,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:56:50+0000\n" +"PO-Revision-Date: 2010-03-05 22:36:01+0000\n" "Language-Team: Macedonian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63299); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: out-statusnet\n" @@ -1583,23 +1583,20 @@ msgid "Cannot read file." msgstr "Податотеката не може да се прочита." #: actions/grantrole.php:62 actions/revokerole.php:62 -#, fuzzy msgid "Invalid role." -msgstr "Погрешен жетон." +msgstr "Погрешна улога." #: actions/grantrole.php:66 actions/revokerole.php:66 msgid "This role is reserved and cannot be set." -msgstr "" +msgstr "Оваа улога е резервирана и не може да се зададе." #: actions/grantrole.php:75 -#, fuzzy msgid "You cannot grant user roles on this site." -msgstr "Не можете да ставате корисници во песочен режим на оваа веб-страница." +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 @@ -3351,14 +3348,12 @@ msgid "Replies to %1$s on %2$s!" msgstr "Одговори на %1$s на %2$s!" #: 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:157 msgid "StatusNet" @@ -3763,9 +3758,8 @@ msgid "User is already silenced." msgstr "Корисникот е веќе замолчен." #: actions/siteadminpanel.php:69 -#, fuzzy msgid "Basic settings for this StatusNet site" -msgstr "Основни нагодувања за оваа StatusNet веб-страница." +msgstr "Основни поставки за оваа StatusNet веб-страница." #: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." @@ -3837,13 +3831,12 @@ msgid "Default timezone for the site; usually UTC." msgstr "Матична часовна зона за веб-страницата; обично UTC." #: actions/siteadminpanel.php:262 -#, fuzzy msgid "Default language" msgstr "Основен јазик" #: actions/siteadminpanel.php:263 msgid "Site language when autodetection from browser settings is not available" -msgstr "" +msgstr "Јазик на веб-страницата ако прелистувачот не може да го препознае сам" #: actions/siteadminpanel.php:271 msgid "Limits" @@ -3868,37 +3861,34 @@ msgstr "" "да го објават истото." #: actions/sitenoticeadminpanel.php:56 -#, fuzzy msgid "Site Notice" -msgstr "Напомена за веб-страницата" +msgstr "Објава на страница" #: actions/sitenoticeadminpanel.php:67 -#, fuzzy msgid "Edit site-wide message" -msgstr "Нова порака" +msgstr "Уреди објава за цела веб-страница" #: actions/sitenoticeadminpanel.php:103 -#, fuzzy msgid "Unable to save site notice." -msgstr "Не можам да ги зачувам Вашите нагодувања за изглед." +msgstr "Не можам да ја зачувам објавата за веб-страницата." #: actions/sitenoticeadminpanel.php:113 msgid "Max length for the site-wide notice is 255 chars" -msgstr "" +msgstr "Објавата за цела веб-страница не треба да има повеќе од 255 знаци" #: actions/sitenoticeadminpanel.php:176 -#, fuzzy msgid "Site notice text" -msgstr "Напомена за веб-страницата" +msgstr "Текст на објавата за веб-страницата" #: actions/sitenoticeadminpanel.php:178 msgid "Site-wide notice text (255 chars max; HTML okay)" msgstr "" +"Текст за главна објава по цела веб-страница (највеќе до 255 знаци; дозволено " +"и HTML)" #: actions/sitenoticeadminpanel.php:198 -#, fuzzy msgid "Save site notice" -msgstr "Напомена за веб-страницата" +msgstr "Зачувај ја објавава" #: actions/smssettings.php:58 msgid "SMS settings" @@ -4006,9 +3996,8 @@ msgid "Snapshots" msgstr "Снимки" #: actions/snapshotadminpanel.php:65 -#, fuzzy msgid "Manage snapshot configuration" -msgstr "Промена на поставките на веб-страницата" +msgstr "Раководење со поставки за снимки" #: actions/snapshotadminpanel.php:127 msgid "Invalid snapshot run value." @@ -4055,9 +4044,8 @@ msgid "Snapshots will be sent to this URL" msgstr "Снимките ќе се испраќаат на оваа URL-адреса" #: actions/snapshotadminpanel.php:248 -#, fuzzy msgid "Save snapshot settings" -msgstr "Зачувај нагодувања на веб-страницата" +msgstr "Зачувај поставки за снимки" #: actions/subedit.php:70 msgid "You are not subscribed to that profile." @@ -4670,9 +4658,8 @@ msgid "Couldn't delete self-subscription." msgstr "Не можам да ја избришам самопретплатата." #: classes/Subscription.php:190 -#, fuzzy msgid "Couldn't delete subscription OMB token." -msgstr "Претплата не може да се избрише." +msgstr "Не можете да го избришете OMB-жетонот за претплата." #: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." @@ -4764,7 +4751,6 @@ msgid "Connect to services" msgstr "Поврзи се со услуги" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "Поврзи се" @@ -5053,15 +5039,13 @@ msgstr "Конфигурација на сесиите" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:396 -#, fuzzy msgid "Edit site notice" -msgstr "Напомена за веб-страницата" +msgstr "Уреди објава за веб-страницата" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:404 -#, fuzzy msgid "Snapshots configuration" -msgstr "Конфигурација на патеки" +msgstr "Поставки за снимки" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5593,7 +5577,7 @@ msgstr "Оди" #: lib/grantroleform.php:91 #, php-format msgid "Grant this user the \"%s\" role" -msgstr "" +msgstr "Додели улога „%s“ на корисников" #: lib/groupeditform.php:163 msgid "URL of the homepage or blog of the group or topic" @@ -6306,9 +6290,9 @@ msgid "Repeat this notice" msgstr "Повтори ја забелешкава" #: lib/revokeroleform.php:91 -#, fuzzy, php-format +#, php-format msgid "Revoke the \"%s\" role from this user" -msgstr "Блокирај го овој корисник од оваа група" +msgstr "Одземи му ја улогата „%s“ на корисников" #: lib/router.php:671 msgid "No single user defined for single-user mode." @@ -6465,21 +6449,18 @@ msgid "Moderate" msgstr "Модерирај" #: lib/userprofile.php:352 -#, fuzzy msgid "User role" -msgstr "Кориснички профил" +msgstr "Корисничка улога" #: lib/userprofile.php:354 -#, fuzzy msgctxt "role" msgid "Administrator" -msgstr "Администратори" +msgstr "Администратор" #: lib/userprofile.php:355 -#, fuzzy msgctxt "role" msgid "Moderator" -msgstr "Модерирај" +msgstr "Модератор" #: lib/util.php:1015 msgid "a few seconds ago" diff --git a/locale/nb/LC_MESSAGES/statusnet.po b/locale/nb/LC_MESSAGES/statusnet.po index 305303dea..61e5cfdcd 100644 --- a/locale/nb/LC_MESSAGES/statusnet.po +++ b/locale/nb/LC_MESSAGES/statusnet.po @@ -10,11 +10,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:56:53+0000\n" +"PO-Revision-Date: 2010-03-05 22:36:06+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 (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63299); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: out-statusnet\n" @@ -4621,7 +4621,6 @@ msgid "Connect to services" msgstr "Koble til" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "Koble til" diff --git a/locale/nl/LC_MESSAGES/statusnet.po b/locale/nl/LC_MESSAGES/statusnet.po index 1f2a54970..2b1b48ade 100644 --- a/locale/nl/LC_MESSAGES/statusnet.po +++ b/locale/nl/LC_MESSAGES/statusnet.po @@ -11,11 +11,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:56:59+0000\n" +"PO-Revision-Date: 2010-03-05 22:36:21+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63299); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: out-statusnet\n" @@ -1597,23 +1597,20 @@ msgid "Cannot read file." msgstr "Het bestand kon niet gelezen worden." #: actions/grantrole.php:62 actions/revokerole.php:62 -#, fuzzy msgid "Invalid role." -msgstr "Ongeldig token." +msgstr "Ongeldige rol." #: actions/grantrole.php:66 actions/revokerole.php:66 msgid "This role is reserved and cannot be set." -msgstr "" +msgstr "Deze rol is gereserveerd en kan niet ingesteld worden." #: actions/grantrole.php:75 -#, fuzzy msgid "You cannot grant user roles on this site." -msgstr "Op deze website kunt u gebruikers niet in de zandbak plaatsen." +msgstr "Op deze website kunt u geen gebruikersrollen toekennen." #: actions/grantrole.php:82 -#, fuzzy msgid "User already has this role." -msgstr "Deze gebruiker is al gemuilkorfd." +msgstr "Deze gebruiker heeft deze rol al." #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 @@ -3372,14 +3369,12 @@ msgid "Replies to %1$s on %2$s!" msgstr "Antwoorden aan %1$s op %2$s." #: actions/revokerole.php:75 -#, fuzzy msgid "You cannot revoke user roles on this site." -msgstr "U kunt gebruikers op deze website niet muilkorven." +msgstr "U kunt geen gebruikersrollen intrekken op deze website." #: actions/revokerole.php:82 -#, fuzzy msgid "User doesn't have this role." -msgstr "Gebruiker zonder bijbehorend profiel." +msgstr "Deze gebruiker heeft deze rol niet." #: actions/rsd.php:146 actions/version.php:157 msgid "StatusNet" @@ -3785,9 +3780,8 @@ msgid "User is already silenced." msgstr "Deze gebruiker is al gemuilkorfd." #: actions/siteadminpanel.php:69 -#, fuzzy msgid "Basic settings for this StatusNet site" -msgstr "Basisinstellingen voor deze StatusNet-website." +msgstr "Basisinstellingen voor deze StatusNet-website" #: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." @@ -3860,13 +3854,14 @@ msgid "Default timezone for the site; usually UTC." msgstr "Standaardtijdzone voor de website. Meestal UTC." #: actions/siteadminpanel.php:262 -#, fuzzy msgid "Default language" msgstr "Standaardtaal" #: actions/siteadminpanel.php:263 msgid "Site language when autodetection from browser settings is not available" msgstr "" +"De taal voor de website als deze niet uit de browserinstellingen opgemaakt " +"kan worden" #: actions/siteadminpanel.php:271 msgid "Limits" @@ -3891,37 +3886,34 @@ msgstr "" "zenden." #: actions/sitenoticeadminpanel.php:56 -#, fuzzy msgid "Site Notice" -msgstr "Mededeling van de website" +msgstr "Websitebrede mededeling" #: actions/sitenoticeadminpanel.php:67 -#, fuzzy msgid "Edit site-wide message" -msgstr "Nieuw bericht" +msgstr "Websitebrede mededeling bewerken" #: actions/sitenoticeadminpanel.php:103 -#, fuzzy msgid "Unable to save site notice." -msgstr "Het was niet mogelijk om uw ontwerpinstellingen op te slaan." +msgstr "Het was niet mogelijk om de websitebrede mededeling op te slaan." #: actions/sitenoticeadminpanel.php:113 msgid "Max length for the site-wide notice is 255 chars" -msgstr "" +msgstr "De maximale lengte voor de websitebrede aankondiging is 255 tekens" #: actions/sitenoticeadminpanel.php:176 -#, fuzzy msgid "Site notice text" -msgstr "Mededeling van de website" +msgstr "Tekst voor websitebrede mededeling" #: actions/sitenoticeadminpanel.php:178 msgid "Site-wide notice text (255 chars max; HTML okay)" msgstr "" +"Tekst voor websitebrede aankondiging (maximaal 255 tekens - HTML is " +"toegestaan)" #: actions/sitenoticeadminpanel.php:198 -#, fuzzy msgid "Save site notice" -msgstr "Mededeling van de website" +msgstr "Websitebrede mededeling opslaan" #: actions/smssettings.php:58 msgid "SMS settings" @@ -4029,9 +4021,8 @@ msgid "Snapshots" msgstr "Snapshots" #: actions/snapshotadminpanel.php:65 -#, fuzzy msgid "Manage snapshot configuration" -msgstr "Websiteinstellingen wijzigen" +msgstr "Snapshotinstellingen beheren" #: actions/snapshotadminpanel.php:127 msgid "Invalid snapshot run value." @@ -4079,9 +4070,8 @@ msgid "Snapshots will be sent to this URL" msgstr "Snapshots worden naar deze URL verzonden" #: actions/snapshotadminpanel.php:248 -#, fuzzy msgid "Save snapshot settings" -msgstr "Websiteinstellingen opslaan" +msgstr "Snapshotinstellingen opslaan" #: actions/subedit.php:70 msgid "You are not subscribed to that profile." @@ -4705,9 +4695,9 @@ msgid "Couldn't delete self-subscription." msgstr "Het was niet mogelijk het abonnement op uzelf te verwijderen." #: classes/Subscription.php:190 -#, fuzzy msgid "Couldn't delete subscription OMB token." -msgstr "Kon abonnement niet verwijderen." +msgstr "" +"Het was niet mogelijk om het OMB-token voor het abonnement te verwijderen." #: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." @@ -4799,9 +4789,8 @@ msgid "Connect to services" msgstr "Met andere diensten koppelen" #: lib/action.php:443 -#, fuzzy msgid "Connect" -msgstr "Koppelingen" +msgstr "Koppelen" #. TRANS: Tooltip for menu option "Admin" #: lib/action.php:446 @@ -5088,15 +5077,13 @@ msgstr "Sessieinstellingen" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:396 -#, fuzzy msgid "Edit site notice" -msgstr "Mededeling van de website" +msgstr "Websitebrede mededeling opslaan" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:404 -#, fuzzy msgid "Snapshots configuration" -msgstr "Padinstellingen" +msgstr "Snapshotinstellingen" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5637,7 +5624,7 @@ msgstr "OK" #: lib/grantroleform.php:91 #, php-format msgid "Grant this user the \"%s\" role" -msgstr "" +msgstr "Deze gebruiker de rol \"%s\" geven" #: lib/groupeditform.php:163 msgid "URL of the homepage or blog of the group or topic" @@ -6350,9 +6337,9 @@ msgid "Repeat this notice" msgstr "Deze mededeling herhalen" #: lib/revokeroleform.php:91 -#, fuzzy, php-format +#, php-format msgid "Revoke the \"%s\" role from this user" -msgstr "Deze gebruiker de toegang tot deze groep ontzeggen" +msgstr "De gebruikersrol \"%s\" voor deze gebruiker intrekken" #: lib/router.php:671 msgid "No single user defined for single-user mode." @@ -6509,21 +6496,18 @@ msgid "Moderate" msgstr "Modereren" #: lib/userprofile.php:352 -#, fuzzy msgid "User role" -msgstr "Gebruikersprofiel" +msgstr "Gebruikersrol" #: lib/userprofile.php:354 -#, fuzzy msgctxt "role" msgid "Administrator" -msgstr "Beheerders" +msgstr "Beheerder" #: lib/userprofile.php:355 -#, fuzzy msgctxt "role" msgid "Moderator" -msgstr "Modereren" +msgstr "Moderator" #: lib/util.php:1015 msgid "a few seconds ago" diff --git a/locale/nn/LC_MESSAGES/statusnet.po b/locale/nn/LC_MESSAGES/statusnet.po index c6576fbcf..72fe47924 100644 --- a/locale/nn/LC_MESSAGES/statusnet.po +++ b/locale/nn/LC_MESSAGES/statusnet.po @@ -8,11 +8,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:56:56+0000\n" +"PO-Revision-Date: 2010-03-05 22:36:11+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 (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63299); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nn\n" "X-Message-Group: out-statusnet\n" @@ -4796,7 +4796,6 @@ msgid "Connect to services" msgstr "Klarte ikkje å omdirigera til tenaren: %s" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "Kopla til" diff --git a/locale/pl/LC_MESSAGES/statusnet.po b/locale/pl/LC_MESSAGES/statusnet.po index 402bd78af..e592ff747 100644 --- a/locale/pl/LC_MESSAGES/statusnet.po +++ b/locale/pl/LC_MESSAGES/statusnet.po @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:57:02+0000\n" +"PO-Revision-Date: 2010-03-05 22:36:24+0000\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" @@ -19,7 +19,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63299); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pl\n" "X-Message-Group: out-statusnet\n" @@ -4741,7 +4741,6 @@ msgid "Connect to services" msgstr "Połącz z serwisami" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "Połącz" diff --git a/locale/pt/LC_MESSAGES/statusnet.po b/locale/pt/LC_MESSAGES/statusnet.po index 8dd23b162..27e75fe97 100644 --- a/locale/pt/LC_MESSAGES/statusnet.po +++ b/locale/pt/LC_MESSAGES/statusnet.po @@ -10,11 +10,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:57:05+0000\n" +"PO-Revision-Date: 2010-03-05 22:36:27+0000\n" "Language-Team: Portuguese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63299); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: out-statusnet\n" @@ -4791,7 +4791,6 @@ msgid "Connect to services" msgstr "Ligar aos serviços" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "Ligar" diff --git a/locale/pt_BR/LC_MESSAGES/statusnet.po b/locale/pt_BR/LC_MESSAGES/statusnet.po index 7ba00b717..65061f02d 100644 --- a/locale/pt_BR/LC_MESSAGES/statusnet.po +++ b/locale/pt_BR/LC_MESSAGES/statusnet.po @@ -12,11 +12,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:57:07+0000\n" +"PO-Revision-Date: 2010-03-05 22:36:30+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 (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63299); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt-br\n" "X-Message-Group: out-statusnet\n" @@ -4778,7 +4778,6 @@ msgid "Connect to services" msgstr "Conecte-se a outros serviços" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "Conectar" diff --git a/locale/ru/LC_MESSAGES/statusnet.po b/locale/ru/LC_MESSAGES/statusnet.po index c97bb5461..94e9a7902 100644 --- a/locale/ru/LC_MESSAGES/statusnet.po +++ b/locale/ru/LC_MESSAGES/statusnet.po @@ -13,11 +13,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:57:17+0000\n" +"PO-Revision-Date: 2010-03-05 22:36:33+0000\n" "Language-Team: Russian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63299); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: out-statusnet\n" @@ -1589,24 +1589,20 @@ msgid "Cannot read file." msgstr "Не удалось прочесть файл." #: actions/grantrole.php:62 actions/revokerole.php:62 -#, fuzzy msgid "Invalid role." -msgstr "Неправильный токен" +msgstr "Неверная роль." #: actions/grantrole.php:66 actions/revokerole.php:66 msgid "This role is reserved and cannot be set." -msgstr "" +msgstr "Эта роль зарезервирована и не может быть установлена." #: actions/grantrole.php:75 -#, fuzzy msgid "You cannot grant user roles on this site." -msgstr "" -"Вы не можете устанавливать режим песочницы для пользователей этого сайта." +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 @@ -3342,14 +3338,12 @@ msgid "Replies to %1$s on %2$s!" msgstr "Ответы на записи %1$s на %2$s!" #: 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:157 msgid "StatusNet" @@ -3756,9 +3750,8 @@ msgid "User is already silenced." msgstr "Пользователь уже заглушён." #: actions/siteadminpanel.php:69 -#, fuzzy msgid "Basic settings for this StatusNet site" -msgstr "Основные настройки для этого сайта StatusNet." +msgstr "Основные настройки для этого сайта StatusNet" #: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." @@ -3828,13 +3821,13 @@ msgid "Default timezone for the site; usually UTC." msgstr "Часовой пояс по умолчанию для сайта; обычно UTC." #: actions/siteadminpanel.php:262 -#, fuzzy msgid "Default language" -msgstr "Язык сайта по умолчанию" +msgstr "Язык по умолчанию" #: actions/siteadminpanel.php:263 msgid "Site language when autodetection from browser settings is not available" msgstr "" +"Язык сайта в случае, если автоопределение из настроек браузера не сработало" #: actions/siteadminpanel.php:271 msgid "Limits" @@ -3858,37 +3851,32 @@ msgstr "" "Сколько нужно ждать пользователям (в секундах) для отправки того же ещё раз." #: actions/sitenoticeadminpanel.php:56 -#, fuzzy msgid "Site Notice" -msgstr "Новая запись" +msgstr "Уведомление сайта" #: actions/sitenoticeadminpanel.php:67 -#, fuzzy msgid "Edit site-wide message" -msgstr "Новое сообщение" +msgstr "Изменить уведомление для всего сайта" #: actions/sitenoticeadminpanel.php:103 -#, fuzzy msgid "Unable to save site notice." -msgstr "Не удаётся сохранить ваши настройки оформления!" +msgstr "Не удаётся сохранить уведомление сайта." #: actions/sitenoticeadminpanel.php:113 msgid "Max length for the site-wide notice is 255 chars" -msgstr "" +msgstr "Максимальная длина уведомления сайта составляет 255 символов" #: actions/sitenoticeadminpanel.php:176 -#, fuzzy msgid "Site notice text" -msgstr "Новая запись" +msgstr "Текст уведомления сайта" #: actions/sitenoticeadminpanel.php:178 msgid "Site-wide notice text (255 chars max; HTML okay)" -msgstr "" +msgstr "Текст уведомления сайта (максимум 255 символов; допустим HTML)" #: actions/sitenoticeadminpanel.php:198 -#, fuzzy msgid "Save site notice" -msgstr "Новая запись" +msgstr "Сохранить уведомление сайта" #: actions/smssettings.php:58 msgid "SMS settings" @@ -3998,9 +3986,8 @@ msgid "Snapshots" msgstr "Снимки" #: actions/snapshotadminpanel.php:65 -#, fuzzy msgid "Manage snapshot configuration" -msgstr "Изменить конфигурацию сайта" +msgstr "Управление снимками конфигурации" #: actions/snapshotadminpanel.php:127 msgid "Invalid snapshot run value." @@ -4047,9 +4034,8 @@ msgid "Snapshots will be sent to this URL" msgstr "Снимки будут отправляться по этому URL-адресу" #: actions/snapshotadminpanel.php:248 -#, fuzzy msgid "Save snapshot settings" -msgstr "Сохранить настройки сайта" +msgstr "Сохранить настройки снимка" #: actions/subedit.php:70 msgid "You are not subscribed to that profile." @@ -4660,9 +4646,8 @@ msgid "Couldn't delete self-subscription." msgstr "Невозможно удалить самоподписку." #: classes/Subscription.php:190 -#, fuzzy msgid "Couldn't delete subscription OMB token." -msgstr "Не удаётся удалить подписку." +msgstr "Не удаётся удалить подписочный жетон OMB." #: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." @@ -4754,7 +4739,6 @@ msgid "Connect to services" msgstr "Соединить с сервисами" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "Соединить" @@ -5043,15 +5027,13 @@ msgstr "Конфигурация сессий" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:396 -#, fuzzy msgid "Edit site notice" -msgstr "Новая запись" +msgstr "Изменить уведомление сайта" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:404 -#, fuzzy msgid "Snapshots configuration" -msgstr "Конфигурация путей" +msgstr "Конфигурация снимков" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5586,7 +5568,7 @@ msgstr "Перейти" #: lib/grantroleform.php:91 #, php-format msgid "Grant this user the \"%s\" role" -msgstr "" +msgstr "Назначить этому пользователю роль «%s»" #: lib/groupeditform.php:163 msgid "URL of the homepage or blog of the group or topic" @@ -6294,9 +6276,9 @@ msgid "Repeat this notice" msgstr "Повторить эту запись" #: lib/revokeroleform.php:91 -#, fuzzy, php-format +#, php-format msgid "Revoke the \"%s\" role from this user" -msgstr "Заблокировать этого пользователя из этой группы" +msgstr "Отозвать у этого пользователя роль «%s»" #: lib/router.php:671 msgid "No single user defined for single-user mode." @@ -6453,21 +6435,18 @@ msgid "Moderate" msgstr "Модерировать" #: lib/userprofile.php:352 -#, fuzzy msgid "User role" -msgstr "Профиль пользователя" +msgstr "Роль пользователя" #: lib/userprofile.php:354 -#, fuzzy msgctxt "role" msgid "Administrator" -msgstr "Администраторы" +msgstr "Администратор" #: lib/userprofile.php:355 -#, fuzzy msgctxt "role" msgid "Moderator" -msgstr "Модерировать" +msgstr "Модератор" #: lib/util.php:1015 msgid "a few seconds ago" diff --git a/locale/statusnet.po b/locale/statusnet.po index b4b22d311..0f6185ffc 100644 --- a/locale/statusnet.po +++ b/locale/statusnet.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-04 19:12+0000\n" +"POT-Creation-Date: 2010-03-05 22:34+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/locale/sv/LC_MESSAGES/statusnet.po b/locale/sv/LC_MESSAGES/statusnet.po index b9f921c7f..ffafd9f93 100644 --- a/locale/sv/LC_MESSAGES/statusnet.po +++ b/locale/sv/LC_MESSAGES/statusnet.po @@ -10,11 +10,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:57:20+0000\n" +"PO-Revision-Date: 2010-03-05 22:36:36+0000\n" "Language-Team: Swedish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63299); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: sv\n" "X-Message-Group: out-statusnet\n" @@ -1569,23 +1569,20 @@ msgid "Cannot read file." msgstr "Kan inte läsa fil." #: actions/grantrole.php:62 actions/revokerole.php:62 -#, fuzzy msgid "Invalid role." -msgstr "Ogiltig token." +msgstr "Ogiltig roll." #: actions/grantrole.php:66 actions/revokerole.php:66 msgid "This role is reserved and cannot be set." -msgstr "" +msgstr "Denna roll är reserverad och kan inte ställas in" #: actions/grantrole.php:75 -#, fuzzy msgid "You cannot grant user roles on this site." -msgstr "Du kan inte flytta användare till sandlådan på denna webbplats." +msgstr "Du kan inte bevilja användare roller på denna webbplats." #: actions/grantrole.php:82 -#, fuzzy msgid "User already has this role." -msgstr "Användaren är redan nedtystad." +msgstr "Användaren har redan denna roll." #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 @@ -3326,9 +3323,8 @@ msgid "Replies to %1$s on %2$s!" msgstr "Svar till %1$s på %2$s" #: actions/revokerole.php:75 -#, fuzzy msgid "You cannot revoke user roles on this site." -msgstr "Du kan inte tysta ned användare på denna webbplats." +msgstr "Du kan inte återkalla användarroller på denna webbplats." #: actions/revokerole.php:82 #, fuzzy @@ -4730,7 +4726,6 @@ msgid "Connect to services" msgstr "Anslut till tjänster" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "Anslut" diff --git a/locale/te/LC_MESSAGES/statusnet.po b/locale/te/LC_MESSAGES/statusnet.po index f2e49f934..f32e1499e 100644 --- a/locale/te/LC_MESSAGES/statusnet.po +++ b/locale/te/LC_MESSAGES/statusnet.po @@ -10,11 +10,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:57:23+0000\n" +"PO-Revision-Date: 2010-03-05 22:36:39+0000\n" "Language-Team: Telugu\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63299); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: te\n" "X-Message-Group: out-statusnet\n" @@ -4592,7 +4592,6 @@ msgid "Connect to services" msgstr "అనుసంధానాలు" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "అనుసంధానించు" diff --git a/locale/tr/LC_MESSAGES/statusnet.po b/locale/tr/LC_MESSAGES/statusnet.po index 8051f448b..80dba9abf 100644 --- a/locale/tr/LC_MESSAGES/statusnet.po +++ b/locale/tr/LC_MESSAGES/statusnet.po @@ -10,11 +10,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:57:26+0000\n" +"PO-Revision-Date: 2010-03-05 22:36:42+0000\n" "Language-Team: Turkish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63299); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tr\n" "X-Message-Group: out-statusnet\n" @@ -4713,7 +4713,6 @@ msgid "Connect to services" msgstr "Sunucuya yönlendirme yapılamadı: %s" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "Bağlan" diff --git a/locale/uk/LC_MESSAGES/statusnet.po b/locale/uk/LC_MESSAGES/statusnet.po index 08f93f255..145eb3854 100644 --- a/locale/uk/LC_MESSAGES/statusnet.po +++ b/locale/uk/LC_MESSAGES/statusnet.po @@ -11,11 +11,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:57:28+0000\n" +"PO-Revision-Date: 2010-03-05 22:36:45+0000\n" "Language-Team: Ukrainian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63299); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: out-statusnet\n" @@ -622,11 +622,11 @@ msgstr "Такого допису немає." #: actions/apistatusesretweet.php:83 msgid "Cannot repeat your own notice." -msgstr "Не можу вторувати Вашому власному допису." +msgstr "Не можу повторити Ваш власний допис." #: actions/apistatusesretweet.php:91 msgid "Already repeated that notice." -msgstr "Цьому допису вже вторували." +msgstr "Цей допис вже повторено." #: actions/apistatusesshow.php:138 msgid "Status deleted." @@ -690,12 +690,12 @@ msgstr "%s оновлення від усіх!" #: actions/apitimelineretweetedtome.php:111 #, php-format msgid "Repeated to %s" -msgstr "Вторування за %s" +msgstr "Повторено для %s" #: actions/apitimelineretweetsofme.php:114 #, php-format msgid "Repeats of %s" -msgstr "Вторування %s" +msgstr "Повторення %s" #: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format @@ -1573,23 +1573,20 @@ msgid "Cannot read file." msgstr "Не можу прочитати файл." #: actions/grantrole.php:62 actions/revokerole.php:62 -#, fuzzy msgid "Invalid role." -msgstr "Невірний токен." +msgstr "Невірна роль." #: actions/grantrole.php:66 actions/revokerole.php:66 msgid "This role is reserved and cannot be set." -msgstr "" +msgstr "Цю роль вже зарезервовано і не може бути встановлено." #: actions/grantrole.php:75 -#, fuzzy msgid "You cannot grant user roles on this site." -msgstr "Ви не можете нікого ізолювати на цьому сайті." +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 @@ -3252,7 +3249,7 @@ msgstr "Не вдалося отримати токен запиту." #: actions/repeat.php:57 msgid "Only logged-in users can repeat notices." -msgstr "Лише користувачі, що знаходяться у системі, можуть вторувати дописам." +msgstr "Лише користувачі, що знаходяться у системі, можуть повторювати дописи." #: actions/repeat.php:64 actions/repeat.php:71 msgid "No notice specified." @@ -3260,19 +3257,19 @@ msgstr "Зазначеного допису немає." #: actions/repeat.php:76 msgid "You can't repeat your own notice." -msgstr "Ви не можете вторувати своїм власним дописам." +msgstr "Ви не можете повторювати свої власні дописи." #: actions/repeat.php:90 msgid "You already repeated that notice." -msgstr "Ви вже вторували цьому допису." +msgstr "Ви вже повторили цей допис." #: actions/repeat.php:114 lib/noticelist.php:674 msgid "Repeated" -msgstr "Вторування" +msgstr "Повторено" #: actions/repeat.php:119 msgid "Repeated!" -msgstr "Вторувати!" +msgstr "Повторено!" #: actions/replies.php:126 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 @@ -3333,14 +3330,12 @@ msgid "Replies to %1$s on %2$s!" msgstr "Відповіді до %1$s на %2$s!" #: 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:157 msgid "StatusNet" @@ -3731,7 +3726,7 @@ msgstr "" #: actions/showstream.php:305 #, php-format msgid "Repeat of %s" -msgstr "Вторування %s" +msgstr "Повторення за %s" #: actions/silence.php:65 actions/unsilence.php:65 msgid "You cannot silence users on this site." @@ -3742,9 +3737,8 @@ msgid "User is already silenced." msgstr "Користувачу наразі заклеїли рота скотчем." #: actions/siteadminpanel.php:69 -#, fuzzy msgid "Basic settings for this StatusNet site" -msgstr "Загальні налаштування цього сайту StatusNet." +msgstr "Основні налаштування цього сайту StatusNet" #: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." @@ -3814,13 +3808,14 @@ msgid "Default timezone for the site; usually UTC." msgstr "Часовий пояс за замовчуванням для сайту; зазвичай UTC." #: actions/siteadminpanel.php:262 -#, fuzzy msgid "Default language" -msgstr "Мова сайту за замовчуванням" +msgstr "Мова за замовчуванням" #: actions/siteadminpanel.php:263 msgid "Site language when autodetection from browser settings is not available" msgstr "" +"Мова сайту на випадок, коли автовизначення мови за настройками браузера не " +"доступно" #: actions/siteadminpanel.php:271 msgid "Limits" @@ -3845,37 +3840,32 @@ msgstr "" "допис ще раз." #: actions/sitenoticeadminpanel.php:56 -#, fuzzy msgid "Site Notice" -msgstr "Зауваження сайту" +msgstr "Повідомлення сайту" #: actions/sitenoticeadminpanel.php:67 -#, fuzzy msgid "Edit site-wide message" -msgstr "Нове повідомлення" +msgstr "Змінити повідомлення сайту" #: actions/sitenoticeadminpanel.php:103 -#, fuzzy msgid "Unable to save site notice." -msgstr "Не маю можливості зберегти налаштування дизайну." +msgstr "Не вдається зберегти повідомлення сайту." #: actions/sitenoticeadminpanel.php:113 msgid "Max length for the site-wide notice is 255 chars" -msgstr "" +msgstr "Максимальна довжина повідомлення сайту становить 255 символів" #: actions/sitenoticeadminpanel.php:176 -#, fuzzy msgid "Site notice text" -msgstr "Зауваження сайту" +msgstr "Текст повідомлення сайту" #: actions/sitenoticeadminpanel.php:178 msgid "Site-wide notice text (255 chars max; HTML okay)" -msgstr "" +msgstr "Текст повідомлення сайту (255 символів максимум; HTML дозволено)" #: actions/sitenoticeadminpanel.php:198 -#, fuzzy msgid "Save site notice" -msgstr "Зауваження сайту" +msgstr "Зберегти повідомлення сайту" #: actions/smssettings.php:58 msgid "SMS settings" @@ -3983,9 +3973,8 @@ msgid "Snapshots" msgstr "Снепшоти" #: actions/snapshotadminpanel.php:65 -#, fuzzy msgid "Manage snapshot configuration" -msgstr "Змінити конфігурацію сайту" +msgstr "Керування конфігурацією знімку" #: actions/snapshotadminpanel.php:127 msgid "Invalid snapshot run value." @@ -4032,9 +4021,8 @@ msgid "Snapshots will be sent to this URL" msgstr "Снепшоти надсилатимуться на цю URL-адресу" #: actions/snapshotadminpanel.php:248 -#, fuzzy msgid "Save snapshot settings" -msgstr "Зберегти налаштування сайту" +msgstr "Зберегти налаштування знімку" #: actions/subedit.php:70 msgid "You are not subscribed to that profile." @@ -4643,9 +4631,8 @@ msgid "Couldn't delete self-subscription." msgstr "Не можу видалити самопідписку." #: classes/Subscription.php:190 -#, fuzzy msgid "Couldn't delete subscription OMB token." -msgstr "Не вдалося видалити підписку." +msgstr "Не вдається видалити токен підписки OMB." #: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." @@ -4737,7 +4724,6 @@ msgid "Connect to services" msgstr "З’єднання з сервісами" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "З’єднання" @@ -5023,15 +5009,13 @@ msgstr "Конфігурація сесій" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:396 -#, fuzzy msgid "Edit site notice" -msgstr "Зауваження сайту" +msgstr "Редагувати повідомлення сайту" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:404 -#, fuzzy msgid "Snapshots configuration" -msgstr "Конфігурація шляху" +msgstr "Конфігурація знімків" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5253,20 +5237,20 @@ msgstr "Помилка при відправці прямого повідомл #: lib/command.php:413 msgid "Cannot repeat your own notice" -msgstr "Не можу вторувати Вашому власному допису" +msgstr "Не можу повторити Ваш власний допис" #: lib/command.php:418 msgid "Already repeated that notice" -msgstr "Цьому допису вже вторували" +msgstr "Цей допис вже повторили" #: lib/command.php:426 #, php-format msgid "Notice from %s repeated" -msgstr "Допису від %s вторували" +msgstr "Допис %s повторили" #: lib/command.php:428 msgid "Error repeating notice." -msgstr "Помилка із вторуванням допису." +msgstr "Помилка при повторенні допису." #: lib/command.php:482 #, php-format @@ -5563,7 +5547,7 @@ msgstr "Вперед" #: lib/grantroleform.php:91 #, php-format msgid "Grant this user the \"%s\" role" -msgstr "" +msgstr "Надати цьому користувачеві роль \"%s\"" #: lib/groupeditform.php:163 msgid "URL of the homepage or blog of the group or topic" @@ -6122,7 +6106,7 @@ msgstr "в контексті" #: lib/noticelist.php:601 msgid "Repeated by" -msgstr "Вторуванні" +msgstr "Повторено" #: lib/noticelist.php:628 msgid "Reply to this notice" @@ -6134,7 +6118,7 @@ msgstr "Відповісти" #: lib/noticelist.php:673 msgid "Notice repeated" -msgstr "Допис вторували" +msgstr "Допис повторили" #: lib/nudgeform.php:116 msgid "Nudge this user" @@ -6267,12 +6251,12 @@ msgstr "Повторити цей допис?" #: lib/repeatform.php:132 msgid "Repeat this notice" -msgstr "Вторувати цьому допису" +msgstr "Повторити цей допис" #: lib/revokeroleform.php:91 -#, fuzzy, php-format +#, php-format msgid "Revoke the \"%s\" role from this user" -msgstr "Блокувати користувача цієї групи" +msgstr "Відкликати роль \"%s\" для цього користувача" #: lib/router.php:671 msgid "No single user defined for single-user mode." @@ -6429,21 +6413,18 @@ msgid "Moderate" msgstr "Модерувати" #: lib/userprofile.php:352 -#, fuzzy msgid "User role" -msgstr "Профіль користувача." +msgstr "Роль користувача" #: lib/userprofile.php:354 -#, fuzzy msgctxt "role" msgid "Administrator" -msgstr "Адміни" +msgstr "Адміністратор" #: lib/userprofile.php:355 -#, fuzzy msgctxt "role" msgid "Moderator" -msgstr "Модерувати" +msgstr "Модератор" #: lib/util.php:1015 msgid "a few seconds ago" diff --git a/locale/vi/LC_MESSAGES/statusnet.po b/locale/vi/LC_MESSAGES/statusnet.po index 2a3c0ceeb..dec9eeeba 100644 --- a/locale/vi/LC_MESSAGES/statusnet.po +++ b/locale/vi/LC_MESSAGES/statusnet.po @@ -8,11 +8,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:57:31+0000\n" +"PO-Revision-Date: 2010-03-05 22:36:48+0000\n" "Language-Team: Vietnamese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63299); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: vi\n" "X-Message-Group: out-statusnet\n" @@ -4867,7 +4867,6 @@ msgid "Connect to services" msgstr "Không thể chuyển đến máy chủ: %s" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "Kết nối" diff --git a/locale/zh_CN/LC_MESSAGES/statusnet.po b/locale/zh_CN/LC_MESSAGES/statusnet.po index 5b2dae110..36e3a7946 100644 --- a/locale/zh_CN/LC_MESSAGES/statusnet.po +++ b/locale/zh_CN/LC_MESSAGES/statusnet.po @@ -11,11 +11,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:57:34+0000\n" +"PO-Revision-Date: 2010-03-05 22:37:13+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 (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63299); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hans\n" "X-Message-Group: out-statusnet\n" @@ -4793,7 +4793,6 @@ msgid "Connect to services" msgstr "无法重定向到服务器:%s" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "连接" diff --git a/locale/zh_TW/LC_MESSAGES/statusnet.po b/locale/zh_TW/LC_MESSAGES/statusnet.po index e7314d5e6..2829f707e 100644 --- a/locale/zh_TW/LC_MESSAGES/statusnet.po +++ b/locale/zh_TW/LC_MESSAGES/statusnet.po @@ -8,11 +8,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-04 18:57:37+0000\n" +"PO-Revision-Date: 2010-03-05 22:37:16+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 (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63299); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hant\n" "X-Message-Group: out-statusnet\n" @@ -4629,7 +4629,6 @@ msgid "Connect to services" msgstr "無法連結到伺服器:%s" #: lib/action.php:443 -#, fuzzy msgid "Connect" msgstr "連結" -- cgit v1.2.3-54-g00ecf From 5355c3b7b579f803bb18913db3b4d9cf380f17ac Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Fri, 5 Mar 2010 15:00:27 -0800 Subject: OpenID fix: - avoid notice on insert (missing sequenceKeys()) - avoid cache corruption on delete (user_id was missing from keys list, cache not cleared for user_id lookups) --- plugins/OpenID/User_openid.php | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/plugins/OpenID/User_openid.php b/plugins/OpenID/User_openid.php index 801b49ecc..5ef05b4c7 100644 --- a/plugins/OpenID/User_openid.php +++ b/plugins/OpenID/User_openid.php @@ -39,9 +39,21 @@ class User_openid extends Memcached_DataObject ); } + /** + * List primary and unique keys in this table. + * Unique keys used for lookup *MUST* be listed to ensure proper caching. + */ function keys() { - return array('canonical' => 'K', 'display' => 'U'); + return array('canonical' => 'K', 'display' => 'U', 'user_id' => 'U'); + } + + /** + * No sequence keys in this table. + */ + function sequenceKey() + { + return array(false, false, false); } Static function hasOpenID($user_id) -- cgit v1.2.3-54-g00ecf From f39d3e34bb5298f13824699c7090e05b75d7549b Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Fri, 5 Mar 2010 16:20:33 -0800 Subject: Fix for blank RSS1 tag feeds --- actions/tagrss.php | 1 + 1 file changed, 1 insertion(+) diff --git a/actions/tagrss.php b/actions/tagrss.php index 75cbfa274..467a64abe 100644 --- a/actions/tagrss.php +++ b/actions/tagrss.php @@ -35,6 +35,7 @@ class TagrssAction extends Rss10Action $this->clientError(_('No such tag.')); return false; } else { + $this->notices = $this->getNotices($this->limit); return true; } } -- cgit v1.2.3-54-g00ecf From ab8aa670087580f164f96af6727eef5d2cf0a6e1 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Fri, 5 Mar 2010 16:20:33 -0800 Subject: Fix for blank RSS1 tag feeds --- actions/tagrss.php | 1 + 1 file changed, 1 insertion(+) diff --git a/actions/tagrss.php b/actions/tagrss.php index 75cbfa274..467a64abe 100644 --- a/actions/tagrss.php +++ b/actions/tagrss.php @@ -35,6 +35,7 @@ class TagrssAction extends Rss10Action $this->clientError(_('No such tag.')); return false; } else { + $this->notices = $this->getNotices($this->limit); return true; } } -- cgit v1.2.3-54-g00ecf From 43cc24a0ccd89081effa26361e861ba26a9cd842 Mon Sep 17 00:00:00 2001 From: Christopher Vollick Date: Thu, 11 Feb 2010 11:19:50 -0500 Subject: UserRSS Didn't Use the Tag Propery. This meant that server.com/user/tag/TAG/rss just returned all user data. That was incorrect. --- actions/userrss.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/actions/userrss.php b/actions/userrss.php index 19e610551..6029f4431 100644 --- a/actions/userrss.php +++ b/actions/userrss.php @@ -38,7 +38,11 @@ class UserrssAction extends Rss10Action $this->clientError(_('No such user.')); return false; } else { - $this->notices = $this->getNotices($this->limit); + if ($this->tag) { + $this->notices = $this->getTaggedNotices($tag, $this->limit); + } else { + $this->notices = $this->getNotices($this->limit); + } return true; } } -- cgit v1.2.3-54-g00ecf From 8029faadaecaa2b3b253fa7086be0a25bece0ce5 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Sat, 6 Mar 2010 00:30:15 +0000 Subject: Fixed problem causing 500 error on notices containing a non-existent group --- classes/Group_alias.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/Group_alias.php b/classes/Group_alias.php index be3d0a6c6..c5a1895a1 100644 --- a/classes/Group_alias.php +++ b/classes/Group_alias.php @@ -34,7 +34,7 @@ class Group_alias extends Memcached_DataObject public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* Static get */ - function staticGet($k,$v=NULL) { return DB_DataObject::staticGet('Group_alias',$k,$v); } + function staticGet($k,$v=NULL) { return Memcached_DataObject::staticGet('Group_alias',$k,$v); } /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE -- cgit v1.2.3-54-g00ecf From f653c3b914d7983618bd4141fe57a37e9537ec45 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Fri, 5 Mar 2010 16:40:35 -0800 Subject: Fix undefined variable error and some other cleanup --- actions/userrss.php | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/actions/userrss.php b/actions/userrss.php index 6029f4431..77bd316b2 100644 --- a/actions/userrss.php +++ b/actions/userrss.php @@ -29,6 +29,8 @@ class UserrssAction extends Rss10Action function prepare($args) { + common_debug("UserrssAction"); + parent::prepare($args); $nickname = $this->trimmed('nickname'); $this->user = User::staticGet('nickname', $nickname); @@ -38,8 +40,8 @@ class UserrssAction extends Rss10Action $this->clientError(_('No such user.')); return false; } else { - if ($this->tag) { - $this->notices = $this->getTaggedNotices($tag, $this->limit); + if (!empty($this->tag)) { + $this->notices = $this->getTaggedNotices($this->tag, $this->limit); } else { $this->notices = $this->getNotices($this->limit); } @@ -47,15 +49,15 @@ class UserrssAction extends Rss10Action } } - function getTaggedNotices($tag = null, $limit=0) + function getTaggedNotices() { - $user = $this->user; - - if (is_null($user)) { - return null; - } - - $notice = $user->getTaggedNotices(0, ($limit == 0) ? NOTICES_PER_PAGE : $limit, 0, 0, null, $tag); + $notice = $this->user->getTaggedNotices( + $this->tag, + 0, + ($this->limit == 0) ? NOTICES_PER_PAGE : $this->limit, + 0, + 0 + ); $notices = array(); while ($notice->fetch()) { @@ -66,15 +68,12 @@ class UserrssAction extends Rss10Action } - function getNotices($limit=0) + function getNotices() { - $user = $this->user; - - if (is_null($user)) { - return null; - } - - $notice = $user->getNotices(0, ($limit == 0) ? NOTICES_PER_PAGE : $limit); + $notice = $this->user->getNotices( + 0, + ($limit == 0) ? NOTICES_PER_PAGE : $limit + ); $notices = array(); while ($notice->fetch()) { -- cgit v1.2.3-54-g00ecf From 1a03820628d37b9db6e47be22d98789f551f1959 Mon Sep 17 00:00:00 2001 From: Christopher Vollick Date: Thu, 11 Feb 2010 11:19:50 -0500 Subject: UserRSS Didn't Use the Tag Propery. This meant that server.com/user/tag/TAG/rss just returned all user data. That was incorrect. --- actions/userrss.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/actions/userrss.php b/actions/userrss.php index 19e610551..6029f4431 100644 --- a/actions/userrss.php +++ b/actions/userrss.php @@ -38,7 +38,11 @@ class UserrssAction extends Rss10Action $this->clientError(_('No such user.')); return false; } else { - $this->notices = $this->getNotices($this->limit); + if ($this->tag) { + $this->notices = $this->getTaggedNotices($tag, $this->limit); + } else { + $this->notices = $this->getNotices($this->limit); + } return true; } } -- cgit v1.2.3-54-g00ecf From 4ada86560c7c9ef43e41e6c3cdf279d64ea132ba Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Fri, 5 Mar 2010 16:40:35 -0800 Subject: Fix undefined variable error and some other cleanup --- actions/userrss.php | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/actions/userrss.php b/actions/userrss.php index 6029f4431..77bd316b2 100644 --- a/actions/userrss.php +++ b/actions/userrss.php @@ -29,6 +29,8 @@ class UserrssAction extends Rss10Action function prepare($args) { + common_debug("UserrssAction"); + parent::prepare($args); $nickname = $this->trimmed('nickname'); $this->user = User::staticGet('nickname', $nickname); @@ -38,8 +40,8 @@ class UserrssAction extends Rss10Action $this->clientError(_('No such user.')); return false; } else { - if ($this->tag) { - $this->notices = $this->getTaggedNotices($tag, $this->limit); + if (!empty($this->tag)) { + $this->notices = $this->getTaggedNotices($this->tag, $this->limit); } else { $this->notices = $this->getNotices($this->limit); } @@ -47,15 +49,15 @@ class UserrssAction extends Rss10Action } } - function getTaggedNotices($tag = null, $limit=0) + function getTaggedNotices() { - $user = $this->user; - - if (is_null($user)) { - return null; - } - - $notice = $user->getTaggedNotices(0, ($limit == 0) ? NOTICES_PER_PAGE : $limit, 0, 0, null, $tag); + $notice = $this->user->getTaggedNotices( + $this->tag, + 0, + ($this->limit == 0) ? NOTICES_PER_PAGE : $this->limit, + 0, + 0 + ); $notices = array(); while ($notice->fetch()) { @@ -66,15 +68,12 @@ class UserrssAction extends Rss10Action } - function getNotices($limit=0) + function getNotices() { - $user = $this->user; - - if (is_null($user)) { - return null; - } - - $notice = $user->getNotices(0, ($limit == 0) ? NOTICES_PER_PAGE : $limit); + $notice = $this->user->getNotices( + 0, + ($limit == 0) ? NOTICES_PER_PAGE : $limit + ); $notices = array(); while ($notice->fetch()) { -- cgit v1.2.3-54-g00ecf From d59284d42d3735e393e5e99d027136d96778600d Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Fri, 5 Mar 2010 16:52:15 -0800 Subject: No need to pass in $this->limit and $this-tag --- actions/userrss.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/actions/userrss.php b/actions/userrss.php index 77bd316b2..e03eb9356 100644 --- a/actions/userrss.php +++ b/actions/userrss.php @@ -41,9 +41,9 @@ class UserrssAction extends Rss10Action return false; } else { if (!empty($this->tag)) { - $this->notices = $this->getTaggedNotices($this->tag, $this->limit); + $this->notices = $this->getTaggedNotices(); } else { - $this->notices = $this->getNotices($this->limit); + $this->notices = $this->getNotices(); } return true; } -- cgit v1.2.3-54-g00ecf From 421041c51aa4a92fa2c6f03cedcbd30d8cdfb7d4 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Fri, 5 Mar 2010 16:52:15 -0800 Subject: No need to pass in $this->limit and $this-tag --- actions/userrss.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/actions/userrss.php b/actions/userrss.php index 77bd316b2..e03eb9356 100644 --- a/actions/userrss.php +++ b/actions/userrss.php @@ -41,9 +41,9 @@ class UserrssAction extends Rss10Action return false; } else { if (!empty($this->tag)) { - $this->notices = $this->getTaggedNotices($this->tag, $this->limit); + $this->notices = $this->getTaggedNotices(); } else { - $this->notices = $this->getNotices($this->limit); + $this->notices = $this->getNotices(); } return true; } -- cgit v1.2.3-54-g00ecf From 773626aac49dce2dd350a4e15f36aa5c9b4924cd Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Fri, 5 Mar 2010 16:52:15 -0800 Subject: No need to pass in $this->limit and $this-tag --- actions/userrss.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/actions/userrss.php b/actions/userrss.php index 77bd316b2..e03eb9356 100644 --- a/actions/userrss.php +++ b/actions/userrss.php @@ -41,9 +41,9 @@ class UserrssAction extends Rss10Action return false; } else { if (!empty($this->tag)) { - $this->notices = $this->getTaggedNotices($this->tag, $this->limit); + $this->notices = $this->getTaggedNotices(); } else { - $this->notices = $this->getNotices($this->limit); + $this->notices = $this->getNotices(); } return true; } -- cgit v1.2.3-54-g00ecf From 5adb494c26e431948b50690b8efaeedb3f3513d1 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Fri, 5 Mar 2010 17:05:00 -0800 Subject: Remove unused variables, update Twitter ones --- config.php.sample | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/config.php.sample b/config.php.sample index 33ac94a6d..3d2a52bec 100644 --- a/config.php.sample +++ b/config.php.sample @@ -188,9 +188,6 @@ $config['sphinx']['port'] = 3312; // Disable SMS // $config['sms']['enabled'] = false; -// Disable Twitter integration -// $config['twitter']['enabled'] = false; - // Twitter integration source attribute. Note: default is StatusNet // $config['integration']['source'] = 'StatusNet'; @@ -198,7 +195,7 @@ $config['sphinx']['port'] = 3312; // // NOTE: if you enable this you must also set $config['avatar']['path'] // -// $config['twitterbridge']['enabled'] = true; +// $config['twitterimport']['enabled'] = true; // Twitter OAuth settings // $config['twitter']['consumer_key'] = 'YOURKEY'; @@ -212,10 +209,6 @@ $config['sphinx']['port'] = 3312; // $config['throttle']['count'] = 100; // $config['throttle']['timespan'] = 3600; -// List of users banned from posting (nicknames and/or IDs) -// $config['profile']['banned'][] = 'hacker'; -// $config['profile']['banned'][] = 12345; - // Config section for the built-in Facebook application // $config['facebook']['apikey'] = 'APIKEY'; // $config['facebook']['secret'] = 'SECRET'; -- cgit v1.2.3-54-g00ecf From e97515c8779705bf732840df0611cc2025a4781f Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Fri, 5 Mar 2010 17:05:00 -0800 Subject: Remove unused variables, update Twitter ones --- config.php.sample | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/config.php.sample b/config.php.sample index 5c5fb5b53..9e0b4e2ac 100644 --- a/config.php.sample +++ b/config.php.sample @@ -188,9 +188,6 @@ $config['sphinx']['port'] = 3312; // Disable SMS // $config['sms']['enabled'] = false; -// Disable Twitter integration -// $config['twitter']['enabled'] = false; - // Twitter integration source attribute. Note: default is StatusNet // $config['integration']['source'] = 'StatusNet'; @@ -198,7 +195,7 @@ $config['sphinx']['port'] = 3312; // // NOTE: if you enable this you must also set $config['avatar']['path'] // -// $config['twitterbridge']['enabled'] = true; +// $config['twitterimport']['enabled'] = true; // Twitter OAuth settings // $config['twitter']['consumer_key'] = 'YOURKEY'; @@ -212,10 +209,6 @@ $config['sphinx']['port'] = 3312; // $config['throttle']['count'] = 100; // $config['throttle']['timespan'] = 3600; -// List of users banned from posting (nicknames and/or IDs) -// $config['profile']['banned'][] = 'hacker'; -// $config['profile']['banned'][] = 12345; - // Config section for the built-in Facebook application // $config['facebook']['apikey'] = 'APIKEY'; // $config['facebook']['secret'] = 'SECRET'; -- cgit v1.2.3-54-g00ecf From a5cbd1918bfaa20e1f03e6330f479a062361236d Mon Sep 17 00:00:00 2001 From: Siebrand Mazeland Date: Sun, 7 Mar 2010 00:54:04 +0100 Subject: Localisation updates for !StatusNet from !translatewiki.net !sntrans Signed-off-by: Siebrand Mazeland --- locale/ar/LC_MESSAGES/statusnet.po | 76 ++++--- locale/arz/LC_MESSAGES/statusnet.po | 54 ++--- locale/bg/LC_MESSAGES/statusnet.po | 54 ++--- locale/br/LC_MESSAGES/statusnet.po | 76 +++---- locale/ca/LC_MESSAGES/statusnet.po | 54 ++--- locale/cs/LC_MESSAGES/statusnet.po | 54 ++--- locale/de/LC_MESSAGES/statusnet.po | 416 ++++++++++++++++------------------ locale/el/LC_MESSAGES/statusnet.po | 54 ++--- locale/en_GB/LC_MESSAGES/statusnet.po | 57 ++--- locale/es/LC_MESSAGES/statusnet.po | 54 ++--- locale/fa/LC_MESSAGES/statusnet.po | 54 ++--- locale/fi/LC_MESSAGES/statusnet.po | 54 ++--- locale/fr/LC_MESSAGES/statusnet.po | 54 ++--- locale/ga/LC_MESSAGES/statusnet.po | 54 ++--- locale/he/LC_MESSAGES/statusnet.po | 54 ++--- locale/hsb/LC_MESSAGES/statusnet.po | 54 ++--- locale/ia/LC_MESSAGES/statusnet.po | 54 ++--- locale/is/LC_MESSAGES/statusnet.po | 54 ++--- locale/it/LC_MESSAGES/statusnet.po | 54 ++--- locale/ja/LC_MESSAGES/statusnet.po | 54 ++--- locale/ko/LC_MESSAGES/statusnet.po | 54 ++--- locale/mk/LC_MESSAGES/statusnet.po | 54 ++--- locale/nb/LC_MESSAGES/statusnet.po | 54 ++--- locale/nl/LC_MESSAGES/statusnet.po | 54 ++--- locale/nn/LC_MESSAGES/statusnet.po | 54 ++--- locale/pl/LC_MESSAGES/statusnet.po | 152 +++++-------- locale/pt/LC_MESSAGES/statusnet.po | 54 ++--- locale/pt_BR/LC_MESSAGES/statusnet.po | 54 ++--- locale/ru/LC_MESSAGES/statusnet.po | 54 ++--- locale/statusnet.po | 50 ++-- locale/sv/LC_MESSAGES/statusnet.po | 54 ++--- locale/te/LC_MESSAGES/statusnet.po | 54 ++--- locale/tr/LC_MESSAGES/statusnet.po | 54 ++--- locale/uk/LC_MESSAGES/statusnet.po | 54 ++--- locale/vi/LC_MESSAGES/statusnet.po | 54 ++--- locale/zh_CN/LC_MESSAGES/statusnet.po | 54 ++--- locale/zh_TW/LC_MESSAGES/statusnet.po | 54 ++--- 37 files changed, 1228 insertions(+), 1273 deletions(-) diff --git a/locale/ar/LC_MESSAGES/statusnet.po b/locale/ar/LC_MESSAGES/statusnet.po index 9f7bd5cbb..56029bc82 100644 --- a/locale/ar/LC_MESSAGES/statusnet.po +++ b/locale/ar/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:34:53+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:49:16+0000\n" "Language-Team: Arabic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ar\n" "X-Message-Group: out-statusnet\n" @@ -102,7 +102,7 @@ msgstr "لا صفحة كهذه" #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -549,7 +549,7 @@ msgstr "" #: actions/apioauthauthorize.php:276 msgid "Allow or deny access" -msgstr "" +msgstr "اسمح أو امنع الوصول" #: actions/apioauthauthorize.php:292 #, php-format @@ -681,7 +681,7 @@ msgstr "تكرارات %s" msgid "Notices tagged with %s" msgstr "الإشعارات الموسومة ب%s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "" @@ -721,7 +721,7 @@ msgstr "بإمكانك رفع أفتارك الشخصي. أقصى حجم للم #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "" @@ -1691,7 +1691,7 @@ msgstr "" msgid "Make this user an admin" msgstr "اجعل هذا المستخدم إداريًا" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -2353,7 +2353,7 @@ msgstr "كلمة السر القديمة" #: actions/passwordsettings.php:108 actions/recoverpassword.php:235 msgid "New password" -msgstr "كلمة سر جديدة" +msgstr "كلمة السر الجديدة" #: actions/passwordsettings.php:109 msgid "6 or more characters" @@ -4229,7 +4229,7 @@ msgstr "%s ليس عضوًا في أي مجموعة." msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -4486,10 +4486,9 @@ msgstr "الصفحة الشخصية" #. TRANS: Tooltip for main menu option "Account" #: lib/action.php:435 -#, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" -msgstr "غير كلمة سرّك" +msgstr "غير بريدك الإلكتروني وكلمة سرّك وأفتارك وملفك الشخصي" #. TRANS: Tooltip for main menu option "Services" #: lib/action.php:440 @@ -4977,12 +4976,12 @@ msgstr "%s ترك المجموعة %s" msgid "Fullname: %s" msgstr "الاسم الكامل: %s" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "الموقع: %s" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "الصفحة الرئيسية: %s" @@ -5042,9 +5041,8 @@ msgid "Specify the name of the user to subscribe to" msgstr "" #: lib/command.php:554 lib/command.php:589 -#, fuzzy msgid "No such user" -msgstr "لا مستخدم كهذا." +msgstr "لا مستخدم كهذا" #: lib/command.php:561 #, php-format @@ -5427,11 +5425,11 @@ msgstr "لُج باسم مستخدم وكلمة سر" msgid "Sign up for a new account" msgstr "سجّل حسابًا جديدًا" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "تأكيد عنوان البريد الإلكتروني" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5447,13 +5445,25 @@ msgid "" "Thanks for your time, \n" "%s\n" msgstr "" +"مرحبًا، %s.\n" +"\n" +"لقد أدخل أحدهم قبل لحظات عنوان البريد الإلكتروني هذا على %s.\n" +"\n" +"إذا كنت هو، وإذا كنت تريد تأكيد هذه المدخلة، فاستخدم المسار أدناه:\n" +"\n" +" %s\n" +"\n" +"إذا كان الأمر خلاف ذلك، فتجاهل هذه الرسالة.\n" +"\n" +"شكرًا على الوقت الذي أمضيته، \n" +"%s\n" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s يستمع الآن إلى إشعاراتك على %2$s." -#: lib/mail.php:241 +#: lib/mail.php:245 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5478,17 +5488,17 @@ msgstr "" "----\n" "غيّر خيارات البريد الإلكتروني والإشعار في %8$s\n" -#: lib/mail.php:258 +#: lib/mail.php:262 #, php-format msgid "Bio: %s" msgstr "السيرة: %s" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "عنوان بريد إلكتروني جديد للإرسال إلى %s" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5501,21 +5511,21 @@ msgid "" "%4$s" msgstr "" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "حالة %s" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "تأكيد الرسالة القصيرة" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "لقد نبهك %s" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5531,12 +5541,12 @@ msgid "" "%4$s\n" msgstr "" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "رسالة خاصة جديدة من %s" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5555,12 +5565,12 @@ msgid "" "%5$s\n" msgstr "" -#: lib/mail.php:559 +#: lib/mail.php:568 #, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "لقد أضاف %s (@%s) إشعارك إلى مفضلاته" -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5581,12 +5591,12 @@ msgid "" "%6$s\n" msgstr "" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "لقد أرسل %s (@%s) إشعارًا إليك" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/arz/LC_MESSAGES/statusnet.po b/locale/arz/LC_MESSAGES/statusnet.po index 3654f6326..aaf1d89bd 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-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:34:56+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:49:19+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 (r63298); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: arz\n" "X-Message-Group: out-statusnet\n" @@ -108,7 +108,7 @@ msgstr "لا صفحه كهذه" #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -687,7 +687,7 @@ msgstr "تكرارات %s" msgid "Notices tagged with %s" msgstr "الإشعارات الموسومه ب%s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "" @@ -727,7 +727,7 @@ msgstr "" #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "" @@ -1703,7 +1703,7 @@ msgstr "" msgid "Make this user an admin" msgstr "اجعل هذا المستخدم إداريًا" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -4234,7 +4234,7 @@ msgstr "" msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -5002,12 +5002,12 @@ msgstr "%s ساب الجروپ %s" msgid "Fullname: %s" msgstr "الاسم الكامل: %s" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "الموقع: %s" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "الصفحه الرئيسية: %s" @@ -5452,11 +5452,11 @@ msgstr "" msgid "Sign up for a new account" msgstr "" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "تأكيد عنوان البريد الإلكتروني" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5473,12 +5473,12 @@ msgid "" "%s\n" msgstr "" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "" -#: lib/mail.php:241 +#: lib/mail.php:245 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5493,17 +5493,17 @@ msgid "" "Change your email address or notification options at %8$s\n" msgstr "" -#: lib/mail.php:258 +#: lib/mail.php:262 #, php-format msgid "Bio: %s" msgstr "عن نفسك: %s" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5516,21 +5516,21 @@ msgid "" "%4$s" msgstr "" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "حاله %s" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5546,12 +5546,12 @@ msgid "" "%4$s\n" msgstr "" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "رساله خاصه جديده من %s" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5570,12 +5570,12 @@ msgid "" "%5$s\n" msgstr "" -#: lib/mail.php:559 +#: lib/mail.php:568 #, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "" -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5596,12 +5596,12 @@ msgid "" "%6$s\n" msgstr "" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/bg/LC_MESSAGES/statusnet.po b/locale/bg/LC_MESSAGES/statusnet.po index 71b22dd4f..3a6b5b047 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-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:34:58+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:49:22+0000\n" "Language-Team: Bulgarian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: bg\n" "X-Message-Group: out-statusnet\n" @@ -103,7 +103,7 @@ msgstr "Няма такака страница." #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -694,7 +694,7 @@ msgstr "Повторения на %s" msgid "Notices tagged with %s" msgstr "Бележки с етикет %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Бележки от %1$s в %2$s." @@ -736,7 +736,7 @@ msgstr "" #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "Потребител без съответстващ профил" @@ -1753,7 +1753,7 @@ msgstr "" msgid "Make this user an admin" msgstr "" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -4414,7 +4414,7 @@ msgstr "%s не членува в никоя група." msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -5211,12 +5211,12 @@ msgstr "%s напусна групата %s" msgid "Fullname: %s" msgstr "Пълно име: %s" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Местоположение: %s" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Домашна страница: %s" @@ -5657,11 +5657,11 @@ msgstr "Вход с име и парола" msgid "Sign up for a new account" msgstr "Създаване на нова сметка" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "Потвърждаване адреса на е-поща" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5678,12 +5678,12 @@ msgid "" "%s\n" msgstr "" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s вече получава бележките ви в %2$s." -#: lib/mail.php:241 +#: lib/mail.php:245 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5708,17 +5708,17 @@ msgstr "" "----\n" "Може да смените адреса и настройките за уведомяване по е-поща на %8$s\n" -#: lib/mail.php:258 +#: lib/mail.php:262 #, php-format msgid "Bio: %s" msgstr "Биография: %s" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "Нов адрес на е-поща за публикщуване в %s" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5731,21 +5731,21 @@ msgid "" "%4$s" msgstr "" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "Състояние на %s" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "Потвърждение за SMS" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "Побутнати сте от %s" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5761,12 +5761,12 @@ msgid "" "%4$s\n" msgstr "" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "Ново лично съобщение от %s" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5785,12 +5785,12 @@ msgid "" "%5$s\n" msgstr "" -#: lib/mail.php:559 +#: lib/mail.php:568 #, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "%s (@%s) отбеляза бележката ви като любима" -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5811,12 +5811,12 @@ msgid "" "%6$s\n" msgstr "" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/br/LC_MESSAGES/statusnet.po b/locale/br/LC_MESSAGES/statusnet.po index 53e971a31..2197b9e74 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-03-04 19:12+0000\n" -"PO-Revision-Date: 2010-03-04 19:12:57+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:49:25+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63249); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: br\n" "X-Message-Group: out-statusnet\n" @@ -101,7 +101,7 @@ msgstr "N'eus ket eus ar bajenn-se" #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -680,7 +680,7 @@ msgstr "Adkemeret eus %s" msgid "Notices tagged with %s" msgstr "Alioù merket gant %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "" @@ -720,7 +720,7 @@ msgstr "" #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "Implijer hep profil klotaus" @@ -1533,23 +1533,20 @@ msgid "Cannot read file." msgstr "Diposupl eo lenn ar restr." #: actions/grantrole.php:62 actions/revokerole.php:62 -#, fuzzy msgid "Invalid role." -msgstr "Fichenn direizh." +msgstr "Roll direizh." #: actions/grantrole.php:66 actions/revokerole.php:66 msgid "This role is reserved and cannot be set." msgstr "" #: actions/grantrole.php:75 -#, fuzzy msgid "You cannot grant user roles on this site." -msgstr "Ne c'helloc'h ket kas kemennadennoù d'an implijer-mañ." +msgstr "Ne c'helloc'h ket reiñ rolloù d'an implijerien eus al lec'hienn-mañ." #: actions/grantrole.php:82 -#, fuzzy msgid "User already has this role." -msgstr "An implijer-mañ n'eus profil ebet dezhañ." +msgstr "An implijer-mañ en deus dija ar roll-mañ." #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 @@ -1691,7 +1688,7 @@ msgstr "Lakaat ur merour" msgid "Make this user an admin" msgstr "Lakaat an implijer-mañ da verour" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -2384,7 +2381,7 @@ msgstr "Kemmañ" #: actions/passwordsettings.php:154 actions/register.php:230 msgid "Password must be 6 or more characters." -msgstr "" +msgstr "Rankout a ra ar ger-tremen bezañ gant 6 arouezenn d'an nebeutañ." #: actions/passwordsettings.php:157 actions/register.php:233 msgid "Passwords don't match." @@ -2489,7 +2486,7 @@ msgstr "Hentad an tem" #: actions/pathsadminpanel.php:272 msgid "Theme directory" -msgstr "" +msgstr "Doser an temoù" #: actions/pathsadminpanel.php:279 msgid "Avatars" @@ -2600,7 +2597,7 @@ msgstr "" #: actions/profilesettings.php:99 msgid "Profile information" -msgstr "" +msgstr "Titouroù ar profil" #: actions/profilesettings.php:108 lib/groupeditform.php:154 msgid "1-64 lowercase letters or numbers, no punctuation or spaces" @@ -2684,7 +2681,7 @@ msgstr "" #: actions/profilesettings.php:228 actions/register.php:223 #, php-format msgid "Bio is too long (max %d chars)." -msgstr "" +msgstr "Re hir eo ar bio (%d arouezenn d'ar muiañ)." #: actions/profilesettings.php:235 actions/siteadminpanel.php:151 msgid "Timezone not selected." @@ -2692,7 +2689,7 @@ msgstr "N'eo bet dibabet gwerzhid-eur ebet." #: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." -msgstr "" +msgstr "Re hir eo ar yezh (255 arouezenn d'ar muiañ)." #: actions/profilesettings.php:253 actions/tagother.php:178 #, php-format @@ -4217,7 +4214,7 @@ msgstr "" msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -4480,9 +4477,8 @@ msgid "Connect to services" msgstr "" #: lib/action.php:443 -#, fuzzy msgid "Connect" -msgstr "Endalc'h" +msgstr "Kevreañ" #. TRANS: Tooltip for menu option "Admin" #: lib/action.php:446 @@ -4951,12 +4947,12 @@ msgstr "%s {{Gender:.|en|he}} deus kuitaet ar strollad %s" msgid "Fullname: %s" msgstr "Anv klok : %s" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "" @@ -5391,11 +5387,11 @@ msgstr "" msgid "Sign up for a new account" msgstr "" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5412,12 +5408,12 @@ msgid "" "%s\n" msgstr "" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "" -#: lib/mail.php:241 +#: lib/mail.php:245 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5432,17 +5428,17 @@ msgid "" "Change your email address or notification options at %8$s\n" msgstr "" -#: lib/mail.php:258 +#: lib/mail.php:262 #, php-format msgid "Bio: %s" msgstr "" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5455,21 +5451,21 @@ msgid "" "%4$s" msgstr "" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "Statud %s" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5485,12 +5481,12 @@ msgid "" "%4$s\n" msgstr "" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "Kemenadenn personel nevez a-berzh %s" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5509,12 +5505,12 @@ msgid "" "%5$s\n" msgstr "" -#: lib/mail.php:559 +#: lib/mail.php:568 #, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "" -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5535,12 +5531,12 @@ msgid "" "%6$s\n" msgstr "" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/ca/LC_MESSAGES/statusnet.po b/locale/ca/LC_MESSAGES/statusnet.po index 8a91dad60..bd7c5cd5a 100644 --- a/locale/ca/LC_MESSAGES/statusnet.po +++ b/locale/ca/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:35:02+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:49:29+0000\n" "Language-Team: Catalan\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ca\n" "X-Message-Group: out-statusnet\n" @@ -109,7 +109,7 @@ msgstr "No existeix la pàgina." #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -713,7 +713,7 @@ msgstr "Repeticions de %s" msgid "Notices tagged with %s" msgstr "Aviso etiquetats amb %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Actualitzacions etiquetades amb %1$s el %2$s!" @@ -754,7 +754,7 @@ msgstr "" #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "Usuari sense perfil coincident" @@ -1772,7 +1772,7 @@ msgstr "Fes-lo administrador" msgid "Make this user an admin" msgstr "Fes l'usuari administrador" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -4478,7 +4478,7 @@ msgstr "%s no és membre de cap grup." msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -5268,12 +5268,12 @@ msgstr "%s ha abandonat el grup %s" msgid "Fullname: %s" msgstr "Nom complet: %s" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Localització: %s" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Pàgina web: %s" @@ -5713,11 +5713,11 @@ msgstr "Accedir amb el nom d'usuari i contrasenya" msgid "Sign up for a new account" msgstr "Crear nou compte" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "Confirmació de l'adreça de correu electrònic" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5734,12 +5734,12 @@ msgid "" "%s\n" msgstr "" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s ara està escoltant els teus avisos a %2$s." -#: lib/mail.php:241 +#: lib/mail.php:245 #, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5760,19 +5760,19 @@ msgstr "" "Atentament,\n" "%4$s.\n" -#: lib/mail.php:258 +#: lib/mail.php:262 #, fuzzy, php-format msgid "Bio: %s" msgstr "" "Biografia: %s\n" "\n" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "Nou correu electrònic per publicar a %s" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5793,21 +5793,21 @@ msgstr "" "Sincerament teus,\n" "%4$s" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "%s estat" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "Confirmació SMS" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "Has estat reclamat per %s" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5823,12 +5823,12 @@ msgid "" "%4$s\n" msgstr "" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "Nou missatge privat de %s" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5847,12 +5847,12 @@ msgid "" "%5$s\n" msgstr "" -#: lib/mail.php:559 +#: lib/mail.php:568 #, fuzzy, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "%s ha afegit la teva nota com a favorita" -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5873,12 +5873,12 @@ msgid "" "%6$s\n" msgstr "" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/cs/LC_MESSAGES/statusnet.po b/locale/cs/LC_MESSAGES/statusnet.po index 8a8ccf6e6..a48ec5885 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-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:35:06+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:49:32+0000\n" "Language-Team: Czech\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: cs\n" "X-Message-Group: out-statusnet\n" @@ -109,7 +109,7 @@ msgstr "Žádné takové oznámení." #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -709,7 +709,7 @@ msgstr "Odpovědi na %s" msgid "Notices tagged with %s" msgstr "" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Mikroblog od %s" @@ -751,7 +751,7 @@ msgstr "" #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "" @@ -1779,7 +1779,7 @@ msgstr "" msgid "Make this user an admin" msgstr "" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -4422,7 +4422,7 @@ msgstr "Neodeslal jste nám profil" msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -5214,12 +5214,12 @@ msgstr "%1 statusů na %2" msgid "Fullname: %s" msgstr "Celé jméno" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "" @@ -5675,11 +5675,11 @@ msgstr "Neplatné jméno nebo heslo" msgid "Sign up for a new account" msgstr "Vytvořit nový účet" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "Potvrzení emailové adresy" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5696,12 +5696,12 @@ msgid "" "%s\n" msgstr "" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1 od teď naslouchá tvým sdělením v %2" -#: lib/mail.php:241 +#: lib/mail.php:245 #, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5722,17 +5722,17 @@ msgstr "" "S úctou váš,\n" "%4$s.\n" -#: lib/mail.php:258 +#: lib/mail.php:262 #, fuzzy, php-format msgid "Bio: %s" msgstr "O mě" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5745,21 +5745,21 @@ msgid "" "%4$s" msgstr "" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5775,12 +5775,12 @@ msgid "" "%4$s\n" msgstr "" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5799,12 +5799,12 @@ msgid "" "%5$s\n" msgstr "" -#: lib/mail.php:559 +#: lib/mail.php:568 #, fuzzy, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "%1 od teď naslouchá tvým sdělením v %2" -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5825,12 +5825,12 @@ msgid "" "%6$s\n" msgstr "" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/de/LC_MESSAGES/statusnet.po b/locale/de/LC_MESSAGES/statusnet.po index 5007074b7..fb91e4768 100644 --- a/locale/de/LC_MESSAGES/statusnet.po +++ b/locale/de/LC_MESSAGES/statusnet.po @@ -15,12 +15,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:35:09+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:49:34+0000\n" "Language-Team: German\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: out-statusnet\n" @@ -108,7 +108,7 @@ msgstr "Seite nicht vorhanden" #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -273,6 +273,8 @@ msgid "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." msgstr "" +"Der Server kann so große POST Abfragen (%s bytes) aufgrund der Konfiguration " +"nicht verarbeiten." #: actions/apiaccountupdateprofilebackgroundimage.php:136 #: actions/apiaccountupdateprofilebackgroundimage.php:146 @@ -505,7 +507,7 @@ msgstr "Gruppen von %s" #: actions/apioauthauthorize.php:101 msgid "No oauth_token parameter provided." -msgstr "" +msgstr "Kein oauth_token Parameter angegeben." #: actions/apioauthauthorize.php:106 #, fuzzy @@ -540,9 +542,8 @@ msgid "Database error deleting OAuth application user." msgstr "Fehler bei den Nutzereinstellungen." #: actions/apioauthauthorize.php:185 -#, fuzzy msgid "Database error inserting OAuth application user." -msgstr "Datenbankfehler beim Einfügen des Hashtags: %s" +msgstr "Datenbankfehler beim Einfügen des OAuth Programm Benutzers." #: actions/apioauthauthorize.php:214 #, php-format @@ -550,11 +551,13 @@ msgid "" "The request token %s has been authorized. Please exchange it for an access " "token." msgstr "" +"Die Anfrage %s wurde nicht autorisiert. Bitte gegen einen Zugriffstoken " +"austauschen." #: actions/apioauthauthorize.php:227 #, php-format msgid "The request token %s has been denied and revoked." -msgstr "" +msgstr "Die Anfrage %s wurde gesperrt und widerrufen." #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281 #: actions/designadminpanel.php:103 actions/editapplication.php:139 @@ -567,7 +570,7 @@ msgstr "Unerwartete Formulareingabe." #: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" -msgstr "" +msgstr "Ein Programm will eine Verbindung zu deinem Konto aufbauen" #: actions/apioauthauthorize.php:276 msgid "Allow or deny access" @@ -662,14 +665,14 @@ msgid "Unsupported format." msgstr "Bildformat wird nicht unterstützt." #: actions/apitimelinefavorites.php:108 -#, fuzzy, php-format +#, php-format msgid "%1$s / Favorites from %2$s" -msgstr "%s / Favoriten von %s" +msgstr "%1$s / Favoriten von %2$s" #: actions/apitimelinefavorites.php:117 -#, fuzzy, php-format +#, php-format msgid "%1$s updates favorited by %2$s / %2$s." -msgstr "%s Aktualisierung in den Favoriten von %s / %s." +msgstr "%1$s Aktualisierung in den Favoriten von %2$s / %2$s." #: actions/apitimelinementions.php:117 #, php-format @@ -692,21 +695,21 @@ msgid "%s updates from everyone!" msgstr "%s Nachrichten von allen!" #: actions/apitimelineretweetedtome.php:111 -#, fuzzy, php-format +#, php-format msgid "Repeated to %s" msgstr "Antworten an %s" #: actions/apitimelineretweetsofme.php:114 -#, fuzzy, php-format +#, php-format msgid "Repeats of %s" -msgstr "Antworten an %s" +msgstr "Antworten von %s" #: actions/apitimelinetag.php:102 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Nachrichten, die mit %s getagt sind" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Aktualisierungen mit %1$s getagt auf %2$s!" @@ -747,7 +750,7 @@ msgstr "" #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "Benutzer ohne passendes Profil" @@ -862,9 +865,9 @@ msgid "%s blocked profiles" msgstr "%s blockierte Benutzerprofile" #: actions/blockedfromgroup.php:100 -#, fuzzy, php-format +#, php-format msgid "%1$s blocked profiles, page %2$d" -msgstr "%s blockierte Benutzerprofile, Seite %d" +msgstr "%1$s blockierte Benutzerprofile, Seite %2$d" #: actions/blockedfromgroup.php:115 msgid "A list of the users blocked from joining this group." @@ -921,7 +924,6 @@ msgid "Couldn't delete email confirmation." msgstr "Konnte E-Mail-Bestätigung nicht löschen." #: actions/confirmaddress.php:144 -#, fuzzy msgid "Confirm address" msgstr "Adresse bestätigen" @@ -940,14 +942,12 @@ msgid "Notices" msgstr "Nachrichten" #: actions/deleteapplication.php:63 -#, fuzzy msgid "You must be logged in to delete an application." -msgstr "Du musst angemeldet sein, um eine Gruppe zu bearbeiten." +msgstr "Du musst angemeldet sein, um dieses Programm zu entfernen." #: actions/deleteapplication.php:71 -#, fuzzy msgid "Application not found." -msgstr "Nachricht hat kein Profil" +msgstr "Programm nicht gefunden." #: actions/deleteapplication.php:78 actions/editapplication.php:77 #: actions/showapplication.php:94 @@ -970,11 +970,12 @@ msgid "" "about the application from the database, including all existing user " "connections." msgstr "" +"Bist du sicher, dass du dieses Programm löschen willst? Es werden alle Daten " +"aus der Datenbank entfernt, auch alle bestehenden Benutzer-Verbindungen." #: actions/deleteapplication.php:156 -#, fuzzy msgid "Do not delete this application" -msgstr "Diese Nachricht nicht löschen" +msgstr "Dieses Programm nicht löschen" #: actions/deleteapplication.php:160 msgid "Delete this application" @@ -1239,9 +1240,8 @@ msgid "Callback URL is not valid." msgstr "Antwort URL ist nicht gültig" #: actions/editapplication.php:258 -#, fuzzy msgid "Could not update application." -msgstr "Konnte Gruppe nicht aktualisieren." +msgstr "Konnte Programm nicht aktualisieren." #: actions/editgroup.php:56 #, php-format @@ -1254,7 +1254,6 @@ msgstr "Du musst angemeldet sein, um eine Gruppe zu erstellen." #: actions/editgroup.php:107 actions/editgroup.php:172 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109 -#, fuzzy msgid "You must be an admin to edit the group." msgstr "Du musst ein Administrator sein, um die Gruppe zu bearbeiten" @@ -1488,12 +1487,16 @@ msgstr "Die momentan beliebtesten Nachrichten auf dieser Seite." #: actions/favorited.php:150 msgid "Favorite notices appear on this page but no one has favorited one yet." msgstr "" +"Favorisierte Mitteilungen werden auf dieser Seite angezeigt; es wurden aber " +"noch keine Favoriten markiert." #: 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 "" +"Sei der erste der eine Nachricht favorisiert indem du auf die entsprechenden " +"Schaltfläche neben der Nachricht klickst." #: actions/favorited.php:156 #, php-format @@ -1501,6 +1504,8 @@ msgid "" "Why not [register an account](%%action.register%%) and be the first to add a " "notice to your favorites!" msgstr "" +"Warum [registrierst Du nicht einen Account](%%%%action.register%%%%) und " +"bist der erste der eine Nachricht favorisiert!" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 #: lib/personalgroupnav.php:115 @@ -1524,9 +1529,9 @@ msgid "Featured users, page %d" msgstr "Top-Benutzer, Seite %d" #: actions/featured.php:99 -#, fuzzy, php-format +#, php-format msgid "A selection of some great users on %s" -msgstr "Eine Auswahl der tollen Benutzer auf %s" +msgstr "Eine Auswahl toller Benutzer auf %s" #: actions/file.php:34 msgid "No notice ID." @@ -1641,6 +1646,10 @@ msgid "" "will be removed from the group, unable to post, and unable to subscribe to " "the group in the future." msgstr "" +"Bist du sicher, dass du den Benutzer \"%1$s\" in der Gruppe \"%2$s\" " +"blockieren willst? Er wird aus der Gruppe gelöscht, kann keine Beiträge mehr " +"abschicken und wird auch in Zukunft dieser Gruppe nicht mehr beitreten " +"können." #: actions/groupblock.php:178 msgid "Do not block this user from this group" @@ -1696,7 +1705,6 @@ msgstr "" "s." #: actions/grouplogo.php:181 -#, fuzzy msgid "User without matching profile." msgstr "Benutzer ohne passendes Profil" @@ -1718,9 +1726,9 @@ msgid "%s group members" msgstr "%s Gruppen-Mitglieder" #: actions/groupmembers.php:103 -#, fuzzy, php-format +#, php-format msgid "%1$s group members, page %2$d" -msgstr "%s Gruppen-Mitglieder, Seite %d" +msgstr "%1$s Gruppen-Mitglieder, Seite %2$d" #: actions/groupmembers.php:118 msgid "A list of the users in this group." @@ -1746,7 +1754,7 @@ msgstr "Zum Admin ernennen" msgid "Make this user an admin" msgstr "Diesen Benutzer zu einem Admin ernennen" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -1867,7 +1875,6 @@ msgstr "" "Freundesliste hinzugefügt?)" #: actions/imsettings.php:124 -#, fuzzy msgid "IM address" msgstr "IM-Adresse" @@ -2172,9 +2179,9 @@ msgid "Only an admin can make another user an admin." msgstr "Nur Administratoren können andere Nutzer zu Administratoren ernennen." #: actions/makeadmin.php:96 -#, fuzzy, php-format +#, php-format msgid "%1$s is already an admin for group \"%2$s\"." -msgstr "%s ist bereits ein Administrator der Gruppe „%s“." +msgstr "%1$s ist bereits Administrator der Gruppe \"%2$s\"." #: actions/makeadmin.php:133 #, fuzzy, php-format @@ -2182,37 +2189,33 @@ msgid "Can't get membership record for %1$s in group %2$s." msgstr "Konnte Benutzer %s aus der Gruppe %s nicht entfernen" #: actions/makeadmin.php:146 -#, fuzzy, php-format +#, php-format msgid "Can't make %1$s an admin for group %2$s." -msgstr "Konnte %s nicht zum Administrator der Gruppe %s machen" +msgstr "Konnte %1$s nicht zum Administrator der Gruppe %2$s machen" #: actions/microsummary.php:69 msgid "No current status" msgstr "Kein aktueller Status" #: actions/newapplication.php:52 -#, fuzzy msgid "New Application" -msgstr "Unbekannte Nachricht." +msgstr "Neues Programm" #: actions/newapplication.php:64 -#, fuzzy msgid "You must be logged in to register an application." -msgstr "Du musst angemeldet sein, um eine Gruppe zu erstellen." +msgstr "Du musst angemeldet sein, um ein Programm zu registrieren." #: actions/newapplication.php:143 -#, fuzzy msgid "Use this form to register a new application." -msgstr "Benutzer dieses Formular, um eine neue Gruppe zu erstellen." +msgstr "Benutzer dieses Formular, um eine neues Programm zu erstellen." #: actions/newapplication.php:176 msgid "Source URL is required." msgstr "Quell-URL ist erforderlich." #: actions/newapplication.php:258 actions/newapplication.php:267 -#, fuzzy msgid "Could not create application." -msgstr "Konnte keinen Favoriten erstellen." +msgstr "Konnte das Programm nicht erstellen." #: actions/newgroup.php:53 msgid "New group" @@ -2250,7 +2253,7 @@ msgid "Message sent" msgstr "Nachricht gesendet" #: actions/newmessage.php:185 -#, fuzzy, php-format +#, php-format msgid "Direct message to %s sent." msgstr "Direkte Nachricht an %s abgeschickt" @@ -2281,9 +2284,9 @@ msgid "Text search" msgstr "Volltextsuche" #: actions/noticesearch.php:91 -#, fuzzy, php-format +#, php-format msgid "Search results for \"%1$s\" on %2$s" -msgstr "Suchergebnisse für „%s“ auf %s" +msgstr "Suchergebnisse für \"%1$s\" auf %2$s" #: actions/noticesearch.php:121 #, php-format @@ -2300,6 +2303,9 @@ msgid "" "Why not [register an account](%%%%action.register%%%%) and be the first to " "[post on this topic](%%%%action.newnotice%%%%?status_textarea=%s)!" msgstr "" +"Warum [registrierst Du nicht einen Account](%%%%action.register%%%%) und " +"bist der erste der [auf diese Nachricht antwortet](%%%%action.newnotice%%%%?" +"status_textarea=%s)!" #: actions/noticesearchrss.php:96 #, php-format @@ -2350,6 +2356,8 @@ msgstr "Verbundene Programme" #: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." msgstr "" +"Du hast das folgende Programm die Erlaubnis erteilt sich mit deinem Profil " +"zu verbinden." #: actions/oauthconnectionssettings.php:175 msgid "You are not a user of that application." @@ -2363,10 +2371,12 @@ msgstr "Kann Zugang dieses Programm nicht entfernen: " #, php-format msgid "You have not authorized any applications to use your account." msgstr "" +"Du hast noch kein Programm die Erlaubnis gegeben dein Profil zu benutzen." #: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " msgstr "" +"Entwickler können die Registrierungseinstellungen ihrer Programme ändern " #: actions/oembed.php:79 actions/shownotice.php:100 msgid "Notice has no profile" @@ -2435,9 +2445,8 @@ msgid "No user ID specified." msgstr "Keine Benutzer ID angegeben" #: actions/otp.php:83 -#, fuzzy msgid "No login token specified." -msgstr "Kein Profil angegeben." +msgstr "Kein Zugangstoken angegeben." #: actions/otp.php:90 #, fuzzy @@ -2450,9 +2459,8 @@ msgid "Invalid login token specified." msgstr "Token ungültig oder abgelaufen." #: actions/otp.php:104 -#, fuzzy msgid "Login token expired." -msgstr "An Seite anmelden" +msgstr "Zugangstoken ist abgelaufen." #: actions/outbox.php:58 #, php-format @@ -2537,7 +2545,7 @@ msgstr "Pfad" #: actions/pathsadminpanel.php:70 msgid "Path and server settings for this StatusNet site." -msgstr "" +msgstr "Pfad- und Serverangaben für diese StatusNet Seite." #: actions/pathsadminpanel.php:157 #, php-format @@ -2557,7 +2565,7 @@ msgstr "Hintergrund Verzeichnis ist nicht beschreibbar: %s" #: actions/pathsadminpanel.php:177 #, php-format msgid "Locales directory not readable: %s" -msgstr "" +msgstr "Sprachverzeichnis nicht lesbar: %s" #: actions/pathsadminpanel.php:183 msgid "Invalid SSL server. The maximum length is 255 characters." @@ -2585,11 +2593,11 @@ msgstr "Seitenpfad" #: actions/pathsadminpanel.php:246 msgid "Path to locales" -msgstr "" +msgstr "Sprachverzeichnis" #: actions/pathsadminpanel.php:246 msgid "Directory path to locales" -msgstr "" +msgstr "Pfad zu den Sprachen" #: actions/pathsadminpanel.php:250 msgid "Fancy URLs" @@ -2915,6 +2923,11 @@ msgid "" "tool. [Join now](%%action.register%%) to share notices about yourself with " "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" +"Das ist %%site.name%%, ein [Mikroblogging](http://de.wikipedia.org/wiki/" +"Mikroblogging) Dienst auf Basis der freien Software [StatusNet](http://" +"status.net/). [Melde dich jetzt an](%%action.register%%) und tausche " +"Nachrichten mit deinen Freunden, Familie oder Kollegen aus! ([Mehr " +"Informationen](%%doc.help%%))" #: actions/public.php:247 #, php-format @@ -2953,6 +2966,8 @@ msgid "" "Why not [register an account](%%action.register%%) and be the first to post " "one!" msgstr "" +"Warum [registrierst Du nicht einen Account](%%%%action.register%%%%) und " +"bist der erste der eine Nachricht abschickt!" #: actions/publictagcloud.php:134 msgid "Tag cloud" @@ -2991,10 +3006,12 @@ 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 "" +"Wenn du dein Passwort vergessen hast kannst du dir ein neues an deine " +"hinterlegte Email schicken lassen." #: actions/recoverpassword.php:158 msgid "You have been identified. Enter a new password below. " -msgstr "" +msgstr "Du wurdest identifiziert. Gib ein neues Passwort ein. " #: actions/recoverpassword.php:188 msgid "Password recovery" @@ -3118,6 +3135,8 @@ msgid "" "With this form you can create a new account. You can then post notices and " "link up to friends and colleagues. " msgstr "" +"Hier kannst du einen neuen Zugang einrichten. Danach kannst du Nachrichten " +"und Links an deine Freunde und Kollegen schicken. " #: actions/register.php:425 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." @@ -3222,7 +3241,6 @@ msgid "Remote subscribe" msgstr "Entferntes Abonnement" #: actions/remotesubscribe.php:124 -#, fuzzy msgid "Subscribe to a remote user" msgstr "Abonniere diesen Benutzer" @@ -3315,12 +3333,12 @@ msgid "Replies feed for %s (Atom)" msgstr "Feed der Nachrichten von %s (Atom)" #: actions/replies.php:199 -#, fuzzy, php-format +#, 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 "" -"Dies ist die Zeitleiste für %s und Freunde aber bisher hat niemand etwas " +"Dies ist die Zeitleiste für %1$s und Freunde aber bisher hat niemand etwas " "gepostet." #: actions/replies.php:204 @@ -3365,9 +3383,8 @@ msgid "You cannot sandbox users on this site." msgstr "Du kannst diesem Benutzer keine Nachricht schicken." #: actions/sandbox.php:72 -#, fuzzy msgid "User is already sandboxed." -msgstr "Dieser Benutzer hat dich blockiert." +msgstr "Benutzer ist schon blockiert." #. TRANS: Menu item for site administration #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170 @@ -3376,9 +3393,8 @@ msgid "Sessions" msgstr "Sitzung" #: actions/sessionsadminpanel.php:65 -#, fuzzy msgid "Session settings for this StatusNet site." -msgstr "Design-Einstellungen für diese StatusNet-Website." +msgstr "Sitzungs-Einstellungen für diese StatusNet-Website." #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3386,15 +3402,15 @@ msgstr "Sitzung verwalten" #: actions/sessionsadminpanel.php:177 msgid "Whether to handle sessions ourselves." -msgstr "" +msgstr "Sitzungsverwaltung selber übernehmen." #: actions/sessionsadminpanel.php:181 msgid "Session debugging" -msgstr "" +msgstr "Sitzung untersuchen" #: actions/sessionsadminpanel.php:183 msgid "Turn on debugging output for sessions." -msgstr "" +msgstr "Fehleruntersuchung für Sitzungen aktivieren" #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292 #: actions/useradminpanel.php:294 @@ -3402,9 +3418,8 @@ msgid "Save site settings" msgstr "Site-Einstellungen speichern" #: actions/showapplication.php:82 -#, fuzzy msgid "You must be logged in to view an application." -msgstr "Du musst angemeldet sein, um aus einer Gruppe auszutreten." +msgstr "Du musst angemeldet sein, um aus dieses Programm zu betrachten." #: actions/showapplication.php:157 #, fuzzy @@ -3421,9 +3436,8 @@ msgid "Name" msgstr "Name" #: actions/showapplication.php:178 lib/applicationeditform.php:222 -#, fuzzy msgid "Organization" -msgstr "Seitenerstellung" +msgstr "Organisation" #: actions/showapplication.php:187 actions/version.php:198 #: lib/applicationeditform.php:209 lib/groupeditform.php:172 @@ -3438,19 +3452,19 @@ msgstr "Statistiken" #: actions/showapplication.php:203 #, php-format msgid "Created by %1$s - %2$s access by default - %3$d users" -msgstr "" +msgstr "Erstellt von %1$s - %2$s Standard Zugang - %3$d Benutzer" #: actions/showapplication.php:213 msgid "Application actions" -msgstr "" +msgstr "Programmaktionen" #: actions/showapplication.php:236 msgid "Reset key & secret" -msgstr "" +msgstr "Schlüssel zurücksetzen" #: actions/showapplication.php:261 msgid "Application info" -msgstr "" +msgstr "Programminformation" #: actions/showapplication.php:263 msgid "Consumer key" @@ -3462,32 +3476,32 @@ msgstr "" #: actions/showapplication.php:273 msgid "Request token URL" -msgstr "" +msgstr "Anfrage-Token Adresse" #: actions/showapplication.php:278 msgid "Access token URL" -msgstr "" +msgstr "Zugriffs-Token Adresse" #: actions/showapplication.php:283 -#, fuzzy msgid "Authorize URL" -msgstr "Autor" +msgstr "Autorisationadresse" #: actions/showapplication.php:288 msgid "" "Note: We support HMAC-SHA1 signatures. We do not support the plaintext " "signature method." msgstr "" +"Hinweis: Wir unterstützen HMAC-SHA1 Signaturen. Wir unterstützen keine " +"Klartext Signaturen." #: actions/showapplication.php:309 -#, fuzzy msgid "Are you sure you want to reset your consumer key and secret?" -msgstr "Bist du sicher, dass du diese Nachricht löschen möchtest?" +msgstr "Bist du sicher, dass du den Schlüssel zurücksetzen willst?" #: actions/showfavorites.php:79 -#, fuzzy, php-format +#, php-format msgid "%1$s's favorite notices, page %2$d" -msgstr "%ss favorisierte Nachrichten" +msgstr "%1$ss favorisierte Nachrichten, Seite %2$d" #: actions/showfavorites.php:132 msgid "Could not retrieve favorite notices." @@ -3539,9 +3553,9 @@ msgid "%s group" msgstr "%s Gruppe" #: actions/showgroup.php:84 -#, fuzzy, php-format +#, php-format msgid "%1$s group, page %2$d" -msgstr "%s Gruppen-Mitglieder, Seite %d" +msgstr "%1$s Gruppe, Seite %d" #: actions/showgroup.php:226 msgid "Group profile" @@ -3559,7 +3573,7 @@ msgstr "Nachricht" #: actions/showgroup.php:292 lib/groupeditform.php:184 msgid "Aliases" -msgstr "" +msgstr "Pseudonyme" #: actions/showgroup.php:301 msgid "Group actions" @@ -3658,14 +3672,14 @@ msgid " tagged %s" msgstr "Nachrichten, die mit %s getagt sind" #: actions/showstream.php:79 -#, fuzzy, php-format +#, php-format msgid "%1$s, page %2$d" -msgstr "%s blockierte Benutzerprofile, Seite %d" +msgstr "%1$s, Seite %2$d" #: actions/showstream.php:122 -#, fuzzy, php-format +#, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" -msgstr "Nachrichtenfeed der Gruppe %s" +msgstr "Nachrichtenfeed für %1$s tagged %2$s (RSS 1.0)" #: actions/showstream.php:129 #, php-format @@ -3688,10 +3702,10 @@ msgid "FOAF for %s" msgstr "FOAF von %s" #: actions/showstream.php:200 -#, fuzzy, php-format +#, php-format msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet." msgstr "" -"Dies ist die Zeitleiste für %s und Freunde aber bisher hat niemand etwas " +"Dies ist die Zeitleiste für %1$s und Freunde aber bisher hat niemand etwas " "gepostet." #: actions/showstream.php:205 @@ -3699,16 +3713,17 @@ msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" +"In letzter Zeit irgendwas interessantes erlebt? Du hast noch nichts " +"geschrieben, jetzt wäre doch ein guter Zeitpunkt los zu legen :)" #: actions/showstream.php:207 -#, fuzzy, php-format +#, php-format msgid "" "You can try to nudge %1$s or [post something to his or her attention](%%%%" "action.newnotice%%%%?status_textarea=%2$s)." msgstr "" -"Du kannst [%s in seinem Profil einen Stups geben](../%s) oder [ihm etwas " -"posten](%%%%action.newnotice%%%%?status_textarea=%s) um seine Aufmerksamkeit " -"zu erregen." +"Du kannst %1$s in seinem Profil einen Stups geben oder [ihm etwas posten](%%%" +"%action.newnotice%%%%?status_textarea=%s) um seine Aufmerksamkeit zu erregen." #: actions/showstream.php:243 #, php-format @@ -3744,7 +3759,6 @@ msgid "User is already silenced." msgstr "Nutzer ist bereits ruhig gestellt." #: actions/siteadminpanel.php:69 -#, fuzzy msgid "Basic settings for this StatusNet site" msgstr "Grundeinstellungen für diese StatusNet Seite." @@ -3767,7 +3781,7 @@ msgstr "Minimale Textlänge ist 140 Zeichen." #: actions/siteadminpanel.php:171 msgid "Dupe limit must 1 or more seconds." -msgstr "" +msgstr "Duplikatlimit muss mehr als 1 Sekunde sein" #: actions/siteadminpanel.php:221 msgid "General" @@ -3783,19 +3797,21 @@ msgstr "Der Name deiner Seite, sowas wie \"DeinUnternehmen Mircoblog\"" #: actions/siteadminpanel.php:229 msgid "Brought by" -msgstr "" +msgstr "Erstellt von" #: actions/siteadminpanel.php:230 msgid "Text used for credits link in footer of each page" msgstr "" +"Text der für den Credit-Link im Fußbereich auf jeder Seite benutzt wird" #: actions/siteadminpanel.php:234 msgid "Brought by URL" -msgstr "" +msgstr "Erstellt von Adresse" #: actions/siteadminpanel.php:235 msgid "URL used for credits link in footer of each page" msgstr "" +"Adresse die für den Credit-Link im Fußbereich auf jeder Seite benutzt wird" #: actions/siteadminpanel.php:239 msgid "Contact email address for your site" @@ -3869,9 +3885,8 @@ msgid "Site-wide notice text (255 chars max; HTML okay)" msgstr "Systembenachrichtigung (max. 255 Zeichen; HTML erlaubt)" #: actions/sitenoticeadminpanel.php:198 -#, fuzzy msgid "Save site notice" -msgstr "Seitennachricht" +msgstr "Systemnachricht speichern" #: actions/smssettings.php:58 msgid "SMS settings" @@ -4010,7 +4025,7 @@ msgstr "" #: actions/snapshotadminpanel.php:208 msgid "When to send statistical data to status.net servers" -msgstr "" +msgstr "Wann sollen Statistiken zum status.net Server geschickt werden" #: actions/snapshotadminpanel.php:217 msgid "Frequency" @@ -4162,9 +4177,8 @@ msgid "Notice feed for tag %s (Atom)" msgstr "Nachrichten Feed für Tag %s (Atom)" #: actions/tagother.php:39 -#, fuzzy msgid "No ID argument." -msgstr "Kein id Argument." +msgstr "Kein ID Argument." #: actions/tagother.php:65 #, php-format @@ -4222,9 +4236,8 @@ msgid "You haven't blocked that user." msgstr "Du hast diesen Benutzer nicht blockiert." #: actions/unsandbox.php:72 -#, fuzzy msgid "User is not sandboxed." -msgstr "Dieser Benutzer hat dich blockiert." +msgstr "Benutzer ist nicht blockiert." #: actions/unsilence.php:72 msgid "User is not silenced." @@ -4239,12 +4252,12 @@ msgid "Unsubscribed" msgstr "Abbestellt" #: actions/updateprofile.php:64 actions/userauthorization.php:337 -#, fuzzy, php-format +#, php-format msgid "" "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’." msgstr "" -"Die Nachrichtenlizenz '%s' ist nicht kompatibel mit der Lizenz der Seite '%" -"s'." +"Die Benutzerlizenz ‘%1$s’ ist nicht kompatibel mit der Lizenz der Seite ‘%2" +"$s’." #. TRANS: User admin panel title #: actions/useradminpanel.php:59 @@ -4372,14 +4385,13 @@ msgid "Subscription rejected" msgstr "Abonnement abgelehnt" #: actions/userauthorization.php:268 -#, fuzzy msgid "" "The subscription has been rejected, but no callback URL was passed. Check " "with the site’s instructions for details on how to fully reject the " "subscription." msgstr "" "Das Abonnement wurde abgelehnt, aber es wurde keine Callback-URL " -"zurückgegeben. Lies nochmal die Anweisungen der Site, wie Abonnements " +"zurückgegeben. Lies nochmal die Anweisungen der Seite, wie Abonnements " "vollständig abgelehnt werden. Dein Abonnement-Token ist:" #: actions/userauthorization.php:303 @@ -4453,7 +4465,7 @@ msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" "Versuche [Gruppen zu finden](%%action.groupsearch%%) und diesen beizutreten." -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -4631,14 +4643,12 @@ msgid "Not subscribed!" msgstr "Nicht abonniert!" #: classes/Subscription.php:163 -#, fuzzy msgid "Couldn't delete self-subscription." msgstr "Konnte Abonnement nicht löschen." #: classes/Subscription.php:190 -#, fuzzy msgid "Couldn't delete subscription OMB token." -msgstr "Konnte Abonnement nicht löschen." +msgstr "Konnte OMB-Abonnement nicht löschen." #: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." @@ -4727,10 +4737,9 @@ msgstr "Ändere deine E-Mail, Avatar, Passwort und Profil" #. TRANS: Tooltip for main menu option "Services" #: lib/action.php:440 -#, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" -msgstr "Konnte nicht zum Server umleiten: %s" +msgstr "Zum Dienst verbinden" #: lib/action.php:443 msgid "Connect" @@ -4738,10 +4747,9 @@ msgstr "Verbinden" #. TRANS: Tooltip for menu option "Admin" #: lib/action.php:446 -#, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" -msgstr "Hauptnavigation" +msgstr "Seiteneinstellung ändern" #: lib/action.php:449 msgctxt "MENU" @@ -4862,9 +4870,8 @@ msgid "Contact" msgstr "Kontakt" #: lib/action.php:771 -#, fuzzy msgid "Badge" -msgstr "Stups" +msgstr "Plakette" #: lib/action.php:799 msgid "StatusNet software license" @@ -4947,9 +4954,8 @@ msgstr "" #. TRANS: Client error message #: lib/adminpanelaction.php:98 -#, fuzzy msgid "You cannot make changes to this site." -msgstr "Du kannst diesem Benutzer keine Nachricht schicken." +msgstr "Du kannst keine Änderungen an dieser Seite vornehmen." #. TRANS: Client error message #: lib/adminpanelaction.php:110 @@ -4985,9 +4991,8 @@ msgstr "Seite" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:356 -#, fuzzy msgid "Design configuration" -msgstr "SMS-Konfiguration" +msgstr "Motiv-Konfiguration" #. TRANS: Menu item for site administration #: lib/adminpanelaction.php:358 @@ -5007,15 +5012,13 @@ msgstr "Benutzer" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:372 -#, fuzzy msgid "Access configuration" -msgstr "SMS-Konfiguration" +msgstr "Zugangskonfiguration" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:380 -#, fuzzy msgid "Paths configuration" -msgstr "SMS-Konfiguration" +msgstr "Pfadkonfiguration" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:388 @@ -5024,9 +5027,8 @@ msgstr "Sitzungseinstellungen" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:396 -#, fuzzy msgid "Edit site notice" -msgstr "Seitennachricht" +msgstr "Seitennachricht bearbeiten" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:404 @@ -5057,19 +5059,16 @@ msgid "Describe your application in %d characters" msgstr "Beschreibe die Gruppe oder das Thema in 140 Zeichen" #: lib/applicationeditform.php:207 -#, fuzzy msgid "Describe your application" -msgstr "Beschreibe die Gruppe oder das Thema in 140 Zeichen" +msgstr "Beschreibe dein Programm" #: lib/applicationeditform.php:216 -#, fuzzy msgid "Source URL" -msgstr "Quellcode" +msgstr "Quelladresse" #: lib/applicationeditform.php:218 -#, fuzzy msgid "URL of the homepage of this application" -msgstr "URL der Homepage oder Blogs der Gruppe oder des Themas" +msgstr "Adresse der Homepage dieses Programms" #: lib/applicationeditform.php:224 msgid "Organization responsible for this application" @@ -5090,11 +5089,11 @@ msgstr "Browser" #: lib/applicationeditform.php:274 msgid "Desktop" -msgstr "" +msgstr "Arbeitsfläche" #: lib/applicationeditform.php:275 msgid "Type of application, browser or desktop" -msgstr "" +msgstr "Typ der Anwendung, Browser oder Arbeitsfläche" #: lib/applicationeditform.php:297 msgid "Read-only" @@ -5107,9 +5106,10 @@ msgstr "Lese/Schreibzugriff" #: lib/applicationeditform.php:316 msgid "Default access for this application: read-only, or read-write" msgstr "" +"Standardeinstellung dieses Programms: Schreibgeschützt oder Lese/" +"Schreibzugriff" #: lib/applicationlist.php:154 -#, fuzzy msgid "Revoke" msgstr "Entfernen" @@ -5138,9 +5138,8 @@ msgid "Password changing failed" msgstr "Passwort konnte nicht geändert werden" #: lib/authenticationplugin.php:235 -#, fuzzy msgid "Password changing is not allowed" -msgstr "Passwort geändert" +msgstr "Passwort kann nicht geändert werden" #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" @@ -5165,12 +5164,12 @@ msgstr "Die bestätigte E-Mail-Adresse konnte nicht gespeichert werden." #: lib/command.php:92 msgid "It does not make a lot of sense to nudge yourself!" -msgstr "" +msgstr "Es macht keinen Sinn dich selbst anzustupsen!" #: lib/command.php:99 -#, fuzzy, php-format +#, php-format msgid "Nudge sent to %s" -msgstr "Stups abgeschickt" +msgstr "Stups an %s geschickt" #: lib/command.php:126 #, php-format @@ -5225,12 +5224,12 @@ msgstr "%s hat die Gruppe %s verlassen" msgid "Fullname: %s" msgstr "Vollständiger Name: %s" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Standort: %s" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Homepage: %s" @@ -5263,19 +5262,18 @@ msgid "Already repeated that notice" msgstr "Nachricht bereits wiederholt" #: lib/command.php:426 -#, fuzzy, php-format +#, php-format msgid "Notice from %s repeated" -msgstr "Nachricht hinzugefügt" +msgstr "Nachricht von %s wiederholt" #: lib/command.php:428 -#, fuzzy msgid "Error repeating notice." -msgstr "Problem beim Speichern der Nachricht." +msgstr "Fehler beim Wiederholen der Nachricht" #: lib/command.php:482 -#, fuzzy, php-format +#, php-format msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "Nachricht zu lange - maximal 140 Zeichen erlaubt, du hast %s gesendet" +msgstr "Nachricht zu lange - maximal %d Zeichen erlaubt, du hast %d gesendet" #: lib/command.php:491 #, php-format @@ -5330,12 +5328,12 @@ msgstr "Konnte Benachrichtigung nicht aktivieren." #: lib/command.php:654 msgid "Login command is disabled" -msgstr "" +msgstr "Anmeldung ist abgeschaltet" #: lib/command.php:665 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" -msgstr "" +msgstr "Der Link ist nur einmal benutzbar und für eine Dauer von 2 Minuten: %s" #: lib/command.php:692 #, php-format @@ -5343,9 +5341,8 @@ msgid "Unsubscribed %s" msgstr "%s nicht mehr abonniert" #: lib/command.php:709 -#, fuzzy msgid "You are not subscribed to anyone." -msgstr "Du hast dieses Profil nicht abonniert." +msgstr "Du hast niemanden abonniert." #: lib/command.php:711 msgid "You are subscribed to this person:" @@ -5425,12 +5422,11 @@ msgstr "Ich habe an folgenden Stellen nach Konfigurationsdateien gesucht: " #: lib/common.php:151 msgid "You may wish to run the installer to fix this." -msgstr "" +msgstr "Bitte die Installation erneut starten um das Problem zu beheben." #: lib/common.php:152 -#, fuzzy msgid "Go to the installer." -msgstr "Auf der Seite anmelden" +msgstr "Zur Installation gehen." #: lib/connectsettingsaction.php:110 msgid "IM" @@ -5445,13 +5441,12 @@ msgid "Updates by SMS" msgstr "Aktualisierungen via SMS" #: lib/connectsettingsaction.php:120 -#, fuzzy msgid "Connections" -msgstr "Verbinden" +msgstr "Verbindungen" #: lib/connectsettingsaction.php:121 msgid "Authorized connected applications" -msgstr "" +msgstr "Programme mit Zugriffserlaubnis" #: lib/dberroraction.php:60 msgid "Database error" @@ -5473,12 +5468,10 @@ msgid "Design defaults restored." msgstr "Standard Design wieder hergestellt." #: lib/disfavorform.php:114 lib/disfavorform.php:140 -#, fuzzy msgid "Disfavor this notice" msgstr "Aus Favoriten entfernen" #: lib/favorform.php:114 lib/favorform.php:140 -#, fuzzy msgid "Favor this notice" msgstr "Zu den Favoriten hinzufügen" @@ -5515,16 +5508,14 @@ msgid "All" msgstr "Alle" #: lib/galleryaction.php:139 -#, fuzzy msgid "Select tag to filter" -msgstr "Wähle einen Netzanbieter" +msgstr "Wähle ein Stichwort, um die Liste einzuschränken" #: lib/galleryaction.php:140 msgid "Tag" msgstr "Stichwort" #: lib/galleryaction.php:141 -#, fuzzy msgid "Choose a tag to narrow list" msgstr "Wähle ein Stichwort, um die Liste einzuschränken" @@ -5535,22 +5526,20 @@ msgstr "Los geht's" #: lib/grantroleform.php:91 #, php-format msgid "Grant this user the \"%s\" role" -msgstr "" +msgstr "Teile dem Benutzer die \"%s\" Rolle zu" #: lib/groupeditform.php:163 -#, fuzzy msgid "URL of the homepage or blog of the group or topic" -msgstr "URL der Homepage oder Blogs der Gruppe oder des Themas" +msgstr "Adresse der Homepage oder Blogs der Gruppe oder des Themas" #: lib/groupeditform.php:168 -#, fuzzy msgid "Describe the group or topic" -msgstr "Beschreibe die Gruppe oder das Thema in 140 Zeichen" +msgstr "Beschreibe die Gruppe oder das Thema" #: lib/groupeditform.php:170 -#, fuzzy, php-format +#, php-format msgid "Describe the group or topic in %d characters" -msgstr "Beschreibe die Gruppe oder das Thema in 140 Zeichen" +msgstr "Beschreibe die Gruppe oder das Thema in %d Zeichen" #: lib/groupeditform.php:179 msgid "" @@ -5675,11 +5664,11 @@ msgstr "Mit Nutzernamen und Passwort anmelden" msgid "Sign up for a new account" msgstr "Registriere ein neues Nutzerkonto" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "Bestätigung der E-Mail-Adresse" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5709,12 +5698,12 @@ msgstr "" "Vielen Dank!\n" "%s\n" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s hat deine Nachrichten auf %2$s abonniert." -#: lib/mail.php:241 +#: lib/mail.php:245 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5740,17 +5729,17 @@ msgstr "" "Du kannst Deine E-Mail-Adresse und die Benachrichtigungseinstellungen auf %8" "$s ändern.\n" -#: lib/mail.php:258 +#: lib/mail.php:262 #, php-format msgid "Bio: %s" msgstr "Biografie: %s" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "Neue E-Mail-Adresse um auf %s zu schreiben" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5771,21 +5760,21 @@ msgstr "" "Viele Grüße,\n" "%4$s" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "%s Status" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "SMS-Konfiguration" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "Du wurdest von %s angestupst" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5812,12 +5801,12 @@ msgstr "" "Mit freundlichen Grüßen,\n" "%4$s\n" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "Neue private Nachricht von %s" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5850,12 +5839,12 @@ msgstr "" "Mit freundlichen Grüßen,\n" "%5$s\n" -#: lib/mail.php:559 +#: lib/mail.php:568 #, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "%s (@%s) hat deine Nachricht als Favorit gespeichert" -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5876,12 +5865,13 @@ msgid "" "%6$s\n" msgstr "" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "" +"%s (@%s) hat dir eine Nachricht gesendet um deine Aufmerksamkeit zu erlangen" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -5972,11 +5962,11 @@ msgstr "Upload der Datei wurde wegen der Dateiendung gestoppt." #: lib/mediafile.php:179 lib/mediafile.php:216 msgid "File exceeds user's quota." -msgstr "" +msgstr "Dateigröße liegt über dem Benutzerlimit" #: lib/mediafile.php:196 lib/mediafile.php:233 msgid "File could not be moved to destination directory." -msgstr "" +msgstr "Datei konnte nicht in das Zielverzeichnis verschoben werden." #: lib/mediafile.php:201 lib/mediafile.php:237 #, fuzzy @@ -5986,12 +5976,12 @@ msgstr "Konnte öffentlichen Stream nicht abrufen." #: lib/mediafile.php:270 #, php-format msgid " Try using another %s format." -msgstr "" +msgstr "Versuche ein anderes %s Format." #: lib/mediafile.php:275 #, php-format msgid "%s is not a supported file type on this server." -msgstr "" +msgstr "%s ist kein unterstütztes Dateiformat auf diesem Server." #: lib/messageform.php:120 msgid "Send a direct notice" @@ -6040,6 +6030,8 @@ msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" msgstr "" +"Es tut uns Leid, aber die Abfrage deiner GPS Position hat zu lange gedauert. " +"Bitte versuche es später wieder." #: lib/noticelist.php:429 #, php-format @@ -6111,9 +6103,8 @@ msgid "Error inserting remote profile" msgstr "Fehler beim Einfügen des entfernten Profils" #: lib/oauthstore.php:345 -#, fuzzy msgid "Duplicate notice" -msgstr "Notiz löschen" +msgstr "Doppelte Nachricht" #: lib/oauthstore.php:490 msgid "Couldn't insert new subscription." @@ -6153,7 +6144,6 @@ msgid "Tags in %s's notices" msgstr "Stichworte in %ss Nachrichten" #: lib/plugin.php:114 -#, fuzzy msgid "Unknown" msgstr "Unbekannter Befehl" @@ -6192,7 +6182,7 @@ msgstr "Kein id Argument." #: lib/profileformaction.php:137 msgid "Unimplemented method." -msgstr "" +msgstr "Nicht unterstützte Methode." #: lib/publicgroupnav.php:78 msgid "Public" @@ -6245,16 +6235,15 @@ msgstr "Site durchsuchen" #: lib/searchaction.php:126 msgid "Keyword(s)" -msgstr "" +msgstr "Stichwort/Stichwörter" #: lib/searchaction.php:127 msgid "Search" msgstr "Suchen" #: lib/searchaction.php:162 -#, fuzzy msgid "Search help" -msgstr "Suchen" +msgstr "Hilfe suchen" #: lib/searchgroupnav.php:80 msgid "People" @@ -6278,7 +6267,7 @@ msgstr "Abschnitt ohne Titel" #: lib/section.php:106 msgid "More..." -msgstr "" +msgstr "Mehr..." #: lib/silenceform.php:67 msgid "Silence" @@ -6383,21 +6372,18 @@ msgid "Moderate" msgstr "Moderieren" #: lib/userprofile.php:352 -#, fuzzy msgid "User role" -msgstr "Benutzerprofil" +msgstr "Benutzerrolle" #: lib/userprofile.php:354 -#, fuzzy msgctxt "role" msgid "Administrator" -msgstr "Administratoren" +msgstr "Administrator" #: lib/userprofile.php:355 -#, fuzzy msgctxt "role" msgid "Moderator" -msgstr "Moderieren" +msgstr "Moderator" #: lib/util.php:1015 msgid "a few seconds ago" diff --git a/locale/el/LC_MESSAGES/statusnet.po b/locale/el/LC_MESSAGES/statusnet.po index 34c193e29..0ebe84fe7 100644 --- a/locale/el/LC_MESSAGES/statusnet.po +++ b/locale/el/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:35:20+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:49:37+0000\n" "Language-Team: Greek\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: el\n" "X-Message-Group: out-statusnet\n" @@ -105,7 +105,7 @@ msgstr "Δεν υπάρχει τέτοια σελίδα" #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -695,7 +695,7 @@ msgstr "" msgid "Notices tagged with %s" msgstr "" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "" @@ -735,7 +735,7 @@ msgstr "" #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "" @@ -1748,7 +1748,7 @@ msgstr "Διαχειριστής" msgid "Make this user an admin" msgstr "" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -4349,7 +4349,7 @@ msgstr "" msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -5119,12 +5119,12 @@ msgstr "ομάδες των χρηστών %s" msgid "Fullname: %s" msgstr "Ονοματεπώνυμο" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "" @@ -5565,11 +5565,11 @@ msgstr "Σύνδεση με όνομα χρήστη και κωδικό" msgid "Sign up for a new account" msgstr "Εγγραφή για ένα νέο λογαριασμό" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "Επιβεβαίωση διεύθυνσης email" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5586,12 +5586,12 @@ msgid "" "%s\n" msgstr "" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "" -#: lib/mail.php:241 +#: lib/mail.php:245 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5606,19 +5606,19 @@ msgid "" "Change your email address or notification options at %8$s\n" msgstr "" -#: lib/mail.php:258 +#: lib/mail.php:262 #, fuzzy, php-format msgid "Bio: %s" msgstr "" "Βιογραφικό: %s\n" "\n" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5631,21 +5631,21 @@ msgid "" "%4$s" msgstr "" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "Κατάσταση του/της %s" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5661,12 +5661,12 @@ msgid "" "%4$s\n" msgstr "" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5685,12 +5685,12 @@ msgid "" "%5$s\n" msgstr "" -#: lib/mail.php:559 +#: lib/mail.php:568 #, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "" -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5711,12 +5711,12 @@ msgid "" "%6$s\n" msgstr "" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/en_GB/LC_MESSAGES/statusnet.po b/locale/en_GB/LC_MESSAGES/statusnet.po index d5bb03f3e..8d846c4e2 100644 --- a/locale/en_GB/LC_MESSAGES/statusnet.po +++ b/locale/en_GB/LC_MESSAGES/statusnet.po @@ -2,6 +2,7 @@ # # Author@translatewiki.net: Bruce89 # Author@translatewiki.net: CiaranG +# Author@translatewiki.net: Reedy # -- # 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-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:35:23+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:49:40+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 (r63298); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: en-gb\n" "X-Message-Group: out-statusnet\n" @@ -103,7 +104,7 @@ msgstr "No such page" #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -697,7 +698,7 @@ msgstr "Repeats of %s" msgid "Notices tagged with %s" msgstr "Notices tagged with %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Updates tagged with %1$s on %2$s!" @@ -737,7 +738,7 @@ msgstr "You can upload your personal avatar. The maximum file size is %s." #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "User without matching profile" @@ -1734,7 +1735,7 @@ msgstr "Make admin" msgid "Make this user an admin" msgstr "Make this user an admin" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -4366,6 +4367,8 @@ msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." msgstr "" +"Customise the way your profile looks with a background image and a colour " +"palette of your choice." #: actions/userdesignsettings.php:282 msgid "Enjoy your hotdog!" @@ -4390,7 +4393,7 @@ msgstr "%s is not a member of any group." msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -5162,12 +5165,12 @@ msgstr "%s left group %s" msgid "Fullname: %s" msgstr "Fullname: %s" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Location: %s" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Homepage: %s" @@ -5601,11 +5604,11 @@ msgstr "Login with a username and password" msgid "Sign up for a new account" msgstr "Sign up for a new account" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "E-mail address confirmation" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5622,12 +5625,12 @@ msgid "" "%s\n" msgstr "" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s is now listening to your notices on %2$s." -#: lib/mail.php:241 +#: lib/mail.php:245 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5652,17 +5655,17 @@ msgstr "" "----\n" "Change your email address or notification options at %8$s\n" -#: lib/mail.php:258 +#: lib/mail.php:262 #, php-format msgid "Bio: %s" msgstr "Bio: %s" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "New e-mail address for posting to %s" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5683,21 +5686,21 @@ msgstr "" "Faithfully yours,\n" "%4$s" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "%s status" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "SMS confirmation" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "You've been nudged by %s" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5713,12 +5716,12 @@ msgid "" "%4$s\n" msgstr "" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "New private message from %s" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5737,12 +5740,12 @@ msgid "" "%5$s\n" msgstr "" -#: lib/mail.php:559 +#: lib/mail.php:568 #, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "%s (@%s) added your notice as a favorite" -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5763,12 +5766,12 @@ msgid "" "%6$s\n" msgstr "" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/es/LC_MESSAGES/statusnet.po b/locale/es/LC_MESSAGES/statusnet.po index 04e49bc11..cdc0184e4 100644 --- a/locale/es/LC_MESSAGES/statusnet.po +++ b/locale/es/LC_MESSAGES/statusnet.po @@ -13,12 +13,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:35:26+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:49:43+0000\n" "Language-Team: Spanish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: es\n" "X-Message-Group: out-statusnet\n" @@ -107,7 +107,7 @@ msgstr "No existe tal página" #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -707,7 +707,7 @@ msgstr "Repeticiones de %s" msgid "Notices tagged with %s" msgstr "Avisos marcados con %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Actualizaciones etiquetadas con %1$s en %2$s!" @@ -747,7 +747,7 @@ msgstr "Puedes subir tu imagen personal. El tamaño máximo de archivo es %s." #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "Usuario sin perfil equivalente" @@ -1753,7 +1753,7 @@ msgstr "Convertir en administrador" msgid "Make this user an admin" msgstr "Convertir a este usuario en administrador" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -4443,7 +4443,7 @@ msgstr "No eres miembro de ese grupo" msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -5230,12 +5230,12 @@ msgstr "%s dejó grupo %s" msgid "Fullname: %s" msgstr "Nombre completo: %s" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Lugar: %s" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Página de inicio: %s" @@ -5677,11 +5677,11 @@ msgstr "Ingresar con un nombre de usuario y contraseña." msgid "Sign up for a new account" msgstr "Registrarse para una nueva cuenta" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "Confirmación de correo electrónico" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5698,12 +5698,12 @@ msgid "" "%s\n" msgstr "" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s ahora está escuchando tus avisos en %2$s" -#: lib/mail.php:241 +#: lib/mail.php:245 #, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5724,19 +5724,19 @@ msgstr "" "Atentamente,\n" "%4$s.\n" -#: lib/mail.php:258 +#: lib/mail.php:262 #, fuzzy, php-format msgid "Bio: %s" msgstr "" "Bio: %s\n" "\n" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "Nueva dirección de correo para postear a %s" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5757,21 +5757,21 @@ msgstr "" "Attentamente, \n" "%4$s" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "estado de %s" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "SMS confirmación" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "%s te mandó un zumbido " -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5787,12 +5787,12 @@ msgid "" "%4$s\n" msgstr "" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "Nuevo mensaje privado de %s" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5811,12 +5811,12 @@ msgid "" "%5$s\n" msgstr "" -#: lib/mail.php:559 +#: lib/mail.php:568 #, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "%s (@%s) agregó tu aviso como un favorito" -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5837,12 +5837,12 @@ msgid "" "%6$s\n" msgstr "" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/fa/LC_MESSAGES/statusnet.po b/locale/fa/LC_MESSAGES/statusnet.po index 8e2a72d04..955efd243 100644 --- a/locale/fa/LC_MESSAGES/statusnet.po +++ b/locale/fa/LC_MESSAGES/statusnet.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:35:32+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:49:48+0000\n" "Last-Translator: Ahmad Sufi Mahmudi\n" "Language-Team: Persian\n" "MIME-Version: 1.0\n" @@ -20,7 +20,7 @@ msgstr "" "X-Language-Code: fa\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" #. TRANS: Page title @@ -109,7 +109,7 @@ msgstr "چنین صفحه‌ای وجود ندارد" #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -699,7 +699,7 @@ msgstr "تکرار %s" msgid "Notices tagged with %s" msgstr "پیام‌هایی که با %s نشانه گزاری شده اند." -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "پیام‌های نشانه گزاری شده با %1$s در %2$s" @@ -740,7 +740,7 @@ msgstr "" #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "کاربر بدون مشخصات" @@ -1750,7 +1750,7 @@ msgstr "مدیر شود" msgid "Make this user an admin" msgstr "این کاربر یک مدیر شود" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -4352,7 +4352,7 @@ msgstr "" msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -5126,12 +5126,12 @@ msgstr "%s گروه %s را ترک کرد." msgid "Fullname: %s" msgstr "نام کامل : %s" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "موقعیت : %s" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "صفحه خانگی : %s" @@ -5567,11 +5567,11 @@ msgstr "وارد شدن با یک نام کاربری و کلمه ی عبور" msgid "Sign up for a new account" msgstr "عضویت برای حساب کاربری جدید" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "تاییدیه ی آدرس ایمیل" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5588,12 +5588,12 @@ msgid "" "%s\n" msgstr "" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%2$s از حالا به خبر های شما گوش میده %1$s" -#: lib/mail.php:241 +#: lib/mail.php:245 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5608,17 +5608,17 @@ msgid "" "Change your email address or notification options at %8$s\n" msgstr "" -#: lib/mail.php:258 +#: lib/mail.php:262 #, fuzzy, php-format msgid "Bio: %s" msgstr "موقعیت : %s" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "%s ادرس ایمیل جدید برای" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5637,21 +5637,21 @@ msgstr "" ", ازروی وفاداری خود شما \n" "%4$s" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "وضعیت %s" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "تایید پیامک" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5667,12 +5667,12 @@ msgid "" "%4$s\n" msgstr "" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5691,12 +5691,12 @@ msgid "" "%5$s\n" msgstr "" -#: lib/mail.php:559 +#: lib/mail.php:568 #, php-format msgid "%s (@%s) added your notice as a favorite" msgstr " خبر شما را به علایق خود اضافه کرد %s (@%s)" -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5717,12 +5717,12 @@ msgid "" "%6$s\n" msgstr "" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "به توجه شما یک خبر فرستاده شده %s (@%s)" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/fi/LC_MESSAGES/statusnet.po b/locale/fi/LC_MESSAGES/statusnet.po index dc707ff1b..68a63537b 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-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:35:29+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:49:46+0000\n" "Language-Team: Finnish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fi\n" "X-Message-Group: out-statusnet\n" @@ -110,7 +110,7 @@ msgstr "Sivua ei ole." #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -717,7 +717,7 @@ msgstr "Vastaukset käyttäjälle %s" msgid "Notices tagged with %s" msgstr "Päivitykset joilla on tagi %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Käyttäjän %1$s päivitykset palvelussa %2$s!" @@ -757,7 +757,7 @@ msgstr "Voit ladata oman profiilikuvasi. Maksimikoko on %s." #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "Käyttäjälle ei löydy profiilia" @@ -1782,7 +1782,7 @@ msgstr "Tee ylläpitäjäksi" msgid "Make this user an admin" msgstr "Tee tästä käyttäjästä ylläpitäjä" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -4520,7 +4520,7 @@ msgstr "Sinä et kuulu tähän ryhmään." msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -5318,12 +5318,12 @@ msgstr "%s erosi ryhmästä %s" msgid "Fullname: %s" msgstr "Koko nimi: %s" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Kotipaikka: %s" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Kotisivu: %s" @@ -5772,11 +5772,11 @@ msgstr "Kirjaudu sisään käyttäjätunnuksella ja salasanalla" msgid "Sign up for a new account" msgstr "Luo uusi käyttäjätili" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "Sähköpostiosoitteen vahvistus" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5793,12 +5793,12 @@ msgid "" "%s\n" msgstr "" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s seuraa nyt päivityksiäsi palvelussa %2$s." -#: lib/mail.php:241 +#: lib/mail.php:245 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5823,19 +5823,19 @@ msgstr "" "----\n" "Voit vaihtaa sähköpostiosoitetta tai ilmoitusasetuksiasi %8$s\n" -#: lib/mail.php:258 +#: lib/mail.php:262 #, fuzzy, php-format msgid "Bio: %s" msgstr "" "Tietoja: %s\n" "\n" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "Uusi sähköpostiosoite päivityksien lähettämiseen palveluun %s" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5856,21 +5856,21 @@ msgstr "" "Terveisin,\n" "%4$s" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "%s päivitys" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "SMS vahvistus" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "%s tönäisi sinua" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5886,12 +5886,12 @@ msgid "" "%4$s\n" msgstr "" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "Uusi yksityisviesti käyttäjältä %s" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5910,12 +5910,12 @@ msgid "" "%5$s\n" msgstr "" -#: lib/mail.php:559 +#: lib/mail.php:568 #, fuzzy, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "%s lisäsi päivityksesi suosikkeihinsa" -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5936,12 +5936,12 @@ msgid "" "%6$s\n" msgstr "" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/fr/LC_MESSAGES/statusnet.po b/locale/fr/LC_MESSAGES/statusnet.po index 1965123ea..4c9429e21 100644 --- a/locale/fr/LC_MESSAGES/statusnet.po +++ b/locale/fr/LC_MESSAGES/statusnet.po @@ -14,12 +14,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:35:34+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:49:51+0000\n" "Language-Team: French\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: out-statusnet\n" @@ -106,7 +106,7 @@ msgstr "Page non trouvée" #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -713,7 +713,7 @@ msgstr "Reprises de %s" msgid "Notices tagged with %s" msgstr "Avis marqués avec %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Mises à jour marquées avec %1$s dans %2$s !" @@ -755,7 +755,7 @@ msgstr "" #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "Utilisateur sans profil correspondant" @@ -1754,7 +1754,7 @@ msgstr "Faire un administrateur" msgid "Make this user an admin" msgstr "Faire de cet utilisateur un administrateur" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -4503,7 +4503,7 @@ msgstr "" "Essayez de [rechercher un groupe](%%action.groupsearch%%) et de vous y " "inscrire." -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -5270,12 +5270,12 @@ msgstr "%s a quitté le groupe %s" msgid "Fullname: %s" msgstr "Nom complet : %s" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Emplacement : %s" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Site Web : %s" @@ -5760,11 +5760,11 @@ msgstr "Ouvrez une session avec un identifiant et un mot de passe" msgid "Sign up for a new account" msgstr "Créer un nouveau compte" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "Confirmation de l’adresse courriel" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5794,12 +5794,12 @@ msgstr "" "Merci de votre attention,\n" "%s\n" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s suit maintenant vos avis sur %2$s." -#: lib/mail.php:241 +#: lib/mail.php:245 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5824,17 +5824,17 @@ msgstr "" "----\n" "Changez votre adresse de courriel ou vos options de notification sur %8$s\n" -#: lib/mail.php:258 +#: lib/mail.php:262 #, php-format msgid "Bio: %s" msgstr "Bio : %s" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "Nouvelle adresse courriel pour poster dans %s" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5855,21 +5855,21 @@ msgstr "" "Cordialement,\n" "%4$s" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "Statut de %s" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "Confirmation SMS" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "Vous avez reçu un clin d’œil de %s" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5896,12 +5896,12 @@ msgstr "" "Bien à vous,\n" "%4$s\n" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "Nouveau message personnel de %s" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5934,12 +5934,12 @@ msgstr "" "Bien à vous,\n" "%5$s\n" -#: lib/mail.php:559 +#: lib/mail.php:568 #, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "%s (@%s) a ajouté un de vos avis à ses favoris" -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5977,12 +5977,12 @@ msgstr "" "Cordialement,\n" "%6$s\n" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "%s (@%s) vous a envoyé un avis" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/ga/LC_MESSAGES/statusnet.po b/locale/ga/LC_MESSAGES/statusnet.po index b88dc4e2c..dea9dd11c 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-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:35:38+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:49:54+0000\n" "Language-Team: Irish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ga\n" "X-Message-Group: out-statusnet\n" @@ -110,7 +110,7 @@ msgstr "Non existe a etiqueta." #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -715,7 +715,7 @@ msgstr "Replies to %s" msgid "Notices tagged with %s" msgstr "Chíos tagueados con %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Actualizacións dende %1$s en %2$s!" @@ -756,7 +756,7 @@ msgstr "Podes actualizar a túa información do perfil persoal aquí" #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "Usuario sen un perfil que coincida." @@ -1816,7 +1816,7 @@ msgstr "" msgid "Make this user an admin" msgstr "" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -4575,7 +4575,7 @@ msgstr "%1s non é unha orixe fiable." msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -5383,12 +5383,12 @@ msgstr "%s / Favoritos dende %s" msgid "Fullname: %s" msgstr "Nome completo: %s" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Ubicación: %s" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Páxina persoal: %s" @@ -5881,11 +5881,11 @@ msgstr "Accede co teu nome de usuario e contrasinal." msgid "Sign up for a new account" msgstr "Crear nova conta" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "Confirmar correo electrónico" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5914,12 +5914,12 @@ msgstr "" "Grazas polo teu tempo, \n" "%s\n" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s está a escoitar os teus chíos %2$s." -#: lib/mail.php:241 +#: lib/mail.php:245 #, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5940,17 +5940,17 @@ msgstr "" "Atentamente todo seu,\n" "%4$s.\n" -#: lib/mail.php:258 +#: lib/mail.php:262 #, fuzzy, php-format msgid "Bio: %s" msgstr "Ubicación: %s" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "Nova dirección de email para posterar en %s" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5971,21 +5971,21 @@ msgstr "" "Sempre teu...,\n" "%4$s" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "Estado de %s" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "Confirmación de SMS" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "%s douche un toque" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -6011,12 +6011,12 @@ msgstr "" "With kind regards,\n" "%4$s\n" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "%s enviouche unha nova mensaxe privada" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6049,12 +6049,12 @@ msgstr "" "With kind regards,\n" "%5$s\n" -#: lib/mail.php:559 +#: lib/mail.php:568 #, fuzzy, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "%s gustoulle o teu chío" -#: lib/mail.php:561 +#: lib/mail.php:570 #, fuzzy, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6087,12 +6087,12 @@ msgstr "" "Fielmente teu,\n" "%5$s\n" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/he/LC_MESSAGES/statusnet.po b/locale/he/LC_MESSAGES/statusnet.po index 0856fd8fe..49f229a96 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-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:35:40+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:49:57+0000\n" "Language-Team: Hebrew\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: out-statusnet\n" @@ -107,7 +107,7 @@ msgstr "אין הודעה כזו." #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -706,7 +706,7 @@ msgstr "תגובת עבור %s" msgid "Notices tagged with %s" msgstr "" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "מיקרובלוג מאת %s" @@ -748,7 +748,7 @@ msgstr "" #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "" @@ -1787,7 +1787,7 @@ msgstr "" msgid "Make this user an admin" msgstr "" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -4424,7 +4424,7 @@ msgstr "לא שלחנו אלינו את הפרופיל הזה" msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -5216,12 +5216,12 @@ msgstr "הסטטוס של %1$s ב-%2$s " msgid "Fullname: %s" msgstr "שם מלא" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "" @@ -5676,11 +5676,11 @@ msgstr "שם המשתמש או הסיסמה לא חוקיים" msgid "Sign up for a new account" msgstr "צור חשבון חדש" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5697,12 +5697,12 @@ msgid "" "%s\n" msgstr "" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s כעת מאזין להודעות שלך ב-%2$s" -#: lib/mail.php:241 +#: lib/mail.php:245 #, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5722,17 +5722,17 @@ msgstr "" " שלך,\n" " %4$s.\n" -#: lib/mail.php:258 +#: lib/mail.php:262 #, fuzzy, php-format msgid "Bio: %s" msgstr "אודות: %s" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5745,21 +5745,21 @@ msgid "" "%4$s" msgstr "" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5775,12 +5775,12 @@ msgid "" "%4$s\n" msgstr "" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5799,12 +5799,12 @@ msgid "" "%5$s\n" msgstr "" -#: lib/mail.php:559 +#: lib/mail.php:568 #, fuzzy, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "%1$s כעת מאזין להודעות שלך ב-%2$s" -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5825,12 +5825,12 @@ msgid "" "%6$s\n" msgstr "" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/hsb/LC_MESSAGES/statusnet.po b/locale/hsb/LC_MESSAGES/statusnet.po index 8c129a376..91d9c9c73 100644 --- a/locale/hsb/LC_MESSAGES/statusnet.po +++ b/locale/hsb/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:35:43+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:50:00+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: hsb\n" "X-Message-Group: out-statusnet\n" @@ -107,7 +107,7 @@ msgstr "Strona njeeksistuje" #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -686,7 +686,7 @@ msgstr "" msgid "Notices tagged with %s" msgstr "" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "" @@ -727,7 +727,7 @@ msgstr "" #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "Wužiwar bjez hodźaceho so profila" @@ -1707,7 +1707,7 @@ msgstr "" msgid "Make this user an admin" msgstr "Tutoho wužiwarja k administratorej činić" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -4232,7 +4232,7 @@ msgstr "" msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -4992,12 +4992,12 @@ msgstr "%s je skupinu %s wopušćił" msgid "Fullname: %s" msgstr "Dospołne mjeno: %s" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Městno: %s" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "" @@ -5436,11 +5436,11 @@ msgstr "Přizjewjenje z wužiwarskim mjenom a hesłom" msgid "Sign up for a new account" msgstr "Nowe konto registrować" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "Wobkrućenje e-mejloweje adresy" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5457,12 +5457,12 @@ msgid "" "%s\n" msgstr "" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "" -#: lib/mail.php:241 +#: lib/mail.php:245 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5477,17 +5477,17 @@ msgid "" "Change your email address or notification options at %8$s\n" msgstr "" -#: lib/mail.php:258 +#: lib/mail.php:262 #, php-format msgid "Bio: %s" msgstr "Biografija: %s" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5500,21 +5500,21 @@ msgid "" "%4$s" msgstr "" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "SMS-wobkrućenje" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5530,12 +5530,12 @@ msgid "" "%4$s\n" msgstr "" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "Nowa priwatna powěsć wot %s" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5554,12 +5554,12 @@ msgid "" "%5$s\n" msgstr "" -#: lib/mail.php:559 +#: lib/mail.php:568 #, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "%s (@%s) je twoju zdźělenku jako faworit přidał" -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5580,12 +5580,12 @@ msgid "" "%6$s\n" msgstr "" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/ia/LC_MESSAGES/statusnet.po b/locale/ia/LC_MESSAGES/statusnet.po index 4116b91d5..7a96686ed 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-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:35:46+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:50:08+0000\n" "Language-Team: Interlingua\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: out-statusnet\n" @@ -102,7 +102,7 @@ msgstr "Pagina non existe" #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -702,7 +702,7 @@ msgstr "Repetitiones de %s" msgid "Notices tagged with %s" msgstr "Notas con etiquetta %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Actualisationes con etiquetta %1$s in %2$s!" @@ -743,7 +743,7 @@ msgstr "" #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "Usator sin profilo correspondente" @@ -1743,7 +1743,7 @@ msgstr "Facer administrator" msgid "Make this user an admin" msgstr "Facer iste usator administrator" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -4466,7 +4466,7 @@ msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" "Tenta [cercar gruppos](%%action.groupsearch%%) e facer te membro de illos." -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -5255,12 +5255,12 @@ msgstr "%s quitava le gruppo %s" msgid "Fullname: %s" msgstr "Nomine complete: %s" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Loco: %s" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Pagina personal: %s" @@ -5736,11 +5736,11 @@ msgstr "Aperir session con nomine de usator e contrasigno" msgid "Sign up for a new account" msgstr "Crear un nove conto" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "Confirmation del adresse de e-mail" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5769,12 +5769,12 @@ msgstr "" "Gratias pro tu attention,\n" "%s\n" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s seque ora tu notas in %2$s." -#: lib/mail.php:241 +#: lib/mail.php:245 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5799,17 +5799,17 @@ msgstr "" "----\n" "Cambia tu adresse de e-mail o optiones de notification a %8$s\n" -#: lib/mail.php:258 +#: lib/mail.php:262 #, php-format msgid "Bio: %s" msgstr "Bio: %s" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "Nove adresse de e-mail pro publicar in %s" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5830,21 +5830,21 @@ msgstr "" "Cordialmente,\n" "%4$s" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "Stato de %s" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "Confirmation SMS" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "%s te ha pulsate" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5871,12 +5871,12 @@ msgstr "" "Con salutes cordial,\n" "%4$s\n" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "Nove message private de %s" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5909,12 +5909,12 @@ msgstr "" "Con salutes cordial,\n" "%5$s\n" -#: lib/mail.php:559 +#: lib/mail.php:568 #, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "%s (@%s) ha addite tu nota como favorite" -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5952,12 +5952,12 @@ msgstr "" "Cordialmente,\n" "%6$s\n" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "%s (@%s) ha inviate un nota a tu attention" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/is/LC_MESSAGES/statusnet.po b/locale/is/LC_MESSAGES/statusnet.po index be9a80250..3c8f33565 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-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:35:49+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:50:12+0000\n" "Language-Team: Icelandic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: is\n" "X-Message-Group: out-statusnet\n" @@ -110,7 +110,7 @@ msgstr "Ekkert þannig merki." #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -707,7 +707,7 @@ msgstr "Svör við %s" msgid "Notices tagged with %s" msgstr "Babl merkt með %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "" @@ -747,7 +747,7 @@ msgstr "" #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "Notandi með enga persónulega síðu sem passar við" @@ -1769,7 +1769,7 @@ msgstr "" msgid "Make this user an admin" msgstr "" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -4472,7 +4472,7 @@ msgstr "" msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -5265,12 +5265,12 @@ msgstr "%s gekk úr hópnum %s" msgid "Fullname: %s" msgstr "Fullt nafn: %s" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Staðsetning: %s" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Heimasíða: %s" @@ -5716,11 +5716,11 @@ msgstr "Skráðu þig inn með notendanafni og lykilorði" msgid "Sign up for a new account" msgstr "Búðu til nýjan aðgang" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "Staðfesting tölvupóstfangs" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5737,12 +5737,12 @@ msgid "" "%s\n" msgstr "" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s er að hlusta á bablið þitt á %2$s." -#: lib/mail.php:241 +#: lib/mail.php:245 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5757,19 +5757,19 @@ msgid "" "Change your email address or notification options at %8$s\n" msgstr "" -#: lib/mail.php:258 +#: lib/mail.php:262 #, fuzzy, php-format msgid "Bio: %s" msgstr "" "Lýsing: %s\n" "\n" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "Nýtt tölvupóstfang til að senda á %s" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5790,21 +5790,21 @@ msgstr "" "Með kærri kveðju,\n" "%4$s" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "Staða %s" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "SMS staðfesting" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "%s ýtti við þér" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5820,12 +5820,12 @@ msgid "" "%4$s\n" msgstr "" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "Ný persónuleg skilaboð frá %s" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5844,12 +5844,12 @@ msgid "" "%5$s\n" msgstr "" -#: lib/mail.php:559 +#: lib/mail.php:568 #, fuzzy, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "%s heldur upp á babl frá þér" -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5870,12 +5870,12 @@ msgid "" "%6$s\n" msgstr "" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/it/LC_MESSAGES/statusnet.po b/locale/it/LC_MESSAGES/statusnet.po index 05b829067..1bd3f26ad 100644 --- a/locale/it/LC_MESSAGES/statusnet.po +++ b/locale/it/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:35:52+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:50:15+0000\n" "Language-Team: Italian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: it\n" "X-Message-Group: out-statusnet\n" @@ -103,7 +103,7 @@ msgstr "Pagina inesistente." #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -701,7 +701,7 @@ msgstr "Ripetizioni di %s" msgid "Notices tagged with %s" msgstr "Messaggi etichettati con %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Messaggi etichettati con %1$s su %2$s!" @@ -742,7 +742,7 @@ msgstr "" #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "Utente senza profilo corrispondente" @@ -1742,7 +1742,7 @@ msgstr "Rendi amm." msgid "Make this user an admin" msgstr "Rende questo utente un amministratore" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -4446,7 +4446,7 @@ msgstr "%s non fa parte di alcun gruppo." msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "Prova a [cercare dei gruppi](%%action.groupsearch%%) e iscriviti." -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -5213,12 +5213,12 @@ msgstr "%1$s ha lasciato il gruppo %2$s" msgid "Fullname: %s" msgstr "Nome completo: %s" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Posizione: %s" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Pagina web: %s" @@ -5697,11 +5697,11 @@ msgstr "Accedi con nome utente e password" msgid "Sign up for a new account" msgstr "Iscriviti per un nuovo account" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "Conferma indirizzo email" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5731,12 +5731,12 @@ msgstr "" "Grazie per il tuo tempo, \n" "%s\n" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s sta ora seguendo i tuoi messaggi su %2$s." -#: lib/mail.php:241 +#: lib/mail.php:245 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5761,17 +5761,17 @@ msgstr "" "----\n" "Modifica il tuo indirizzo email o le opzioni di notifica presso %8$s\n" -#: lib/mail.php:258 +#: lib/mail.php:262 #, php-format msgid "Bio: %s" msgstr "Biografia: %s" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "Nuovo indirizzo email per inviare messaggi a %s" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5792,21 +5792,21 @@ msgstr "" "Cordiali saluti,\n" "%4$s" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "stato di %s" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "Conferma SMS" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "%s ti ha richiamato" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5833,12 +5833,12 @@ msgstr "" "Cordiali saluti,\n" "%4$s\n" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "Nuovo messaggio privato da %s" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5871,12 +5871,12 @@ msgstr "" "Cordiali saluti,\n" "%5$s\n" -#: lib/mail.php:559 +#: lib/mail.php:568 #, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "%s (@%s) ha aggiunto il tuo messaggio tra i suoi preferiti" -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5914,12 +5914,12 @@ msgstr "" "Cordiali saluti,\n" "%6$s\n" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "%s (@%s) ti ha inviato un messaggio" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/ja/LC_MESSAGES/statusnet.po b/locale/ja/LC_MESSAGES/statusnet.po index 95695792b..847f24c59 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-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:35:55+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:50:18+0000\n" "Language-Team: Japanese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63298); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ja\n" "X-Message-Group: out-statusnet\n" @@ -105,7 +105,7 @@ msgstr "そのようなページはありません。" #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -696,7 +696,7 @@ msgstr "%s の返信" msgid "Notices tagged with %s" msgstr "%s とタグ付けされたつぶやき" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "%2$s に %1$s による更新があります!" @@ -736,7 +736,7 @@ msgstr "自分のアバターをアップロードできます。最大サイズ #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "合っているプロフィールのないユーザ" @@ -1740,7 +1740,7 @@ msgstr "管理者にする" msgid "Make this user an admin" msgstr "このユーザを管理者にする" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -4455,7 +4455,7 @@ msgstr "%s はどのグループのメンバーでもありません。" msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "[グループを探して](%%action.groupsearch%%)それに加入してください。" -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -5233,12 +5233,12 @@ msgstr "%s はグループ %s に残りました。" msgid "Fullname: %s" msgstr "フルネーム: %s" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "場所: %s" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "ホームページ: %s" @@ -5672,11 +5672,11 @@ msgstr "ユーザ名とパスワードでログイン" msgid "Sign up for a new account" msgstr "新しいアカウントでサインアップ" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "メールアドレス確認" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5705,12 +5705,12 @@ msgstr "" "ありがとうございます。\n" "%s\n" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s は %2$s であなたのつぶやきを聞いています。" -#: lib/mail.php:241 +#: lib/mail.php:245 #, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5735,17 +5735,17 @@ msgstr "" "----\n" "%8$s でメールアドレスか通知オプションを変えてください。\n" -#: lib/mail.php:258 +#: lib/mail.php:262 #, php-format msgid "Bio: %s" msgstr "自己紹介: %s" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "%s へ投稿のための新しいメールアドレス" -#: lib/mail.php:289 +#: lib/mail.php:293 #, fuzzy, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5766,21 +5766,21 @@ msgstr "" "忠実である、あなたのもの、\n" "%4$s" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "%s の状態" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "SMS確認" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "あなたは %s に合図されています" -#: lib/mail.php:467 +#: lib/mail.php:471 #, fuzzy, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5807,12 +5807,12 @@ msgstr "" "敬具\n" "%4$s\n" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "%s からの新しいプライベートメッセージ" -#: lib/mail.php:514 +#: lib/mail.php:521 #, fuzzy, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5845,12 +5845,12 @@ msgstr "" "敬具\n" "%5$s\n" -#: lib/mail.php:559 +#: lib/mail.php:568 #, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "%s (@%s) はお気に入りとしてあなたのつぶやきを加えました" -#: lib/mail.php:561 +#: lib/mail.php:570 #, fuzzy, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5888,12 +5888,12 @@ msgstr "" "忠実である、あなたのもの、\n" "%6%s\n" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "%s (@%s) はあなた宛てにつぶやきを送りました" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/ko/LC_MESSAGES/statusnet.po b/locale/ko/LC_MESSAGES/statusnet.po index 09af2e6f0..69bf4efb9 100644 --- a/locale/ko/LC_MESSAGES/statusnet.po +++ b/locale/ko/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:35:58+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:50:22+0000\n" "Language-Team: Korean\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63299); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ko\n" "X-Message-Group: out-statusnet\n" @@ -108,7 +108,7 @@ msgstr "그러한 태그가 없습니다." #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -711,7 +711,7 @@ msgstr "%s에 답신" msgid "Notices tagged with %s" msgstr "%s 태그된 통지" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "%2$s에 있는 %1$s의 업데이트!" @@ -752,7 +752,7 @@ msgstr "당신의 개인적인 아바타를 업로드할 수 있습니다." #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "프로필 매칭이 없는 사용자" @@ -1798,7 +1798,7 @@ msgstr "관리자" msgid "Make this user an admin" msgstr "" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -4493,7 +4493,7 @@ msgstr "당신은 해당 그룹의 멤버가 아닙니다." msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -5292,12 +5292,12 @@ msgstr "%s가 그룹%s를 떠났습니다." msgid "Fullname: %s" msgstr "전체이름: %s" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "위치: %s" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "홈페이지: %s" @@ -5741,11 +5741,11 @@ msgstr "사용자 이름과 비밀번호로 로그인" msgid "Sign up for a new account" msgstr "새 계정을 위한 회원가입" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "이메일 주소 확인서" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5762,12 +5762,12 @@ msgid "" "%s\n" msgstr "" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s님이 귀하의 알림 메시지를 %2$s에서 듣고 있습니다." -#: lib/mail.php:241 +#: lib/mail.php:245 #, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5786,19 +5786,19 @@ msgstr "" "\n" "그럼 이만,%4$s.\n" -#: lib/mail.php:258 +#: lib/mail.php:262 #, fuzzy, php-format msgid "Bio: %s" msgstr "" "소개: %s\n" "\n" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "%s에 포스팅 할 새로운 이메일 주소" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5813,21 +5813,21 @@ msgstr "" "포스팅 주소는 %1$s입니다.새 메시지를 등록하려면 %2$ 주소로 이메일을 보내십시" "오.이메일 사용법은 %3$s 페이지를 보십시오.안녕히,%4$s" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "%s 상태" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "SMS 인증" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "%s 사용자가 찔러 봤습니다." -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5843,12 +5843,12 @@ msgid "" "%4$s\n" msgstr "" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "%s로부터 새로운 비밀 메시지가 도착하였습니다." -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5867,12 +5867,12 @@ msgid "" "%5$s\n" msgstr "" -#: lib/mail.php:559 +#: lib/mail.php:568 #, fuzzy, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "%s님이 당신의 게시글을 좋아하는 글로 추가했습니다." -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5893,12 +5893,12 @@ msgid "" "%6$s\n" msgstr "" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/mk/LC_MESSAGES/statusnet.po b/locale/mk/LC_MESSAGES/statusnet.po index a5736795f..74b9cb228 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-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:36:01+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:50:24+0000\n" "Language-Team: Macedonian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63299); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: out-statusnet\n" @@ -103,7 +103,7 @@ msgstr "Нема таква страница" #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -702,7 +702,7 @@ msgstr "Повторувања на %s" msgid "Notices tagged with %s" msgstr "Забелешки означени со %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Подновувањата се означени со %1$s на %2$s!" @@ -744,7 +744,7 @@ msgstr "" #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "Корисник без соодветен профил" @@ -1747,7 +1747,7 @@ msgstr "Направи го/ја администратор" msgid "Make this user an admin" msgstr "Направи го корисникот администратор" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -4469,7 +4469,7 @@ msgstr "" "Обидете се со [пребарување на групи](%%action.groupsearch%%) и придружете им " "се." -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -5235,12 +5235,12 @@ msgstr "%s ја напушти групата %s" msgid "Fullname: %s" msgstr "Име и презиме: %s" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Локација: %s" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Домашна страница: %s" @@ -5716,11 +5716,11 @@ msgstr "Најава со корисничко име и лозинка" msgid "Sign up for a new account" msgstr "Создај нова сметка" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "Потврдување на адресата" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5750,12 +5750,12 @@ msgstr "" "Ви благодариме за потрошеното време, \n" "%s\n" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s сега ги следи Вашите забелешки на %2$s." -#: lib/mail.php:241 +#: lib/mail.php:245 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5781,17 +5781,17 @@ msgstr "" "Изменете си ја е-поштенската адреса или ги нагодувањата за известувања на %8" "$s\n" -#: lib/mail.php:258 +#: lib/mail.php:262 #, php-format msgid "Bio: %s" msgstr "Биографија: %s" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "Нова е-поштенска адреса за објавување на %s" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5812,21 +5812,21 @@ msgstr "" "Со искрена почит,\n" "%4$s" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "Статус на %s" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "Потврда за СМС" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "%s Ве подбуцна" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5853,12 +5853,12 @@ msgstr "" "Со почит,\n" "%4$s\n" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "Нова приватна порака од %s" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5891,12 +5891,12 @@ msgstr "" "Со почит,\n" "%5$s\n" -#: lib/mail.php:559 +#: lib/mail.php:568 #, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "%s (@%s) додаде Ваша забелешка како омилена" -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5934,12 +5934,12 @@ msgstr "" "Со искрена почит,\n" "%6$s\n" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "%s (@%s) Ви испрати забелешка што сака да ја прочитате" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/nb/LC_MESSAGES/statusnet.po b/locale/nb/LC_MESSAGES/statusnet.po index 61e5cfdcd..77588ef05 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-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:36:06+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:50:27+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 (r63299); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: out-statusnet\n" @@ -103,7 +103,7 @@ msgstr "Ingen slik side" #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -695,7 +695,7 @@ msgstr "Repetisjoner av %s" msgid "Notices tagged with %s" msgstr "Notiser merket med %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Oppdateringer merket med %1$s på %2$s!" @@ -735,7 +735,7 @@ msgstr "Du kan laste opp en personlig avatar. Maks filstørrelse er %s." #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "Bruker uten samsvarende profil" @@ -1727,7 +1727,7 @@ msgstr "Gjør til administrator" msgid "Make this user an admin" msgstr "Gjør denne brukeren til administrator" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -4343,7 +4343,7 @@ msgstr "Du er allerede logget inn!" msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -5116,12 +5116,12 @@ msgstr "%1$s sin status på %2$s" msgid "Fullname: %s" msgstr "Fullt navn" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "" @@ -5572,11 +5572,11 @@ msgstr "Ugyldig brukernavn eller passord" msgid "Sign up for a new account" msgstr "Opprett en ny konto" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5593,12 +5593,12 @@ msgid "" "%s\n" msgstr "" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s lytter nå til dine notiser på %2$s." -#: lib/mail.php:241 +#: lib/mail.php:245 #, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5619,17 +5619,17 @@ msgstr "" "Vennlig hilsen,\n" "%4$s.\n" -#: lib/mail.php:258 +#: lib/mail.php:262 #, fuzzy, php-format msgid "Bio: %s" msgstr "Om meg" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5642,21 +5642,21 @@ msgid "" "%4$s" msgstr "" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "%s status" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5672,12 +5672,12 @@ msgid "" "%4$s\n" msgstr "" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5696,12 +5696,12 @@ msgid "" "%5$s\n" msgstr "" -#: lib/mail.php:559 +#: lib/mail.php:568 #, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "" -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5722,12 +5722,12 @@ msgid "" "%6$s\n" msgstr "" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/nl/LC_MESSAGES/statusnet.po b/locale/nl/LC_MESSAGES/statusnet.po index 2b1b48ade..c73771f84 100644 --- a/locale/nl/LC_MESSAGES/statusnet.po +++ b/locale/nl/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:36:21+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:50:33+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63299); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: out-statusnet\n" @@ -102,7 +102,7 @@ msgstr "Deze pagina bestaat niet" #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -712,7 +712,7 @@ msgstr "Herhaald van %s" msgid "Notices tagged with %s" msgstr "Mededelingen met het label %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Updates met het label %1$s op %2$s!" @@ -753,7 +753,7 @@ msgstr "" #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "Gebruiker zonder bijbehorend profiel" @@ -1761,7 +1761,7 @@ msgstr "Beheerder maken" msgid "Make this user an admin" msgstr "Deze gebruiker beheerder maken" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -4499,7 +4499,7 @@ msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" "U kunt [naar groepen zoeken](%%action.groupsearch%%) en daar lid van worden." -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -5274,12 +5274,12 @@ msgstr "%s heeft de groep %s verlaten" msgid "Fullname: %s" msgstr "Volledige naam: %s" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Locatie: %s" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Thuispagina: %s" @@ -5763,11 +5763,11 @@ msgstr "Aanmelden met gebruikersnaam en wachtwoord" msgid "Sign up for a new account" msgstr "Nieuwe gebruiker aanmaken" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "E-mailadresbevestiging" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5797,12 +5797,12 @@ msgstr "" "Dank u wel voor uw tijd.\n" "%s\n" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s volgt nu uw berichten %2$s." -#: lib/mail.php:241 +#: lib/mail.php:245 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5827,17 +5827,17 @@ msgstr "" "----\n" "Wijzig uw e-mailadres of instellingen op %8$s\n" -#: lib/mail.php:258 +#: lib/mail.php:262 #, php-format msgid "Bio: %s" msgstr "Beschrijving: %s" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "Nieuw e-mailadres om e-mail te versturen aan %s" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5858,21 +5858,21 @@ msgstr "" "Met vriendelijke groet,\n" "%4$s" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "%s status" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "SMS-bevestiging" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "%s heeft u gepord" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5900,12 +5900,12 @@ msgstr "" "Met vriendelijke groet,\n" "%4$s\n" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "U hebt een nieuw privébericht van %s." -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5939,12 +5939,12 @@ msgstr "" "Met vriendelijke groet,\n" "%5$s\n" -#: lib/mail.php:559 +#: lib/mail.php:568 #, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "%s (@%s) heeft uw mededeling als favoriet toegevoegd" -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5982,12 +5982,12 @@ msgstr "" "Met vriendelijke groet,\n" "%6$s\n" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "%s (@%s) heeft u een mededeling gestuurd" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/nn/LC_MESSAGES/statusnet.po b/locale/nn/LC_MESSAGES/statusnet.po index 72fe47924..a16e15649 100644 --- a/locale/nn/LC_MESSAGES/statusnet.po +++ b/locale/nn/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:36:11+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:50:30+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 (r63299); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nn\n" "X-Message-Group: out-statusnet\n" @@ -108,7 +108,7 @@ msgstr "Dette emneord finst ikkje." #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -709,7 +709,7 @@ msgstr "Svar til %s" msgid "Notices tagged with %s" msgstr "Notisar merka med %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Oppdateringar frå %1$s på %2$s!" @@ -750,7 +750,7 @@ msgstr "Du kan laste opp ein personleg avatar." #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "Kan ikkje finne brukar" @@ -1798,7 +1798,7 @@ msgstr "Administrator" msgid "Make this user an admin" msgstr "" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -4512,7 +4512,7 @@ msgstr "Du er ikkje medlem av den gruppa." msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -5309,12 +5309,12 @@ msgstr "%s forlot %s gruppa" msgid "Fullname: %s" msgstr "Fullt namn: %s" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Stad: %s" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Heimeside: %s" @@ -5761,11 +5761,11 @@ msgstr "Log inn med brukarnamn og passord." msgid "Sign up for a new account" msgstr "Opprett ny konto" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "Stadfesting av epostadresse" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5782,12 +5782,12 @@ msgid "" "%s\n" msgstr "" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s høyrer no på notisane dine på %2$s." -#: lib/mail.php:241 +#: lib/mail.php:245 #, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5808,19 +5808,19 @@ msgstr "" "Beste helsing,\n" "%4$s.\n" -#: lib/mail.php:258 +#: lib/mail.php:262 #, fuzzy, php-format msgid "Bio: %s" msgstr "" "Bio: %s\n" "\n" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "Ny epostadresse for å oppdatera %s" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5840,21 +5840,21 @@ msgstr "" "\n" "Helsing frå %4$s" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "%s status" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "SMS bekreftelse" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "Du har blitt dulta av %s" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5870,12 +5870,12 @@ msgid "" "%4$s\n" msgstr "" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "Ny privat melding fra %s" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5894,12 +5894,12 @@ msgid "" "%5$s\n" msgstr "" -#: lib/mail.php:559 +#: lib/mail.php:568 #, fuzzy, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "%s la til di melding som ein favoritt" -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5920,12 +5920,12 @@ msgid "" "%6$s\n" msgstr "" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/pl/LC_MESSAGES/statusnet.po b/locale/pl/LC_MESSAGES/statusnet.po index e592ff747..3a0bd39c3 100644 --- a/locale/pl/LC_MESSAGES/statusnet.po +++ b/locale/pl/LC_MESSAGES/statusnet.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:36:24+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:50:36+0000\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" @@ -19,7 +19,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -"X-Generator: MediaWiki 1.17alpha (r63299); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pl\n" "X-Message-Group: out-statusnet\n" @@ -47,7 +47,6 @@ msgstr "Zabronić anonimowym użytkownikom (niezalogowanym) przeglądać witryn #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -#, fuzzy msgctxt "LABEL" msgid "Private" msgstr "Prywatna" @@ -78,7 +77,6 @@ msgid "Save access settings" msgstr "Zapisz ustawienia dostępu" #: actions/accessadminpanel.php:203 -#, fuzzy msgctxt "BUTTON" msgid "Save" msgstr "Zapisz" @@ -107,7 +105,7 @@ msgstr "Nie ma takiej strony" #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -702,7 +700,7 @@ msgstr "Powtórzenia %s" msgid "Notices tagged with %s" msgstr "Wpisy ze znacznikiem %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Aktualizacje ze znacznikiem %1$s na %2$s." @@ -742,7 +740,7 @@ msgstr "Można wysłać osobisty awatar. Maksymalny rozmiar pliku to %s." #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "Użytkownik bez odpowiadającego profilu" @@ -1575,23 +1573,20 @@ msgid "Cannot read file." msgstr "Nie można odczytać pliku." #: actions/grantrole.php:62 actions/revokerole.php:62 -#, fuzzy msgid "Invalid role." -msgstr "Nieprawidłowy token." +msgstr "Nieprawidłowa rola." #: actions/grantrole.php:66 actions/revokerole.php:66 msgid "This role is reserved and cannot be set." -msgstr "" +msgstr "Ta rola jest zastrzeżona i nie może zostać ustawiona." #: actions/grantrole.php:75 -#, fuzzy msgid "You cannot grant user roles on this site." -msgstr "Nie można ograniczać użytkowników na tej witrynie." +msgstr "Nie można udzielić rol użytkownikom na tej witrynie." #: actions/grantrole.php:82 -#, fuzzy msgid "User already has this role." -msgstr "Użytkownik jest już wyciszony." +msgstr "Użytkownik ma już tę rolę." #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 @@ -1736,7 +1731,7 @@ msgstr "Uczyń administratorem" msgid "Make this user an admin" msgstr "Uczyń tego użytkownika administratorem" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -2008,7 +2003,6 @@ msgstr "Opcjonalnie dodaj osobistą wiadomość do zaproszenia." #. TRANS: Send button for inviting friends #: actions/invite.php:198 -#, fuzzy msgctxt "BUTTON" msgid "Send" msgstr "Wyślij" @@ -3327,14 +3321,12 @@ msgid "Replies to %1$s on %2$s!" msgstr "odpowiedzi dla użytkownika %1$s na %2$s." #: actions/revokerole.php:75 -#, fuzzy msgid "You cannot revoke user roles on this site." -msgstr "Nie można wyciszać użytkowników na tej witrynie." +msgstr "Nie można unieważnić rol użytkowników na tej witrynie." #: actions/revokerole.php:82 -#, fuzzy msgid "User doesn't have this role." -msgstr "Użytkownik bez odpowiadającego profilu." +msgstr "Użytkownik nie ma tej roli." #: actions/rsd.php:146 actions/version.php:157 msgid "StatusNet" @@ -3738,9 +3730,8 @@ msgid "User is already silenced." msgstr "Użytkownik jest już wyciszony." #: actions/siteadminpanel.php:69 -#, fuzzy msgid "Basic settings for this StatusNet site" -msgstr "Podstawowe ustawienia tej witryny StatusNet." +msgstr "Podstawowe ustawienia tej witryny StatusNet" #: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." @@ -3808,13 +3799,14 @@ msgid "Default timezone for the site; usually UTC." msgstr "Domyśla strefa czasowa witryny, zwykle UTC." #: actions/siteadminpanel.php:262 -#, fuzzy msgid "Default language" -msgstr "Domyślny język witryny" +msgstr "Domyślny język" #: actions/siteadminpanel.php:263 msgid "Site language when autodetection from browser settings is not available" msgstr "" +"Język witryny, kiedy automatyczne wykrywanie z ustawień przeglądarki nie " +"jest dostępne" #: actions/siteadminpanel.php:271 msgid "Limits" @@ -3839,37 +3831,33 @@ msgstr "" "samo." #: actions/sitenoticeadminpanel.php:56 -#, fuzzy msgid "Site Notice" msgstr "Wpis witryny" #: actions/sitenoticeadminpanel.php:67 -#, fuzzy msgid "Edit site-wide message" -msgstr "Nowa wiadomość" +msgstr "Zmodyfikuj wiadomość witryny" #: actions/sitenoticeadminpanel.php:103 -#, fuzzy msgid "Unable to save site notice." -msgstr "Nie można zapisać ustawień wyglądu." +msgstr "Nie można zapisać wpisu witryny." #: actions/sitenoticeadminpanel.php:113 msgid "Max length for the site-wide notice is 255 chars" -msgstr "" +msgstr "Maksymalna długość wpisu witryny to 255 znaków" #: actions/sitenoticeadminpanel.php:176 -#, fuzzy msgid "Site notice text" -msgstr "Wpis witryny" +msgstr "Tekst wpisu witryny" #: actions/sitenoticeadminpanel.php:178 msgid "Site-wide notice text (255 chars max; HTML okay)" msgstr "" +"Tekst wpisu witryny (maksymalnie 255 znaków, można używać znaczników HTML)" #: actions/sitenoticeadminpanel.php:198 -#, fuzzy msgid "Save site notice" -msgstr "Wpis witryny" +msgstr "Zapisz wpis witryny" #: actions/smssettings.php:58 msgid "SMS settings" @@ -3977,9 +3965,8 @@ msgid "Snapshots" msgstr "Migawki" #: actions/snapshotadminpanel.php:65 -#, fuzzy msgid "Manage snapshot configuration" -msgstr "Zmień konfigurację witryny" +msgstr "Zarządzaj konfiguracją migawki" #: actions/snapshotadminpanel.php:127 msgid "Invalid snapshot run value." @@ -4026,9 +4013,8 @@ msgid "Snapshots will be sent to this URL" msgstr "Migawki będą wysyłane na ten adres URL" #: actions/snapshotadminpanel.php:248 -#, fuzzy msgid "Save snapshot settings" -msgstr "Zapisz ustawienia witryny" +msgstr "Zapisz ustawienia migawki" #: actions/subedit.php:70 msgid "You are not subscribed to that profile." @@ -4250,7 +4236,6 @@ msgstr "" #. TRANS: User admin panel title #: actions/useradminpanel.php:59 -#, fuzzy msgctxt "TITLE" msgid "User" msgstr "Użytkownik" @@ -4451,7 +4436,7 @@ msgstr "Użytkownik %s nie jest członkiem żadnej grupy." msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "Spróbuj [wyszukać grupy](%%action.groupsearch%%) i dołączyć do nich." -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -4643,9 +4628,8 @@ msgid "Couldn't delete self-subscription." msgstr "Nie można usunąć autosubskrypcji." #: classes/Subscription.php:190 -#, fuzzy msgid "Couldn't delete subscription OMB token." -msgstr "Nie można usunąć subskrypcji." +msgstr "Nie można usunąć tokenu subskrypcji OMB." #: classes/Subscription.php:201 lib/subs.php:69 msgid "Couldn't delete subscription." @@ -4715,27 +4699,23 @@ msgstr "Główna nawigacja witryny" #. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:430 -#, fuzzy msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Profil osobisty i oś czasu przyjaciół" #: lib/action.php:433 -#, fuzzy msgctxt "MENU" msgid "Personal" msgstr "Osobiste" #. TRANS: Tooltip for main menu option "Account" #: lib/action.php:435 -#, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Zmień adres e-mail, awatar, hasło, profil" #. TRANS: Tooltip for main menu option "Services" #: lib/action.php:440 -#, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Połącz z serwisami" @@ -4746,91 +4726,78 @@ msgstr "Połącz" #. TRANS: Tooltip for menu option "Admin" #: lib/action.php:446 -#, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Zmień konfigurację witryny" #: lib/action.php:449 -#, fuzzy msgctxt "MENU" msgid "Admin" msgstr "Administrator" #. TRANS: Tooltip for main menu option "Invite" #: lib/action.php:453 -#, fuzzy, php-format +#, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Zaproś przyjaciół i kolegów do dołączenia do ciebie na %s" #: lib/action.php:456 -#, fuzzy msgctxt "MENU" msgid "Invite" msgstr "Zaproś" #. TRANS: Tooltip for main menu option "Logout" #: lib/action.php:462 -#, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Wyloguj się z witryny" #: lib/action.php:465 -#, fuzzy msgctxt "MENU" msgid "Logout" msgstr "Wyloguj się" #. TRANS: Tooltip for main menu option "Register" #: lib/action.php:470 -#, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "Utwórz konto" #: lib/action.php:473 -#, fuzzy msgctxt "MENU" msgid "Register" msgstr "Zarejestruj się" #. TRANS: Tooltip for main menu option "Login" #: lib/action.php:476 -#, fuzzy msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Zaloguj się na witrynie" #: lib/action.php:479 -#, fuzzy msgctxt "MENU" msgid "Login" msgstr "Zaloguj się" #. TRANS: Tooltip for main menu option "Help" #: lib/action.php:482 -#, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "Pomóż mi." #: lib/action.php:485 -#, fuzzy msgctxt "MENU" msgid "Help" msgstr "Pomoc" #. TRANS: Tooltip for main menu option "Search" #: lib/action.php:488 -#, fuzzy msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Wyszukaj osoby lub tekst" #: lib/action.php:491 -#, fuzzy msgctxt "MENU" msgid "Search" msgstr "Wyszukaj" @@ -5000,10 +4967,9 @@ msgstr "Podstawowa konfiguracja witryny" #. TRANS: Menu item for site administration #: lib/adminpanelaction.php:350 -#, fuzzy msgctxt "MENU" msgid "Site" -msgstr "Witryny" +msgstr "Witryna" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:356 @@ -5012,7 +4978,6 @@ msgstr "Konfiguracja wyglądu" #. TRANS: Menu item for site administration #: lib/adminpanelaction.php:358 -#, fuzzy msgctxt "MENU" msgid "Design" msgstr "Wygląd" @@ -5044,15 +5009,13 @@ msgstr "Konfiguracja sesji" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:396 -#, fuzzy msgid "Edit site notice" -msgstr "Wpis witryny" +msgstr "Zmodyfikuj wpis witryny" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:404 -#, fuzzy msgid "Snapshots configuration" -msgstr "Konfiguracja ścieżek" +msgstr "Konfiguracja migawek" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5244,12 +5207,12 @@ msgstr "Użytkownik %1$s opuścił grupę %2$s" msgid "Fullname: %s" msgstr "Imię i nazwisko: %s" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Położenie: %s" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Strona domowa: %s" @@ -5589,7 +5552,7 @@ msgstr "Przejdź" #: lib/grantroleform.php:91 #, php-format msgid "Grant this user the \"%s\" role" -msgstr "" +msgstr "Nadaj użytkownikowi rolę \"%s\"" #: lib/groupeditform.php:163 msgid "URL of the homepage or blog of the group or topic" @@ -5730,11 +5693,11 @@ msgstr "Zaloguj się za pomocą nazwy użytkownika i hasła" msgid "Sign up for a new account" msgstr "Załóż nowe konto" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "Potwierdzenie adresu e-mail" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5764,12 +5727,12 @@ msgstr "" "Dziękujemy za twój czas, \n" "%s\n" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "Użytkownik %1$s obserwuje teraz twoje wpisy na %2$s." -#: lib/mail.php:241 +#: lib/mail.php:245 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5794,17 +5757,17 @@ msgstr "" "----\n" "Zmień adres e-mail lub opcje powiadamiania na %8$s\n" -#: lib/mail.php:258 +#: lib/mail.php:262 #, php-format msgid "Bio: %s" msgstr "O mnie: %s" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "Nowy adres e-mail do wysyłania do %s" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5825,21 +5788,21 @@ msgstr "" "Z poważaniem,\n" "%4$s" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "Stan użytkownika %s" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "Potwierdzenie SMS" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "Zostałeś szturchnięty przez %s" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5866,12 +5829,12 @@ msgstr "" "Z poważaniem,\n" "%4$s\n" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "Nowa prywatna wiadomość od użytkownika %s" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5904,12 +5867,12 @@ msgstr "" "Z poważaniem,\n" "%5$s\n" -#: lib/mail.php:559 +#: lib/mail.php:568 #, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "Użytkownik %s (@%s) dodał twój wpis jako ulubiony" -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5947,12 +5910,12 @@ msgstr "" "Z poważaniem,\n" "%6$s\n" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "Użytkownik %s (@%s) wysłał wpis wymagający twojej uwagi" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" @@ -6298,9 +6261,9 @@ msgid "Repeat this notice" msgstr "Powtórz ten wpis" #: lib/revokeroleform.php:91 -#, fuzzy, php-format +#, php-format msgid "Revoke the \"%s\" role from this user" -msgstr "Zablokuj tego użytkownika w tej grupie" +msgstr "Unieważnij rolę \"%s\" tego użytkownika" #: lib/router.php:671 msgid "No single user defined for single-user mode." @@ -6458,21 +6421,18 @@ msgid "Moderate" msgstr "Moderuj" #: lib/userprofile.php:352 -#, fuzzy msgid "User role" -msgstr "Profil użytkownika" +msgstr "Rola użytkownika" #: lib/userprofile.php:354 -#, fuzzy msgctxt "role" msgid "Administrator" -msgstr "Administratorzy" +msgstr "Administrator" #: lib/userprofile.php:355 -#, fuzzy msgctxt "role" msgid "Moderator" -msgstr "Moderuj" +msgstr "Moderator" #: lib/util.php:1015 msgid "a few seconds ago" diff --git a/locale/pt/LC_MESSAGES/statusnet.po b/locale/pt/LC_MESSAGES/statusnet.po index 27e75fe97..7041bea81 100644 --- a/locale/pt/LC_MESSAGES/statusnet.po +++ b/locale/pt/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:36:27+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:50:48+0000\n" "Language-Team: Portuguese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63299); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: out-statusnet\n" @@ -106,7 +106,7 @@ msgstr "Página não encontrada." #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -700,7 +700,7 @@ msgstr "Repetências de %s" msgid "Notices tagged with %s" msgstr "Notas categorizadas com %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Actualizações categorizadas com %1$s em %2$s!" @@ -740,7 +740,7 @@ msgstr "Pode carregar o seu avatar pessoal. O tamanho máximo do ficheiro é %s. #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "Utilizador sem perfil correspondente" @@ -1763,7 +1763,7 @@ msgstr "Tornar Gestor" msgid "Make this user an admin" msgstr "Tornar este utilizador um gestor" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -4499,7 +4499,7 @@ msgstr "%s não é membro de nenhum grupo." msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "Tente [pesquisar grupos](%%action.groupsearch%%) e juntar-se a eles." -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -5293,12 +5293,12 @@ msgstr "%s deixou o grupo %s" msgid "Fullname: %s" msgstr "Nome completo: %s" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Localidade: %s" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Página pessoal: %s" @@ -5775,11 +5775,11 @@ msgstr "Iniciar sessão com um nome de utilizador e senha" msgid "Sign up for a new account" msgstr "Registar uma conta nova" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "Confirmação do endereço electrónico" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5808,12 +5808,12 @@ msgstr "" "Obrigado pelo tempo que dedicou, \n" "%s\n" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s está agora a ouvir as suas notas em %2$s." -#: lib/mail.php:241 +#: lib/mail.php:245 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5839,17 +5839,17 @@ msgstr "" "Altere o seu endereço de correio electrónico ou as opções de notificação em %" "8$s\n" -#: lib/mail.php:258 +#: lib/mail.php:262 #, php-format msgid "Bio: %s" msgstr "Bio: %s" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "Novo endereço electrónico para publicar no site %s" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5870,21 +5870,21 @@ msgstr "" "Melhores cumprimentos,\n" "%4$s" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "Estado de %s" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "Confirmação SMS" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "%s envia-lhe um toque" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5911,12 +5911,12 @@ msgstr "" "Graciosamente,\n" "%4$s\n" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "Nova mensagem privada de %s" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5949,12 +5949,12 @@ msgstr "" "Profusos cumprimentos,\n" "%5$s\n" -#: lib/mail.php:559 +#: lib/mail.php:568 #, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "%s (@%s) adicionou a sua nota às favoritas." -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5991,12 +5991,12 @@ msgstr "" "Sinceramente,\n" "%6$s\n" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "%s (@%s) enviou uma nota à sua atenção" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/pt_BR/LC_MESSAGES/statusnet.po b/locale/pt_BR/LC_MESSAGES/statusnet.po index 65061f02d..51d926eba 100644 --- a/locale/pt_BR/LC_MESSAGES/statusnet.po +++ b/locale/pt_BR/LC_MESSAGES/statusnet.po @@ -11,12 +11,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:36:30+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:50:51+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 (r63299); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt-br\n" "X-Message-Group: out-statusnet\n" @@ -105,7 +105,7 @@ msgstr "Esta página não existe." #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -707,7 +707,7 @@ msgstr "Repetições de %s" msgid "Notices tagged with %s" msgstr "Mensagens etiquetadas como %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Mensagens etiquetadas como %1$s no %2$s!" @@ -748,7 +748,7 @@ msgstr "" #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "Usuário sem um perfil correspondente" @@ -1755,7 +1755,7 @@ msgstr "Tornar administrador" msgid "Make this user an admin" msgstr "Torna este usuário um administrador" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -4490,7 +4490,7 @@ msgstr "" "Experimente [procurar por grupos](%%action.groupsearch%%) e associar-se à " "eles." -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -5279,12 +5279,12 @@ msgstr "%s deixou o grupo %s" msgid "Fullname: %s" msgstr "Nome completo: %s" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Localização: %s" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Site: %s" @@ -5763,11 +5763,11 @@ msgstr "Autentique-se com um nome de usuário e uma senha" msgid "Sign up for a new account" msgstr "Cadastre-se para uma nova conta" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "Confirmação do endereço de e-mail" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5796,12 +5796,12 @@ msgstr "" "Obrigado pela sua atenção, \n" "%s\n" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s agora está acompanhando suas mensagens no %2$s." -#: lib/mail.php:241 +#: lib/mail.php:245 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5826,17 +5826,17 @@ msgstr "" "----\n" "Altere seu endereço de e-mail e suas opções de notificação em %8$s\n" -#: lib/mail.php:258 +#: lib/mail.php:262 #, php-format msgid "Bio: %s" msgstr "Descrição: %s" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "Novo endereço de e-mail para publicar no %s" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5857,21 +5857,21 @@ msgstr "" "Atenciosamente,\n" "%4$s" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "Mensagem de %s" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "Confirmação de SMS" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "Você teve a atenção chamada por %s" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5898,12 +5898,12 @@ msgstr "" "Atenciosamente,\n" "%4$s\n" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "Nova mensagem particular de %s" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5936,12 +5936,12 @@ msgstr "" "Atenciosamente,\n" "%5$s\n" -#: lib/mail.php:559 +#: lib/mail.php:568 #, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "%s (@%s) marcou sua mensagem como favorita" -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5978,12 +5978,12 @@ msgstr "" "Atenciosamente,\n" "%6$s\n" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "%s (@%s) enviou uma mensagem citando você" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/ru/LC_MESSAGES/statusnet.po b/locale/ru/LC_MESSAGES/statusnet.po index 94e9a7902..03aaa074a 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-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:36:33+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:50:54+0000\n" "Language-Team: Russian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63299); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: out-statusnet\n" @@ -106,7 +106,7 @@ msgstr "Нет такой страницы" #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -703,7 +703,7 @@ msgstr "Повторы за %s" msgid "Notices tagged with %s" msgstr "Записи с тегом %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Обновления с тегом %1$s на %2$s!" @@ -744,7 +744,7 @@ msgstr "" #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "Пользователь без соответствующего профиля" @@ -1751,7 +1751,7 @@ msgstr "Сделать администратором" msgid "Make this user an admin" msgstr "Сделать этого пользователя администратором" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -4459,7 +4459,7 @@ msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" "Попробуйте [найти группы](%%action.groupsearch%%) и присоединиться к ним." -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -5225,12 +5225,12 @@ msgstr "%1$s покинул группу %2$s" msgid "Fullname: %s" msgstr "Полное имя: %s" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Месторасположение: %s" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Домашняя страница: %s" @@ -5707,11 +5707,11 @@ msgstr "Войти с вашим ником и паролем." msgid "Sign up for a new account" msgstr "Создать новый аккаунт" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "Подтверждение электронного адреса" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5741,12 +5741,12 @@ msgstr "" "Благодарим за потраченное время, \n" "%s\n" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s теперь следит за вашими записями на %2$s." -#: lib/mail.php:241 +#: lib/mail.php:245 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5771,17 +5771,17 @@ msgstr "" "----\n" "Измените email-адрес и настройки уведомлений на %8$s\n" -#: lib/mail.php:258 +#: lib/mail.php:262 #, php-format msgid "Bio: %s" msgstr "Биография: %s" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "Новый электронный адрес для постинга %s" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5802,21 +5802,21 @@ msgstr "" "Искренне Ваш,\n" "%4$s" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "%s статус" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "Подтверждение СМС" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "Вас «подтолкнул» пользователь %s" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5843,12 +5843,12 @@ msgstr "" "С уважением,\n" "%4$s\n" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "Новое приватное сообщение от %s" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5881,12 +5881,12 @@ msgstr "" "С уважением,\n" "%5$s\n" -#: lib/mail.php:559 +#: lib/mail.php:568 #, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "%s (@%s) добавил вашу запись в число своих любимых" -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5923,12 +5923,12 @@ msgstr "" "С уважением,\n" "%6$s\n" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "%s (@%s) отправил запись для вашего внимания" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/statusnet.po b/locale/statusnet.po index 0f6185ffc..0e0a236c0 100644 --- a/locale/statusnet.po +++ b/locale/statusnet.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-05 22:34+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -98,7 +98,7 @@ msgstr "" #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -674,7 +674,7 @@ msgstr "" msgid "Notices tagged with %s" msgstr "" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "" @@ -714,7 +714,7 @@ msgstr "" #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "" @@ -1681,7 +1681,7 @@ msgstr "" msgid "Make this user an admin" msgstr "" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -4184,7 +4184,7 @@ msgstr "" msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -4915,12 +4915,12 @@ msgstr "" msgid "Fullname: %s" msgstr "" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "" @@ -5352,11 +5352,11 @@ msgstr "" msgid "Sign up for a new account" msgstr "" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5373,12 +5373,12 @@ msgid "" "%s\n" msgstr "" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "" -#: lib/mail.php:241 +#: lib/mail.php:245 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5393,17 +5393,17 @@ msgid "" "Change your email address or notification options at %8$s\n" msgstr "" -#: lib/mail.php:258 +#: lib/mail.php:262 #, php-format msgid "Bio: %s" msgstr "" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5416,21 +5416,21 @@ msgid "" "%4$s" msgstr "" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5446,12 +5446,12 @@ msgid "" "%4$s\n" msgstr "" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5470,12 +5470,12 @@ msgid "" "%5$s\n" msgstr "" -#: lib/mail.php:559 +#: lib/mail.php:568 #, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "" -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5496,12 +5496,12 @@ msgid "" "%6$s\n" msgstr "" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/sv/LC_MESSAGES/statusnet.po b/locale/sv/LC_MESSAGES/statusnet.po index ffafd9f93..2a508849f 100644 --- a/locale/sv/LC_MESSAGES/statusnet.po +++ b/locale/sv/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:36:36+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:50:58+0000\n" "Language-Team: Swedish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63299); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: sv\n" "X-Message-Group: out-statusnet\n" @@ -102,7 +102,7 @@ msgstr "Ingen sådan sida" #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -691,7 +691,7 @@ msgstr "Upprepningar av %s" msgid "Notices tagged with %s" msgstr "Notiser taggade med %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Uppdateringar taggade med %1$s på %2$s!" @@ -732,7 +732,7 @@ msgstr "" #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "Användare utan matchande profil" @@ -1730,7 +1730,7 @@ msgstr "Gör till administratör" msgid "Make this user an admin" msgstr "Gör denna användare till administratör" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -4445,7 +4445,7 @@ msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" "Prova att [söka efter grupper](%%action.groupsearch%%) och gå med i dem." -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -5210,12 +5210,12 @@ msgstr "%s lämnade grupp %s" msgid "Fullname: %s" msgstr "Fullständigt namn: %s" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Plats: %s" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Hemsida: %s" @@ -5688,11 +5688,11 @@ msgstr "Logga in med ett användarnamn och lösenord" msgid "Sign up for a new account" msgstr "Registrera dig för ett nytt konto" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "E-postadressbekräftelse" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5721,12 +5721,12 @@ msgstr "" "Tack för din tid, \n" "%s\n" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s lyssnar nu på dina notiser på %2$s." -#: lib/mail.php:241 +#: lib/mail.php:245 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5751,17 +5751,17 @@ msgstr "" "----\n" "Ändra din e-postadress eller notiferingsinställningar på %8$s\n" -#: lib/mail.php:258 +#: lib/mail.php:262 #, php-format msgid "Bio: %s" msgstr "Biografi: %s" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "Ny e-postadress för att skicka till %s" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5782,21 +5782,21 @@ msgstr "" "Med vänliga hälsningar,\n" "%4$s" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "%s status" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "SMS-bekräftelse" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "Du har blivit knuffad av %s" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5823,12 +5823,12 @@ msgstr "" "Med vänliga hälsningar,\n" "%4$s\n" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "Nytt privat meddelande från %s" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5861,12 +5861,12 @@ msgstr "" "Med vänliga hälsningar,\n" "%5$s\n" -#: lib/mail.php:559 +#: lib/mail.php:568 #, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "%s (@%s) lade till din notis som en favorit" -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5903,12 +5903,12 @@ msgstr "" "Med vänliga hälsningar,\n" "%6$s\n" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "%s (@%s) skickade en notis för din uppmärksamhet" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/te/LC_MESSAGES/statusnet.po b/locale/te/LC_MESSAGES/statusnet.po index f32e1499e..c8a2f5c1a 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-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:36:39+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:51:01+0000\n" "Language-Team: Telugu\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63299); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: te\n" "X-Message-Group: out-statusnet\n" @@ -106,7 +106,7 @@ msgstr "అటువంటి పేజీ లేదు" #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -692,7 +692,7 @@ msgstr "%s యొక్క పునరావృతాలు" msgid "Notices tagged with %s" msgstr "" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "%s యొక్క మైక్రోబ్లాగు" @@ -733,7 +733,7 @@ msgstr "మీ వ్యక్తిగత అవతారాన్ని మీ #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "" @@ -1719,7 +1719,7 @@ msgstr "నిర్వాహకున్ని చేయి" msgid "Make this user an admin" msgstr "ఈ వాడుకరిని నిర్వాహకున్ని చేయి" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -4317,7 +4317,7 @@ msgstr "%s ఏ గుంపు లోనూ సభ్యులు కాదు." msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "[గుంపులని వెతికి](%%action.groupsearch%%) వాటిలో చేరడానికి ప్రయత్నించండి." -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -5099,12 +5099,12 @@ msgstr "%2$s గుంపు నుండి %1$s వైదొలిగారు msgid "Fullname: %s" msgstr "పూర్తిపేరు: %s" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "ప్రాంతం: %s" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "హోంపేజీ: %s" @@ -5545,11 +5545,11 @@ msgstr "వాడుకరిపేరు మరియు సంకేతపద msgid "Sign up for a new account" msgstr "కొత్త ఖాతా సృష్టించుకోండి" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "ఈమెయిల్ చిరునామా నిర్ధారణ" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5566,12 +5566,12 @@ msgid "" "%s\n" msgstr "" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s ఇప్పుడు %2$sలో మీ నోటీసులని వింటున్నారు." -#: lib/mail.php:241 +#: lib/mail.php:245 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5596,17 +5596,17 @@ msgstr "" "----\n" "మీ ఈమెయిలు చిరునామాని లేదా గమనింపుల ఎంపికలను %8$s వద్ద మార్చుకోండి\n" -#: lib/mail.php:258 +#: lib/mail.php:262 #, php-format msgid "Bio: %s" msgstr "స్వపరిచయం: %s" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5619,21 +5619,21 @@ msgid "" "%4$s" msgstr "" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "%s స్థితి" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "SMS నిర్ధారణ" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5649,12 +5649,12 @@ msgid "" "%4$s\n" msgstr "" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "%s నుండి కొత్త అంతరంగిక సందేశం" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5673,12 +5673,12 @@ msgid "" "%5$s\n" msgstr "" -#: lib/mail.php:559 +#: lib/mail.php:568 #, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "" -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5699,12 +5699,12 @@ msgid "" "%6$s\n" msgstr "" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "%s (@%s) మీకు ఒక నోటీసుని పంపించారు" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/tr/LC_MESSAGES/statusnet.po b/locale/tr/LC_MESSAGES/statusnet.po index 80dba9abf..805e55268 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-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:36:42+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:51:04+0000\n" "Language-Team: Turkish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63299); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tr\n" "X-Message-Group: out-statusnet\n" @@ -109,7 +109,7 @@ msgstr "Böyle bir durum mesajı yok." #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -712,7 +712,7 @@ msgstr "%s için cevaplar" msgid "Notices tagged with %s" msgstr "" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "%s adli kullanicinin durum mesajlari" @@ -754,7 +754,7 @@ msgstr "" #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "" @@ -1788,7 +1788,7 @@ msgstr "" msgid "Make this user an admin" msgstr "" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -4430,7 +4430,7 @@ msgstr "Bize o profili yollamadınız" msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -5224,12 +5224,12 @@ msgstr "%1$s'in %2$s'deki durum mesajları " msgid "Fullname: %s" msgstr "Tam İsim" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "" @@ -5684,11 +5684,11 @@ msgstr "Geçersiz kullanıcı adı veya parola." msgid "Sign up for a new account" msgstr "Yeni hesap oluştur" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "Eposta adresi onayı" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5705,12 +5705,12 @@ msgid "" "%s\n" msgstr "" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s %2$s'da durumunuzu takip ediyor" -#: lib/mail.php:241 +#: lib/mail.php:245 #, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5731,17 +5731,17 @@ msgstr "" "Kendisini durumsuz bırakmayın!,\n" "%4$s.\n" -#: lib/mail.php:258 +#: lib/mail.php:262 #, fuzzy, php-format msgid "Bio: %s" msgstr "Hakkında" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5754,21 +5754,21 @@ msgid "" "%4$s" msgstr "" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "%s durum" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5784,12 +5784,12 @@ msgid "" "%4$s\n" msgstr "" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5808,12 +5808,12 @@ msgid "" "%5$s\n" msgstr "" -#: lib/mail.php:559 +#: lib/mail.php:568 #, fuzzy, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "%1$s %2$s'da durumunuzu takip ediyor" -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5834,12 +5834,12 @@ msgid "" "%6$s\n" msgstr "" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/uk/LC_MESSAGES/statusnet.po b/locale/uk/LC_MESSAGES/statusnet.po index 145eb3854..78aa5dc23 100644 --- a/locale/uk/LC_MESSAGES/statusnet.po +++ b/locale/uk/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:36:45+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:51:07+0000\n" "Language-Team: Ukrainian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63299); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: out-statusnet\n" @@ -105,7 +105,7 @@ msgstr "Немає такої сторінки" #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -702,7 +702,7 @@ msgstr "Повторення %s" msgid "Notices tagged with %s" msgstr "Дописи позначені з %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Оновлення позначені з %1$s на %2$s!" @@ -742,7 +742,7 @@ msgstr "Ви можете завантажити аватару. Максима #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "Користувач з невідповідним профілем" @@ -1735,7 +1735,7 @@ msgstr "Зробити адміном" msgid "Make this user an admin" msgstr "Надати цьому користувачеві права адміністратора" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -4444,7 +4444,7 @@ msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" "Спробуйте [знайти якісь групи](%%action.groupsearch%%) і приєднайтеся до них." -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -5206,12 +5206,12 @@ msgstr "%1$s залишив групу %2$s" msgid "Fullname: %s" msgstr "Повне ім’я: %s" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Локація: %s" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Веб-сторінка: %s" @@ -5685,11 +5685,11 @@ msgstr "Увійти використовуючи ім’я та пароль" msgid "Sign up for a new account" msgstr "Зареєструвати новий акаунт" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "Підтвердження електронної адреси" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5718,12 +5718,12 @@ msgstr "" "Дякуємо за Ваш час \n" "%s\n" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s тепер слідкує за Вашими дописами на %2$s." -#: lib/mail.php:241 +#: lib/mail.php:245 #, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5748,17 +5748,17 @@ msgstr "" "----\n" "Змінити електронну адресу або умови сповіщення — %8$s\n" -#: lib/mail.php:258 +#: lib/mail.php:262 #, php-format msgid "Bio: %s" msgstr "Про себе: %s" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "Нова електронна адреса для надсилання повідомлень на %s" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5779,21 +5779,21 @@ msgstr "" "Щиро Ваші,\n" "%4$s" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "%s статус" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "Підтвердження СМС" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "Вас спробував «розштовхати» %s" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5820,12 +5820,12 @@ msgstr "" "З найкращими побажаннями,\n" "%4$s\n" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "Нове приватне повідомлення від %s" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5858,12 +5858,12 @@ msgstr "" "З найкращими побажаннями,\n" "%5$s\n" -#: lib/mail.php:559 +#: lib/mail.php:568 #, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "%s (@%s) додав(ла) Ваш допис обраних" -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5900,12 +5900,12 @@ msgstr "" "Щиро Ваші,\n" "%6$s\n" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "%s (@%s) пропонує до Вашої уваги наступний допис" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/vi/LC_MESSAGES/statusnet.po b/locale/vi/LC_MESSAGES/statusnet.po index dec9eeeba..59751aa5d 100644 --- a/locale/vi/LC_MESSAGES/statusnet.po +++ b/locale/vi/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:36:48+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:51:10+0000\n" "Language-Team: Vietnamese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63299); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: vi\n" "X-Message-Group: out-statusnet\n" @@ -108,7 +108,7 @@ msgstr "Không có tin nhắn nào." #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -713,7 +713,7 @@ msgstr "Trả lời cho %s" msgid "Notices tagged with %s" msgstr "Thông báo được gắn thẻ %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Dòng tin nhắn cho %s" @@ -757,7 +757,7 @@ msgstr "" #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 #, fuzzy msgid "User without matching profile" msgstr "Hồ sơ ở nơi khác không khớp với hồ sơ này của bạn" @@ -1833,7 +1833,7 @@ msgstr "" msgid "Make this user an admin" msgstr "Kênh mà bạn tham gia" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, fuzzy, php-format msgid "%s timeline" @@ -4580,7 +4580,7 @@ msgstr "Bạn chưa cập nhật thông tin riêng" msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -5386,12 +5386,12 @@ msgstr "%s và nhóm" msgid "Fullname: %s" msgstr "Tên đầy đủ" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, fuzzy, php-format msgid "Location: %s" msgstr "Thành phố: %s" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, fuzzy, php-format msgid "Homepage: %s" msgstr "Trang chủ hoặc Blog: %s" @@ -5856,11 +5856,11 @@ msgstr "Sai tên đăng nhập hoặc mật khẩu." msgid "Sign up for a new account" msgstr "Tạo tài khoản mới" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "Xac nhan dia chi email" -#: lib/mail.php:174 +#: lib/mail.php:175 #, fuzzy, php-format msgid "" "Hey, %s.\n" @@ -5892,12 +5892,12 @@ msgstr "" "%4$s\n" "\n" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s đang theo dõi lưu ý của bạn trên %2$s." -#: lib/mail.php:241 +#: lib/mail.php:245 #, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5918,17 +5918,17 @@ msgstr "" "Người bạn trung thành của bạn,\n" "%4$s.\n" -#: lib/mail.php:258 +#: lib/mail.php:262 #, fuzzy, php-format msgid "Bio: %s" msgstr "Thành phố: %s" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "Dia chi email moi de gui tin nhan den %s" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5949,21 +5949,21 @@ msgstr "" "Chúc sức khỏe,\n" "%4$s" -#: lib/mail.php:413 +#: lib/mail.php:417 #, fuzzy, php-format msgid "%s status" msgstr "Trạng thái của %1$s vào %2$s" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "Xác nhận SMS" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5979,12 +5979,12 @@ msgid "" "%4$s\n" msgstr "" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "Bạn có tin nhắn riêng từ %s" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -6017,12 +6017,12 @@ msgstr "" "Chúc sức khỏe,\n" "%5$s\n" -#: lib/mail.php:559 +#: lib/mail.php:568 #, fuzzy, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "%s da them tin nhan cua ban vao danh sach tin nhan ua thich" -#: lib/mail.php:561 +#: lib/mail.php:570 #, fuzzy, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -6056,12 +6056,12 @@ msgstr "" "Chúc sức khỏe,\n" "%5$s\n" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/zh_CN/LC_MESSAGES/statusnet.po b/locale/zh_CN/LC_MESSAGES/statusnet.po index 36e3a7946..cc1761616 100644 --- a/locale/zh_CN/LC_MESSAGES/statusnet.po +++ b/locale/zh_CN/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:37:13+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:51:13+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 (r63299); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hans\n" "X-Message-Group: out-statusnet\n" @@ -110,7 +110,7 @@ msgstr "没有该页面" #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -711,7 +711,7 @@ msgstr "%s 的回复" msgid "Notices tagged with %s" msgstr "带 %s 标签的通告" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "%2$s 上 %1$s 的更新!" @@ -753,7 +753,7 @@ msgstr "您可以在这里上传个人头像。" #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "找不到匹配的用户。" @@ -1810,7 +1810,7 @@ msgstr "admin管理员" msgid "Make this user an admin" msgstr "" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -4508,7 +4508,7 @@ msgstr "您未告知此个人信息" msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -5311,12 +5311,12 @@ msgstr "%s 离开群 %s" msgid "Fullname: %s" msgstr "全名:%s" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "位置:%s" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "主页:%s" @@ -5772,11 +5772,11 @@ msgstr "输入用户名和密码以登录。" msgid "Sign up for a new account" msgstr "创建新帐号" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "电子邮件地址确认" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5793,12 +5793,12 @@ msgid "" "%s\n" msgstr "" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s 开始关注您的 %2$s 信息。" -#: lib/mail.php:241 +#: lib/mail.php:245 #, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5818,19 +5818,19 @@ msgstr "" "\n" "为您效力的 %4$s\n" -#: lib/mail.php:258 +#: lib/mail.php:262 #, fuzzy, php-format msgid "Bio: %s" msgstr "" "自传Bio: %s\n" "\n" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "新的电子邮件地址,用于发布 %s 信息" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5850,21 +5850,21 @@ msgstr "" "\n" "为您效力的 %4$s" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "%s 状态" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "SMS短信确认" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "%s 振铃呼叫你" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5880,12 +5880,12 @@ msgid "" "%4$s\n" msgstr "" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "%s 发送了新的私人信息" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5904,12 +5904,12 @@ msgid "" "%5$s\n" msgstr "" -#: lib/mail.php:559 +#: lib/mail.php:568 #, fuzzy, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "%s 收藏了您的通告" -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5930,12 +5930,12 @@ msgid "" "%6$s\n" msgstr "" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" diff --git a/locale/zh_TW/LC_MESSAGES/statusnet.po b/locale/zh_TW/LC_MESSAGES/statusnet.po index 2829f707e..3ea887beb 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-03-04 18:55+0000\n" -"PO-Revision-Date: 2010-03-05 22:37:16+0000\n" +"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"PO-Revision-Date: 2010-03-06 23:51:15+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 (r63299); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hant\n" "X-Message-Group: out-statusnet\n" @@ -105,7 +105,7 @@ msgstr "無此通知" #: 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:91 actions/userrss.php:38 +#: actions/userbyid.php:74 actions/usergroups.php:91 actions/userrss.php:40 #: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 #: lib/command.php:355 lib/command.php:401 lib/command.php:462 #: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 @@ -701,7 +701,7 @@ msgstr "" msgid "Notices tagged with %s" msgstr "" -#: actions/apitimelinetag.php:104 actions/tagrss.php:64 +#: actions/apitimelinetag.php:104 actions/tagrss.php:65 #, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "&s的微型部落格" @@ -743,7 +743,7 @@ msgstr "" #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/remotesubscribe.php:191 actions/userauthorization.php:72 -#: actions/userrss.php:103 +#: actions/userrss.php:106 msgid "User without matching profile" msgstr "" @@ -1768,7 +1768,7 @@ msgstr "" msgid "Make this user an admin" msgstr "" -#: actions/grouprss.php:138 actions/userrss.php:90 +#: actions/grouprss.php:138 actions/userrss.php:93 #: lib/atomgroupnoticefeed.php:61 lib/atomusernoticefeed.php:67 #, php-format msgid "%s timeline" @@ -4347,7 +4347,7 @@ msgstr "" msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" -#: actions/userrss.php:92 lib/atomgroupnoticefeed.php:66 +#: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 #, php-format msgid "Updates from %1$s on %2$s!" @@ -5125,12 +5125,12 @@ msgstr "%1$s的狀態是%2$s" msgid "Fullname: %s" msgstr "全名" -#: lib/command.php:312 lib/mail.php:254 +#: lib/command.php:312 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "" -#: lib/command.php:315 lib/mail.php:256 +#: lib/command.php:315 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "" @@ -5577,11 +5577,11 @@ msgstr "使用者名稱或密碼無效" msgid "Sign up for a new account" msgstr "新增帳號" -#: lib/mail.php:172 +#: lib/mail.php:173 msgid "Email address confirmation" msgstr "確認信箱" -#: lib/mail.php:174 +#: lib/mail.php:175 #, php-format msgid "" "Hey, %s.\n" @@ -5598,12 +5598,12 @@ msgid "" "%s\n" msgstr "" -#: lib/mail.php:236 +#: lib/mail.php:240 #, php-format msgid "%1$s is now listening to your notices on %2$s." msgstr "現在%1$s在%2$s成為你的粉絲囉" -#: lib/mail.php:241 +#: lib/mail.php:245 #, fuzzy, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" @@ -5625,17 +5625,17 @@ msgstr "" "%4$s.\n" "敬上。\n" -#: lib/mail.php:258 +#: lib/mail.php:262 #, fuzzy, php-format msgid "Bio: %s" msgstr "自我介紹" -#: lib/mail.php:286 +#: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" msgstr "" -#: lib/mail.php:289 +#: lib/mail.php:293 #, php-format msgid "" "You have a new posting address on %1$s.\n" @@ -5648,21 +5648,21 @@ msgid "" "%4$s" msgstr "" -#: lib/mail.php:413 +#: lib/mail.php:417 #, php-format msgid "%s status" msgstr "" -#: lib/mail.php:439 +#: lib/mail.php:443 msgid "SMS confirmation" msgstr "" -#: lib/mail.php:463 +#: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" msgstr "" -#: lib/mail.php:467 +#: lib/mail.php:471 #, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " @@ -5678,12 +5678,12 @@ msgid "" "%4$s\n" msgstr "" -#: lib/mail.php:510 +#: lib/mail.php:517 #, php-format msgid "New private message from %s" msgstr "" -#: lib/mail.php:514 +#: lib/mail.php:521 #, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" @@ -5702,12 +5702,12 @@ msgid "" "%5$s\n" msgstr "" -#: lib/mail.php:559 +#: lib/mail.php:568 #, fuzzy, php-format msgid "%s (@%s) added your notice as a favorite" msgstr "現在%1$s在%2$s成為你的粉絲囉" -#: lib/mail.php:561 +#: lib/mail.php:570 #, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" @@ -5728,12 +5728,12 @@ msgid "" "%6$s\n" msgstr "" -#: lib/mail.php:624 +#: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" msgstr "" -#: lib/mail.php:626 +#: lib/mail.php:637 #, php-format msgid "" "%1$s (@%9$s) just sent a notice to your attention (an '@-reply') on %2$s.\n" -- cgit v1.2.3-54-g00ecf From 3fba9a16f5e908b62e486d0e0df02fcb6e0a7796 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 7 Mar 2010 23:41:55 -0500 Subject: add a script to import Twitter atom feed as notices --- scripts/importtwitteratom.php | 192 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 192 insertions(+) create mode 100644 scripts/importtwitteratom.php diff --git a/scripts/importtwitteratom.php b/scripts/importtwitteratom.php new file mode 100644 index 000000000..7316f2108 --- /dev/null +++ b/scripts/importtwitteratom.php @@ -0,0 +1,192 @@ +#!/usr/bin/env php +. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); + +$shortoptions = 'i:n:f:'; +$longoptions = array('id=', 'nickname=', 'file='); + +$helptext = <<documentElement->namespaceURI != Activity::ATOM || + $dom->documentElement->localName != 'feed') { + throw new Exception("'$filename' is not an Atom feed."); + } + + return $dom; +} + +function importActivityStream($user, $doc) +{ + $feed = $doc->documentElement; + + $entries = $feed->getElementsByTagNameNS(Activity::ATOM, 'entry'); + + for ($i = $entries->length - 1; $i >= 0; $i--) { + $entry = $entries->item($i); + $activity = new Activity($entry, $feed); + $object = $activity->object; + if (!have_option('q', 'quiet')) { + print $activity->content . "\n"; + } + $html = getTweetHtml($object->link); + + $config = array('safe' => 1, + 'deny_attribute' => 'class,rel,id,style,on*'); + + $html = htmLawed($html, $config); + + $content = html_entity_decode(strip_tags($html)); + + $notice = Notice::saveNew($user->id, + $content, + 'importtwitter', + array('uri' => $object->id, + 'url' => $object->link, + 'rendered' => $html, + 'created' => common_sql_date($activity->time), + 'replies' => array(), + 'groups' => array())); + } +} + +function getTweetHtml($url) +{ + try { + $client = new HTTPClient(); + $response = $client->get($url); + } catch (HTTP_Request2_Exception $e) { + print "ERROR: HTTP response " . $e->getMessage() . "\n"; + return false; + } + + if (!$response->isOk()) { + print "ERROR: HTTP response " . $response->getCode() . "\n"; + return false; + } + + $body = $response->getBody(); + + return tweetHtmlFromBody($body); +} + +function tweetHtmlFromBody($body) +{ + $doc = DOMDocument::loadHTML($body); + $xpath = new DOMXPath($doc); + + $spans = $xpath->query('//span[@class="entry-content"]'); + + if ($spans->length == 0) { + print "ERROR: No content in tweet page.\n"; + return ''; + } + + $span = $spans->item(0); + + $children = $span->childNodes; + + $text = ''; + + for ($i = 0; $i < $children->length; $i++) { + $child = $children->item($i); + if ($child instanceof DOMElement && + $child->tagName == 'a' && + !preg_match('#^https?://#', $child->getAttribute('href'))) { + $child->setAttribute('href', 'http://twitter.com' . $child->getAttribute('href')); + } + $text .= $doc->saveXML($child); + } + + return $text; +} + +try { + + $doc = getAtomFeedDocument(); + $user = getUser(); + + importActivityStream($user, $doc); + +} catch (Exception $e) { + print $e->getMessage()."\n"; + exit(1); +} + -- cgit v1.2.3-54-g00ecf From 7faf6ec75592764b829b1954352dfaf0329cdbf0 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 7 Mar 2010 23:41:55 -0500 Subject: add a script to import Twitter atom feed as notices --- scripts/importtwitteratom.php | 192 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 192 insertions(+) create mode 100644 scripts/importtwitteratom.php diff --git a/scripts/importtwitteratom.php b/scripts/importtwitteratom.php new file mode 100644 index 000000000..7316f2108 --- /dev/null +++ b/scripts/importtwitteratom.php @@ -0,0 +1,192 @@ +#!/usr/bin/env php +. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); + +$shortoptions = 'i:n:f:'; +$longoptions = array('id=', 'nickname=', 'file='); + +$helptext = <<documentElement->namespaceURI != Activity::ATOM || + $dom->documentElement->localName != 'feed') { + throw new Exception("'$filename' is not an Atom feed."); + } + + return $dom; +} + +function importActivityStream($user, $doc) +{ + $feed = $doc->documentElement; + + $entries = $feed->getElementsByTagNameNS(Activity::ATOM, 'entry'); + + for ($i = $entries->length - 1; $i >= 0; $i--) { + $entry = $entries->item($i); + $activity = new Activity($entry, $feed); + $object = $activity->object; + if (!have_option('q', 'quiet')) { + print $activity->content . "\n"; + } + $html = getTweetHtml($object->link); + + $config = array('safe' => 1, + 'deny_attribute' => 'class,rel,id,style,on*'); + + $html = htmLawed($html, $config); + + $content = html_entity_decode(strip_tags($html)); + + $notice = Notice::saveNew($user->id, + $content, + 'importtwitter', + array('uri' => $object->id, + 'url' => $object->link, + 'rendered' => $html, + 'created' => common_sql_date($activity->time), + 'replies' => array(), + 'groups' => array())); + } +} + +function getTweetHtml($url) +{ + try { + $client = new HTTPClient(); + $response = $client->get($url); + } catch (HTTP_Request2_Exception $e) { + print "ERROR: HTTP response " . $e->getMessage() . "\n"; + return false; + } + + if (!$response->isOk()) { + print "ERROR: HTTP response " . $response->getCode() . "\n"; + return false; + } + + $body = $response->getBody(); + + return tweetHtmlFromBody($body); +} + +function tweetHtmlFromBody($body) +{ + $doc = DOMDocument::loadHTML($body); + $xpath = new DOMXPath($doc); + + $spans = $xpath->query('//span[@class="entry-content"]'); + + if ($spans->length == 0) { + print "ERROR: No content in tweet page.\n"; + return ''; + } + + $span = $spans->item(0); + + $children = $span->childNodes; + + $text = ''; + + for ($i = 0; $i < $children->length; $i++) { + $child = $children->item($i); + if ($child instanceof DOMElement && + $child->tagName == 'a' && + !preg_match('#^https?://#', $child->getAttribute('href'))) { + $child->setAttribute('href', 'http://twitter.com' . $child->getAttribute('href')); + } + $text .= $doc->saveXML($child); + } + + return $text; +} + +try { + + $doc = getAtomFeedDocument(); + $user = getUser(); + + importActivityStream($user, $doc); + +} catch (Exception $e) { + print $e->getMessage()."\n"; + exit(1); +} + -- cgit v1.2.3-54-g00ecf From b8cb3d2833a5de39e51d5beb463ab8a0d218bbdb Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Mon, 8 Mar 2010 16:08:03 +0000 Subject: Alignment fix for IE6 --- theme/base/css/ie6.css | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/theme/base/css/ie6.css b/theme/base/css/ie6.css index edc49478f..6df5e01ce 100644 --- a/theme/base/css/ie6.css +++ b/theme/base/css/ie6.css @@ -12,11 +12,11 @@ margin:0 auto; } #content { -width:69%; +width:66%; } #aside_primary { -padding:5%; -width:29.5%; +padding:1.8%; +width:24%; } .entity_profile .entity_nickname, .entity_profile .entity_location, @@ -32,9 +32,9 @@ margin-bottom:123px; width:20%; } .notice div.entry-content { -width:50%; +width:65%; margin-left:30px; } .notice-options a { width:16px; -} \ No newline at end of file +} -- cgit v1.2.3-54-g00ecf From 5f7aa6f2e3c82b9598e3405885eb455bed9b0edc Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 8 Mar 2010 12:36:03 -0500 Subject: make API realm configurable --- lib/apiauth.php | 6 +++++- lib/default.php | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/apiauth.php b/lib/apiauth.php index 5090871cf..f63c84d8f 100644 --- a/lib/apiauth.php +++ b/lib/apiauth.php @@ -235,7 +235,11 @@ class ApiAuthAction extends ApiAction { $this->basicAuthProcessHeader(); - $realm = common_config('site', 'name') . ' API'; + $realm = common_config('api', 'realm'); + + if (empty($realm)) { + $realm = common_config('site', 'name') . ' API'; + } if (!isset($this->auth_user_nickname) && $required) { header('WWW-Authenticate: Basic realm="' . $realm . '"'); diff --git a/lib/default.php b/lib/default.php index bdd78d4d8..46d3d4774 100644 --- a/lib/default.php +++ b/lib/default.php @@ -293,4 +293,6 @@ $default = array('crawldelay' => 0, 'disallow' => array('main', 'settings', 'admin', 'search', 'message') ), + 'api' => + array('realm' => null), ); -- cgit v1.2.3-54-g00ecf From 3f696ff0ed4be5791edd38cf7b2a98a364b95676 Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Fri, 5 Mar 2010 17:54:53 +0800 Subject: ldap_get_connection() to return null when passed a config with bad user/pw. This mainly affects login; before if the user enters a valid username but invalid password, ldap_get_connection() throws an LDAP_INVALID_CREDENTIALS error. Now the user sees the regular "Incorrect username of password" error message. --- plugins/LdapAuthentication/LdapAuthenticationPlugin.php | 5 +++++ plugins/LdapAuthorization/LdapAuthorizationPlugin.php | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/plugins/LdapAuthentication/LdapAuthenticationPlugin.php b/plugins/LdapAuthentication/LdapAuthenticationPlugin.php index e0fd615dd..483209676 100644 --- a/plugins/LdapAuthentication/LdapAuthenticationPlugin.php +++ b/plugins/LdapAuthentication/LdapAuthenticationPlugin.php @@ -224,6 +224,11 @@ class LdapAuthenticationPlugin extends AuthenticationPlugin $ldap->setErrorHandling(PEAR_ERROR_RETURN); $err=$ldap->bind(); if (Net_LDAP2::isError($err)) { + // if we were called with a config, assume caller will handle + // incorrect username/password (LDAP_INVALID_CREDENTIALS) + if (isset($config) && $err->getCode() == 0x31) { + return null; + } throw new Exception('Could not connect to LDAP server: '.$err->getMessage()); } if($config == null) $this->default_ldap=$ldap; diff --git a/plugins/LdapAuthorization/LdapAuthorizationPlugin.php b/plugins/LdapAuthorization/LdapAuthorizationPlugin.php index 19aff42b8..2608025dd 100644 --- a/plugins/LdapAuthorization/LdapAuthorizationPlugin.php +++ b/plugins/LdapAuthorization/LdapAuthorizationPlugin.php @@ -167,6 +167,11 @@ class LdapAuthorizationPlugin extends AuthorizationPlugin $ldap->setErrorHandling(PEAR_ERROR_RETURN); $err=$ldap->bind(); if (Net_LDAP2::isError($err)) { + // if we were called with a config, assume caller will handle + // incorrect username/password (LDAP_INVALID_CREDENTIALS) + if (isset($config) && $err->getCode() == 0x31) { + return null; + } throw new Exception('Could not connect to LDAP server: '.$err->getMessage()); return false; } -- cgit v1.2.3-54-g00ecf From ef3991dbbe0acdba2dd7050b99f951ccfe5b8258 Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Mon, 8 Mar 2010 15:31:16 +0800 Subject: Fixed warning messages when auto-registering a new LDAP user. On my test system (without memcache), while testing the LDAP authentication plugin, when I sign in for the first time, triggering auto-registration, I get these messages in the output page: Warning: ksort() expects parameter 1 to be array, null given in /home/jeff/Documents/code/statusnet/classes/Memcached_DataObject.php on line 219 Warning: Invalid argument supplied for foreach() in /home/jeff/Documents/code/statusnet/classes/Memcached_DataObject.php on line 224 Warning: assert() [function.assert]: Assertion failed in /home/jeff/Documents/code/statusnet/classes/Memcached_DataObject.php on line 241 (plus two "Cannot modify header information..." messages as a result of the above warnings) This change appears to fix this (although I can't really explain exactly why). --- classes/User_username.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/User_username.php b/classes/User_username.php index 853fd5cb8..8d99cddd3 100644 --- a/classes/User_username.php +++ b/classes/User_username.php @@ -55,7 +55,7 @@ class User_username extends Memcached_DataObject // now define the keys. function keys() { - return array('provider_name', 'username'); + return array('provider_name' => 'K', 'username' => 'K'); } } -- cgit v1.2.3-54-g00ecf From a77efb2447abe75d3b9902410bced61b76377de3 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 8 Mar 2010 10:32:40 -0800 Subject: XMPP cleanup: fix outgoing XMPP when queuing is disabled; fix notice for first access to undefined member variable --- lib/jabber.php | 34 +++++++++++++++++++++------------- lib/xmppmanager.php | 1 + 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/lib/jabber.php b/lib/jabber.php index e1bf06ba6..db4e2e9a7 100644 --- a/lib/jabber.php +++ b/lib/jabber.php @@ -88,22 +88,30 @@ class Sharing_XMPP extends XMPPHP_XMPP /** * Build an XMPP proxy connection that'll save outgoing messages * to the 'xmppout' queue to be picked up by xmppdaemon later. + * + * If queueing is disabled, we'll grab a live connection. + * + * @return XMPPHP */ function jabber_proxy() { - $proxy = new Queued_XMPP(common_config('xmpp', 'host') ? - common_config('xmpp', 'host') : - common_config('xmpp', 'server'), - common_config('xmpp', 'port'), - common_config('xmpp', 'user'), - common_config('xmpp', 'password'), - common_config('xmpp', 'resource') . 'daemon', - common_config('xmpp', 'server'), - common_config('xmpp', 'debug') ? - true : false, - common_config('xmpp', 'debug') ? - XMPPHP_Log::LEVEL_VERBOSE : null); - return $proxy; + if (common_config('queue', 'enabled')) { + $proxy = new Queued_XMPP(common_config('xmpp', 'host') ? + common_config('xmpp', 'host') : + common_config('xmpp', 'server'), + common_config('xmpp', 'port'), + common_config('xmpp', 'user'), + common_config('xmpp', 'password'), + common_config('xmpp', 'resource') . 'daemon', + common_config('xmpp', 'server'), + common_config('xmpp', 'debug') ? + true : false, + common_config('xmpp', 'debug') ? + XMPPHP_Log::LEVEL_VERBOSE : null); + return $proxy; + } else { + return jabber_connect(); + } } /** diff --git a/lib/xmppmanager.php b/lib/xmppmanager.php index f37635855..cca54db08 100644 --- a/lib/xmppmanager.php +++ b/lib/xmppmanager.php @@ -36,6 +36,7 @@ class XmppManager extends IoManager protected $site = null; protected $pingid = 0; protected $lastping = null; + protected $conn = null; static protected $singletons = array(); -- cgit v1.2.3-54-g00ecf From 217ad420ac8085fe620235dfc47bea27e4ac75dc Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 8 Mar 2010 12:19:06 -0800 Subject: Fix ticket #2208: regression in XMPP sending when server != host The upstream class sets $this->basejid with host unconditionally, which wasn't previously an issue as the fulljid would always be filled in by the server at connect time before sending messages. With the new queued messaging, we need to make sure we've filled out $this->fulljid correctly without making a connection. Now using $server if provided to build $this->basejid and $this->fulljid in the queued XMPP proxy class, so queued messages are sent correctly. --- lib/queued_xmpp.php | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/lib/queued_xmpp.php b/lib/queued_xmpp.php index fdd074db2..f6bccfd5b 100644 --- a/lib/queued_xmpp.php +++ b/lib/queued_xmpp.php @@ -49,10 +49,20 @@ class Queued_XMPP extends XMPPHP_XMPP */ public function __construct($host, $port, $user, $password, $resource, $server = null, $printlog = false, $loglevel = null) { - parent::__construct($host, $port, $user, $password, $resource, $server, $printlog, $loglevel); - // Normally the fulljid isn't filled out until resource binding time; - // we need to save it here since we're not talking to a real server. - $this->fulljid = "{$this->basejid}/{$this->resource}"; + parent::__construct($host, $port, $user, $password, $resource, $server, $printlog, $loglevel); + + // We use $host to connect, but $server to build JIDs if specified. + // This seems to fix an upstream bug where $host was used to build + // $this->basejid, never seen since it isn't actually used in the base + // classes. + if (!$server) { + $server = $this->host; + } + $this->basejid = $this->user . '@' . $server; + + // Normally the fulljid is filled out by the server at resource binding + // time, but we need to do it since we're not talking to a real server. + $this->fulljid = "{$this->basejid}/{$this->resource}"; } /** -- cgit v1.2.3-54-g00ecf From 7e7d88831cf8b3e8876499b86890da2e63b08c97 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 8 Mar 2010 13:32:18 -0800 Subject: CentOS 5.4 still bogus on a stock install. --- extlib/Auth/OpenID/Consumer.php | 3 +++ install.php | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/extlib/Auth/OpenID/Consumer.php b/extlib/Auth/OpenID/Consumer.php index 500890b65..130fe0713 100644 --- a/extlib/Auth/OpenID/Consumer.php +++ b/extlib/Auth/OpenID/Consumer.php @@ -966,6 +966,9 @@ class Auth_OpenID_GenericConsumer { // framework will not want to block on this call to // _checkAuth. if (!$this->_checkAuth($message, $server_url)) { + var_dump($message); + var_dump($server_url); + var_dump($this); return new Auth_OpenID_FailureResponse(null, "Server denied check_authentication"); } diff --git a/install.php b/install.php index 7fece8999..929277e5e 100644 --- a/install.php +++ b/install.php @@ -308,7 +308,7 @@ function checkPrereqs() printf('

      PHP is linked to a version of the PCRE library ' . 'that does not support Unicode properties. ' . 'If you are running Red Hat Enterprise Linux / ' . - 'CentOS 5.3 or earlier, see our documentation page on fixing this.

      '); $pass = false; -- cgit v1.2.3-54-g00ecf From 3b0bdc0ae2730f9dc8ad4772fa5a65dae351b976 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 8 Mar 2010 13:38:26 -0800 Subject: Revert "CentOS 5.4 still bogus on a stock install." - bad debug lines crept in This reverts commit 7e7d88831cf8b3e8876499b86890da2e63b08c97. --- extlib/Auth/OpenID/Consumer.php | 3 --- install.php | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/extlib/Auth/OpenID/Consumer.php b/extlib/Auth/OpenID/Consumer.php index 130fe0713..500890b65 100644 --- a/extlib/Auth/OpenID/Consumer.php +++ b/extlib/Auth/OpenID/Consumer.php @@ -966,9 +966,6 @@ class Auth_OpenID_GenericConsumer { // framework will not want to block on this call to // _checkAuth. if (!$this->_checkAuth($message, $server_url)) { - var_dump($message); - var_dump($server_url); - var_dump($this); return new Auth_OpenID_FailureResponse(null, "Server denied check_authentication"); } diff --git a/install.php b/install.php index 929277e5e..7fece8999 100644 --- a/install.php +++ b/install.php @@ -308,7 +308,7 @@ function checkPrereqs() printf('

      PHP is linked to a version of the PCRE library ' . 'that does not support Unicode properties. ' . 'If you are running Red Hat Enterprise Linux / ' . - 'CentOS 5.4 or earlier, see our documentation page on fixing this.

      '); $pass = false; -- cgit v1.2.3-54-g00ecf From 927a368d0e4c924ec8132ff054be311e17ded45e Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 8 Mar 2010 13:38:59 -0800 Subject: CentOS 5.4 still has bad PCRE in stock (though all bets off for PHP packages, since you'd need a version update anyway...) --- install.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.php b/install.php index 7fece8999..929277e5e 100644 --- a/install.php +++ b/install.php @@ -308,7 +308,7 @@ function checkPrereqs() printf('

      PHP is linked to a version of the PCRE library ' . 'that does not support Unicode properties. ' . 'If you are running Red Hat Enterprise Linux / ' . - 'CentOS 5.3 or earlier, see our documentation page on fixing this.

      '); $pass = false; -- cgit v1.2.3-54-g00ecf From 6524efd2a0b8684500ef15eb61f740fc7365e1e3 Mon Sep 17 00:00:00 2001 From: Siebrand Mazeland Date: Mon, 8 Mar 2010 22:48:27 +0100 Subject: Localisation updates for !StatusNet from !translatewiki.net !sntrans Signed-off-by: Siebrand Mazeland --- locale/de/LC_MESSAGES/statusnet.po | 43 ++-- locale/nb/LC_MESSAGES/statusnet.po | 443 ++++++++++++++++++++----------------- locale/statusnet.po | 2 +- 3 files changed, 264 insertions(+), 224 deletions(-) diff --git a/locale/de/LC_MESSAGES/statusnet.po b/locale/de/LC_MESSAGES/statusnet.po index fb91e4768..4bad95b9e 100644 --- a/locale/de/LC_MESSAGES/statusnet.po +++ b/locale/de/LC_MESSAGES/statusnet.po @@ -16,11 +16,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:49:34+0000\n" +"PO-Revision-Date: 2010-03-08 21:10:39+0000\n" "Language-Team: German\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63415); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: out-statusnet\n" @@ -3364,14 +3364,12 @@ msgid "Replies to %1$s on %2$s!" msgstr "Antworten an %1$s auf %2$s!" #: actions/revokerole.php:75 -#, fuzzy msgid "You cannot revoke user roles on this site." -msgstr "Du kannst Nutzer dieser Seite nicht ruhig stellen." +msgstr "Du kannst die Rollen von Nutzern dieser Seite nicht widerrufen." #: actions/revokerole.php:82 -#, fuzzy msgid "User doesn't have this role." -msgstr "Benutzer ohne passendes Profil" +msgstr "Benutzer verfügt nicht über diese Rolle." #: actions/rsd.php:146 actions/version.php:157 msgid "StatusNet" @@ -4289,11 +4287,11 @@ msgstr "Profil" #: actions/useradminpanel.php:222 msgid "Bio Limit" -msgstr "" +msgstr "Bio Limit" #: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." -msgstr "" +msgstr "Maximale Länge in Zeichen der Profil Bio." #: actions/useradminpanel.php:231 msgid "New users" @@ -4412,7 +4410,7 @@ msgstr "" #: actions/userauthorization.php:329 #, php-format msgid "Profile URL ‘%s’ is for a local user." -msgstr "" +msgstr "Profiladresse '%s' ist für einen lokalen Benutzer." #: actions/userauthorization.php:345 #, php-format @@ -4515,6 +4513,8 @@ msgid "" "You should have received a copy of the GNU Affero General Public License " "along with this program. If not, see %s." msgstr "" +"Du hast eine Kopie der GNU Affero General Public License zusammen mit diesem " +"Programm erhalten. Wenn nicht, siehe %s." #: actions/version.php:189 msgid "Plugins" @@ -4534,16 +4534,20 @@ msgid "" "No file may be larger than %d bytes and the file you sent was %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." #: classes/File.php:154 #, php-format msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" +msgstr "Eine Datei dieser Größe überschreitet deine User Quota von %d Byte." #: classes/File.php:161 #, 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 msgid "Group join failed." @@ -4599,7 +4603,6 @@ msgstr "" "ein paar Minuten ab." #: classes/Notice.php:256 -#, fuzzy msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." @@ -4915,6 +4918,8 @@ msgstr "" #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" +"Inhalt und Daten urheberrechtlich geschützt durch %1$s. Alle Rechte " +"vorbehalten." #: lib/action.php:834 msgid "Content and data copyright by contributors. All rights reserved." @@ -4946,7 +4951,7 @@ msgstr "" #: lib/activity.php:481 msgid "Can't handle embedded XML content yet." -msgstr "" +msgstr "Kann eingebundenen XML Inhalt nicht verarbeiten." #: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." @@ -4959,9 +4964,8 @@ msgstr "Du kannst keine Änderungen an dieser Seite vornehmen." #. TRANS: Client error message #: lib/adminpanelaction.php:110 -#, fuzzy msgid "Changes to that panel are not allowed." -msgstr "Registrierung nicht gestattet" +msgstr "Änderungen an dieser Seite sind nicht erlaubt." #. TRANS: Client error message #: lib/adminpanelaction.php:229 @@ -5054,9 +5058,9 @@ msgid "Icon for this application" msgstr "Programmsymbol" #: lib/applicationeditform.php:204 -#, fuzzy, php-format +#, php-format msgid "Describe your application in %d characters" -msgstr "Beschreibe die Gruppe oder das Thema in 140 Zeichen" +msgstr "Beschreibe dein Programm in %d Zeichen" #: lib/applicationeditform.php:207 msgid "Describe your application" @@ -5075,9 +5079,8 @@ msgid "Organization responsible for this application" msgstr "" #: lib/applicationeditform.php:230 -#, fuzzy msgid "URL for the homepage of the organization" -msgstr "URL der Homepage oder Blogs der Gruppe oder des Themas" +msgstr "Homepage der Gruppe oder des Themas" #: lib/applicationeditform.php:236 msgid "URL to redirect to after authentication" @@ -6213,9 +6216,9 @@ msgid "Repeat this notice" msgstr "Diese Nachricht wiederholen" #: lib/revokeroleform.php:91 -#, fuzzy, php-format +#, php-format msgid "Revoke the \"%s\" role from this user" -msgstr "Diesen Nutzer von der Gruppe sperren" +msgstr "Widerrufe die \"%s\" Rolle von diesem Benutzer" #: lib/router.php:671 msgid "No single user defined for single-user mode." diff --git a/locale/nb/LC_MESSAGES/statusnet.po b/locale/nb/LC_MESSAGES/statusnet.po index 77588ef05..b687e445e 100644 --- a/locale/nb/LC_MESSAGES/statusnet.po +++ b/locale/nb/LC_MESSAGES/statusnet.po @@ -10,11 +10,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:50:27+0000\n" +"PO-Revision-Date: 2010-03-08 21:11:29+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 (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63415); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: out-statusnet\n" @@ -43,7 +43,6 @@ msgstr "Forhindre anonyme brukere (ikke innlogget) å se nettsted?" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -#, fuzzy msgctxt "LABEL" msgid "Private" msgstr "Privat" @@ -74,7 +73,6 @@ msgid "Save access settings" msgstr "Lagre tilgangsinnstillinger" #: actions/accessadminpanel.php:203 -#, fuzzy msgctxt "BUTTON" msgid "Save" msgstr "Lagre" @@ -1094,11 +1092,11 @@ msgstr "Av" #: actions/designadminpanel.php:474 lib/designsettings.php:156 msgid "Turn background image on or off." -msgstr "" +msgstr "Slå på eller av bakgrunnsbilde." #: actions/designadminpanel.php:479 lib/designsettings.php:161 msgid "Tile background image" -msgstr "" +msgstr "Gjenta bakgrunnsbildet" #: actions/designadminpanel.php:488 lib/designsettings.php:170 msgid "Change colours" @@ -1213,7 +1211,7 @@ msgstr "Organisasjon er for lang (maks 255 tegn)." #: actions/editapplication.php:209 actions/newapplication.php:194 msgid "Organization homepage is required." -msgstr "" +msgstr "Hjemmeside for organisasjon kreves." #: actions/editapplication.php:218 actions/newapplication.php:206 msgid "Callback is too long." @@ -1224,9 +1222,8 @@ msgid "Callback URL is not valid." msgstr "" #: actions/editapplication.php:258 -#, fuzzy msgid "Could not update application." -msgstr "Klarte ikke å oppdatere bruker." +msgstr "Kunne ikke oppdatere programmet." #: actions/editgroup.php:56 #, php-format @@ -1320,11 +1317,11 @@ msgstr "innkommende e-post" #: actions/emailsettings.php:138 actions/smssettings.php:157 msgid "Send email to this address to post new notices." -msgstr "" +msgstr "Send e-post til denne adressen for å poste nye notiser." #: actions/emailsettings.php:145 actions/smssettings.php:162 msgid "Make a new email address for posting to; cancels the old one." -msgstr "" +msgstr "Angi en ny e-postadresse for å poste til; fjerner den gamle." #: actions/emailsettings.php:148 actions/smssettings.php:164 msgid "New" @@ -1341,15 +1338,15 @@ msgstr "" #: actions/emailsettings.php:163 msgid "Send me email when someone adds my notice as a favorite." -msgstr "" +msgstr "Send meg en e-post når noen legger min notis til som favoritt." #: actions/emailsettings.php:169 msgid "Send me email when someone sends me a private message." -msgstr "" +msgstr "Send meg en e-post når noen sender meg en privat melding." #: actions/emailsettings.php:174 msgid "Send me email when someone sends me an \"@-reply\"." -msgstr "" +msgstr "Send meg en e-post når noen sender meg et «@-svar»." #: actions/emailsettings.php:179 msgid "Allow friends to nudge me and send me an email." @@ -1357,7 +1354,7 @@ msgstr "" #: actions/emailsettings.php:185 msgid "I want to post notices by email." -msgstr "" +msgstr "Jeg vil poste notiser med e-post." #: actions/emailsettings.php:191 msgid "Publish a MicroID for my email address." @@ -1387,12 +1384,12 @@ msgstr "Det er allerede din e-postadresse." #: actions/emailsettings.php:337 msgid "That email address already belongs to another user." -msgstr "" +msgstr "Den e-postadressen tilhører allerede en annen bruker." #: actions/emailsettings.php:353 actions/imsettings.php:319 #: actions/smssettings.php:337 msgid "Couldn't insert confirmation code." -msgstr "" +msgstr "Kunne ikke sette inn bekreftelseskode." #: actions/emailsettings.php:359 msgid "" @@ -1427,7 +1424,7 @@ msgstr "Adressen ble fjernet." #: actions/emailsettings.php:446 actions/smssettings.php:518 msgid "No incoming email address." -msgstr "" +msgstr "Ingen innkommende e-postadresse." #: actions/emailsettings.php:456 actions/emailsettings.php:478 #: actions/smssettings.php:528 actions/smssettings.php:552 @@ -1440,15 +1437,15 @@ msgstr "" #: actions/emailsettings.php:481 actions/smssettings.php:555 msgid "New incoming email address added." -msgstr "" +msgstr "Ny innkommende e-postadresse lagt til." #: actions/favor.php:79 msgid "This notice is already a favorite!" -msgstr "" +msgstr "Denne notisen er allerede en favoritt." #: actions/favor.php:92 lib/disfavorform.php:140 msgid "Disfavor favorite" -msgstr "" +msgstr "Fjern favoritt" #: actions/favorited.php:65 lib/popularnoticesection.php:91 #: lib/publicgroupnav.php:93 @@ -1508,14 +1505,12 @@ msgid "A selection of some great users on %s" msgstr "" #: actions/file.php:34 -#, fuzzy msgid "No notice ID." -msgstr "Nytt nick" +msgstr "Ingen notis-ID." #: actions/file.php:38 -#, fuzzy msgid "No notice." -msgstr "Nytt nick" +msgstr "Ingen notis." #: actions/file.php:42 msgid "No attachments." @@ -1566,40 +1561,37 @@ msgid "Cannot read file." msgstr "Kan ikke lese fil." #: actions/grantrole.php:62 actions/revokerole.php:62 -#, fuzzy msgid "Invalid role." -msgstr "Ugyldig symbol." +msgstr "Ugyldig rolle." #: actions/grantrole.php:66 actions/revokerole.php:66 msgid "This role is reserved and cannot be set." -msgstr "" +msgstr "Denne rollen er reservert og kan ikke stilles inn." #: actions/grantrole.php:75 -#, fuzzy msgid "You cannot grant user roles on this site." -msgstr "Du er allerede logget inn!" +msgstr "Du kan ikke tildele brukerroller på dette nettstedet." #: actions/grantrole.php:82 -#, fuzzy msgid "User already has this role." -msgstr "Du er allerede logget inn!" +msgstr "Bruker har allerede denne rollen." #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 msgid "No profile specified." -msgstr "" +msgstr "Ingen profil oppgitt." #: 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:77 msgid "No profile with that ID." -msgstr "" +msgstr "Ingen profil med den ID'en." #: actions/groupblock.php:81 actions/groupunblock.php:81 #: actions/makeadmin.php:81 msgid "No group specified." -msgstr "" +msgstr "Ingen gruppe oppgitt." #: actions/groupblock.php:91 msgid "Only an admin can block group members." @@ -1612,11 +1604,11 @@ msgstr "Du er allerede logget inn!" #: actions/groupblock.php:100 msgid "User is not a member of group." -msgstr "" +msgstr "Bruker er ikke et medlem av gruppa." #: actions/groupblock.php:136 actions/groupmembers.php:323 msgid "Block user from group" -msgstr "" +msgstr "Blokker bruker fra gruppe" #: actions/groupblock.php:162 #, php-format @@ -1628,7 +1620,7 @@ msgstr "" #: actions/groupblock.php:178 msgid "Do not block this user from this group" -msgstr "" +msgstr "Ikke blokker denne brukeren fra denne gruppa" #: actions/groupblock.php:179 msgid "Block this user from this group" @@ -1977,7 +1969,6 @@ msgstr "" #. TRANS: Send button for inviting friends #: actions/invite.php:198 -#, fuzzy msgctxt "BUTTON" msgid "Send" msgstr "Send" @@ -2044,9 +2035,8 @@ msgid "You must be logged in to join a group." msgstr "Du må være innlogget for å bli med i en gruppe." #: actions/joingroup.php:88 actions/leavegroup.php:88 -#, fuzzy msgid "No nickname or ID." -msgstr "Ingen kallenavn." +msgstr "ngen kallenavn eller ID." #: actions/joingroup.php:141 #, php-format @@ -2160,28 +2150,28 @@ msgstr "Klarte ikke å lagre avatar-informasjonen" #: actions/newgroup.php:53 msgid "New group" -msgstr "" +msgstr "Ny gruppe" #: actions/newgroup.php:110 msgid "Use this form to create a new group." -msgstr "" +msgstr "Bruk dette skjemaet for å opprette en ny gruppe." #: actions/newmessage.php:71 actions/newmessage.php:231 msgid "New message" -msgstr "" +msgstr "Ny melding" #: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 msgid "You can't send a message to this user." -msgstr "" +msgstr "Du kan ikke sende en melding til denne brukeren." #: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 #: lib/command.php:475 msgid "No content!" -msgstr "" +msgstr "Inget innhold." #: actions/newmessage.php:158 msgid "No recipient specified." -msgstr "" +msgstr "Ingen mottaker oppgitt." #: actions/newmessage.php:164 lib/command.php:361 msgid "" @@ -2190,7 +2180,7 @@ msgstr "" #: actions/newmessage.php:181 msgid "Message sent" -msgstr "" +msgstr "Melding sendt" #: actions/newmessage.php:185 #, fuzzy, php-format @@ -2199,15 +2189,15 @@ msgstr "Direktemeldinger til %s" #: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" -msgstr "" +msgstr "Ajax-feil" #: actions/newnotice.php:69 msgid "New notice" -msgstr "" +msgstr "Ny notis" #: actions/newnotice.php:211 msgid "Notice posted" -msgstr "" +msgstr "Notis postet" #: actions/noticesearch.php:68 #, php-format @@ -2345,7 +2335,7 @@ msgstr "" #: actions/othersettings.php:108 msgid " (free service)" -msgstr "" +msgstr " (gratis tjeneste)" #: actions/othersettings.php:116 msgid "Shorten URLs with" @@ -4644,59 +4634,50 @@ msgid "Invite friends and colleagues to join you on %s" msgstr "" #: lib/action.php:456 -#, fuzzy msgctxt "MENU" msgid "Invite" -msgstr "Kun invitasjon" +msgstr "Inviter" #. TRANS: Tooltip for main menu option "Logout" #: lib/action.php:462 -#, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" -msgstr "Tema for nettstedet." +msgstr "Logg ut fra nettstedet" #: lib/action.php:465 -#, fuzzy msgctxt "MENU" msgid "Logout" msgstr "Logg ut" #. TRANS: Tooltip for main menu option "Register" #: lib/action.php:470 -#, fuzzy msgctxt "TOOLTIP" msgid "Create an account" -msgstr "Opprett en ny konto" +msgstr "Opprett en konto" #: lib/action.php:473 -#, fuzzy msgctxt "MENU" msgid "Register" -msgstr "Registrering" +msgstr "Registrer" #. TRANS: Tooltip for main menu option "Login" #: lib/action.php:476 -#, fuzzy msgctxt "TOOLTIP" msgid "Login to the site" -msgstr "Tema for nettstedet." +msgstr "Log inn på nettstedet" #: lib/action.php:479 -#, fuzzy msgctxt "MENU" msgid "Login" msgstr "Logg inn" #. TRANS: Tooltip for main menu option "Help" #: lib/action.php:482 -#, fuzzy msgctxt "TOOLTIP" msgid "Help me!" -msgstr "Hjelp" +msgstr "Hjelp meg." #: lib/action.php:485 -#, fuzzy msgctxt "MENU" msgid "Help" msgstr "Hjelp" @@ -4705,10 +4686,9 @@ msgstr "Hjelp" #: lib/action.php:488 msgctxt "TOOLTIP" msgid "Search for people or text" -msgstr "" +msgstr "Søk etter personer eller tekst" #: lib/action.php:491 -#, fuzzy msgctxt "MENU" msgid "Search" msgstr "Søk" @@ -4809,11 +4789,11 @@ msgstr "" #: lib/action.php:847 msgid "All " -msgstr "" +msgstr "Alle " #: lib/action.php:853 msgid "license." -msgstr "" +msgstr "lisens." #: lib/action.php:1152 msgid "Pagination" @@ -4821,12 +4801,11 @@ msgstr "" #: lib/action.php:1161 msgid "After" -msgstr "" +msgstr "Etter" #: lib/action.php:1169 -#, fuzzy msgid "Before" -msgstr "Tidligere »" +msgstr "Før" #: lib/activity.php:453 msgid "Can't handle remote content yet." @@ -4843,7 +4822,7 @@ msgstr "" #. TRANS: Client error message #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." -msgstr "" +msgstr "Du kan ikke gjøre endringer på dette nettstedet." #. TRANS: Client error message #: lib/adminpanelaction.php:110 @@ -5456,31 +5435,30 @@ msgstr "" #: lib/groupnav.php:85 msgid "Group" -msgstr "" +msgstr "Gruppe" #: lib/groupnav.php:101 msgid "Blocked" -msgstr "" +msgstr "Blokkert" #: lib/groupnav.php:102 #, php-format msgid "%s blocked users" -msgstr "" +msgstr "%s blokkerte brukere" #: lib/groupnav.php:108 #, php-format msgid "Edit %s group properties" -msgstr "" +msgstr "Rediger %s gruppeegenskaper" #: lib/groupnav.php:113 -#, fuzzy msgid "Logo" -msgstr "Logg ut" +msgstr "Logo" #: lib/groupnav.php:114 #, php-format msgid "Add or edit %s logo" -msgstr "" +msgstr "Legg til eller rediger %s logo" #: lib/groupnav.php:120 #, php-format @@ -5489,11 +5467,11 @@ msgstr "" #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" -msgstr "" +msgstr "Grupper med flest medlemmer" #: lib/groupsbypostssection.php:71 msgid "Groups with most posts" -msgstr "" +msgstr "Grupper med flest innlegg" #: lib/grouptagcloudsection.php:56 #, php-format @@ -5502,79 +5480,74 @@ msgstr "" #: lib/htmloutputter.php:103 msgid "This page is not available in a media type you accept" -msgstr "" +msgstr "Denne siden er ikke tilgjengelig i en mediatype du aksepterer" #: lib/imagefile.php:75 #, php-format msgid "That file is too big. The maximum file size is %s." -msgstr "" +msgstr "Filen er for stor. Maks filstørrelse er %s." #: lib/imagefile.php:80 msgid "Partial upload." -msgstr "" +msgstr "Delvis opplasting." #: lib/imagefile.php:88 lib/mediafile.php:170 msgid "System error uploading file." -msgstr "" +msgstr "Systemfeil ved opplasting av fil." #: lib/imagefile.php:96 msgid "Not an image or corrupt file." -msgstr "" +msgstr "Ikke et bilde eller en korrupt fil." #: lib/imagefile.php:109 msgid "Unsupported image file format." -msgstr "" +msgstr "Bildefilformatet støttes ikke." #: lib/imagefile.php:122 -#, fuzzy msgid "Lost our file." -msgstr "Klarte ikke å lagre profil." +msgstr "Mistet filen vår." #: lib/imagefile.php:166 lib/imagefile.php:231 msgid "Unknown file type" -msgstr "" +msgstr "Ukjent filtype" #: lib/imagefile.php:251 msgid "MB" -msgstr "" +msgstr "MB" #: lib/imagefile.php:253 msgid "kB" -msgstr "" +msgstr "kB" #: lib/jabber.php:220 #, php-format msgid "[%s]" -msgstr "" +msgstr "[%s]" #: lib/jabber.php:400 #, php-format msgid "Unknown inbox source %d." -msgstr "" +msgstr "Ukjent innbokskilde %d." #: lib/joinform.php:114 -#, fuzzy msgid "Join" -msgstr "Logg inn" +msgstr "Bli med" #: lib/leaveform.php:114 -#, fuzzy msgid "Leave" -msgstr "Lagre" +msgstr "Forlat" #: lib/logingroupnav.php:80 -#, fuzzy msgid "Login with a username and password" -msgstr "Ugyldig brukernavn eller passord" +msgstr "Logg inn med brukernavn og passord" #: lib/logingroupnav.php:86 -#, fuzzy msgid "Sign up for a new account" -msgstr "Opprett en ny konto" +msgstr "Registrer deg for en ny konto" #: lib/mail.php:173 msgid "Email address confirmation" -msgstr "" +msgstr "Bekreftelse av e-postadresse" #: lib/mail.php:175 #, php-format @@ -5592,6 +5565,18 @@ msgid "" "Thanks for your time, \n" "%s\n" msgstr "" +"Hei %s.\n" +"\n" +"Noen skrev nettopp inn denne e-postadressen på %s.\n" +"\n" +"Dersom det var deg og du vil bekrefte det, bruk nettadressen under:\n" +"\n" +"%s\n" +"\n" +"Om ikke, bare ignorer denne meldingen.\n" +"\n" +"Takk for tiden din,\n" +"%s\n" #: lib/mail.php:240 #, php-format @@ -5599,7 +5584,7 @@ msgid "%1$s is now listening to your notices on %2$s." msgstr "%1$s lytter nå til dine notiser på %2$s." #: lib/mail.php:245 -#, fuzzy, php-format +#, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" "\n" @@ -5614,20 +5599,24 @@ msgid "" msgstr "" "%1$s lytter nå til dine notiser på %2$s.\n" "\n" -"\t%3$s\n" +"%3$s\n" "\n" +"%4$s%5$s%6$s\n" "Vennlig hilsen,\n" -"%4$s.\n" +"%7$s.\n" +"\n" +"----\n" +"Endre e-postadressen din eller dine varslingsvalg på %8$s\n" #: lib/mail.php:262 -#, fuzzy, php-format +#, php-format msgid "Bio: %s" -msgstr "Om meg" +msgstr "Biografi: %s" #: lib/mail.php:290 #, php-format msgid "New email address for posting to %s" -msgstr "" +msgstr "Ny e-postadresse for posting til %s" #: lib/mail.php:293 #, php-format @@ -5641,6 +5630,14 @@ msgid "" "Faithfully yours,\n" "%4$s" msgstr "" +"Du har en ny adresse for posting på %1$s.\n" +"\n" +"Send e-post til %2$s for å poste nye meldinger.\n" +"\n" +"Flere e-postinstrukser på %3$s.\n" +"\n" +"Vennlig hilsen,\n" +"%4$s" #: lib/mail.php:417 #, php-format @@ -5649,12 +5646,12 @@ msgstr "%s status" #: lib/mail.php:443 msgid "SMS confirmation" -msgstr "" +msgstr "SMS-bekreftelse" #: lib/mail.php:467 #, php-format msgid "You've been nudged by %s" -msgstr "" +msgstr "Du har blitt knuffet av %s" #: lib/mail.php:471 #, php-format @@ -5671,11 +5668,22 @@ msgid "" "With kind regards,\n" "%4$s\n" msgstr "" +"%1$s (%2$s) lurer på hva du gjør nå for tiden og inviterer deg til å poste " +"noen nyheter.\n" +"\n" +"La oss høre fra deg :)\n" +"\n" +"%3$s\n" +"\n" +"Ikke svar på denne e-posten; det vil ikke nå frem til dem.\n" +"\n" +"Med vennlig hilsen,\n" +"%4$s\n" #: lib/mail.php:517 #, php-format msgid "New private message from %s" -msgstr "" +msgstr "Ny privat melding fra %s" #: lib/mail.php:521 #, php-format @@ -5695,11 +5703,25 @@ msgid "" "With kind regards,\n" "%5$s\n" msgstr "" +"%1$s (%2$s) sendte deg en privat melding:\n" +"\n" +"------------------------------------------------------\n" +"%3$s\n" +"------------------------------------------------------\n" +"\n" +"Du kan svare på deres melding her:\n" +"\n" +"%4$s\n" +"\n" +"Ikke svar på denne e-posten; det vil ikke nå frem til dem.\n" +"\n" +"Med vennlig hilsen,\n" +"%5$s\n" #: lib/mail.php:568 #, php-format msgid "%s (@%s) added your notice as a favorite" -msgstr "" +msgstr "%s /@%s) la din notis til som en favoritt" #: lib/mail.php:570 #, php-format @@ -5721,11 +5743,27 @@ msgid "" "Faithfully yours,\n" "%6$s\n" msgstr "" +"%1$s (@%7$s) la akkurat din notis fra %2$s til som en av sine favoritter.\n" +"\n" +"Nettadressen til din notis er:\n" +"\n" +"%3$s\n" +"\n" +"Teksten i din notis er:\n" +"\n" +"%4$s\n" +"\n" +"Du kan se listen over %1$s sine favoritter her:\n" +"\n" +"%5$s\n" +"\n" +"Vennlig hilsen,\n" +"%6$s\n" #: lib/mail.php:635 #, php-format msgid "%s (@%s) sent a notice to your attention" -msgstr "" +msgstr "%s (@%s) sendte en notis for din oppmerksomhet" #: lib/mail.php:637 #, php-format @@ -5741,29 +5779,42 @@ msgid "" "\t%4$s\n" "\n" msgstr "" +"%1$s (@%9$s) sendte deg akkurat en notis for din oppmerksomhet (et '@-svar') " +"på %2$s.\n" +"\n" +"Notisen er her:\n" +"\n" +"%3$s\n" +"\n" +"Den lyder:\n" +"\n" +"%4$s\n" +"\n" #: lib/mailbox.php:89 msgid "Only the user can read their own mailboxes." -msgstr "" +msgstr "Bare brukeren kan lese sine egne postbokser." #: 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 "" +"Du har ingen private meldinger. Du kan sende private meldinger for å " +"engasjere andre brukere i en samtale. Personer kan sende deg meldinger som " +"bare du kan se." #: lib/mailbox.php:227 lib/noticelist.php:482 -#, fuzzy msgid "from" msgstr "fra" #: lib/mailhandler.php:37 msgid "Could not parse message." -msgstr "" +msgstr "Kunne ikke tolke meldingen." #: lib/mailhandler.php:42 msgid "Not a registered user." -msgstr "" +msgstr "Ikke en registrert bruker." #: lib/mailhandler.php:46 msgid "Sorry, that is not your incoming email address." @@ -5774,9 +5825,9 @@ msgid "Sorry, no incoming email allowed." msgstr "" #: lib/mailhandler.php:228 -#, fuzzy, php-format +#, php-format msgid "Unsupported message type: %s" -msgstr "Direktemeldinger til %s" +msgstr "Meldingstypen støttes ikke: %s" #: lib/mediafile.php:98 lib/mediafile.php:123 msgid "There was a database error while saving your file. Please try again." @@ -5806,103 +5857,100 @@ msgstr "" #: lib/mediafile.php:165 msgid "File upload stopped by extension." -msgstr "" +msgstr "Filopplasting stoppet grunnet filendelse." #: lib/mediafile.php:179 lib/mediafile.php:216 msgid "File exceeds user's quota." -msgstr "" +msgstr "Fil overgår brukers kvote." #: lib/mediafile.php:196 lib/mediafile.php:233 msgid "File could not be moved to destination directory." -msgstr "" +msgstr "Filen kunne ikke flyttes til målmappen." #: lib/mediafile.php:201 lib/mediafile.php:237 -#, fuzzy msgid "Could not determine file's MIME type." -msgstr "Klarte ikke å oppdatere bruker." +msgstr "Kunne ikke avgjøre filens MIME-type." #: lib/mediafile.php:270 #, php-format msgid " Try using another %s format." -msgstr "" +msgstr " Prøv å bruke et annet %s-format." #: lib/mediafile.php:275 #, php-format msgid "%s is not a supported file type on this server." -msgstr "" +msgstr "filtypen %s støttes ikke på denne tjeneren." #: lib/messageform.php:120 msgid "Send a direct notice" -msgstr "" +msgstr "Send en direktenotis" #: lib/messageform.php:146 msgid "To" -msgstr "" +msgstr "Til" #: lib/messageform.php:159 lib/noticeform.php:185 -#, fuzzy msgid "Available characters" -msgstr "6 eller flere tegn" +msgstr "Tilgjengelige tegn" #: lib/messageform.php:178 lib/noticeform.php:236 -#, fuzzy msgctxt "Send button for sending notice" msgid "Send" msgstr "Send" #: lib/noticeform.php:160 msgid "Send a notice" -msgstr "" +msgstr "Send en notis" #: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" -msgstr "" +msgstr "Hva skjer %s?" #: lib/noticeform.php:192 msgid "Attach" -msgstr "" +msgstr "Legg ved" #: lib/noticeform.php:196 msgid "Attach a file" -msgstr "" +msgstr "Legg ved en fil" #: lib/noticeform.php:212 -#, fuzzy msgid "Share my location" -msgstr "Klarte ikke å lagre profil." +msgstr "Del min posisjon" #: lib/noticeform.php:215 -#, fuzzy msgid "Do not share my location" -msgstr "Klarte ikke å lagre profil." +msgstr "Ikke del min posisjon" #: lib/noticeform.php:216 msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" msgstr "" +"Beklager, henting av din geoposisjon tar lenger tid enn forventet, prøv " +"igjen senere" #: lib/noticelist.php:429 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" -msgstr "" +msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" #: lib/noticelist.php:430 msgid "N" -msgstr "" +msgstr "N" #: lib/noticelist.php:430 msgid "S" -msgstr "" +msgstr "S" #: lib/noticelist.php:431 msgid "E" -msgstr "" +msgstr "Ø" #: lib/noticelist.php:431 msgid "W" -msgstr "" +msgstr "V" #: lib/noticelist.php:438 msgid "at" @@ -5913,35 +5961,32 @@ msgid "in context" msgstr "" #: lib/noticelist.php:601 -#, fuzzy msgid "Repeated by" -msgstr "Opprett" +msgstr "Repetert av" #: lib/noticelist.php:628 msgid "Reply to this notice" -msgstr "" +msgstr "Svar på denne notisen" #: lib/noticelist.php:629 -#, fuzzy msgid "Reply" -msgstr "svar" +msgstr "Svar" #: lib/noticelist.php:673 -#, fuzzy msgid "Notice repeated" -msgstr "Nytt nick" +msgstr "Notis repetert" #: lib/nudgeform.php:116 msgid "Nudge this user" -msgstr "" +msgstr "Knuff denne brukeren" #: lib/nudgeform.php:128 msgid "Nudge" -msgstr "" +msgstr "Knuff" #: lib/nudgeform.php:128 msgid "Send a nudge to this user" -msgstr "" +msgstr "Send et knuff til denne brukeren" #: lib/oauthstore.php:283 msgid "Error inserting new profile" @@ -5957,7 +6002,7 @@ msgstr "" #: lib/oauthstore.php:345 msgid "Duplicate notice" -msgstr "" +msgstr "Duplikatnotis" #: lib/oauthstore.php:490 msgid "Couldn't insert new subscription." @@ -5973,23 +6018,23 @@ msgstr "Svar" #: lib/personalgroupnav.php:114 msgid "Favorites" -msgstr "" +msgstr "Favoritter" #: lib/personalgroupnav.php:125 msgid "Inbox" -msgstr "" +msgstr "Innboks" #: lib/personalgroupnav.php:126 msgid "Your incoming messages" -msgstr "" +msgstr "Dine innkommende meldinger" #: lib/personalgroupnav.php:130 msgid "Outbox" -msgstr "" +msgstr "Utboks" #: lib/personalgroupnav.php:131 msgid "Your sent messages" -msgstr "" +msgstr "Dine sendte meldinger" #: lib/personaltagcloudsection.php:56 #, php-format @@ -5998,11 +6043,11 @@ msgstr "" #: lib/plugin.php:114 msgid "Unknown" -msgstr "" +msgstr "Ukjent" #: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 msgid "Subscriptions" -msgstr "" +msgstr "Abonnement" #: lib/profileaction.php:126 msgid "All subscriptions" @@ -6010,16 +6055,15 @@ msgstr "Alle abonnementer" #: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 msgid "Subscribers" -msgstr "" +msgstr "Abonnenter" #: lib/profileaction.php:159 -#, fuzzy msgid "All subscribers" -msgstr "Alle abonnementer" +msgstr "Alle abonnenter" #: lib/profileaction.php:180 msgid "User ID" -msgstr "" +msgstr "Bruker-ID" #: lib/profileaction.php:185 msgid "Member since" @@ -6027,7 +6071,7 @@ msgstr "Medlem siden" #: lib/profileaction.php:247 msgid "All groups" -msgstr "" +msgstr "Alle grupper" #: lib/profileformaction.php:123 msgid "No return-to arguments." @@ -6035,16 +6079,15 @@ msgstr "" #: lib/profileformaction.php:137 msgid "Unimplemented method." -msgstr "" +msgstr "Ikke-implementert metode." #: lib/publicgroupnav.php:78 -#, fuzzy msgid "Public" msgstr "Offentlig" #: lib/publicgroupnav.php:82 msgid "User groups" -msgstr "" +msgstr "Brukergrupper" #: lib/publicgroupnav.php:84 lib/publicgroupnav.php:85 #, fuzzy @@ -6060,14 +6103,12 @@ msgid "Popular" msgstr "" #: lib/repeatform.php:107 -#, fuzzy msgid "Repeat this notice?" -msgstr "Kan ikke slette notisen." +msgstr "Repeter denne notisen?" #: lib/repeatform.php:132 -#, fuzzy msgid "Repeat this notice" -msgstr "Kan ikke slette notisen." +msgstr "Repeter denne notisen" #: lib/revokeroleform.php:91 #, php-format @@ -6088,38 +6129,36 @@ msgid "Sandbox this user" msgstr "Kan ikke slette notisen." #: lib/searchaction.php:120 -#, fuzzy msgid "Search site" -msgstr "Søk" +msgstr "Søk nettsted" #: lib/searchaction.php:126 msgid "Keyword(s)" -msgstr "" +msgstr "Nøkkelord" #: lib/searchaction.php:127 msgid "Search" msgstr "Søk" #: lib/searchaction.php:162 -#, fuzzy msgid "Search help" -msgstr "Søk" +msgstr "Søkehjelp" #: lib/searchgroupnav.php:80 msgid "People" -msgstr "" +msgstr "Personer" #: lib/searchgroupnav.php:81 msgid "Find people on this site" -msgstr "" +msgstr "Finn personer på dette nettstedet" #: lib/searchgroupnav.php:83 msgid "Find content of notices" -msgstr "" +msgstr "Finn innhold i notiser" #: lib/searchgroupnav.php:85 msgid "Find groups on this site" -msgstr "" +msgstr "Finn grupper på dette nettstedet" #: lib/section.php:89 msgid "Untitled section" @@ -6127,7 +6166,7 @@ msgstr "" #: lib/section.php:106 msgid "More..." -msgstr "" +msgstr "Mer..." #: lib/silenceform.php:67 msgid "Silence" @@ -6155,7 +6194,7 @@ msgstr "" #: lib/subgroupnav.php:105 msgid "Invite" -msgstr "" +msgstr "Inviter" #: lib/subgroupnav.php:106 #, php-format @@ -6174,7 +6213,7 @@ msgstr "" #: lib/tagcloudsection.php:56 msgid "None" -msgstr "" +msgstr "Ingen" #: lib/topposterssection.php:74 msgid "Top posters" @@ -6216,40 +6255,38 @@ msgid "User actions" msgstr "" #: lib/userprofile.php:251 -#, fuzzy msgid "Edit profile settings" -msgstr "Endre profilinnstillingene dine" +msgstr "Endre profilinnstillinger" #: lib/userprofile.php:252 msgid "Edit" -msgstr "" +msgstr "Rediger" #: lib/userprofile.php:275 msgid "Send a direct message to this user" -msgstr "" +msgstr "Send en direktemelding til denne brukeren" #: lib/userprofile.php:276 msgid "Message" -msgstr "" +msgstr "Melding" #: lib/userprofile.php:314 msgid "Moderate" -msgstr "" +msgstr "Moderer" #: lib/userprofile.php:352 -#, fuzzy msgid "User role" -msgstr "Klarte ikke å lagre profil." +msgstr "Brukerrolle" #: lib/userprofile.php:354 msgctxt "role" msgid "Administrator" -msgstr "" +msgstr "Administrator" #: lib/userprofile.php:355 msgctxt "role" msgid "Moderator" -msgstr "" +msgstr "Moderator" #: lib/util.php:1015 msgid "a few seconds ago" @@ -6298,14 +6335,14 @@ msgstr "omtrent ett år siden" #: lib/webcolor.php:82 #, php-format msgid "%s is not a valid color!" -msgstr "" +msgstr "%s er ikke en gyldig farge." #: lib/webcolor.php:123 #, php-format msgid "%s is not a valid color! Use 3 or 6 hex chars." -msgstr "" +msgstr "%s er ikke en gyldig farge. Bruk 3 eller 6 heksadesimale tegn." #: lib/xmppmanager.php:402 #, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." -msgstr "" +msgstr "Melding for lang - maks er %1$d tegn, du sendte %2$d." diff --git a/locale/statusnet.po b/locale/statusnet.po index 0e0a236c0..61d902a1a 100644 --- a/locale/statusnet.po +++ b/locale/statusnet.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-06 23:49+0000\n" +"POT-Creation-Date: 2010-03-08 21:09+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" -- cgit v1.2.3-54-g00ecf From 51a245f18c1e4a830c5eb94f3e60c6b4b3e560ee Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Thu, 4 Mar 2010 18:24:32 -0500 Subject: Added Memcached plugin (using pecl/memcached versus pecl/memcache) --- lib/statusnet.php | 6 +- plugins/MemcachedPlugin.php | 223 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 228 insertions(+), 1 deletion(-) create mode 100644 plugins/MemcachedPlugin.php diff --git a/lib/statusnet.php b/lib/statusnet.php index eba9ab9b8..ef3adebf9 100644 --- a/lib/statusnet.php +++ b/lib/statusnet.php @@ -342,7 +342,11 @@ class StatusNet if (array_key_exists('memcached', $config)) { if ($config['memcached']['enabled']) { - addPlugin('Memcache', array('servers' => $config['memcached']['server'])); + if(class_exists('Memcached')) { + addPlugin('Memcached', array('servers' => $config['memcached']['server'])); + } else { + addPlugin('Memcache', array('servers' => $config['memcached']['server'])); + } } if (!empty($config['memcached']['base'])) { diff --git a/plugins/MemcachedPlugin.php b/plugins/MemcachedPlugin.php new file mode 100644 index 000000000..707e6db9a --- /dev/null +++ b/plugins/MemcachedPlugin.php @@ -0,0 +1,223 @@ +. + * + * @category Cache + * @package StatusNet + * @author Evan Prodromou , Craig Andrews + * @copyright 2009 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + // This check helps protect against security problems; + // your code file can't be executed directly from the web. + exit(1); +} + +/** + * A plugin to use memcached for the cache interface + * + * This used to be encoded as config-variable options in the core code; + * it's now broken out to a separate plugin. The same interface can be + * implemented by other plugins. + * + * @category Cache + * @package StatusNet + * @author Evan Prodromou , Craig Andrews + * @copyright 2009 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +class MemcachedPlugin extends Plugin +{ + static $cacheInitialized = false; + + private $_conn = null; + public $servers = array('127.0.0.1;11211'); + + public $defaultExpiry = 86400; // 24h + + /** + * Initialize the plugin + * + * Note that onStartCacheGet() may have been called before this! + * + * @return boolean flag value + */ + + function onInitializePlugin() + { + $this->_ensureConn(); + self::$cacheInitialized = true; + return true; + } + + /** + * Get a value associated with a key + * + * The value should have been set previously. + * + * @param string &$key in; Lookup key + * @param mixed &$value out; value associated with key + * + * @return boolean hook success + */ + + function onStartCacheGet(&$key, &$value) + { + $this->_ensureConn(); + $value = $this->_conn->get($key); + Event::handle('EndCacheGet', array($key, &$value)); + return false; + } + + /** + * Associate a value with a key + * + * @param string &$key in; Key to use for lookups + * @param mixed &$value in; Value to associate + * @param integer &$flag in; Flag empty or Cache::COMPRESSED + * @param integer &$expiry in; Expiry (passed through to Memcache) + * @param boolean &$success out; Whether the set was successful + * + * @return boolean hook success + */ + + function onStartCacheSet(&$key, &$value, &$flag, &$expiry, &$success) + { + $this->_ensureConn(); + if ($expiry === null) { + $expiry = $this->defaultExpiry; + } + $success = $this->_conn->set($key, $value, $expiry); + Event::handle('EndCacheSet', array($key, $value, $flag, + $expiry)); + return false; + } + + /** + * Atomically increment an existing numeric key value. + * Existing expiration time will not be changed. + * + * @param string &$key in; Key to use for lookups + * @param int &$step in; Amount to increment (default 1) + * @param mixed &$value out; Incremented value, or false if key not set. + * + * @return boolean hook success + */ + function onStartCacheIncrement(&$key, &$step, &$value) + { + $this->_ensureConn(); + $value = $this->_conn->increment($key, $step); + Event::handle('EndCacheIncrement', array($key, $step, $value)); + return false; + } + + /** + * Delete a value associated with a key + * + * @param string &$key in; Key to lookup + * @param boolean &$success out; whether it worked + * + * @return boolean hook success + */ + + function onStartCacheDelete(&$key, &$success) + { + $this->_ensureConn(); + $success = $this->_conn->delete($key); + Event::handle('EndCacheDelete', array($key)); + return false; + } + + function onStartCacheReconnect(&$success) + { + // nothing to do + return true; + } + + /** + * Ensure that a connection exists + * + * Checks the instance $_conn variable and connects + * if it is empty. + * + * @return void + */ + + private function _ensureConn() + { + if (empty($this->_conn)) { + $this->_conn = new Memcached(common_config('site', 'nickname')); + + if (!count($this->_conn->getServerList())) { + if (is_array($this->servers)) { + $servers = $this->servers; + } else { + $servers = array($this->servers); + } + foreach ($servers as $server) { + if (strpos($server, ';') !== false) { + list($host, $port) = explode(';', $server); + } else { + $host = $server; + $port = 11211; + } + + $this->_conn->addServer($host, $port); + } + + // Compress items stored in the cache. + + // Allows the cache to store objects larger than 1MB (if they + // compress to less than 1MB), and improves cache memory efficiency. + + $this->_conn->setOption(Memcached::OPT_COMPRESSION, true); + } + } + } + + /** + * Translate general flags to Memcached-specific flags + * @param int $flag + * @return int + */ + protected function flag($flag) + { + //no flags are presently supported + return $flag; + } + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'Memcached', + 'version' => STATUSNET_VERSION, + 'author' => 'Evan Prodromou, Craig Andrews', + 'homepage' => 'http://status.net/wiki/Plugin:Memcached', + 'rawdescription' => + _m('Use Memcached to cache query results.')); + return true; + } +} + -- cgit v1.2.3-54-g00ecf From 49722f65502b9730f1c1434851e21d02b8b2fd41 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Mon, 8 Mar 2010 22:53:43 +0000 Subject: Only allow RSSCloud subs to canonical RSS2 profile feeds --- plugins/RSSCloud/RSSCloudRequestNotify.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/plugins/RSSCloud/RSSCloudRequestNotify.php b/plugins/RSSCloud/RSSCloudRequestNotify.php index d76c08d37..030529534 100644 --- a/plugins/RSSCloud/RSSCloudRequestNotify.php +++ b/plugins/RSSCloud/RSSCloudRequestNotify.php @@ -270,13 +270,14 @@ class RSSCloudRequestNotifyAction extends Action function userFromFeed($feed) { - // We only do profile feeds + // We only do canonical RSS2 profile feeds (specified by ID), e.g.: + // http://www.example.com/api/statuses/user_timeline/2.rss $path = common_path('api/statuses/user_timeline/'); - $valid = '%^' . $path . '(?.*)\.rss$%'; + $valid = '%^' . $path . '(?.*)\.rss$%'; if (preg_match($valid, $feed, $matches)) { - $user = User::staticGet('nickname', $matches['nickname']); + $user = User::staticGet('id', $matches['id']); if (!empty($user)) { return $user; } -- cgit v1.2.3-54-g00ecf From 0d66dc543d368092de08b49857c67248210d8d84 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 8 Mar 2010 18:06:21 -0500 Subject: an otp is a real login --- actions/otp.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/actions/otp.php b/actions/otp.php index acf84aee8..1e06603d4 100644 --- a/actions/otp.php +++ b/actions/otp.php @@ -126,6 +126,8 @@ class OtpAction extends Action $this->lt->delete(); $this->lt = null; + common_real_login(true); + if ($this->rememberme) { common_rememberme($this->user); } -- cgit v1.2.3-54-g00ecf From f8c5996758250dce4d0f922cdbc10dff653f73c5 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Mon, 8 Mar 2010 22:53:43 +0000 Subject: Only allow RSSCloud subs to canonical RSS2 profile feeds --- plugins/RSSCloud/RSSCloudRequestNotify.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/plugins/RSSCloud/RSSCloudRequestNotify.php b/plugins/RSSCloud/RSSCloudRequestNotify.php index d76c08d37..030529534 100644 --- a/plugins/RSSCloud/RSSCloudRequestNotify.php +++ b/plugins/RSSCloud/RSSCloudRequestNotify.php @@ -270,13 +270,14 @@ class RSSCloudRequestNotifyAction extends Action function userFromFeed($feed) { - // We only do profile feeds + // We only do canonical RSS2 profile feeds (specified by ID), e.g.: + // http://www.example.com/api/statuses/user_timeline/2.rss $path = common_path('api/statuses/user_timeline/'); - $valid = '%^' . $path . '(?.*)\.rss$%'; + $valid = '%^' . $path . '(?.*)\.rss$%'; if (preg_match($valid, $feed, $matches)) { - $user = User::staticGet('nickname', $matches['nickname']); + $user = User::staticGet('id', $matches['id']); if (!empty($user)) { return $user; } -- cgit v1.2.3-54-g00ecf From 691c88bce8fa37d1d371988857645b6cdd9994d9 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Mon, 8 Mar 2010 22:53:43 +0000 Subject: Only allow RSSCloud subs to canonical RSS2 profile feeds --- plugins/RSSCloud/RSSCloudRequestNotify.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/plugins/RSSCloud/RSSCloudRequestNotify.php b/plugins/RSSCloud/RSSCloudRequestNotify.php index d76c08d37..030529534 100644 --- a/plugins/RSSCloud/RSSCloudRequestNotify.php +++ b/plugins/RSSCloud/RSSCloudRequestNotify.php @@ -270,13 +270,14 @@ class RSSCloudRequestNotifyAction extends Action function userFromFeed($feed) { - // We only do profile feeds + // We only do canonical RSS2 profile feeds (specified by ID), e.g.: + // http://www.example.com/api/statuses/user_timeline/2.rss $path = common_path('api/statuses/user_timeline/'); - $valid = '%^' . $path . '(?.*)\.rss$%'; + $valid = '%^' . $path . '(?.*)\.rss$%'; if (preg_match($valid, $feed, $matches)) { - $user = User::staticGet('nickname', $matches['nickname']); + $user = User::staticGet('id', $matches['id']); if (!empty($user)) { return $user; } -- cgit v1.2.3-54-g00ecf From 689e2e112bbd84ab05549b83bf99be1d8c1a39e9 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Mon, 8 Mar 2010 21:42:17 -0500 Subject: make common_copy_args() work when the post/get request includes arrays (form elements with names ending in [] having multiple values) --- lib/util.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/util.php b/lib/util.php index da2799d4f..c5dacb699 100644 --- a/lib/util.php +++ b/lib/util.php @@ -1462,7 +1462,15 @@ function common_copy_args($from) $to = array(); $strip = get_magic_quotes_gpc(); foreach ($from as $k => $v) { - $to[$k] = ($strip) ? stripslashes($v) : $v; + if($strip) { + if(is_array($v)) { + $to[$k] = common_copy_args($v); + } else { + $to[$k] = stripslashes($v); + } + } else { + $to[$k] = $v; + } } return $to; } -- cgit v1.2.3-54-g00ecf From 9466546705b6849bcc22ab0073bd9e6bfad8f2c8 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Mon, 8 Mar 2010 21:43:09 -0500 Subject: On the OpenID settings page, allow users to remove trustroots. --- plugins/OpenID/openidsettings.php | 70 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/plugins/OpenID/openidsettings.php b/plugins/OpenID/openidsettings.php index 3fc3d6128..16142cf48 100644 --- a/plugins/OpenID/openidsettings.php +++ b/plugins/OpenID/openidsettings.php @@ -176,6 +176,43 @@ class OpenidsettingsAction extends AccountSettingsAction } } } + + $this->elementStart('form', array('method' => 'post', + 'id' => 'form_settings_openid_trustroots', + 'class' => 'form_settings', + 'action' => + common_local_url('openidsettings'))); + $this->elementStart('fieldset', array('id' => 'settings_openid_trustroots')); + $this->element('legend', null, _m('OpenID Trusted Sites')); + $this->hidden('token', common_session_token()); + $this->element('p', 'form_guide', + _m('The following sites are allowed to access your ' . + 'identity and log you in. You can remove a site from ' . + 'this list to deny it access to your OpenID.')); + $this->elementStart('ul', 'form_data'); + $user_openid_trustroot = new User_openid_trustroot(); + $user_openid_trustroot->user_id=$user->id; + if($user_openid_trustroot->find()) { + while($user_openid_trustroot->fetch()) { + $this->elementStart('li'); + $this->element('input', array('name' => 'openid_trustroot[]', + 'type' => 'checkbox', + 'class' => 'checkbox', + 'value' => $user_openid_trustroot->trustroot, + 'id' => 'openid_trustroot_' . crc32($user_openid_trustroot->trustroot))); + $this->element('label', array('class'=>'checkbox', 'for' => 'openid_trustroot_' . crc32($user_openid_trustroot->trustroot)), + $user_openid_trustroot->trustroot); + $this->elementEnd('li'); + } + } + $this->elementEnd('ul'); + $this->element('input', array('type' => 'submit', + 'id' => 'settings_openid_trustroots_action-submit', + 'name' => 'remove_trustroots', + 'class' => 'submit', + 'value' => _m('Remove'))); + $this->elementEnd('fieldset'); + $this->elementEnd('form'); } /** @@ -204,11 +241,44 @@ class OpenidsettingsAction extends AccountSettingsAction } } else if ($this->arg('remove')) { $this->removeOpenid(); + } else if($this->arg('remove_trustroots')) { + $this->removeTrustroots(); } else { $this->showForm(_m('Something weird happened.')); } } + /** + * Handles a request to remove OpenID trustroots from the user's account + * + * Validates input and, if everything is OK, deletes the trustroots. + * Reloads the form with a success or error notification. + * + * @return void + */ + + function removeTrustroots() + { + $user = common_current_user(); + $trustroots = $this->arg('openid_trustroot'); + if($trustroots) { + foreach($trustroots as $trustroot) { + $user_openid_trustroot = User_openid_trustroot::pkeyGet( + array('user_id'=>$user->id, 'trustroot'=>$trustroot)); + if($user_openid_trustroot) { + $user_openid_trustroot->delete(); + } else { + $this->showForm(_m('No such OpenID trustroot.')); + return; + } + } + $this->showForm(_m('Trustroots removed'), true); + } else { + $this->showForm(); + } + return; + } + /** * Handles a request to remove an OpenID from the user's account * -- cgit v1.2.3-54-g00ecf From 7214db14fe37798623acab2e6f5755d05bacbc8f Mon Sep 17 00:00:00 2001 From: James Walker Date: Tue, 9 Mar 2010 01:24:21 -0500 Subject: wrong param order to strpos() --- plugins/OStatus/classes/HubSub.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/OStatus/classes/HubSub.php b/plugins/OStatus/classes/HubSub.php index 3120a70f9..c420b3eef 100644 --- a/plugins/OStatus/classes/HubSub.php +++ b/plugins/OStatus/classes/HubSub.php @@ -192,7 +192,7 @@ class HubSub extends Memcached_DataObject // Any existing query string parameters must be preserved $url = $this->callback; - if (strpos('?', $url) !== false) { + if (strpos($url, '?') !== false) { $url .= '&'; } else { $url .= '?'; -- cgit v1.2.3-54-g00ecf From 72e4c733735ac590599bef392611314370135b37 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Tue, 9 Mar 2010 11:06:08 +0000 Subject: Use canonical URL for notification in RSSCloud plugin --- plugins/RSSCloud/RSSCloudNotifier.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/RSSCloud/RSSCloudNotifier.php b/plugins/RSSCloud/RSSCloudNotifier.php index d454691c8..9e7b53680 100644 --- a/plugins/RSSCloud/RSSCloudNotifier.php +++ b/plugins/RSSCloud/RSSCloudNotifier.php @@ -152,7 +152,7 @@ class RSSCloudNotifier function notify($profile) { $feed = common_path('api/statuses/user_timeline/') . - $profile->nickname . '.rss'; + $profile->id . '.rss'; $cloudSub = new RSSCloudSubscription(); -- cgit v1.2.3-54-g00ecf From 7afad469c200d9d57af75fc667f05041bec137b6 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Tue, 9 Mar 2010 11:06:08 +0000 Subject: Use canonical URL for notification in RSSCloud plugin --- plugins/RSSCloud/RSSCloudNotifier.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/RSSCloud/RSSCloudNotifier.php b/plugins/RSSCloud/RSSCloudNotifier.php index d454691c8..9e7b53680 100644 --- a/plugins/RSSCloud/RSSCloudNotifier.php +++ b/plugins/RSSCloud/RSSCloudNotifier.php @@ -152,7 +152,7 @@ class RSSCloudNotifier function notify($profile) { $feed = common_path('api/statuses/user_timeline/') . - $profile->nickname . '.rss'; + $profile->id . '.rss'; $cloudSub = new RSSCloudSubscription(); -- cgit v1.2.3-54-g00ecf From 311da86762d1cc3baabeca65a5123d15ecbc3a96 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Tue, 9 Mar 2010 11:06:08 +0000 Subject: Use canonical URL for notification in RSSCloud plugin --- plugins/RSSCloud/RSSCloudNotifier.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/RSSCloud/RSSCloudNotifier.php b/plugins/RSSCloud/RSSCloudNotifier.php index d454691c8..9e7b53680 100644 --- a/plugins/RSSCloud/RSSCloudNotifier.php +++ b/plugins/RSSCloud/RSSCloudNotifier.php @@ -152,7 +152,7 @@ class RSSCloudNotifier function notify($profile) { $feed = common_path('api/statuses/user_timeline/') . - $profile->nickname . '.rss'; + $profile->id . '.rss'; $cloudSub = new RSSCloudSubscription(); -- cgit v1.2.3-54-g00ecf From 61434ebaa291ebd11cd1423ec36bb66073d55a74 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Tue, 9 Mar 2010 10:55:48 -0500 Subject: a script to flush site --- scripts/flushsite.php | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 scripts/flushsite.php diff --git a/scripts/flushsite.php b/scripts/flushsite.php new file mode 100644 index 000000000..b7f385ac4 --- /dev/null +++ b/scripts/flushsite.php @@ -0,0 +1,45 @@ +#!/usr/bin/env php +. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); + +$shortoptions = 'd'; +$longoptions = array('delete'); + +$helptext = << +Flush the site with the given name from memcached. + +END_OF_FLUSHSITE_HELP; + +require_once INSTALLDIR.'/scripts/commandline.inc'; + +$nickname = common_config('site', 'nickname'); + +$sn = Status_network::memGet('nickname', $nickname); + +if (empty($sn)) { + print "No such site.\n"; + exit(-1); +} + +print "Flushing cache for {$nickname}..."; +$sn->decache(); +print "OK.\n"; \ No newline at end of file -- cgit v1.2.3-54-g00ecf From 053aafe5fbd1a0026831c28bf8b382ff44bb9de6 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Tue, 9 Mar 2010 11:08:21 -0500 Subject: Added a checkbox for subscribing the admin of a StatusNet instance to update@status.net. Checked by default. Subscription optional. --- install.php | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/install.php b/install.php index 929277e5e..fbedbaf01 100644 --- a/install.php +++ b/install.php @@ -483,6 +483,7 @@ function showForm() $dbRadios .= " $info[name]
      \n"; } } + echo<< @@ -559,6 +560,11 @@ function showForm()

      Optional email address for the initial StatusNet user (administrator)

      +
    • + + +

      Release and security feed from update@status.net (recommended)

      +
    @@ -587,6 +593,7 @@ function handlePost() $adminPass = $_POST['admin_password']; $adminPass2 = $_POST['admin_password2']; $adminEmail = $_POST['admin_email']; + $adminUpdates = $_POST['admin_updates']; $server = $_SERVER['HTTP_HOST']; $path = substr(dirname($_SERVER['PHP_SELF']), 1); @@ -657,7 +664,7 @@ STR; } // Okay, cross fingers and try to register an initial user - if (registerInitialUser($adminNick, $adminPass, $adminEmail)) { + if (registerInitialUser($adminNick, $adminPass, $adminEmail, $adminUpdates)) { updateStatus( "An initial user with the administrator role has been created." ); @@ -854,7 +861,7 @@ function runDbScript($filename, $conn, $type = 'mysqli') return true; } -function registerInitialUser($nickname, $password, $email) +function registerInitialUser($nickname, $password, $email, $adminUpdates) { define('STATUSNET', true); define('LACONICA', true); // compatibility @@ -882,7 +889,7 @@ function registerInitialUser($nickname, $password, $email) // Attempt to do a remote subscribe to update@status.net // Will fail if instance is on a private network. - if (class_exists('Ostatus_profile')) { + if (class_exists('Ostatus_profile') && $adminUpdates) { try { $oprofile = Ostatus_profile::ensureProfile('http://update.status.net/'); Subscription::start($user->getProfile(), $oprofile->localProfile()); -- cgit v1.2.3-54-g00ecf From b98f956c6b1a4b2754e13dac7f2a72be7412dd24 Mon Sep 17 00:00:00 2001 From: Michele Date: Sun, 17 Jan 2010 18:33:56 +0100 Subject: API config return textlimit value --- actions/apistatusnetconfig.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/actions/apistatusnetconfig.php b/actions/apistatusnetconfig.php index 296376d19..51400dfc9 100644 --- a/actions/apistatusnetconfig.php +++ b/actions/apistatusnetconfig.php @@ -52,7 +52,7 @@ class ApiStatusnetConfigAction extends ApiAction var $keys = array( 'site' => array('name', 'server', 'theme', 'path', 'fancy', 'language', 'email', 'broughtby', 'broughtbyurl', 'closed', - 'inviteonly', 'private'), + 'inviteonly', 'private','textlimit'), 'license' => array('url', 'title', 'image'), 'nickname' => array('featured'), 'throttle' => array('enabled', 'count', 'timespan'), -- cgit v1.2.3-54-g00ecf From 60e0f0426133544eaaea7ff84da5f02ca86bd8cc Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 9 Mar 2010 17:38:16 +0100 Subject: Ticket #2210: adjust locale setup fallback to try more locales on the system if en_US isn't available. We just need *something* other than C or POSIX to let gettext initialize itself, apparently... Gets Spanish, French, Russian etc UI localization working on Debian Lenny fresh installation set up in Spanish (so es_ES.UTF-8 is available but en_US.UTF-8 isn't). --- lib/util.php | 38 ++++++++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/lib/util.php b/lib/util.php index da2799d4f..76639e2d4 100644 --- a/lib/util.php +++ b/lib/util.php @@ -52,17 +52,43 @@ function common_init_language() { mb_internal_encoding('UTF-8'); - // gettext seems very picky... We first need to setlocale() - // to a locale which _does_ exist on the system, and _then_ - // we can set in another locale that may not be set up - // (say, ga_ES for Galego/Galician) it seems to take it. - common_init_locale("en_US"); - // Note that this setlocale() call may "fail" but this is harmless; // gettext will still select the right language. $language = common_language(); $locale_set = common_init_locale($language); + if (!$locale_set) { + // The requested locale doesn't exist on the system. + // + // gettext seems very picky... We first need to setlocale() + // to a locale which _does_ exist on the system, and _then_ + // we can set in another locale that may not be set up + // (say, ga_ES for Galego/Galician) it seems to take it. + // + // For some reason C and POSIX which are guaranteed to work + // 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... + // @fixme shelling out feels awfully inefficient + // but I don't think there's a more standard way. + $all = `locale -a`; + foreach (explode("\n", $all) as $locale) { + if (preg_match('/\.utf[-_]?8$/i', $locale)) { + $ok = setlocale(LC_ALL, $locale); + if ($ok) { + break; + } + } + } + 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); + } + setlocale(LC_CTYPE, 'C'); // So we do not have to make people install the gettext locales $path = common_config('site','locale_path'); -- cgit v1.2.3-54-g00ecf From 58192ad68758437a37d8af19d6676d35699ed070 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 9 Mar 2010 10:56:33 -0800 Subject: OStatus: fix exception thrown on HTTP error during feed discovery --- plugins/OStatus/lib/feeddiscovery.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/OStatus/lib/feeddiscovery.php b/plugins/OStatus/lib/feeddiscovery.php index 7afb71bdc..ff76b229e 100644 --- a/plugins/OStatus/lib/feeddiscovery.php +++ b/plugins/OStatus/lib/feeddiscovery.php @@ -129,7 +129,7 @@ class FeedDiscovery function initFromResponse($response) { if (!$response->isOk()) { - throw new FeedSubBadResponseException($response->getCode()); + throw new FeedSubBadResponseException($response->getStatus()); } $sourceurl = $response->getUrl(); -- cgit v1.2.3-54-g00ecf From 80a17387bfb32ec627a8df55eb902483dba1eb97 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 8 Mar 2010 14:01:43 -0800 Subject: Command input processing now has centralized places for looking up notice, user/profile, and group arguments. OStatus plugin overrides these to allow using webfinger (user@example.com), profile URL (http://example.com/user) and bare profile URL (example.com/user) as arguments. --- lib/command.php | 355 +++++++++++++++++++++----------------- plugins/OStatus/OStatusPlugin.php | 80 +++++++++ 2 files changed, 279 insertions(+), 156 deletions(-) diff --git a/lib/command.php b/lib/command.php index ea7b60372..9d550550f 100644 --- a/lib/command.php +++ b/lib/command.php @@ -1,7 +1,7 @@ user = $user; } - function execute($channel) + /** + * Execute the command and send success or error results + * back via the given communications channel. + * + * @param Channel + */ + public function execute($channel) + { + try { + $this->handle($channel); + } catch (CommandException $e) { + $channel->error($this->user, $e->getMessage()); + } catch (Exception $e) { + common_log(LOG_ERR, "Error handling " . get_class($this) . ": " . $e->getMessage()); + $channel->error($this->user, $e->getMessage()); + } + } + + + /** + * Override this with the meat! + * + * An error to send back to the user may be sent by throwing + * a CommandException with a formatted message. + * + * @param Channel + * @throws CommandException + */ + function handle($channel) { return false; } + + /** + * Look up a notice from an argument, by poster's name to get last post + * or notice_id prefixed with #. + * + * @return Notice + * @throws CommandException + */ + function getNotice($arg) + { + $notice = null; + if (Event::handle('StartCommandGetNotice', array($this, $arg, &$notice))) { + if(substr($this->other,0,1)=='#'){ + // A specific notice_id #123 + + $notice = Notice::staticGet(substr($arg,1)); + if (!$notice) { + throw new CommandException(_('Notice with that id does not exist')); + } + } + + if (Validate::uri($this->other)) { + // A specific notice by URI lookup + $notice = Notice::staticGet('uri', $arg); + } + + if (!$notice) { + // Local or remote profile name to get their last notice. + // May throw an exception and report 'no such user' + $recipient = $this->getProfile($arg); + + $notice = $recipient->getCurrentNotice(); + if (!$notice) { + throw new CommandException(_('User has no last notice')); + } + } + } + Event::handle('EndCommandGetNotice', array($this, $arg, &$notice)); + if (!$notice) { + throw new CommandException(_('Notice with that id does not exist')); + } + return $notice; + } + + /** + * Look up a local or remote profile by nickname. + * + * @return Profile + * @throws CommandException + */ + function getProfile($arg) + { + $profile = null; + if (Event::handle('StartCommandGetProfile', array($this, $arg, &$profile))) { + $profile = + common_relative_profile($this->user, common_canonical_nickname($arg)); + } + Event::handle('EndCommandGetProfile', array($this, $arg, &$profile)); + if (!$profile) { + throw new CommandException(sprintf(_('Could not find a user with nickname %s'), $arg)); + } + return $profile; + } + + /** + * Get a local user by name + * @return User + * @throws CommandException + */ + function getUser($arg) + { + $user = null; + if (Event::handle('StartCommandGetUser', array($this, $arg, &$user))) { + $user = User::staticGet('nickname', $arg); + } + Event::handle('EndCommandGetUser', array($this, $arg, &$user)); + if (!$user){ + throw new CommandException(sprintf(_('Could not find a local user with nickname %s'), + $arg)); + } + return $user; + } + + /** + * Get a local or remote group by name. + * @return User_group + * @throws CommandException + */ + function getGroup($arg) + { + $group = null; + if (Event::handle('StartCommandGetGroup', array($this, $arg, &$group))) { + $group = User_group::getForNickname($arg, $this->user->getProfile()); + } + Event::handle('EndCommandGetGroup', array($this, $arg, &$group)); + if (!$group) { + throw new CommandException(_('No such group.')); + } + return $group; + } +} + +class CommandException extends Exception +{ } class UnimplementedCommand extends Command { - function execute($channel) + function handle($channel) { $channel->error($this->user, _("Sorry, this command is not yet implemented.")); } @@ -81,24 +213,20 @@ class NudgeCommand extends Command parent::__construct($user); $this->other = $other; } - function execute($channel) + + function handle($channel) { - $recipient = User::staticGet('nickname', $this->other); - if(! $recipient){ - $channel->error($this->user, sprintf(_('Could not find a user with nickname %s'), - $this->other)); - }else{ - if ($recipient->id == $this->user->id) { - $channel->error($this->user, _('It does not make a lot of sense to nudge yourself!')); - }else{ - if ($recipient->email && $recipient->emailnotifynudge) { - mail_notify_nudge($this->user, $recipient); - } - // XXX: notify by IM - // XXX: notify by SMS - $channel->output($this->user, sprintf(_('Nudge sent to %s'), - $recipient->nickname)); + $recipient = $this->getUser($this->other); + if ($recipient->id == $this->user->id) { + throw new CommandException(_('It does not make a lot of sense to nudge yourself!')); + } else { + if ($recipient->email && $recipient->emailnotifynudge) { + mail_notify_nudge($this->user, $recipient); } + // XXX: notify by IM + // XXX: notify by SMS + $channel->output($this->user, sprintf(_('Nudge sent to %s'), + $recipient->nickname)); } } } @@ -115,7 +243,7 @@ class InviteCommand extends UnimplementedCommand class StatsCommand extends Command { - function execute($channel) + function handle($channel) { $profile = $this->user->getProfile(); @@ -142,34 +270,9 @@ class FavCommand extends Command $this->other = $other; } - function execute($channel) + function handle($channel) { - if(substr($this->other,0,1)=='#'){ - //favoriting a specific notice_id - - $notice = Notice::staticGet(substr($this->other,1)); - if (!$notice) { - $channel->error($this->user, _('Notice with that id does not exist')); - return; - } - $recipient = $notice->getProfile(); - }else{ - //favoriting a given user's last notice - - $recipient = - common_relative_profile($this->user, common_canonical_nickname($this->other)); - - if (!$recipient) { - $channel->error($this->user, _('No such user.')); - return; - } - $notice = $recipient->getCurrentNotice(); - if (!$notice) { - $channel->error($this->user, _('User has no last notice')); - return; - } - } - + $notice = $this->getNotice($this->other); $fave = Fave::addNew($this->user, $notice); if (!$fave) { @@ -177,7 +280,10 @@ class FavCommand extends Command return; } - $other = User::staticGet('id', $recipient->id); + // @fixme favorite notification should be triggered + // at a lower level + + $other = User::staticGet('id', $notice->profile_id); if ($other && $other->id != $user->id) { if ($other->email && $other->emailnotifyfav) { @@ -191,6 +297,7 @@ class FavCommand extends Command } } + class JoinCommand extends Command { var $other = null; @@ -201,17 +308,10 @@ class JoinCommand extends Command $this->other = $other; } - function execute($channel) + function handle($channel) { - - $nickname = common_canonical_nickname($this->other); - $group = User_group::staticGet('nickname', $nickname); - $cur = $this->user; - - if (!$group) { - $channel->error($cur, _('No such group.')); - return; - } + $group = $this->getGroup($this->other); + $cur = $this->user; if ($cur->isMember($group)) { $channel->error($cur, _('You are already a member of that group')); @@ -249,12 +349,10 @@ class DropCommand extends Command $this->other = $other; } - function execute($channel) + function handle($channel) { - - $nickname = common_canonical_nickname($this->other); - $group = User_group::staticGet('nickname', $nickname); - $cur = $this->user; + $group = $this->getGroup($this->other); + $cur = $this->user; if (!$group) { $channel->error($cur, _('No such group.')); @@ -293,15 +391,9 @@ class WhoisCommand extends Command $this->other = $other; } - function execute($channel) + function handle($channel) { - $recipient = - common_relative_profile($this->user, common_canonical_nickname($this->other)); - - if (!$recipient) { - $channel->error($this->user, _('No such user.')); - return; - } + $recipient = $this->getProfile($this->other); $whois = sprintf(_("%1\$s (%2\$s)"), $recipient->nickname, $recipient->profileurl); @@ -332,9 +424,18 @@ class MessageCommand extends Command $this->text = $text; } - function execute($channel) + function handle($channel) { - $other = User::staticGet('nickname', common_canonical_nickname($this->other)); + try { + $other = $this->getUser($this->other); + } catch (CommandException $e) { + try { + $profile = $this->getProfile($this->other); + } catch (CommandException $f) { + throw $e; + } + throw new CommandException(sprintf(_('%s is a remote profile; you can only send direct messages to users on the same server.'), $this->other)); + } $len = mb_strlen($this->text); @@ -380,33 +481,9 @@ class RepeatCommand extends Command $this->other = $other; } - function execute($channel) + function handle($channel) { - if(substr($this->other,0,1)=='#'){ - //repeating a specific notice_id - - $notice = Notice::staticGet(substr($this->other,1)); - if (!$notice) { - $channel->error($this->user, _('Notice with that id does not exist')); - return; - } - $recipient = $notice->getProfile(); - }else{ - //repeating a given user's last notice - - $recipient = - common_relative_profile($this->user, common_canonical_nickname($this->other)); - - if (!$recipient) { - $channel->error($this->user, _('No such user.')); - return; - } - $notice = $recipient->getCurrentNotice(); - if (!$notice) { - $channel->error($this->user, _('User has no last notice')); - return; - } - } + $notice = $this->getNotice($this->other); if($this->user->id == $notice->profile_id) { @@ -414,7 +491,7 @@ class RepeatCommand extends Command return; } - if ($recipient->hasRepeated($notice->id)) { + if ($this->user->getProfile()->hasRepeated($notice->id)) { $channel->error($this->user, _('Already repeated that notice')); return; } @@ -441,33 +518,10 @@ class ReplyCommand extends Command $this->text = $text; } - function execute($channel) + function handle($channel) { - if(substr($this->other,0,1)=='#'){ - //replying to a specific notice_id - - $notice = Notice::staticGet(substr($this->other,1)); - if (!$notice) { - $channel->error($this->user, _('Notice with that id does not exist')); - return; - } - $recipient = $notice->getProfile(); - }else{ - //replying to a given user's last notice - - $recipient = - common_relative_profile($this->user, common_canonical_nickname($this->other)); - - if (!$recipient) { - $channel->error($this->user, _('No such user.')); - return; - } - $notice = $recipient->getCurrentNotice(); - if (!$notice) { - $channel->error($this->user, _('User has no last notice')); - return; - } - } + $notice = $this->getNotice($this->other); + $recipient = $notice->getProfile(); $len = mb_strlen($this->text); @@ -507,17 +561,10 @@ class GetCommand extends Command $this->other = $other; } - function execute($channel) + function handle($channel) { - $target_nickname = common_canonical_nickname($this->other); - - $target = - common_relative_profile($this->user, $target_nickname); + $target = $this->getProfile($this->other); - if (!$target) { - $channel->error($this->user, _('No such user.')); - return; - } $notice = $target->getCurrentNotice(); if (!$notice) { $channel->error($this->user, _('User has no last notice')); @@ -525,7 +572,7 @@ class GetCommand extends Command } $notice_content = $notice->content; - $channel->output($this->user, $target_nickname . ": " . $notice_content); + $channel->output($this->user, $target->nickname . ": " . $notice_content); } } @@ -540,7 +587,7 @@ class SubCommand extends Command $this->other = $other; } - function execute($channel) + function handle($channel) { if (!$this->other) { @@ -548,16 +595,16 @@ class SubCommand extends Command return; } - $otherUser = User::staticGet('nickname', $this->other); + $target = $this->getProfile($this->other); - if (empty($otherUser)) { - $channel->error($this->user, _('No such user')); - return; + $remote = Remote_profile::staticGet('id', $target->id); + if ($remote) { + throw new CommandException(_("Can't subscribe to OMB profiles by command.")); } try { Subscription::start($this->user->getProfile(), - $otherUser->getProfile()); + $target); $channel->output($this->user, sprintf(_('Subscribed to %s'), $this->other)); } catch (Exception $e) { $channel->error($this->user, $e->getMessage()); @@ -576,22 +623,18 @@ class UnsubCommand extends Command $this->other = $other; } - function execute($channel) + function handle($channel) { if(!$this->other) { $channel->error($this->user, _('Specify the name of the user to unsubscribe from')); return; } - $otherUser = User::staticGet('nickname', $this->other); - - if (empty($otherUser)) { - $channel->error($this->user, _('No such user')); - } + $target = $this->getProfile($this->other); try { Subscription::cancel($this->user->getProfile(), - $otherUser->getProfile()); + $target); $channel->output($this->user, sprintf(_('Unsubscribed from %s'), $this->other)); } catch (Exception $e) { $channel->error($this->user, $e->getMessage()); @@ -607,7 +650,7 @@ class OffCommand extends Command parent::__construct($user); $this->other = $other; } - function execute($channel) + function handle($channel) { if ($other) { $channel->error($this->user, _("Command not yet implemented.")); @@ -630,7 +673,7 @@ class OnCommand extends Command $this->other = $other; } - function execute($channel) + function handle($channel) { if ($other) { $channel->error($this->user, _("Command not yet implemented.")); @@ -646,7 +689,7 @@ class OnCommand extends Command class LoginCommand extends Command { - function execute($channel) + function handle($channel) { $disabled = common_config('logincommand','disabled'); $disabled = isset($disabled) && $disabled; @@ -670,7 +713,7 @@ class LoginCommand extends Command class SubscriptionsCommand extends Command { - function execute($channel) + function handle($channel) { $profile = $this->user->getSubscriptions(0); $nicknames=array(); @@ -692,7 +735,7 @@ class SubscriptionsCommand extends Command class SubscribersCommand extends Command { - function execute($channel) + function handle($channel) { $profile = $this->user->getSubscribers(); $nicknames=array(); @@ -714,7 +757,7 @@ class SubscribersCommand extends Command class GroupsCommand extends Command { - function execute($channel) + function handle($channel) { $group = $this->user->getGroups(); $groups=array(); @@ -735,7 +778,7 @@ class GroupsCommand extends Command class HelpCommand extends Command { - function execute($channel) + function handle($channel) { $channel->output($this->user, _("Commands:\n". diff --git a/plugins/OStatus/OStatusPlugin.php b/plugins/OStatus/OStatusPlugin.php index bdcaae366..a97f3475b 100644 --- a/plugins/OStatus/OStatusPlugin.php +++ b/plugins/OStatus/OStatusPlugin.php @@ -321,6 +321,86 @@ class OStatusPlugin extends Plugin return true; } + /** + * Allow remote profile references to be used in commands: + * sub update@status.net + * whois evan@identi.ca + * reply http://identi.ca/evan hey what's up + * + * @param Command $command + * @param string $arg + * @param Profile &$profile + * @return hook return code + */ + function onStartCommandGetProfile($command, $arg, &$profile) + { + $oprofile = $this->pullRemoteProfile($arg); + if ($oprofile && !$oprofile->isGroup()) { + $profile = $oprofile->localProfile(); + return false; + } else { + return true; + } + } + + /** + * Allow remote group references to be used in commands: + * join group+statusnet@identi.ca + * join http://identi.ca/group/statusnet + * drop identi.ca/group/statusnet + * + * @param Command $command + * @param string $arg + * @param User_group &$group + * @return hook return code + */ + function onStartCommandGetGroup($command, $arg, &$group) + { + $oprofile = $this->pullRemoteProfile($arg); + if ($oprofile && $oprofile->isGroup()) { + $group = $oprofile->localGroup(); + return false; + } else { + return true; + } + } + + protected function pullRemoteProfile($arg) + { + $oprofile = null; + if (preg_match('!^((?:\w+\.)*\w+@(?:\w+\.)*\w+(?:\w+\-\w+)*\.\w+)$!', $arg)) { + // webfinger lookup + try { + return Ostatus_profile::ensureWebfinger($arg); + } catch (Exception $e) { + common_log(LOG_ERR, 'Webfinger lookup failed for ' . + $arg . ': ' . $e->getMessage()); + } + } + + // Look for profile URLs, with or without scheme: + $urls = array(); + if (preg_match('!^https?://((?:\w+\.)*\w+(?:\w+\-\w+)*\.\w+(?:/\w+)+)$!', $arg)) { + $urls[] = $arg; + } + if (preg_match('!^((?:\w+\.)*\w+(?:\w+\-\w+)*\.\w+(?:/\w+)+)$!', $arg)) { + $schemes = array('http', 'https'); + foreach ($schemes as $scheme) { + $urls[] = "$scheme://$arg"; + } + } + + foreach ($urls as $url) { + try { + return Ostatus_profile::ensureProfile($url); + } catch (Exception $e) { + common_log(LOG_ERR, 'Profile lookup failed for ' . + $arg . ': ' . $e->getMessage()); + } + } + return null; + } + /** * Make sure necessary tables are filled out. */ -- cgit v1.2.3-54-g00ecf From 971f1f64f1f42a51bced51665ae693a9d37750a0 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 9 Mar 2010 13:41:05 -0800 Subject: Added scripts/command.php, can be used to run commands such as subscription on behalf of users. This includes whatever support for extended command parsing plugins may have added. Example: ./scripts/command.php -nbrionv sub update@status.net --- lib/channel.php | 19 +++++++++++++ scripts/command.php | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 99 insertions(+) create mode 100755 scripts/command.php diff --git a/lib/channel.php b/lib/channel.php index 3cd168786..689bca0be 100644 --- a/lib/channel.php +++ b/lib/channel.php @@ -47,6 +47,25 @@ class Channel } } +class CLIChannel extends Channel +{ + function source() + { + return 'cli'; + } + + function output($user, $text) + { + $site = common_config('site', 'name'); + print "[{$user->nickname}@{$site}] $text\n"; + } + + function error($user, $text) + { + $this->output($user, $text); + } +} + class XMPPChannel extends Channel { diff --git a/scripts/command.php b/scripts/command.php new file mode 100755 index 000000000..6041b02eb --- /dev/null +++ b/scripts/command.php @@ -0,0 +1,80 @@ +#!/usr/bin/env php +. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); + +$shortoptions = 'i:n:'; +$longoptions = array('id=', 'nickname='); + +$helptext = <<handle_command($user, $body); + if ($cmd) { + $cmd->execute($chan); + return true; + } else { + $chan->error($user, "Not a valid command. Try 'help'?"); + return false; + } +} + + + +if (have_option('i', 'id')) { + $id = get_option_value('i', 'id'); + $user = User::staticGet('id', $id); + if (empty($user)) { + print "Can't find user with ID $id\n"; + exit(1); + } +} else if (have_option('n', 'nickname')) { + $nickname = get_option_value('n', 'nickname'); + $user = User::staticGet('nickname', $nickname); + if (empty($user)) { + print "Can't find user with nickname '$nickname'\n"; + exit(1); + } +} else { + print "You must provide either an ID or a nickname.\n\n"; + print $helptext; + exit(1); +} + +// @todo refactor the interactive console in console.php and use +// that to optionally make an interactive test console here too. +// Would be good to help people test commands when XMPP or email +// isn't available locally. +interpretCommand($user, implode(' ', $args)); + -- cgit v1.2.3-54-g00ecf From 2c6eb770457b5e763a2ca960dcde11201c08952f Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Tue, 9 Mar 2010 11:08:21 -0500 Subject: Added a checkbox for subscribing the admin of a StatusNet instance to update@status.net. Checked by default. Subscription optional. --- install.php | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/install.php b/install.php index 929277e5e..fbedbaf01 100644 --- a/install.php +++ b/install.php @@ -483,6 +483,7 @@ function showForm() $dbRadios .= " $info[name]
    \n"; } } + echo<< @@ -559,6 +560,11 @@ function showForm()

    Optional email address for the initial StatusNet user (administrator)

    +
  • + + +

    Release and security feed from update@status.net (recommended)

    +
  • @@ -587,6 +593,7 @@ function handlePost() $adminPass = $_POST['admin_password']; $adminPass2 = $_POST['admin_password2']; $adminEmail = $_POST['admin_email']; + $adminUpdates = $_POST['admin_updates']; $server = $_SERVER['HTTP_HOST']; $path = substr(dirname($_SERVER['PHP_SELF']), 1); @@ -657,7 +664,7 @@ STR; } // Okay, cross fingers and try to register an initial user - if (registerInitialUser($adminNick, $adminPass, $adminEmail)) { + if (registerInitialUser($adminNick, $adminPass, $adminEmail, $adminUpdates)) { updateStatus( "An initial user with the administrator role has been created." ); @@ -854,7 +861,7 @@ function runDbScript($filename, $conn, $type = 'mysqli') return true; } -function registerInitialUser($nickname, $password, $email) +function registerInitialUser($nickname, $password, $email, $adminUpdates) { define('STATUSNET', true); define('LACONICA', true); // compatibility @@ -882,7 +889,7 @@ function registerInitialUser($nickname, $password, $email) // Attempt to do a remote subscribe to update@status.net // Will fail if instance is on a private network. - if (class_exists('Ostatus_profile')) { + if (class_exists('Ostatus_profile') && $adminUpdates) { try { $oprofile = Ostatus_profile::ensureProfile('http://update.status.net/'); Subscription::start($user->getProfile(), $oprofile->localProfile()); -- cgit v1.2.3-54-g00ecf From 60e6172bc9e52f1e6b4941811e2d6fd6050c1c6b Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 9 Mar 2010 14:15:55 -0800 Subject: Check for invalid and reserved usernames for the admin user at install time. --- install.php | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/install.php b/install.php index fbedbaf01..9a7e27fa2 100644 --- a/install.php +++ b/install.php @@ -589,7 +589,7 @@ function handlePost() $sitename = $_POST['sitename']; $fancy = !empty($_POST['fancy']); - $adminNick = $_POST['admin_nickname']; + $adminNick = strtolower($_POST['admin_nickname']); $adminPass = $_POST['admin_password']; $adminPass2 = $_POST['admin_password2']; $adminEmail = $_POST['admin_email']; @@ -630,6 +630,19 @@ STR; updateStatus("No initial StatusNet user nickname specified.", true); $fail = true; } + if ($adminNick && !preg_match('/^[0-9a-z]{1,64}$/', $adminNick)) { + updateStatus('The user nickname "' . htmlspecialchars($adminNick) . + '" is invalid; should be plain letters and numbers no longer than 64 characters.', true); + $fail = true; + } + // @fixme hardcoded list; should use User::allowed_nickname() + // if/when it's safe to have loaded the infrastructure here + $blacklist = array('main', 'admin', 'twitter', 'settings', 'rsd.xml', 'favorited', 'featured', 'favoritedrss', 'featuredrss', 'rss', 'getfile', 'api', 'groups', 'group', 'peopletag', 'tag', 'user', 'message', 'conversation', 'bookmarklet', 'notice', 'attachment', 'search', 'index.php', 'doc', 'opensearch', 'robots.txt', 'xd_receiver.html', 'facebook'); + if (in_array($adminNick, $blacklist)) { + updateStatus('The user nickname "' . htmlspecialchars($adminNick) . + '" is reserved.', true); + $fail = true; + } if (empty($adminPass)) { updateStatus("No initial StatusNet user password specified.", true); -- cgit v1.2.3-54-g00ecf From 1d1bf69f9a0520f1948f15107808cb1846850076 Mon Sep 17 00:00:00 2001 From: Michele Date: Sun, 17 Jan 2010 18:33:56 +0100 Subject: API config return textlimit value --- actions/apistatusnetconfig.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/actions/apistatusnetconfig.php b/actions/apistatusnetconfig.php index 296376d19..51400dfc9 100644 --- a/actions/apistatusnetconfig.php +++ b/actions/apistatusnetconfig.php @@ -52,7 +52,7 @@ class ApiStatusnetConfigAction extends ApiAction var $keys = array( 'site' => array('name', 'server', 'theme', 'path', 'fancy', 'language', 'email', 'broughtby', 'broughtbyurl', 'closed', - 'inviteonly', 'private'), + 'inviteonly', 'private','textlimit'), 'license' => array('url', 'title', 'image'), 'nickname' => array('featured'), 'throttle' => array('enabled', 'count', 'timespan'), -- cgit v1.2.3-54-g00ecf From 9653cb9f0a590417245063f905a2089f03b9e7b2 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Tue, 9 Mar 2010 21:26:12 -0500 Subject: Fix error logging --- plugins/LdapAuthorization/LdapAuthorizationPlugin.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/LdapAuthorization/LdapAuthorizationPlugin.php b/plugins/LdapAuthorization/LdapAuthorizationPlugin.php index 2608025dd..042b2db8d 100644 --- a/plugins/LdapAuthorization/LdapAuthorizationPlugin.php +++ b/plugins/LdapAuthorization/LdapAuthorizationPlugin.php @@ -131,13 +131,13 @@ class LdapAuthorizationPlugin extends AuthorizationPlugin { $ldap = $this->ldap_get_connection(); $link = $ldap->getLink(); - $r = ldap_compare($link, $groupDn, $this->uniqueMember_attribute, $userDn); + $r = @ldap_compare($link, $groupDn, $this->uniqueMember_attribute, $userDn); if ($r === true){ return true; }else if($r === false){ return false; }else{ - common_log(LOG_ERR, ldap_error($r)); + common_log(LOG_ERR, "LDAP error determining if userDn=$userDn is a member of groupDn=groupDn using uniqueMember_attribute=$this->uniqueMember_attribute error: ".ldap_error($link)); return false; } } -- cgit v1.2.3-54-g00ecf From 7f2253759ccdc5ab8698c447b29762314883db1a Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Wed, 10 Mar 2010 03:39:05 +0000 Subject: A blank username should never be allowed. --- lib/apiauth.php | 2 +- lib/util.php | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/apiauth.php b/lib/apiauth.php index f63c84d8f..32502399f 100644 --- a/lib/apiauth.php +++ b/lib/apiauth.php @@ -241,7 +241,7 @@ class ApiAuthAction extends ApiAction $realm = common_config('site', 'name') . ' API'; } - if (!isset($this->auth_user_nickname) && $required) { + if (empty($this->auth_user_nickname) && $required) { header('WWW-Authenticate: Basic realm="' . $realm . '"'); // show error if the user clicks 'cancel' diff --git a/lib/util.php b/lib/util.php index 76639e2d4..44ccc0def 100644 --- a/lib/util.php +++ b/lib/util.php @@ -159,6 +159,11 @@ function common_munge_password($password, $id) function common_check_user($nickname, $password) { + // empty nickname always unacceptable + if (empty($nickname)) { + return false; + } + $authenticatedUser = false; if (Event::handle('StartCheckPassword', array($nickname, $password, &$authenticatedUser))) { -- cgit v1.2.3-54-g00ecf From c4ee2b20bee567e1c41888bb46bfc8d5f98e8951 Mon Sep 17 00:00:00 2001 From: Brenda Wallace Date: Wed, 10 Mar 2010 21:25:44 +1300 Subject: throw an error that looks like mysql errors.. :-S --- lib/pgsqlschema.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/pgsqlschema.php b/lib/pgsqlschema.php index 91bc09667..a4ebafae4 100644 --- a/lib/pgsqlschema.php +++ b/lib/pgsqlschema.php @@ -1,3 +1,4 @@ + conn->query("select *, column_default as default, is_nullable as Null, udt_name as Type, column_name AS Field from INFORMATION_SCHEMA.COLUMNS where table_name = '$name'"); + $res = $this->conn->query("SELECT *, column_default as default, is_nullable as Null, + udt_name as Type, column_name AS Field from INFORMATION_SCHEMA.COLUMNS where table_name = '$name'"); if (PEAR::isError($res)) { throw new Exception($res->getMessage()); @@ -72,6 +74,9 @@ class PgsqlSchema extends Schema $td->name = $name; $td->columns = array(); + if ($res->numRows() == 0 ) { + throw new Exception('no such table'); //pretend to be the msyql error. yeah, this sucks. + } $row = array(); while ($res->fetchInto($row, DB_FETCHMODE_ASSOC)) { @@ -359,6 +364,7 @@ class PgsqlSchema extends Schema try { $td = $this->getTableDef($tableName); + } catch (Exception $e) { if (preg_match('/no such table/', $e->getMessage())) { return $this->createTable($tableName, $columns); -- cgit v1.2.3-54-g00ecf From 7398353c441699acc8b6ed38e221e40e30196208 Mon Sep 17 00:00:00 2001 From: Brenda Wallace Date: Wed, 10 Mar 2010 21:54:30 +1300 Subject: primary keys and unique indexes working in postgres --- lib/pgsqlschema.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/pgsqlschema.php b/lib/pgsqlschema.php index a4ebafae4..825241902 100644 --- a/lib/pgsqlschema.php +++ b/lib/pgsqlschema.php @@ -171,12 +171,10 @@ class PgsqlSchema extends Schema } if (count($primary) > 0) { // it really should be... - $sql .= ",\nconstraint primary key (" . implode(',', $primary) . ")"; + $sql .= ",\n primary key (" . implode(',', $primary) . ")"; } - foreach ($uniques as $u) { - $sql .= ",\nunique index {$name}_{$u}_idx ($u)"; - } + foreach ($indices as $i) { $sql .= ",\nindex {$name}_{$i}_idx ($i)"; @@ -184,6 +182,10 @@ class PgsqlSchema extends Schema $sql .= "); "; + + foreach ($uniques as $u) { + $sql .= "\n CREATE index {$name}_{$u}_idx ON {$name} ($u); "; + } $res = $this->conn->query($sql); if (PEAR::isError($res)) { -- cgit v1.2.3-54-g00ecf From 75e2be3b71cc5b6114a10e1b5f1e0c9e3074af19 Mon Sep 17 00:00:00 2001 From: Brenda Wallace Date: Wed, 10 Mar 2010 22:02:56 +1300 Subject: map the mysql-ish column types to ones postgres likes --- lib/pgsqlschema.php | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/lib/pgsqlschema.php b/lib/pgsqlschema.php index 825241902..86ffbeb2a 100644 --- a/lib/pgsqlschema.php +++ b/lib/pgsqlschema.php @@ -216,6 +216,22 @@ class PgsqlSchema extends Schema return true; } + /** + * Translate the (mostly) mysql-ish column types into somethings more standard + * @param string column type + * + * @return string postgres happy column type + */ + private function _columnTypeTranslation($type) { + $map = array( + 'datetime' => 'timestamp' + ); + if(!empty($map[$type])) { + return $map[$type]; + } + return $type; + } + /** * Adds an index to a table. * @@ -485,11 +501,12 @@ class PgsqlSchema extends Schema private function _columnSql($cd) { $sql = "{$cd->name} "; - + $type = $this->_columnTypeTranslation($cd->type); +var_dump($type); if (!empty($cd->size)) { - $sql .= "{$cd->type}({$cd->size}) "; + $sql .= "{$type}({$cd->size}) "; } else { - $sql .= "{$cd->type} "; + $sql .= "{$type} "; } if (!empty($cd->default)) { -- cgit v1.2.3-54-g00ecf From 49f1b1e8b290de22381a0e25b2b612bd6ddaf79d Mon Sep 17 00:00:00 2001 From: Brenda Wallace Date: Wed, 10 Mar 2010 22:03:36 +1300 Subject: removed a stay bit of debug --- lib/pgsqlschema.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pgsqlschema.php b/lib/pgsqlschema.php index 86ffbeb2a..afb498f4a 100644 --- a/lib/pgsqlschema.php +++ b/lib/pgsqlschema.php @@ -502,7 +502,7 @@ class PgsqlSchema extends Schema { $sql = "{$cd->name} "; $type = $this->_columnTypeTranslation($cd->type); -var_dump($type); + if (!empty($cd->size)) { $sql .= "{$type}({$cd->size}) "; } else { -- cgit v1.2.3-54-g00ecf From 8ee8b89dd8b3483724aa52a812eef89b8bfae38b Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 10 Mar 2010 09:36:00 -0800 Subject: Ticket #2221: fix for missing whitespace between messages in en-gb. The final whitespace should be dropped from the source messages after we've stabilized; trailing space is pretty unreliable to keep through translation tools and should be avoided. Use separator strings outside the messages! --- lib/action.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/action.php b/lib/action.php index 816086d20..9884f529c 100644 --- a/lib/action.php +++ b/lib/action.php @@ -767,11 +767,14 @@ class Action extends HTMLOutputter // lawsuit { $this->element('dt', array('id' => 'site_statusnet_license'), _('StatusNet software license')); $this->elementStart('dd', null); + // @fixme drop the final spaces in the messages when at good spot + // to let translations get updated. if (common_config('site', 'broughtby')) { $instr = _('**%%site.name%%** is a microblogging service brought to you by [%%site.broughtby%%](%%site.broughtbyurl%%). '); } else { $instr = _('**%%site.name%%** is a microblogging service. '); } + $instr .= ' '; $instr .= sprintf(_('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).'), STATUSNET_VERSION); $output = common_markup_to_html($instr); $this->raw($output); -- cgit v1.2.3-54-g00ecf From 55e8473a7a87ebe85bcfa5cfb409ce9a9aeafdd0 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Wed, 10 Mar 2010 03:39:05 +0000 Subject: A blank username should never be allowed. --- lib/apiauth.php | 2 +- lib/util.php | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/apiauth.php b/lib/apiauth.php index f63c84d8f..32502399f 100644 --- a/lib/apiauth.php +++ b/lib/apiauth.php @@ -241,7 +241,7 @@ class ApiAuthAction extends ApiAction $realm = common_config('site', 'name') . ' API'; } - if (!isset($this->auth_user_nickname) && $required) { + if (empty($this->auth_user_nickname) && $required) { header('WWW-Authenticate: Basic realm="' . $realm . '"'); // show error if the user clicks 'cancel' diff --git a/lib/util.php b/lib/util.php index da2799d4f..5bef88ecc 100644 --- a/lib/util.php +++ b/lib/util.php @@ -133,6 +133,11 @@ function common_munge_password($password, $id) function common_check_user($nickname, $password) { + // empty nickname always unacceptable + if (empty($nickname)) { + return false; + } + $authenticatedUser = false; if (Event::handle('StartCheckPassword', array($nickname, $password, &$authenticatedUser))) { -- cgit v1.2.3-54-g00ecf From 69b2f19b6fef793aa607c6d8f4590b93e2565626 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 10 Mar 2010 10:06:46 -0800 Subject: RequireValidatedEmailPlugin fixes: require email on registration form, tidy up i18n infrastructure. --- plugins/RequireValidatedEmail/README | 2 -- .../RequireValidatedEmailPlugin.php | 23 +++++++++++++++- .../locale/RequireValidatedEmail.po | 31 ++++++++++++++++++++++ 3 files changed, 53 insertions(+), 3 deletions(-) create mode 100644 plugins/RequireValidatedEmail/locale/RequireValidatedEmail.po diff --git a/plugins/RequireValidatedEmail/README b/plugins/RequireValidatedEmail/README index ccd94d271..46ee24d5f 100644 --- a/plugins/RequireValidatedEmail/README +++ b/plugins/RequireValidatedEmail/README @@ -14,8 +14,6 @@ registered prior to that timestamp. Todo: -* make email field required on registration form * add a more visible indicator that validation is still outstanding -* localization for UI strings * test with XMPP, API posting diff --git a/plugins/RequireValidatedEmail/RequireValidatedEmailPlugin.php b/plugins/RequireValidatedEmail/RequireValidatedEmailPlugin.php index 3581f1de9..ccefa14f6 100644 --- a/plugins/RequireValidatedEmail/RequireValidatedEmailPlugin.php +++ b/plugins/RequireValidatedEmail/RequireValidatedEmailPlugin.php @@ -54,12 +54,33 @@ class RequireValidatedEmailPlugin extends Plugin $user = User::staticGet('id', $notice->profile_id); if (!empty($user)) { // it's a remote notice if (!$this->validated($user)) { - throw new ClientException(_("You must validate your email address before posting.")); + throw new ClientException(_m("You must validate your email address before posting.")); } } return true; } + /** + * Event handler for registration attempts; rejects the registration + * if email field is missing. + * + * @param RegisterAction $action + * @return bool hook result code + */ + function onStartRegistrationTry($action) + { + $email = $action->trimmed('email'); + + if (empty($email)) { + $action->showForm(_m('You must provide an email address to register.')); + return false; + } + + // Default form will run address format validation and reject if bad. + + return true; + } + /** * Check if a user has a validated email address or has been * otherwise grandfathered in. diff --git a/plugins/RequireValidatedEmail/locale/RequireValidatedEmail.po b/plugins/RequireValidatedEmail/locale/RequireValidatedEmail.po new file mode 100644 index 000000000..49ac4f6f4 --- /dev/null +++ b/plugins/RequireValidatedEmail/locale/RequireValidatedEmail.po @@ -0,0 +1,31 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-03-10 10:05-0800\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: RequireValidatedEmailPlugin.php:57 +msgid "You must validate your email address before posting." +msgstr "" + +#: RequireValidatedEmailPlugin.php:75 +msgid "You must provide an email address to register." +msgstr "" + +#: RequireValidatedEmailPlugin.php:128 +msgid "" +"The Require Validated Email plugin disables posting for accounts that do not " +"have a validated email address." +msgstr "" -- cgit v1.2.3-54-g00ecf From 532e486a936c78961ff93d5e8de2dc0b86ee8d2a Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 10 Mar 2010 11:54:00 -0800 Subject: Detect when queuedaemon/xmppdaemon parent processes die and kill the child processes. Keeps stray daemon subprocesses from floating around when we kill the parents via a signal! Accomplished by opening a bidirectional pipe in the parent process; the children close out the writer end and keep the reader in their open sockets list. When the parent dies, the children see that the socket's been closed out and can perform an orderly shutdown. --- lib/processmanager.php | 84 +++++++++++++++++++++++++++++++++++++++++++++++++ lib/spawningdaemon.php | 32 +++++++++++++++++++ scripts/queuedaemon.php | 11 ++++++- scripts/xmppdaemon.php | 11 ++++++- 4 files changed, 136 insertions(+), 2 deletions(-) create mode 100644 lib/processmanager.php diff --git a/lib/processmanager.php b/lib/processmanager.php new file mode 100644 index 000000000..6032bfc5c --- /dev/null +++ b/lib/processmanager.php @@ -0,0 +1,84 @@ +. + * + * @category QueueManager + * @package StatusNet + * @author Brion Vibber + * @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/ + */ + +class ProcessManager extends IoManager +{ + protected $socket; + + public static function get() + { + throw new Exception("Must pass ProcessManager per-instance"); + } + + public function __construct($socket) + { + $this->socket = $socket; + } + + /** + * Tell the i/o queue master if and how we can handle multi-site + * processes. + * + * Return one of: + * IoManager::SINGLE_ONLY + * IoManager::INSTANCE_PER_SITE + * IoManager::INSTANCE_PER_PROCESS + */ + public static function multiSite() + { + return IoManager::INSTANCE_PER_PROCESS; + } + + /** + * We won't get any input on it, but if it's broken we'll + * know something's gone horribly awry. + * + * @return array of resources + */ + function getSockets() + { + return array($this->socket); + } + + /** + * See if the parent died and request a shutdown... + * + * @param resource $socket + * @return boolean success + */ + function handleInput($socket) + { + if (feof($socket)) { + common_log(LOG_INFO, "Parent process exited; shutting down child."); + $this->master->requestShutdown(); + } + return true; + } +} + diff --git a/lib/spawningdaemon.php b/lib/spawningdaemon.php index fd9ae4355..2f9f6e32e 100644 --- a/lib/spawningdaemon.php +++ b/lib/spawningdaemon.php @@ -71,6 +71,8 @@ abstract class SpawningDaemon extends Daemon */ function run() { + $this->initPipes(); + $children = array(); for ($i = 1; $i <= $this->threads; $i++) { $pid = pcntl_fork(); @@ -128,6 +130,34 @@ abstract class SpawningDaemon extends Daemon return true; } + /** + * Create an IPC socket pair which child processes can use to detect + * if the parent process has been killed. + */ + function initPipes() + { + $sockets = stream_socket_pair(STREAM_PF_UNIX, STREAM_SOCK_STREAM, 0); + if ($sockets) { + $this->parentWriter = $sockets[0]; + $this->parentReader = $sockets[1]; + } else { + $this->log(LOG_ERROR, "Couldn't create inter-process sockets"); + exit(1); + } + } + + /** + * Build an IOManager that simply ensures that we have a connection + * to the parent process open. If it breaks, the child process will + * die. + * + * @return ProcessManager + */ + public function processManager() + { + return new ProcessManager($this->parentReader); + } + /** * Determine whether to respawn an exited subprocess based on its exit code. * Otherwise we'll respawn all exits by default. @@ -152,6 +182,8 @@ abstract class SpawningDaemon extends Daemon */ protected function initAndRunChild($thread) { + // Close the writer end of our parent<->children pipe. + fclose($this->parentWriter); $this->set_id($this->get_id() . "." . $thread); $this->resetDb(); $exitCode = $this->runThread(); diff --git a/scripts/queuedaemon.php b/scripts/queuedaemon.php index 6dba16f95..582a3dd88 100755 --- a/scripts/queuedaemon.php +++ b/scripts/queuedaemon.php @@ -105,7 +105,7 @@ class QueueDaemon extends SpawningDaemon { $this->log(LOG_INFO, 'checking for queued notices'); - $master = new QueueMaster($this->get_id()); + $master = new QueueMaster($this->get_id(), $this->processManager()); $master->init($this->allsites); try { $master->service(); @@ -125,6 +125,14 @@ class QueueDaemon extends SpawningDaemon class QueueMaster extends IoMaster { + protected $processManager; + + function __construct($id, $processManager) + { + parent::__construct($id); + $this->processManager = $processManager; + } + /** * Initialize IoManagers which are appropriate to this instance. */ @@ -135,6 +143,7 @@ class QueueMaster extends IoMaster $qm = QueueManager::get(); $qm->setActiveGroup('main'); $managers[] = $qm; + $managers[] = $this->processManager; } Event::handle('EndQueueDaemonIoManagers', array(&$managers)); diff --git a/scripts/xmppdaemon.php b/scripts/xmppdaemon.php index 9302f0c43..26c7991b8 100755 --- a/scripts/xmppdaemon.php +++ b/scripts/xmppdaemon.php @@ -55,7 +55,7 @@ class XMPPDaemon extends SpawningDaemon { common_log(LOG_INFO, 'Waiting to listen to XMPP and queues'); - $master = new XmppMaster($this->get_id()); + $master = new XmppMaster($this->get_id(), $this->processManager()); $master->init($this->allsites); $master->service(); @@ -68,6 +68,14 @@ class XMPPDaemon extends SpawningDaemon class XmppMaster extends IoMaster { + protected $processManager; + + function __construct($id, $processManager) + { + parent::__construct($id); + $this->processManager = $processManager; + } + /** * Initialize IoManagers for the currently configured site * which are appropriate to this instance. @@ -79,6 +87,7 @@ class XmppMaster extends IoMaster $qm->setActiveGroup('xmpp'); $this->instantiate($qm); $this->instantiate(XmppManager::get()); + $this->instantiate($this->processManager); } } } -- cgit v1.2.3-54-g00ecf From 4741683298ac02e14d7380ab20f20fd8a73775e2 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Wed, 10 Mar 2010 22:05:28 +0000 Subject: Allow site-specific doc files --- actions/doc.php | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/actions/doc.php b/actions/doc.php index 459f5f096..f876fb8be 100644 --- a/actions/doc.php +++ b/actions/doc.php @@ -13,7 +13,7 @@ * @link http://status.net/ * * StatusNet - the distributed open-source microblogging tool - * Copyright (C) 2008, 2009, StatusNet, Inc. + * Copyright (C) 2008-2010, StatusNet, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -168,14 +168,28 @@ class DocAction extends Action function getFilename() { - if (file_exists(INSTALLDIR.'/local/doc-src/'.$this->title)) { - $localDef = INSTALLDIR.'/local/doc-src/'.$this->title; - } + $localDef = null; + $local = null; + + $site = StatusNet::currentSite(); - $local = glob(INSTALLDIR.'/local/doc-src/'.$this->title.'.*'); - if ($local === false) { - // Some systems return false, others array(), if dir didn't exist. - $local = array(); + if (!empty($site) && file_exists(INSTALLDIR.'/local/doc-src/'.$site.'/'.$this->title)) { + $localDef = INSTALLDIR.'/local/doc-src/'.$site.'/'.$this->title; + + $local = glob(INSTALLDIR.'/local/doc-src/'.$site.'/'.$this->title.'.*'); + if ($local === false) { + // Some systems return false, others array(), if dir didn't exist. + $local = array(); + } + } else { + if (file_exists(INSTALLDIR.'/local/doc-src/'.$this->title)) { + $localDef = INSTALLDIR.'/local/doc-src/'.$this->title; + } + + $local = glob(INSTALLDIR.'/local/doc-src/'.$this->title.'.*'); + if ($local === false) { + $local = array(); + } } if (count($local) || isset($localDef)) { -- cgit v1.2.3-54-g00ecf From 2a426f24c0599710ef170b01f7f7124b7166e12e Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Wed, 10 Mar 2010 22:05:28 +0000 Subject: Allow site-specific doc files --- actions/doc.php | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/actions/doc.php b/actions/doc.php index 459f5f096..f876fb8be 100644 --- a/actions/doc.php +++ b/actions/doc.php @@ -13,7 +13,7 @@ * @link http://status.net/ * * StatusNet - the distributed open-source microblogging tool - * Copyright (C) 2008, 2009, StatusNet, Inc. + * Copyright (C) 2008-2010, StatusNet, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -168,14 +168,28 @@ class DocAction extends Action function getFilename() { - if (file_exists(INSTALLDIR.'/local/doc-src/'.$this->title)) { - $localDef = INSTALLDIR.'/local/doc-src/'.$this->title; - } + $localDef = null; + $local = null; + + $site = StatusNet::currentSite(); - $local = glob(INSTALLDIR.'/local/doc-src/'.$this->title.'.*'); - if ($local === false) { - // Some systems return false, others array(), if dir didn't exist. - $local = array(); + if (!empty($site) && file_exists(INSTALLDIR.'/local/doc-src/'.$site.'/'.$this->title)) { + $localDef = INSTALLDIR.'/local/doc-src/'.$site.'/'.$this->title; + + $local = glob(INSTALLDIR.'/local/doc-src/'.$site.'/'.$this->title.'.*'); + if ($local === false) { + // Some systems return false, others array(), if dir didn't exist. + $local = array(); + } + } else { + if (file_exists(INSTALLDIR.'/local/doc-src/'.$this->title)) { + $localDef = INSTALLDIR.'/local/doc-src/'.$this->title; + } + + $local = glob(INSTALLDIR.'/local/doc-src/'.$this->title.'.*'); + if ($local === false) { + $local = array(); + } } if (count($local) || isset($localDef)) { -- cgit v1.2.3-54-g00ecf From f02cb7c71800e6a4426b92ce04c4b8f89006b10a Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 10 Mar 2010 13:39:42 -0800 Subject: Fix for attachment "h bug": posting a shortened link to an oembed-able resource that has been previously used in the system would incorrectly save "h" as the item's type and title. --- classes/File.php | 9 +++++++- classes/File_oembed.php | 8 ++++++- classes/File_redirection.php | 51 ++++++++++++++++++++++++++++++++++++++++---- 3 files changed, 62 insertions(+), 6 deletions(-) diff --git a/classes/File.php b/classes/File.php index 1b8ef1b3e..a83ecac4c 100644 --- a/classes/File.php +++ b/classes/File.php @@ -67,7 +67,14 @@ class File extends Memcached_DataObject return $att; } - function saveNew($redir_data, $given_url) { + /** + * Save a new file record. + * + * @param array $redir_data lookup data eg from File_redirection::where() + * @param string $given_url + * @return File + */ + function saveNew(array $redir_data, $given_url) { $x = new File; $x->url = $given_url; if (!empty($redir_data['protected'])) $x->protected = $redir_data['protected']; diff --git a/classes/File_oembed.php b/classes/File_oembed.php index 11f160718..f59eaf24c 100644 --- a/classes/File_oembed.php +++ b/classes/File_oembed.php @@ -81,7 +81,13 @@ class File_oembed extends Memcached_DataObject } } - function saveNew($data, $file_id) { + /** + * Save embedding info for a new file. + * + * @param array $data lookup data as from File_redirection::where + * @param int $file_id + */ + function saveNew(array $data, $file_id) { $file_oembed = new File_oembed; $file_oembed->file_id = $file_id; $file_oembed->version = $data->version; diff --git a/classes/File_redirection.php b/classes/File_redirection.php index 08a6e8d8b..d96979158 100644 --- a/classes/File_redirection.php +++ b/classes/File_redirection.php @@ -115,11 +115,45 @@ class File_redirection extends Memcached_DataObject return $ret; } + /** + * Check if this URL is a redirect and return redir info. + * If a File record is present for this URL, it is not considered a redirect. + * If a File_redirection record is present for this URL, the recorded target is returned. + * + * If no File or File_redirect record is present, the URL is hit and any + * redirects are followed, up to 10 levels or until a protected URL is + * reached. + * + * @param string $in_url + * @return mixed one of: + * string - target URL, if this is a direct link or a known redirect + * array - redirect info if this is an *unknown* redirect: + * associative array with the following elements: + * code: HTTP status code + * redirects: count of redirects followed + * url: URL string of final target + * type (optional): MIME type from Content-Type header + * size (optional): byte size from Content-Length header + * time (optional): timestamp from Last-Modified header + */ function where($in_url) { $ret = File_redirection::_redirectWhere_imp($in_url); return $ret; } + /** + * Shorten a URL with the current user's configured shortening + * options, if applicable. + * + * If it cannot be shortened or the "short" URL is longer than the + * original, the original is returned. + * + * If the referenced item has not been seen before, embedding data + * may be saved. + * + * @param string $long_url + * @return string + */ function makeShort($long_url) { $canon = File_redirection::_canonUrl($long_url); @@ -141,11 +175,20 @@ class File_redirection extends Memcached_DataObject // store it $file = File::staticGet('url', $long_url); if (empty($file)) { + // Check if the target URL is itself a redirect... $redir_data = File_redirection::where($long_url); - $file = File::saveNew($redir_data, $long_url); - $file_id = $file->id; - if (!empty($redir_data['oembed']['json'])) { - File_oembed::saveNew($redir_data['oembed']['json'], $file_id); + if (is_array($redir_data)) { + // We haven't seen the target URL before. + // Save file and embedding data about it! + $file = File::saveNew($redir_data, $long_url); + $file_id = $file->id; + if (!empty($redir_data['oembed']['json'])) { + File_oembed::saveNew($redir_data['oembed']['json'], $file_id); + } + } else if (is_string($redir_data)) { + // The file is a known redirect target. + $file = File::staticGet('url', $redir_data); + $file_id = $file->id; } } else { $file_id = $file->id; -- cgit v1.2.3-54-g00ecf From 294b290dd95a2e4a09026932a2b066ccee587681 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 10 Mar 2010 14:31:29 -0800 Subject: Fixup script for files w/ bogus data saved into file record ('h bug') --- classes/File.php | 24 +++++++++++++++--- classes/File_oembed.php | 4 +-- classes/File_redirection.php | 60 ++++++++++++++++++++++++++++++-------------- 3 files changed, 64 insertions(+), 24 deletions(-) diff --git a/classes/File.php b/classes/File.php index a83ecac4c..ba8332841 100644 --- a/classes/File.php +++ b/classes/File.php @@ -84,19 +84,36 @@ class File extends Memcached_DataObject if (isset($redir_data['time']) && $redir_data['time'] > 0) $x->date = intval($redir_data['time']); $file_id = $x->insert(); + $x->saveOembed($redir_data, $given_url); + return $x; + } + + /** + * Save embedding information for this file, if applicable. + * + * Normally this won't need to be called manually, as File::saveNew() + * takes care of it. + * + * @param array $redir_data lookup data eg from File_redirection::where() + * @param string $given_url + * @return boolean success + */ + public function saveOembed($redir_data, $given_url) + { if (isset($redir_data['type']) && (('text/html' === substr($redir_data['type'], 0, 9) || 'application/xhtml+xml' === substr($redir_data['type'], 0, 21))) && ($oembed_data = File_oembed::_getOembed($given_url))) { - $fo = File_oembed::staticGet('file_id', $file_id); + $fo = File_oembed::staticGet('file_id', $this->id); if (empty($fo)) { - File_oembed::saveNew($oembed_data, $file_id); + File_oembed::saveNew($oembed_data, $this->id); + return true; } else { common_log(LOG_WARNING, "Strangely, a File_oembed object exists for new file $file_id", __FILE__); } } - return $x; + return false; } function processNew($given_url, $notice_id=null) { @@ -112,6 +129,7 @@ class File extends Memcached_DataObject $redir_url = $redir_data['url']; } elseif (is_string($redir_data)) { $redir_url = $redir_data; + $redir_data = array(); } else { throw new ServerException("Can't process url '$given_url'"); } diff --git a/classes/File_oembed.php b/classes/File_oembed.php index f59eaf24c..041b44740 100644 --- a/classes/File_oembed.php +++ b/classes/File_oembed.php @@ -84,10 +84,10 @@ class File_oembed extends Memcached_DataObject /** * Save embedding info for a new file. * - * @param array $data lookup data as from File_redirection::where + * @param object $data Services_oEmbed_Object_* * @param int $file_id */ - function saveNew(array $data, $file_id) { + function saveNew($data, $file_id) { $file_oembed = new File_oembed; $file_oembed->file_id = $file_id; $file_oembed->version = $data->version; diff --git a/classes/File_redirection.php b/classes/File_redirection.php index d96979158..f128b3e07 100644 --- a/classes/File_redirection.php +++ b/classes/File_redirection.php @@ -58,24 +58,30 @@ class File_redirection extends Memcached_DataObject return $request; } - function _redirectWhere_imp($short_url, $redirs = 10, $protected = false) { + /** + * Check if this URL is a redirect and return redir info. + * + * Most code should call File_redirection::where instead, to check if we + * already know that redirection and avoid extra hits to the web. + * + * The URL is hit and any redirects are followed, up to 10 levels or until + * a protected URL is reached. + * + * @param string $in_url + * @return mixed one of: + * string - target URL, if this is a direct link or can't be followed + * array - redirect info if this is an *unknown* redirect: + * associative array with the following elements: + * code: HTTP status code + * redirects: count of redirects followed + * url: URL string of final target + * type (optional): MIME type from Content-Type header + * size (optional): byte size from Content-Length header + * time (optional): timestamp from Last-Modified header + */ + public function lookupWhere($short_url, $redirs = 10, $protected = false) { if ($redirs < 0) return false; - // let's see if we know this... - $a = File::staticGet('url', $short_url); - - if (!empty($a)) { - // this is a direct link to $a->url - return $a->url; - } else { - $b = File_redirection::staticGet('url', $short_url); - if (!empty($b)) { - // this is a redirect to $b->file_id - $a = File::staticGet('id', $b->file_id); - return $a->url; - } - } - if(strpos($short_url,'://') === false){ return $short_url; } @@ -93,12 +99,13 @@ class File_redirection extends Memcached_DataObject } } catch (Exception $e) { // Invalid URL or failure to reach server + common_log(LOG_ERR, "Error while following redirects for $short_url: " . $e->getMessage()); return $short_url; } if ($response->getRedirectCount() && File::isProtected($response->getUrl())) { // Bump back up the redirect chain until we find a non-protected URL - return self::_redirectWhere_imp($short_url, $response->getRedirectCount() - 1, true); + return self::lookupWhere($short_url, $response->getRedirectCount() - 1, true); } $ret = array('code' => $response->getStatus() @@ -136,8 +143,23 @@ class File_redirection extends Memcached_DataObject * size (optional): byte size from Content-Length header * time (optional): timestamp from Last-Modified header */ - function where($in_url) { - $ret = File_redirection::_redirectWhere_imp($in_url); + public function where($in_url) { + // let's see if we know this... + $a = File::staticGet('url', $in_url); + + if (!empty($a)) { + // this is a direct link to $a->url + return $a->url; + } else { + $b = File_redirection::staticGet('url', $in_url); + if (!empty($b)) { + // this is a redirect to $b->file_id + $a = File::staticGet('id', $b->file_id); + return $a->url; + } + } + + $ret = File_redirection::lookupWhere($in_url); return $ret; } -- cgit v1.2.3-54-g00ecf From 5cd020bf299619ca2844f4d14418891a59a0dd22 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 10 Mar 2010 15:08:40 -0800 Subject: Workaround intermittent bugs with HEAD requests by disabling keepalive in HTTPClient. I think this is a bug in Youtube's web server (sending chunked encoding of an empty body with a HEAD response, leaving the connection out of sync when it doesn't attempt to read a body) but the HTTP_Request2 library may need to be adjusted to watch out for that. --- lib/httpclient.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/httpclient.php b/lib/httpclient.php index 4c3af8d7d..64a51353c 100644 --- a/lib/httpclient.php +++ b/lib/httpclient.php @@ -120,6 +120,16 @@ class HTTPClient extends HTTP_Request2 { $this->config['max_redirs'] = 10; $this->config['follow_redirects'] = true; + + // We've had some issues with keepalive breaking with + // HEAD requests, such as to youtube which seems to be + // emitting chunked encoding info for an empty body + // instead of not emitting anything. This may be a + // bug on YouTube's end, but the upstream libray + // ought to be investigated to see if we can handle + // it gracefully in that case as well. + $this->config['protocol_version'] = '1.0'; + parent::__construct($url, $method, $config); $this->setHeader('User-Agent', $this->userAgent()); } -- cgit v1.2.3-54-g00ecf From 66518df4356ea878bfd8693191f0354caebfb549 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 10 Mar 2010 17:00:05 -0800 Subject: OStatus: reject attempts to create a remote profile for a local user or group. Some stray shadow entries were ending up getting created, which would steal group posts from remote users. Run plugins/OStatus/scripts/fixup-shadow.php for each site to remove any existing ones. --- plugins/OStatus/OStatusPlugin.php | 37 ++++++++++++++++ plugins/OStatus/classes/Ostatus_profile.php | 19 +++++--- plugins/OStatus/scripts/fixup-shadow.php | 69 +++++++++++++++++++++++++++++ 3 files changed, 118 insertions(+), 7 deletions(-) create mode 100644 plugins/OStatus/scripts/fixup-shadow.php diff --git a/plugins/OStatus/OStatusPlugin.php b/plugins/OStatus/OStatusPlugin.php index a97f3475b..ef28ab22e 100644 --- a/plugins/OStatus/OStatusPlugin.php +++ b/plugins/OStatus/OStatusPlugin.php @@ -929,4 +929,41 @@ class OStatusPlugin extends Plugin return true; } + + /** + * Utility function to check if the given URL is a canonical group profile + * page, and if so return the ID number. + * + * @param string $url + * @return mixed int or false + */ + public static function localGroupFromUrl($url) + { + $template = common_local_url('groupbyid', array('id' => '31337')); + $template = preg_quote($template, '/'); + $template = str_replace('31337', '(\d+)', $template); + if (preg_match("/$template/", $url, $matches)) { + return intval($matches[1]); + } + return false; + } + + /** + * Utility function to check if the given URL is a canonical user profile + * page, and if so return the ID number. + * + * @param string $url + * @return mixed int or false + */ + public static function localProfileFromUrl($url) + { + $template = common_local_url('userbyid', array('id' => '31337')); + $template = preg_quote($template, '/'); + $template = str_replace('31337', '(\d+)', $template); + if (preg_match("/$template/", $url, $matches)) { + return intval($matches[1]); + } + return false; + } + } diff --git a/plugins/OStatus/classes/Ostatus_profile.php b/plugins/OStatus/classes/Ostatus_profile.php index abc8100ce..6ae8e4fd5 100644 --- a/plugins/OStatus/classes/Ostatus_profile.php +++ b/plugins/OStatus/classes/Ostatus_profile.php @@ -675,13 +675,10 @@ class Ostatus_profile extends Memcached_DataObject } // Is the recipient a local group? - // @fixme we need a uri on user_group + // @fixme uri on user_group isn't reliable yet // $group = User_group::staticGet('uri', $recipient); - $template = common_local_url('groupbyid', array('id' => '31337')); - $template = preg_quote($template, '/'); - $template = str_replace('31337', '(\d+)', $template); - if (preg_match("/$template/", $recipient, $matches)) { - $id = $matches[1]; + $id = OStatusPlugin::localGroupFromUrl($recipient); + if ($id) { $group = User_group::staticGet('id', $id); if ($group) { // Deliver to all members of this local group if allowed. @@ -992,7 +989,15 @@ class Ostatus_profile extends Memcached_DataObject if (!$homeuri) { common_log(LOG_DEBUG, __METHOD__ . " empty actor profile URI: " . var_export($activity, true)); - throw new ServerException("No profile URI"); + throw new Exception("No profile URI"); + } + + if (OStatusPlugin::localProfileFromUrl($homeuri)) { + throw new Exception("Local user can't be referenced as remote."); + } + + if (OStatusPlugin::localGroupFromUrl($homeuri)) { + throw new Exception("Local group can't be referenced as remote."); } if (array_key_exists('feedurl', $hints)) { diff --git a/plugins/OStatus/scripts/fixup-shadow.php b/plugins/OStatus/scripts/fixup-shadow.php new file mode 100644 index 000000000..0171b77bc --- /dev/null +++ b/plugins/OStatus/scripts/fixup-shadow.php @@ -0,0 +1,69 @@ +#!/usr/bin/env php +. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/../../..')); + +$longoptions = array('dry-run'); + +$helptext = << $marker)); +$encProfile = $oprofile->escape($profileTemplate, true); +$encProfile = str_replace($marker, '%', $encProfile); + +$groupTemplate = common_local_url('groupbyid', array('id' => $marker)); +$encGroup = $oprofile->escape($groupTemplate, true); +$encGroup = str_replace($marker, '%', $encGroup); + +$sql = "SELECT * FROM ostatus_profile WHERE uri LIKE '%s' OR uri LIKE '%s'"; +$oprofile->query(sprintf($sql, $encProfile, $encGroup)); + +echo "Found $oprofile->N bogus ostatus_profile entries:\n"; + +while ($oprofile->fetch()) { + echo "$oprofile->uri"; + + if ($dry) { + echo " (unchanged)\n"; + } else { + echo " deleting..."; + $evil = clone($oprofile); + $evil->delete(); + echo " ok\n"; + } +} + +echo "done.\n"; + -- cgit v1.2.3-54-g00ecf From ce92bc71431ec878c391b1ac6e16fd59cafd50b1 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Thu, 11 Mar 2010 11:01:01 -0800 Subject: Drop timestamp cutoff parameter from User::getCurrentNotice() and Profile::getCurrentNotice(). It's not currently used, and won't be efficient when we update the notice.profile_id_idx index to optimize for our id-based sorting when pulling user post lists for profile pages, feeds etc. --- classes/Profile.php | 12 +++++++----- classes/User.php | 9 +++++++-- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/classes/Profile.php b/classes/Profile.php index 0322c9358..91f6e4692 100644 --- a/classes/Profile.php +++ b/classes/Profile.php @@ -147,14 +147,16 @@ class Profile extends Memcached_DataObject return ($this->fullname) ? $this->fullname : $this->nickname; } - # Get latest notice on or before date; default now - function getCurrentNotice($dt=null) + /** + * Get the most recent notice posted by this user, if any. + * + * @return mixed Notice or null + */ + function getCurrentNotice() { $notice = new Notice(); $notice->profile_id = $this->id; - if ($dt) { - $notice->whereAdd('created < "' . $dt . '"'); - } + // @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)) { diff --git a/classes/User.php b/classes/User.php index aa9fbf948..330da039b 100644 --- a/classes/User.php +++ b/classes/User.php @@ -132,13 +132,18 @@ class User extends Memcached_DataObject return !in_array($nickname, $blacklist); } - function getCurrentNotice($dt=null) + /** + * Get the most recent notice posted by this user, if any. + * + * @return mixed Notice or null + */ + function getCurrentNotice() { $profile = $this->getProfile(); if (!$profile) { return null; } - return $profile->getCurrentNotice($dt); + return $profile->getCurrentNotice(); } function getCarrier() -- cgit v1.2.3-54-g00ecf From 89582e72262bdba65e6b07699536555d5fa6a497 Mon Sep 17 00:00:00 2001 From: James Walker Date: Tue, 9 Mar 2010 18:12:37 -0500 Subject: base64_encode/decode -> base64_url_encode/decode --- plugins/OStatus/lib/magicenvelope.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/OStatus/lib/magicenvelope.php b/plugins/OStatus/lib/magicenvelope.php index fb8c57c71..e8835165c 100644 --- a/plugins/OStatus/lib/magicenvelope.php +++ b/plugins/OStatus/lib/magicenvelope.php @@ -70,7 +70,7 @@ class MagicEnvelope public function signMessage($text, $mimetype, $keypair) { $signature_alg = Magicsig::fromString($keypair); - $armored_text = base64_encode($text); + $armored_text = base64_url_encode($text); return array( 'data' => $armored_text, @@ -108,7 +108,7 @@ class MagicEnvelope public function unfold($env) { $dom = new DOMDocument(); - $dom->loadXML(base64_decode($env['data'])); + $dom->loadXML(base64_url_decode($env['data'])); if ($dom->documentElement->tagName != 'entry') { return false; @@ -165,7 +165,7 @@ class MagicEnvelope return false; } - $text = base64_decode($env['data']); + $text = base64_url_decode($env['data']); $signer_uri = $this->getAuthor($text); try { -- cgit v1.2.3-54-g00ecf From 06612e35e433109e00167ac62d65299210ef0032 Mon Sep 17 00:00:00 2001 From: James Walker Date: Tue, 9 Mar 2010 18:47:20 -0500 Subject: remove hard-coded me:env check in magicenvelope --- plugins/OStatus/lib/magicenvelope.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/plugins/OStatus/lib/magicenvelope.php b/plugins/OStatus/lib/magicenvelope.php index e8835165c..c927209e4 100644 --- a/plugins/OStatus/lib/magicenvelope.php +++ b/plugins/OStatus/lib/magicenvelope.php @@ -193,11 +193,12 @@ class MagicEnvelope public function fromDom($dom) { - if ($dom->documentElement->tagName == 'entry') { + $env_element = $dom->getElementsByTagNameNS(MagicEnvelope::NS, 'env')->item(0); + if (!$env_element) { $env_element = $dom->getElementsByTagNameNS(MagicEnvelope::NS, 'provenance')->item(0); - } else if ($dom->documentElement->tagName == 'me:env') { - $env_element = $dom->documentElement; - } else { + } + + if (!$env_element) { return false; } -- cgit v1.2.3-54-g00ecf From 512e51105372daf9c85af9284de1463084f03aa9 Mon Sep 17 00:00:00 2001 From: James Walker Date: Thu, 11 Mar 2010 14:32:22 -0500 Subject: fix invalid separator in magic-public-key XRD and matching parsing. --- plugins/OStatus/lib/magicenvelope.php | 6 +++++- plugins/OStatus/lib/xrdaction.php | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/plugins/OStatus/lib/magicenvelope.php b/plugins/OStatus/lib/magicenvelope.php index c927209e4..9266cab5c 100644 --- a/plugins/OStatus/lib/magicenvelope.php +++ b/plugins/OStatus/lib/magicenvelope.php @@ -59,7 +59,11 @@ class MagicEnvelope } if ($xrd->links) { if ($link = Discovery::getService($xrd->links, Magicsig::PUBLICKEYREL)) { - list($type, $keypair) = explode(';', $link['href']); + list($type, $keypair) = explode(',', $link['href']); + if (empty($keypair)) { + // Backwards compatibility check for separator bug in 0.9.0 + list($type, $keypair) = explode(';', $link['href']); + } return $keypair; } } diff --git a/plugins/OStatus/lib/xrdaction.php b/plugins/OStatus/lib/xrdaction.php index 6881292ad..b3c1d8453 100644 --- a/plugins/OStatus/lib/xrdaction.php +++ b/plugins/OStatus/lib/xrdaction.php @@ -91,7 +91,7 @@ class XrdAction extends Action } $xrd->links[] = array('rel' => Magicsig::PUBLICKEYREL, - 'href' => 'data:application/magic-public-key;'. $magickey->toString(false)); + 'href' => 'data:application/magic-public-key,'. $magickey->toString(false)); // TODO - finalize where the redirect should go on the publisher $url = common_local_url('ostatussub') . '?profile={uri}'; -- cgit v1.2.3-54-g00ecf From 6828567ed067b382f68910dba6d59b603fc782a4 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Thu, 11 Mar 2010 11:52:19 -0800 Subject: Add forgotten scripts/fixup_files.php to clean up "the h bug" --- scripts/fixup_files.php | 77 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100755 scripts/fixup_files.php diff --git a/scripts/fixup_files.php b/scripts/fixup_files.php new file mode 100755 index 000000000..18feaf221 --- /dev/null +++ b/scripts/fixup_files.php @@ -0,0 +1,77 @@ +#!/usr/bin/env php +. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); + +$longoptions = array('dry-run'); + +$helptext = <<title = 'h'; +$f->mimetype = 'h'; +$f->size = 0; +$f->protected = 0; +$f->find(); +echo "Found $f->N bad items:\n"; + +while ($f->fetch()) { + echo "$f->id $f->url"; + + $data = File_redirection::lookupWhere($f->url); + if ($dry) { + if (is_array($data)) { + echo " (unchanged)\n"; + } else { + echo " (unchanged, but embedding lookup failed)\n"; + } + } else { + // NULL out the mime/title/size/protected fields + $sql = sprintf("UPDATE file " . + "SET mimetype=null,title=null,size=null,protected=null " . + "WHERE id=%d", + $f->id); + $f->query($sql); + $f->decache(); + + if (is_array($data)) { + if ($f->saveOembed($data, $f->url)) { + echo " (ok)\n"; + } else { + echo " (ok, no embedding data)\n"; + } + } else { + echo " (ok, but embedding lookup failed)\n"; + } + } +} + +echo "done.\n"; + -- cgit v1.2.3-54-g00ecf From ded26ae8f55496e67e19515e1d73cfa41f6b2c75 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 11 Mar 2010 16:40:16 -0500 Subject: Fixes the indenting bug for geo anchor. Also mention in trac ticket 2235 --- lib/noticelist.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/noticelist.php b/lib/noticelist.php index 88a925241..811b7e4f1 100644 --- a/lib/noticelist.php +++ b/lib/noticelist.php @@ -442,11 +442,13 @@ class NoticeListItem extends Widget 'title' => $latlon), $name); } else { - $this->out->elementStart('a', array('href' => $url)); - $this->out->element('abbr', array('class' => 'geo', - 'title' => $latlon), - $name); - $this->out->elementEnd('a'); + $xstr = new XMLStringer(false); + $xstr->elementStart('a', array('href' => $url)); + $xstr->element('abbr', array('class' => 'geo', + 'title' => $latlon), + $name); + $xstr->elementEnd('a'); + $this->out->raw($xstr->getString()); } $this->out->elementEnd('span'); } -- cgit v1.2.3-54-g00ecf From 00fa7d4b0b2078f3e85693e98c6b284664cc9767 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 11 Mar 2010 16:41:40 -0500 Subject: Updated theme dates --- theme/base/css/display.css | 4 ++-- theme/default/css/display.css | 2 +- theme/identica/css/display.css | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/theme/base/css/display.css b/theme/base/css/display.css index 0246065a7..782d3dc71 100644 --- a/theme/base/css/display.css +++ b/theme/base/css/display.css @@ -1,8 +1,8 @@ /** theme: base * * @package StatusNet - * @author Sarven Capadisli - * @copyright 2009 StatusNet, Inc. + * @author Sarven Capadisli + * @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/ */ diff --git a/theme/default/css/display.css b/theme/default/css/display.css index be341813a..d92a53965 100644 --- a/theme/default/css/display.css +++ b/theme/default/css/display.css @@ -2,7 +2,7 @@ * * @package StatusNet * @author Sarven Capadisli - * @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/ */ diff --git a/theme/identica/css/display.css b/theme/identica/css/display.css index db85408eb..59cb3c38a 100644 --- a/theme/identica/css/display.css +++ b/theme/identica/css/display.css @@ -2,7 +2,7 @@ * * @package StatusNet * @author Sarven Capadisli - * @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/ */ -- cgit v1.2.3-54-g00ecf From 20cb9fa28f865ecfcec31d5285950516172b8326 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 11 Mar 2010 17:16:37 -0500 Subject: foaf:holdsAccount is deprecated in favour of foaf:account. See http://lists.foaf-project.org/pipermail/foaf-dev/2009-December/009903.html for the news. Patch by Toby Inkster . --- actions/foaf.php | 4 ++-- actions/foafgroup.php | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/actions/foaf.php b/actions/foaf.php index e9f67b7f2..fc2ec9b12 100644 --- a/actions/foaf.php +++ b/actions/foaf.php @@ -251,7 +251,7 @@ class FoafAction extends Action } // Their account - $this->elementStart('holdsAccount'); + $this->elementStart('account'); $this->elementStart('OnlineAccount', $attr); if ($service) { $this->element('accountServiceHomepage', array('rdf:resource' => @@ -306,7 +306,7 @@ class FoafAction extends Action } $this->elementEnd('OnlineAccount'); - $this->elementEnd('holdsAccount'); + $this->elementEnd('account'); return $person; } diff --git a/actions/foafgroup.php b/actions/foafgroup.php index ebdf1cee2..d685554ac 100644 --- a/actions/foafgroup.php +++ b/actions/foafgroup.php @@ -146,7 +146,7 @@ class FoafGroupAction extends Action { $this->elementStart('Agent', array('rdf:about' => $uri)); $this->element('nick', null, $details['nickname']); - $this->elementStart('holdsAccount'); + $this->elementStart('account'); $this->elementStart('sioc:User', array('rdf:about'=>$uri.'#acct')); $this->elementStart('sioc:has_function'); $this->elementStart('statusnet:GroupAdminRole'); @@ -154,7 +154,7 @@ class FoafGroupAction extends Action $this->elementEnd('statusnet:GroupAdminRole'); $this->elementEnd('sioc:has_function'); $this->elementEnd('sioc:User'); - $this->elementEnd('holdsAccount'); + $this->elementEnd('account'); $this->elementEnd('Agent'); } else @@ -177,4 +177,4 @@ class FoafGroupAction extends Action $this->elementEnd('Document'); } -} \ No newline at end of file +} -- cgit v1.2.3-54-g00ecf From 74fd75555669cfe0a53b6cbc50a425e6f9f093d1 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Thu, 11 Mar 2010 17:26:59 -0500 Subject: A null mimetype is not an enclosure (more likely than not means there was an error) --- classes/File.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/File.php b/classes/File.php index 8c788c007..33273bbdc 100644 --- a/classes/File.php +++ b/classes/File.php @@ -285,7 +285,7 @@ class File extends Memcached_DataObject $enclosure->mimetype=$this->mimetype; if(! isset($this->filename)){ - $notEnclosureMimeTypes = array('text/html','application/xhtml+xml'); + $notEnclosureMimeTypes = array(null,'text/html','application/xhtml+xml'); $mimetype = strtolower($this->mimetype); $semicolon = strpos($mimetype,';'); if($semicolon){ -- cgit v1.2.3-54-g00ecf From 023f258b63c2c47b1af74811c39ab274b170e6b0 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Thu, 11 Mar 2010 23:05:56 +0000 Subject: - Output georss xmlns in rss element - Only output geopoint in rss if one is set --- lib/apiaction.php | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/lib/apiaction.php b/lib/apiaction.php index e4a1df3d1..fd09f3d42 100644 --- a/lib/apiaction.php +++ b/lib/apiaction.php @@ -541,13 +541,12 @@ class ApiAction extends Action function showGeoRSS($geo) { - if (empty($geo)) { - // empty geo element - $this->element('geo'); - } else { - $this->elementStart('geo', array('xmlns:georss' => 'http://www.georss.org/georss')); - $this->element('georss:point', null, $geo['coordinates'][0] . ' ' . $geo['coordinates'][1]); - $this->elementEnd('geo'); + if (!empty($geo)) { + $this->element( + 'georss:point', + null, + $geo['coordinates'][0] . ' ' . $geo['coordinates'][1] + ); } } @@ -1138,7 +1137,14 @@ class ApiAction extends Action function initTwitterRss() { $this->startXML(); - $this->elementStart('rss', array('version' => '2.0', 'xmlns:atom'=>'http://www.w3.org/2005/Atom')); + $this->elementStart( + 'rss', + array( + 'version' => '2.0', + 'xmlns:atom' => 'http://www.w3.org/2005/Atom', + 'xmlns:georss' => 'http://www.georss.org/georss' + ) + ); $this->elementStart('channel'); Event::handle('StartApiRss', array($this)); } -- cgit v1.2.3-54-g00ecf From 7e1a1506f5afd26da8dbe654f5f67f5c11d9d6e9 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Thu, 11 Mar 2010 23:28:41 +0000 Subject: Output self link in rss2 feeds, if available --- lib/apiaction.php | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/apiaction.php b/lib/apiaction.php index fd09f3d42..73777f4e8 100644 --- a/lib/apiaction.php +++ b/lib/apiaction.php @@ -618,13 +618,25 @@ class ApiAction extends Action $this->endDocument('xml'); } - function showRssTimeline($notice, $title, $link, $subtitle, $suplink=null, $logo=null) + function showRssTimeline($notice, $title, $link, $subtitle, $suplink = null, $logo = null, $self = null) { $this->initDocument('rss'); $this->element('title', null, $title); $this->element('link', null, $link); + + if (!is_null($self)) { + $this->element( + 'atom:link', + array( + 'type' => 'application/rss+xml', + 'href' => $self, + 'rel' => 'self' + ) + ); + } + if (!is_null($suplink)) { // For FriendFeed's SUP protocol $this->element('link', array('xmlns' => 'http://www.w3.org/2005/Atom', -- cgit v1.2.3-54-g00ecf From 212b20e876fac3b989cd79b1b896b88f50995a37 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Thu, 11 Mar 2010 23:43:03 +0000 Subject: Add self link to user and group rss2 feeds --- actions/apitimelinegroup.php | 23 ++++++++++------------- actions/apitimelineuser.php | 31 +++++++++++++++++-------------- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/actions/apitimelinegroup.php b/actions/apitimelinegroup.php index 8f971392b..c4f8cbc65 100644 --- a/actions/apitimelinegroup.php +++ b/actions/apitimelinegroup.php @@ -107,6 +107,14 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction // We'll pull common formatting out of this for other formats $atom = new AtomGroupNoticeFeed($this->group); + // Calculate self link + $id = $this->arg('id'); + $aargs = array('format' => $this->format); + if (!empty($id)) { + $aargs['id'] = $id; + } + $self = $this->getSelfUri('ApiTimelineGroup', $aargs); + switch($this->format) { case 'xml': $this->showXmlTimeline($this->notices); @@ -118,7 +126,8 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction $this->group->homeUrl(), $atom->subtitle, null, - $atom->logo + $atom->logo, + $self ); break; case 'atom': @@ -126,24 +135,12 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction header('Content-Type: application/atom+xml; charset=utf-8'); try { - $atom->addAuthorRaw($this->group->asAtomAuthor()); $atom->setActivitySubject($this->group->asActivitySubject()); - - $id = $this->arg('id'); - $aargs = array('format' => 'atom'); - if (!empty($id)) { - $aargs['id'] = $id; - } - $self = $this->getSelfUri('ApiTimelineGroup', $aargs); - $atom->setId($self); $atom->setSelfLink($self); - $atom->addEntryFromNotices($this->notices); - $this->raw($atom->getString()); - } catch (Atom10FeedException $e) { $this->serverError( 'Could not generate feed for group - ' . $e->getMessage() diff --git a/actions/apitimelineuser.php b/actions/apitimelineuser.php index 2d0047c04..5c4bcace4 100644 --- a/actions/apitimelineuser.php +++ b/actions/apitimelineuser.php @@ -116,13 +116,19 @@ class ApiTimelineUserAction extends ApiBareAuthAction // We'll use the shared params from the Atom stub // for other feed types. $atom = new AtomUserNoticeFeed($this->user); - $title = $atom->title; - $link = common_local_url( + + $link = common_local_url( 'showstream', array('nickname' => $this->user->nickname) ); - $subtitle = $atom->subtitle; - $logo = $atom->logo; + + // Calculate self link + $id = $this->arg('id'); + $aargs = array('format' => $this->format); + if (!empty($id)) { + $aargs['id'] = $id; + } + $self = $this->getSelfUri('ApiTimelineUser', $aargs); // FriendFeed's SUP protocol // Also added RSS and Atom feeds @@ -136,25 +142,22 @@ class ApiTimelineUserAction extends ApiBareAuthAction break; case 'rss': $this->showRssTimeline( - $this->notices, $title, $link, - $subtitle, $suplink, $logo + $this->notices, + $atom->title, + $link, + $atom->subtitle, + $suplink, + $atom->logo, + $self ); break; case 'atom': header('Content-Type: application/atom+xml; charset=utf-8'); - $id = $this->arg('id'); - $aargs = array('format' => 'atom'); - if (!empty($id)) { - $aargs['id'] = $id; - } - $self = $this->getSelfUri('ApiTimelineUser', $aargs); $atom->setId($self); $atom->setSelfLink($self); - $atom->addEntryFromNotices($this->notices); - $this->raw($atom->getString()); break; -- cgit v1.2.3-54-g00ecf From b12c3449309870c7c391ed0e2c7783f7a05a2334 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Thu, 11 Mar 2010 23:44:50 +0000 Subject: Generator tag should have 'uri' attr not 'url' --- lib/atom10feed.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/atom10feed.php b/lib/atom10feed.php index 2d342e785..a46d49f35 100644 --- a/lib/atom10feed.php +++ b/lib/atom10feed.php @@ -178,7 +178,7 @@ class Atom10Feed extends XMLStringer $this->element( 'generator', array( - 'url' => 'http://status.net', + 'uri' => 'http://status.net', 'version' => STATUSNET_VERSION ), 'StatusNet' -- cgit v1.2.3-54-g00ecf From 7cdcb89dc9d8dcc04848928c5b765f99566d2a4d Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Fri, 12 Mar 2010 00:36:26 +0000 Subject: Add id and updated elements to atom source --- classes/Notice.php | 2 ++ classes/User_group.php | 9 ++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/classes/Notice.php b/classes/Notice.php index 4c7e6ab4b..40a6263e5 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -1128,6 +1128,7 @@ class Notice extends Memcached_DataObject 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); @@ -1143,6 +1144,7 @@ class Notice extends Memcached_DataObject } $xs->element('icon', null, $profile->avatarUrl(AVATAR_PROFILE_SIZE)); + $xs->element('updated', null, common_date_w3dtf($this->created)); } if ($source) { diff --git a/classes/User_group.php b/classes/User_group.php index 0460c9870..f29594502 100644 --- a/classes/User_group.php +++ b/classes/User_group.php @@ -295,7 +295,7 @@ class User_group extends Memcached_DataObject } // If not, check local groups. - + $group = Local_group::staticGet('nickname', $nickname); if (!empty($group)) { return User_group::staticGet('id', $group->group_id); @@ -371,11 +371,10 @@ class User_group extends Memcached_DataObject if ($source) { $xs->elementStart('source'); + $xs->element('id', null, $this->permalink()); $xs->element('title', null, $profile->nickname . " - " . common_config('site', 'name')); $xs->element('link', array('href' => $this->permalink())); - } - - if ($source) { + $xs->element('updated', null, $this->modified); $xs->elementEnd('source'); } @@ -455,7 +454,7 @@ class User_group extends Memcached_DataObject $group = new User_group(); $group->query('BEGIN'); - + if (empty($uri)) { // fill in later... $uri = null; -- cgit v1.2.3-54-g00ecf From 78f0d6bbd21ed84733e960201c4652e69c565450 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Fri, 12 Mar 2010 01:12:30 +0000 Subject: Scrub all atom output with common_xml_safe_str() --- classes/Notice.php | 8 ++++++-- classes/User_group.php | 8 ++++++-- lib/activity.php | 23 +++++++++++++++++------ lib/apiaction.php | 12 ++++++++---- 4 files changed, 37 insertions(+), 14 deletions(-) diff --git a/classes/Notice.php b/classes/Notice.php index 40a6263e5..a704053a0 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -1151,7 +1151,7 @@ class Notice extends Memcached_DataObject $xs->elementEnd('source'); } - $xs->element('title', null, $this->content); + $xs->element('title', null, common_xml_safe_str($this->content)); if ($author) { $xs->raw($profile->asAtomAuthor()); @@ -1227,7 +1227,11 @@ class Notice extends Memcached_DataObject } } - $xs->element('content', array('type' => 'html'), $this->rendered); + $xs->element( + 'content', + array('type' => 'html'), + common_xml_safe_str($this->rendered) + ); $tag = new Notice_tag(); $tag->notice_id = $this->id; diff --git a/classes/User_group.php b/classes/User_group.php index f29594502..63a407b4c 100644 --- a/classes/User_group.php +++ b/classes/User_group.php @@ -379,7 +379,7 @@ class User_group extends Memcached_DataObject } $xs->element('title', null, $this->nickname); - $xs->element('summary', null, $this->description); + $xs->element('summary', null, common_xml_safe_str($this->description)); $xs->element('link', array('rel' => 'alternate', 'href' => $this->permalink())); @@ -389,7 +389,11 @@ class User_group extends Memcached_DataObject $xs->element('published', null, common_date_w3dtf($this->created)); $xs->element('updated', null, common_date_w3dtf($this->modified)); - $xs->element('content', array('type' => 'html'), $this->description); + $xs->element( + 'content', + array('type' => 'html'), + common_xml_safe_str($this->description) + ); $xs->elementEnd('entry'); diff --git a/lib/activity.php b/lib/activity.php index 2cb80f9e1..125d391b0 100644 --- a/lib/activity.php +++ b/lib/activity.php @@ -78,7 +78,7 @@ class PoCoAddress if (!empty($this->formatted)) { $xs = new XMLStringer(true); $xs->elementStart('poco:address'); - $xs->element('poco:formatted', null, $this->formatted); + $xs->element('poco:formatted', null, common_xml_safe_str($this->formatted)); $xs->elementEnd('poco:address'); return $xs->getString(); } @@ -279,7 +279,7 @@ class PoCo ); if (!empty($this->note)) { - $xs->element('poco:note', null, $this->note); + $xs->element('poco:note', null, common_xml_safe_str($this->note)); } if (!empty($this->address)) { @@ -805,7 +805,6 @@ class ActivityObject return $object; } - function asString($tag='activity:object') { $xs = new XMLStringer(true); @@ -817,16 +816,28 @@ class ActivityObject $xs->element(self::ID, null, $this->id); if (!empty($this->title)) { - $xs->element(self::TITLE, null, $this->title); + $xs->element( + self::TITLE, + null, + common_xml_safe_str($this->title) + ); } if (!empty($this->summary)) { - $xs->element(self::SUMMARY, null, $this->summary); + $xs->element( + self::SUMMARY, + null, + common_xml_safe_str($this->summary) + ); } if (!empty($this->content)) { // XXX: assuming HTML content here - $xs->element(ActivityUtils::CONTENT, array('type' => 'html'), $this->content); + $xs->element( + ActivityUtils::CONTENT, + array('type' => 'html'), + common_xml_safe_str($this->content) + ); } if (!empty($this->link)) { diff --git a/lib/apiaction.php b/lib/apiaction.php index 73777f4e8..cef5d1c1e 100644 --- a/lib/apiaction.php +++ b/lib/apiaction.php @@ -743,8 +743,12 @@ class ApiAction extends Action function showTwitterAtomEntry($entry) { $this->elementStart('entry'); - $this->element('title', null, $entry['title']); - $this->element('content', array('type' => 'html'), $entry['content']); + $this->element('title', null, common_xml_safe_str($entry['title'])); + $this->element( + 'content', + array('type' => 'html'), + common_xml_safe_str($entry['content']) + ); $this->element('id', null, $entry['id']); $this->element('published', null, $entry['published']); $this->element('updated', null, $entry['updated']); @@ -859,7 +863,7 @@ class ApiAction extends Action $this->initDocument('atom'); - $this->element('title', null, $title); + $this->element('title', null, common_xml_safe_str($title)); $this->element('id', null, $id); $this->element('link', array('href' => $link, 'rel' => 'alternate', 'type' => 'text/html'), null); @@ -869,7 +873,7 @@ class ApiAction extends Action } $this->element('updated', null, common_date_iso8601('now')); - $this->element('subtitle', null, $subtitle); + $this->element('subtitle', null, common_xml_safe_str($subtitle)); if (is_array($group)) { foreach ($group as $g) { -- cgit v1.2.3-54-g00ecf From d6e0640251b91928fc65324438000d91f12cecf0 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Thu, 11 Mar 2010 20:12:32 -0500 Subject: move image type checking to constructor, so checking will be done in all cases check if the relevant image handling function exists when deciding if the image type is supported --- lib/imagefile.php | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/lib/imagefile.php b/lib/imagefile.php index 7b0479455..2134623b1 100644 --- a/lib/imagefile.php +++ b/lib/imagefile.php @@ -60,6 +60,21 @@ class ImageFile $this->filepath = $filepath; $info = @getimagesize($this->filepath); + + if (!( + ($info[2] == IMAGETYPE_GIF && function_exists('imagecreatefromgif')) || + ($info[2] == IMAGETYPE_JPEG && function_exists('imagecreatefromjpeg')) || + $info[2] == IMAGETYPE_BMP || + ($info[2] == IMAGETYPE_WBMP && function_exists('imagecreatefromwbmp')) || + ($info[2] == IMAGETYPE_XBM && function_exists('imagecreatefromxbm')) || + ($info[2] == IMAGETYPE_XPM && function_exists('imagecreatefromxpm')) || + ($info[2] == IMAGETYPE_PNG && function_exists('imagecreatefrompng')))) { + + @unlink($_FILES[$param]['tmp_name']); + throw new Exception(_('Unsupported image file format.')); + return; + } + $this->type = ($info) ? $info[2]:$type; $this->width = ($info) ? $info[0]:$width; $this->height = ($info) ? $info[1]:$height; @@ -97,19 +112,6 @@ class ImageFile return; } - if ($info[2] !== IMAGETYPE_GIF && - $info[2] !== IMAGETYPE_JPEG && - $info[2] !== IMAGETYPE_BMP && - $info[2] !== IMAGETYPE_WBMP && - $info[2] !== IMAGETYPE_XBM && - $info[2] !== IMAGETYPE_XPM && - $info[2] !== IMAGETYPE_PNG) { - - @unlink($_FILES[$param]['tmp_name']); - throw new Exception(_('Unsupported image file format.')); - return; - } - return new ImageFile(null, $_FILES[$param]['tmp_name']); } -- cgit v1.2.3-54-g00ecf From a715271f847fed7d7c725c5b752ea7a00800520a Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Thu, 11 Mar 2010 20:40:25 -0500 Subject: reuse Subscription::cancel instead of reimplementing it. I didn't know this method existed before... pretty neat. --- lib/command.php | 2 +- lib/subs.php | 43 ------------------------------------------- 2 files changed, 1 insertion(+), 44 deletions(-) diff --git a/lib/command.php b/lib/command.php index 0b3b3c95a..3809c98cc 100644 --- a/lib/command.php +++ b/lib/command.php @@ -729,7 +729,7 @@ class LoseCommand extends Command return; } - $result=subs_unsubscribe_from($this->user, $this->other); + $result = Subscription::cancel($this->other, $this->user); if ($result) { $channel->output($this->user, sprintf(_('Unsubscribed %s'), $this->other)); diff --git a/lib/subs.php b/lib/subs.php index e2ce0667e..165bbaa8f 100644 --- a/lib/subs.php +++ b/lib/subs.php @@ -43,46 +43,3 @@ function subs_unsubscribe_to($user, $other) return $e->getMessage(); } } - -function subs_unsubscribe_from($user, $other){ - $local = User::staticGet("nickname",$other); - if($local){ - return subs_unsubscribe_to($local,$user); - } else { - try { - $remote = Profile::staticGet("nickname",$other); - if(is_string($remote)){ - return $remote; - } - if (Event::handle('StartUnsubscribe', array($remote,$user))) { - - $sub = DB_DataObject::factory('subscription'); - - $sub->subscriber = $remote->id; - $sub->subscribed = $user->id; - - $sub->find(true); - - // note we checked for existence above - - if (!$sub->delete()) - return _('Couldn\'t delete subscription.'); - - $cache = common_memcache(); - - if ($cache) { - $cache->delete(common_cache_key('user:notices_with_friends:' . $remote->id)); - } - - - $user->blowSubscribersCount(); - $remote->blowSubscribersCount(); - - Event::handle('EndUnsubscribe', array($remote, $user)); - } - } catch (Exception $e) { - return $e->getMessage(); - } - } -} - -- cgit v1.2.3-54-g00ecf From e1537d83871811cf3446a592e44f56d26e961afe Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Fri, 12 Mar 2010 01:40:52 +0000 Subject: More generalized method for calculating Atom rel="self" links --- actions/apitimelinegroup.php | 8 +------- actions/apitimelineuser.php | 8 +------- lib/apiaction.php | 16 +++++++++++++++- 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/actions/apitimelinegroup.php b/actions/apitimelinegroup.php index c4f8cbc65..da816c40a 100644 --- a/actions/apitimelinegroup.php +++ b/actions/apitimelinegroup.php @@ -107,13 +107,7 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction // We'll pull common formatting out of this for other formats $atom = new AtomGroupNoticeFeed($this->group); - // Calculate self link - $id = $this->arg('id'); - $aargs = array('format' => $this->format); - if (!empty($id)) { - $aargs['id'] = $id; - } - $self = $this->getSelfUri('ApiTimelineGroup', $aargs); + $self = $this->getSelfUri(); switch($this->format) { case 'xml': diff --git a/actions/apitimelineuser.php b/actions/apitimelineuser.php index 5c4bcace4..11431a82c 100644 --- a/actions/apitimelineuser.php +++ b/actions/apitimelineuser.php @@ -122,13 +122,7 @@ class ApiTimelineUserAction extends ApiBareAuthAction array('nickname' => $this->user->nickname) ); - // Calculate self link - $id = $this->arg('id'); - $aargs = array('format' => $this->format); - if (!empty($id)) { - $aargs['id'] = $id; - } - $self = $this->getSelfUri('ApiTimelineUser', $aargs); + $self = $this->getSelfUri(); // FriendFeed's SUP protocol // Also added RSS and Atom feeds diff --git a/lib/apiaction.php b/lib/apiaction.php index cef5d1c1e..a01809ed9 100644 --- a/lib/apiaction.php +++ b/lib/apiaction.php @@ -1358,8 +1358,22 @@ class ApiAction extends Action } } - function getSelfUri($action, $aargs) + /** + * Calculate the complete URI that called up this action. Used for + * Atom rel="self" links. Warning: this is funky. + * + * @return string URL a URL suitable for rel="self" Atom links + */ + function getSelfUri() { + $action = mb_substr(get_class($this), 0, -6); // remove 'Action' + + $id = $this->arg('id'); + $aargs = array('format' => $this->format); + if (!empty($id)) { + $aargs['id'] = $id; + } + parse_str($_SERVER['QUERY_STRING'], $params); $pstring = ''; if (!empty($params)) { -- cgit v1.2.3-54-g00ecf From d10cb89f6ad13729de8ac620560f53a3f0d968c2 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Fri, 12 Mar 2010 02:00:53 +0000 Subject: - Output correct content type header for public timeline Atom feed - Also calculate Atom link and self links properly --- actions/apitimelinepublic.php | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/actions/apitimelinepublic.php b/actions/apitimelinepublic.php index 3e4dad690..903461425 100644 --- a/actions/apitimelinepublic.php +++ b/actions/apitimelinepublic.php @@ -107,7 +107,8 @@ class ApiTimelinePublicAction extends ApiPrivateAuthAction $title = sprintf(_("%s public timeline"), $sitename); $taguribase = TagURI::base(); $id = "tag:$taguribase:PublicTimeline"; - $link = common_root_url(); + $link = common_local_url('public'); + $self = $this->getSelfUri(); $subtitle = sprintf(_("%s updates from everyone!"), $sitename); switch($this->format) { @@ -115,10 +116,20 @@ class ApiTimelinePublicAction extends ApiPrivateAuthAction $this->showXmlTimeline($this->notices); break; case 'rss': - $this->showRssTimeline($this->notices, $title, $link, $subtitle, null, $sitelogo); + $this->showRssTimeline( + $this->notices, + $title, + $link, + $subtitle, + null, + $sitelogo, + $self + ); break; case 'atom': + header('Content-Type: application/atom+xml; charset=utf-8'); + $atom = new AtomNoticeFeed(); $atom->setId($id); @@ -126,16 +137,8 @@ class ApiTimelinePublicAction extends ApiPrivateAuthAction $atom->setSubtitle($subtitle); $atom->setLogo($sitelogo); $atom->setUpdated('now'); - $atom->addLink(common_local_url('public')); - - $atom->addLink( - $this->getSelfUri( - 'ApiTimelinePublic', array('format' => 'atom') - ), - array('rel' => 'self', 'type' => 'application/atom+xml') - ); - + $atom->setSelfLink($self); $atom->addEntryFromNotices($this->notices); $this->raw($atom->getString()); -- cgit v1.2.3-54-g00ecf From b9e903020137540ec629abb1089de276ba41cfc4 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Thu, 11 Mar 2010 18:01:50 -0800 Subject: Fixes for password recovery; lookups for unconfirmed addresses were failing or inconsistent (using staticGet with unindexed fields, which would not get decached correctly and could get confused if multiple pending confirmations of different types are around). Also uses updated email functions to include extra headers and ensure the proper address is used. --- actions/recoverpassword.php | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/actions/recoverpassword.php b/actions/recoverpassword.php index 1e2775e7a..f9956897f 100644 --- a/actions/recoverpassword.php +++ b/actions/recoverpassword.php @@ -262,10 +262,20 @@ class RecoverpasswordAction extends Action # See if it's an unconfirmed email address if (!$user) { - $confirm_email = Confirm_address::staticGet('address', common_canonical_email($nore)); - if ($confirm_email && $confirm_email->address_type == 'email') { + // Warning: it may actually be legit to have multiple folks + // who have claimed, but not yet confirmed, the same address. + // We'll only send to the first one that comes up. + $confirm_email = new Confirm_address(); + $confirm_email->address = common_canonical_email($nore); + $confirm_email->address_type = 'email'; + $confirm_email->find(); + if ($confirm_email->fetch()) { $user = User::staticGet($confirm_email->user_id); + } else { + $confirm_email = null; } + } else { + $confirm_email = null; } if (!$user) { @@ -276,9 +286,11 @@ class RecoverpasswordAction extends Action # Try to get an unconfirmed email address if they used a user name if (!$user->email && !$confirm_email) { - $confirm_email = Confirm_address::staticGet('user_id', $user->id); - if ($confirm_email && $confirm_email->address_type != 'email') { - # Skip non-email confirmations + $confirm_email = new Confirm_address(); + $confirm_email->user_id = $user->id; + $confirm_email->address_type = 'email'; + $confirm_email->find(); + if (!$confirm_email->fetch()) { $confirm_email = null; } } @@ -294,7 +306,7 @@ class RecoverpasswordAction extends Action $confirm->code = common_confirmation_code(128); $confirm->address_type = 'recover'; $confirm->user_id = $user->id; - $confirm->address = (isset($user->email)) ? $user->email : $confirm_email->address; + $confirm->address = (!empty($user->email)) ? $user->email : $confirm_email->address; if (!$confirm->insert()) { common_log_db_error($confirm, 'INSERT', __FILE__); @@ -319,7 +331,8 @@ class RecoverpasswordAction extends Action $body .= common_config('site', 'name'); $body .= "\n"; - mail_to_user($user, _('Password recovery requested'), $body, $confirm->address); + $headers = _mail_prepare_headers('recoverpassword', $user->nickname, $user->nickname); + mail_to_user($user, _('Password recovery requested'), $body, $headers, $confirm->address); $this->mode = 'sent'; $this->msg = _('Instructions for recovering your password ' . -- cgit v1.2.3-54-g00ecf From 2179aae7582ec470a28f61d086d226fdb02e35e7 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Thu, 11 Mar 2010 21:02:41 -0500 Subject: fubared a715271f847fed7d7c725c5b752ea7a00800520a - this is the fix --- lib/command.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/command.php b/lib/command.php index 3809c98cc..f7421269d 100644 --- a/lib/command.php +++ b/lib/command.php @@ -729,7 +729,7 @@ class LoseCommand extends Command return; } - $result = Subscription::cancel($this->other, $this->user); + $result = Subscription::cancel($this->getProfile($this->other), $this->user->getProfile()); if ($result) { $channel->output($this->user, sprintf(_('Unsubscribed %s'), $this->other)); -- cgit v1.2.3-54-g00ecf From fe7b063b85647264f1988fba966502a1b0287511 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Thu, 11 Mar 2010 18:07:00 -0800 Subject: Remove stray whitespace at file start that snuck into last update --- lib/pgsqlschema.php | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/pgsqlschema.php b/lib/pgsqlschema.php index afb498f4a..715065d77 100644 --- a/lib/pgsqlschema.php +++ b/lib/pgsqlschema.php @@ -1,4 +1,3 @@ - Date: Thu, 11 Mar 2010 18:10:41 -0800 Subject: Don't switch people from the Memcache to Memcached plugin without their knowledge when using back-compatibility $config['memcached']['enabled']. Performance characteristics for Memcached version on large-scale sites not tested yet. New installations should be using addPlugin explicitly. --- lib/statusnet.php | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/lib/statusnet.php b/lib/statusnet.php index ef3adebf9..eba9ab9b8 100644 --- a/lib/statusnet.php +++ b/lib/statusnet.php @@ -342,11 +342,7 @@ class StatusNet if (array_key_exists('memcached', $config)) { if ($config['memcached']['enabled']) { - if(class_exists('Memcached')) { - addPlugin('Memcached', array('servers' => $config['memcached']['server'])); - } else { - addPlugin('Memcache', array('servers' => $config['memcached']['server'])); - } + addPlugin('Memcache', array('servers' => $config['memcached']['server'])); } if (!empty($config['memcached']['base'])) { -- cgit v1.2.3-54-g00ecf From 0444cc7bfb7cf3b7353385180e0ec6e19385b2eb Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Fri, 12 Mar 2010 02:18:53 +0000 Subject: Calculate Atom self link for friends timeline --- actions/apitimelinefriends.php | 39 +++++++++++++-------------------------- 1 file changed, 13 insertions(+), 26 deletions(-) diff --git a/actions/apitimelinefriends.php b/actions/apitimelinefriends.php index 9ef3ace60..ac350ab1b 100644 --- a/actions/apitimelinefriends.php +++ b/actions/apitimelinefriends.php @@ -117,9 +117,17 @@ class ApiTimelineFriendsAction extends ApiBareAuthAction $subtitle = sprintf( _('Updates from %1$s and friends on %2$s!'), - $this->user->nickname, $sitename + $this->user->nickname, + $sitename ); + $link = common_local_url( + 'all', + array('nickname' => $this->user->nickname) + ); + + $self = $this->getSelfUri(); + $logo = (!empty($avatar)) ? $avatar->displayUrl() : Avatar::defaultImage(AVATAR_PROFILE_SIZE); @@ -130,19 +138,14 @@ class ApiTimelineFriendsAction extends ApiBareAuthAction break; case 'rss': - $link = common_local_url( - 'all', array( - 'nickname' => $this->user->nickname - ) - ); - $this->showRssTimeline( $this->notices, $title, $link, $subtitle, null, - $logo + $logo, + $self ); break; case 'atom': @@ -156,24 +159,8 @@ class ApiTimelineFriendsAction extends ApiBareAuthAction $atom->setSubtitle($subtitle); $atom->setLogo($logo); $atom->setUpdated('now'); - - $atom->addLink( - common_local_url( - 'all', - array('nickname' => $this->user->nickname) - ) - ); - - $id = $this->arg('id'); - $aargs = array('format' => 'atom'); - if (!empty($id)) { - $aargs['id'] = $id; - } - - $atom->addLink( - $this->getSelfUri('ApiTimelineFriends', $aargs), - array('rel' => 'self', 'type' => 'application/atom+xml') - ); + $atom->addLink($link); + $atom->setSelfLink($self); $atom->addEntryFromNotices($this->notices); -- cgit v1.2.3-54-g00ecf From 849d0b5dcddccd935270f079fc1279d726eb2853 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Fri, 12 Mar 2010 03:15:51 +0000 Subject: Output Atom self link in home timeline --- actions/apitimelinehome.php | 39 ++++++++++++++------------------------- 1 file changed, 14 insertions(+), 25 deletions(-) diff --git a/actions/apitimelinehome.php b/actions/apitimelinehome.php index abd387786..1618c9923 100644 --- a/actions/apitimelinehome.php +++ b/actions/apitimelinehome.php @@ -72,7 +72,7 @@ class ApiTimelineHomeAction extends ApiBareAuthAction function prepare($args) { parent::prepare($args); - common_debug("api home_timeline"); + $this->user = $this->getTargetUser($this->arg('id')); if (empty($this->user)) { @@ -121,8 +121,15 @@ class ApiTimelineHomeAction extends ApiBareAuthAction $this->user->nickname, $sitename ); - $logo = (!empty($avatar)) - ? $avatar->displayUrl() + $link = common_local_url( + 'all', + array('nickname' => $this->user->nickname) + ); + + $self = $this->getSelfUri(); + + $logo = (!empty($avatar)) + ? $avatar->displayUrl() : Avatar::defaultImage(AVATAR_PROFILE_SIZE); switch($this->format) { @@ -130,17 +137,14 @@ class ApiTimelineHomeAction extends ApiBareAuthAction $this->showXmlTimeline($this->notices); break; case 'rss': - $link = common_local_url( - 'all', - array('nickname' => $this->user->nickname) - ); $this->showRssTimeline( $this->notices, $title, $link, $subtitle, null, - $logo + $logo, + $self ); break; case 'atom': @@ -155,23 +159,8 @@ class ApiTimelineHomeAction extends ApiBareAuthAction $atom->setLogo($logo); $atom->setUpdated('now'); - $atom->addLink( - common_local_url( - 'all', - array('nickname' => $this->user->nickname) - ) - ); - - $id = $this->arg('id'); - $aargs = array('format' => 'atom'); - if (!empty($id)) { - $aargs['id'] = $id; - } - - $atom->addLink( - $this->getSelfUri('ApiTimelineHome', $aargs), - array('rel' => 'self', 'type' => 'application/atom+xml') - ); + $atom->addLink($link); + $atom->setSelfLink($self); $atom->addEntryFromNotices($this->notices); $this->raw($atom->getString()); -- cgit v1.2.3-54-g00ecf From 4b41a8ebbfea7211ea10b867c3cb825737b2ccfe Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Fri, 12 Mar 2010 03:27:37 +0000 Subject: - Output correct content header for Atom output in mentions timeline - Add self link --- actions/apitimelinementions.php | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/actions/apitimelinementions.php b/actions/apitimelinementions.php index 31627ab7b..c3aec7c5a 100644 --- a/actions/apitimelinementions.php +++ b/actions/apitimelinementions.php @@ -123,6 +123,9 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction 'replies', array('nickname' => $this->user->nickname) ); + + $self = $this->getSelfUri(); + $subtitle = sprintf( _('%1$s updates that reply to updates from %2$s / %3$s.'), $sitename, $this->user->nickname, $profile->getBestName() @@ -134,10 +137,20 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction $this->showXmlTimeline($this->notices); break; case 'rss': - $this->showRssTimeline($this->notices, $title, $link, $subtitle, null, $logo); + $this->showRssTimeline( + $this->notices, + $title, + $link, + $subtitle, + null, + $logo, + $self + ); break; case 'atom': + header('Content-Type: application/atom+xml; charset=utf-8'); + $atom = new AtomNoticeFeed(); $atom->setId($id); @@ -146,23 +159,8 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction $atom->setLogo($logo); $atom->setUpdated('now'); - $atom->addLink( - common_local_url( - 'replies', - array('nickname' => $this->user->nickname) - ) - ); - - $id = $this->arg('id'); - $aargs = array('format' => 'atom'); - if (!empty($id)) { - $aargs['id'] = $id; - } - - $atom->addLink( - $this->getSelfUri('ApiTimelineMentions', $aargs), - array('rel' => 'self', 'type' => 'application/atom+xml') - ); + $atom->addLink($link); + $atom->setSelfLink($self); $atom->addEntryFromNotices($this->notices); $this->raw($atom->getString()); -- cgit v1.2.3-54-g00ecf From d31004653f51eadd5b26bfb34474387a834811a3 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Fri, 12 Mar 2010 03:42:00 +0000 Subject: Add Atom self link to favorites timeline --- actions/apitimelinefavorites.php | 36 +++++++++++++----------------------- 1 file changed, 13 insertions(+), 23 deletions(-) diff --git a/actions/apitimelinefavorites.php b/actions/apitimelinefavorites.php index c89d02247..8cb2e808d 100644 --- a/actions/apitimelinefavorites.php +++ b/actions/apitimelinefavorites.php @@ -23,7 +23,8 @@ * @package StatusNet * @author Craig Andrews * @author Evan Prodromou - * @author Zach Copley * @copyright 2009 StatusNet, Inc. + * @author Zach Copley + * @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/ */ @@ -123,22 +124,26 @@ class ApiTimelineFavoritesAction extends ApiBareAuthAction ? $avatar->displayUrl() : Avatar::defaultImage(AVATAR_PROFILE_SIZE); + $link = common_local_url( + 'showfavorites', + array('nickname' => $this->user->nickname) + ); + + $self = $this->getSelfUri(); + switch($this->format) { case 'xml': $this->showXmlTimeline($this->notices); break; case 'rss': - $link = common_local_url( - 'showfavorites', - array('nickname' => $this->user->nickname) - ); $this->showRssTimeline( $this->notices, $title, $link, $subtitle, null, - $logo + $logo, + $self ); break; case 'atom': @@ -153,23 +158,8 @@ class ApiTimelineFavoritesAction extends ApiBareAuthAction $atom->setLogo($logo); $atom->setUpdated('now'); - $atom->addLink( - common_local_url( - 'showfavorites', - array('nickname' => $this->user->nickname) - ) - ); - - $id = $this->arg('id'); - $aargs = array('format' => 'atom'); - if (!empty($id)) { - $aargs['id'] = $id; - } - - $atom->addLink( - $this->getSelfUri('ApiTimelineFavorites', $aargs), - array('rel' => 'self', 'type' => 'application/atom+xml') - ); + $atom->addLink($link); + $atom->setSelfLink($self); $atom->addEntryFromNotices($this->notices); -- cgit v1.2.3-54-g00ecf From 13556e7ba967c4184009688348082fed1480a5d4 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Fri, 12 Mar 2010 04:08:31 +0000 Subject: Add Atom self link to tag timeline --- actions/apitimelinetag.php | 38 ++++++++++++++++---------------------- lib/apiaction.php | 5 +++++ 2 files changed, 21 insertions(+), 22 deletions(-) diff --git a/actions/apitimelinetag.php b/actions/apitimelinetag.php index a29061fcc..fed1437ea 100644 --- a/actions/apitimelinetag.php +++ b/actions/apitimelinetag.php @@ -25,7 +25,7 @@ * @author Evan Prodromou * @author Jeffery To * @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,6 +67,8 @@ class ApiTimelineTagAction extends ApiPrivateAuthAction { parent::prepare($args); + common_debug("apitimelinetag prepare()"); + $this->tag = $this->arg('tag'); $this->notices = $this->getNotices(); @@ -108,22 +110,28 @@ class ApiTimelineTagAction extends ApiPrivateAuthAction $taguribase = TagURI::base(); $id = "tag:$taguribase:TagTimeline:".$tag; + $link = common_local_url( + 'tag', + array('tag' => $this->tag) + ); + + $self = $this->getSelfUri(); + + common_debug("self link is: $self"); + switch($this->format) { case 'xml': $this->showXmlTimeline($this->notices); break; case 'rss': - $link = common_local_url( - 'tag', - array('tag' => $this->tag) - ); $this->showRssTimeline( $this->notices, $title, $link, $subtitle, null, - $sitelogo + $sitelogo, + $self ); break; case 'atom': @@ -138,22 +146,8 @@ class ApiTimelineTagAction extends ApiPrivateAuthAction $atom->setLogo($logo); $atom->setUpdated('now'); - $atom->addLink( - common_local_url( - 'tag', - array('tag' => $this->tag) - ) - ); - - $aargs = array('format' => 'atom'); - if (!empty($this->tag)) { - $aargs['tag'] = $this->tag; - } - - $atom->addLink( - $this->getSelfUri('ApiTimelineTag', $aargs), - array('rel' => 'self', 'type' => 'application/atom+xml') - ); + $atom->addLink($link); + $atom->setSelfLink($self); $atom->addEntryFromNotices($this->notices); $this->raw($atom->getString()); diff --git a/lib/apiaction.php b/lib/apiaction.php index a01809ed9..b90607862 100644 --- a/lib/apiaction.php +++ b/lib/apiaction.php @@ -1374,6 +1374,11 @@ class ApiAction extends Action $aargs['id'] = $id; } + $tag = $this->arg('tag'); + if (!empty($tag)) { + $aargs['tag'] = $tag; + } + parse_str($_SERVER['QUERY_STRING'], $params); $pstring = ''; if (!empty($params)) { -- cgit v1.2.3-54-g00ecf From 3dc84dd02d5558b7e2e9de903eac04edcd73aec7 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Fri, 12 Mar 2010 05:39:36 +0000 Subject: Output enclosing geo elements and GeoRSS xmlns in XML timelines --- lib/apiaction.php | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/apiaction.php b/lib/apiaction.php index b90607862..e6aaf9316 100644 --- a/lib/apiaction.php +++ b/lib/apiaction.php @@ -491,7 +491,7 @@ class ApiAction extends Action $this->showXmlAttachments($twitter_status['attachments']); break; case 'geo': - $this->showGeoRSS($value); + $this->showGeoXML($value); break; case 'retweeted_status': $this->showTwitterXmlStatus($value, 'retweeted_status'); @@ -539,6 +539,18 @@ class ApiAction extends Action } } + function showGeoXML($geo) + { + if (empty($geo)) { + // empty geo element + $this->element('geo'); + } else { + $this->elementStart('geo', array('xmlns:georss' => 'http://www.georss.org/georss')); + $this->element('georss:point', null, $geo['coordinates'][0] . ' ' . $geo['coordinates'][1]); + $this->elementEnd('geo'); + } + } + function showGeoRSS($geo) { if (!empty($geo)) { -- cgit v1.2.3-54-g00ecf From ea7c1bab2e9b17ab6101f4143fcee02d93357930 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Fri, 12 Mar 2010 11:13:05 -0500 Subject: Plugin to open up rel="external" links on a new window or tab --- .../OpenExternalLinkTargetPlugin.php | 64 ++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 plugins/OpenExternalLinkTarget/OpenExternalLinkTargetPlugin.php diff --git a/plugins/OpenExternalLinkTarget/OpenExternalLinkTargetPlugin.php b/plugins/OpenExternalLinkTarget/OpenExternalLinkTargetPlugin.php new file mode 100644 index 000000000..ebb0189e0 --- /dev/null +++ b/plugins/OpenExternalLinkTarget/OpenExternalLinkTargetPlugin.php @@ -0,0 +1,64 @@ +. + * + * @category Action + * @package StatusNet + * @author Sarven Capadisli + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET') && !defined('LACONICA')) { + exit(1); +} + +/** + * Opens links with rel=external on a new window or tab + * + * @category Plugin + * @package StatusNet + * @author Sarven Capadisli + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +class OpenExternalLinkTargetPlugin extends Plugin +{ + function onEndShowScripts($action) + { + $action->inlineScript('$("a[rel~=external]").click(function(){ window.open(this.href); return false; });'); + + return true; + } + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'OpenExternalLinkTarget', + 'version' => STATUSNET_VERSION, + 'author' => 'Sarven Capadisli', + 'homepage' => 'http://status.net/wiki/Plugin:OpenExternalLinkTarget', + 'rawdescription' => + _m('Opens external links (i.e., with rel=external) on a new window or tab')); + return true; + } +} + -- cgit v1.2.3-54-g00ecf From 4d7479dcbc3d0f658de230c139242e7176d0ba16 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Fri, 12 Mar 2010 10:07:32 -0800 Subject: OpenID fixes: - avoid notice spew when checking sreg items that weren't provided - fix keys spec for user_openid, clears up problems with removing openid associations - fix keys spec for user_openid_trustroot --- plugins/OpenID/User_openid.php | 5 +++++ plugins/OpenID/User_openid_trustroot.php | 5 +++++ plugins/OpenID/openid.php | 6 +++--- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/plugins/OpenID/User_openid.php b/plugins/OpenID/User_openid.php index 5ef05b4c7..1beff9ea3 100644 --- a/plugins/OpenID/User_openid.php +++ b/plugins/OpenID/User_openid.php @@ -44,6 +44,11 @@ class User_openid extends Memcached_DataObject * Unique keys used for lookup *MUST* be listed to ensure proper caching. */ function keys() + { + return array_keys($this->keyTypes()); + } + + function keyTypes() { return array('canonical' => 'K', 'display' => 'U', 'user_id' => 'U'); } diff --git a/plugins/OpenID/User_openid_trustroot.php b/plugins/OpenID/User_openid_trustroot.php index 0b411b8f7..17c03afb0 100644 --- a/plugins/OpenID/User_openid_trustroot.php +++ b/plugins/OpenID/User_openid_trustroot.php @@ -42,6 +42,11 @@ class User_openid_trustroot extends Memcached_DataObject } function keys() + { + return array_keys($this->keyTypes()); + } + + function keyTypes() { return array('trustroot' => 'K', 'user_id' => 'K'); } diff --git a/plugins/OpenID/openid.php b/plugins/OpenID/openid.php index 8f949c9c5..9e02c7a88 100644 --- a/plugins/OpenID/openid.php +++ b/plugins/OpenID/openid.php @@ -225,11 +225,11 @@ function oid_update_user(&$user, &$sreg) $orig_profile = clone($profile); - if ($sreg['fullname'] && strlen($sreg['fullname']) <= 255) { + if (!empty($sreg['fullname']) && strlen($sreg['fullname']) <= 255) { $profile->fullname = $sreg['fullname']; } - if ($sreg['country']) { + if (!empty($sreg['country'])) { if ($sreg['postcode']) { # XXX: use postcode to get city and region # XXX: also, store postcode somewhere -- it's valuable! @@ -249,7 +249,7 @@ function oid_update_user(&$user, &$sreg) $orig_user = clone($user); - if ($sreg['email'] && Validate::email($sreg['email'], common_config('email', 'check_domain'))) { + if (!empty($sreg['email']) && Validate::email($sreg['email'], common_config('email', 'check_domain'))) { $user->email = $sreg['email']; } -- cgit v1.2.3-54-g00ecf From 9e9ab23e1f936eb62014d8f7b0051f0314ae482c Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Fri, 12 Mar 2010 11:19:56 -0800 Subject: Fixes for updating indices, charset/collation and engine type on plugin-created tables. Under MySQL, new tables will be created as InnoDB with UTF-8 (utf8/utf8_bin) same as core tables. Existing plugin tables will have table engine and default charset/collation updated, and string columns will have charset updated, at checkschema time. Switched from 'DESCRIBE' to INFORMATION_SCHEMA for pulling column information in order to get charset. A second hit to INFORMATION_SCHEMA is also needed to get table properties. Indices were only being created at table creation time, which ain't so hot. Now also adding/dropping indices when they change. Fixed up some schema defs in OStatus plugin that were a bit flaky, causing extra alter tables to be run. TODO: Generalize this infrastructure a bit more up to base schema & pg schema classes. --- lib/mysqlschema.php | 236 +++++++++++++++++++++++++++++------ lib/schema.php | 6 + plugins/OStatus/classes/FeedSub.php | 3 +- plugins/OStatus/classes/HubSub.php | 2 +- plugins/OStatus/classes/Magicsig.php | 4 +- 5 files changed, 209 insertions(+), 42 deletions(-) diff --git a/lib/mysqlschema.php b/lib/mysqlschema.php index 485096ac4..455695366 100644 --- a/lib/mysqlschema.php +++ b/lib/mysqlschema.php @@ -90,15 +90,24 @@ class MysqlSchema extends Schema * @param string $name Name of the table to get * * @return TableDef tabledef for that table. + * @throws SchemaTableMissingException */ public function getTableDef($name) { - $res = $this->conn->query('DESCRIBE ' . $name); + $query = "SELECT * FROM INFORMATION_SCHEMA.COLUMNS " . + "WHERE TABLE_SCHEMA='%s' AND TABLE_NAME='%s'"; + $schema = $this->conn->dsn['database']; + $sql = sprintf($query, $schema, $name); + $res = $this->conn->query($sql); if (PEAR::isError($res)) { throw new Exception($res->getMessage()); } + if ($res->numRows() == 0) { + $res->free(); + throw new SchemaTableMissingException("No such table: $name"); + } $td = new TableDef(); @@ -111,9 +120,9 @@ class MysqlSchema extends Schema $cd = new ColumnDef(); - $cd->name = $row['Field']; + $cd->name = $row['COLUMN_NAME']; - $packed = $row['Type']; + $packed = $row['COLUMN_TYPE']; if (preg_match('/^(\w+)\((\d+)\)$/', $packed, $match)) { $cd->type = $match[1]; @@ -122,17 +131,57 @@ class MysqlSchema extends Schema $cd->type = $packed; } - $cd->nullable = ($row['Null'] == 'YES') ? true : false; - $cd->key = $row['Key']; - $cd->default = $row['Default']; - $cd->extra = $row['Extra']; + $cd->nullable = ($row['IS_NULLABLE'] == 'YES') ? true : false; + $cd->key = $row['COLUMN_KEY']; + $cd->default = $row['COLUMN_DEFAULT']; + $cd->extra = $row['EXTRA']; + + // Autoincrement is stuck into the extra column. + // Pull it out so we don't accidentally mod it every time... + $extra = preg_replace('/(^|\s)auto_increment(\s|$)/i', '$1$2', $cd->extra); + if ($extra != $cd->extra) { + $cd->extra = trim($extra); + $cd->auto_increment = true; + } + + // mysql extensions -- not (yet) used by base class + $cd->charset = $row['CHARACTER_SET_NAME']; + $cd->collate = $row['COLLATION_NAME']; $td->columns[] = $cd; } + $res->free(); return $td; } + /** + * Pull the given table properties from INFORMATION_SCHEMA. + * Most of the good stuff is MySQL extensions. + * + * @return array + * @throws Exception if table info can't be looked up + */ + + function getTableProperties($table, $props) + { + $query = "SELECT %s FROM INFORMATION_SCHEMA.TABLES " . + "WHERE TABLE_SCHEMA='%s' AND TABLE_NAME='%s'"; + $schema = $this->conn->dsn['database']; + $sql = sprintf($query, implode(',', $props), $schema, $table); + $res = $this->conn->query($sql); + + $row = array(); + $ok = $res->fetchInto($row, DB_FETCHMODE_ASSOC); + $res->free(); + + if ($ok) { + return $row; + } else { + throw new SchemaTableMissingException("No such table: $table"); + } + } + /** * Gets a ColumnDef object for a single column. * @@ -185,35 +234,26 @@ class MysqlSchema extends Schema } $sql .= $this->_columnSql($cd); - - switch ($cd->key) { - case 'UNI': - $uniques[] = $cd->name; - break; - case 'PRI': - $primary[] = $cd->name; - break; - case 'MUL': - $indices[] = $cd->name; - break; - } } - if (count($primary) > 0) { // it really should be... - $sql .= ",\nconstraint primary key (" . implode(',', $primary) . ")"; + $idx = $this->_indexList($columns); + + if ($idx['primary']) { + $sql .= ",\nconstraint primary key (" . implode(',', $idx['primary']) . ")"; } - foreach ($uniques as $u) { - $sql .= ",\nunique index {$name}_{$u}_idx ($u)"; + foreach ($idx['uniques'] as $u) { + $key = $this->_uniqueKey($name, $u); + $sql .= ",\nunique index $key ($u)"; } - foreach ($indices as $i) { - $sql .= ",\nindex {$name}_{$i}_idx ($i)"; + foreach ($idx['indices'] as $i) { + $key = $this->_key($name, $i); + $sql .= ",\nindex $key ($i)"; } - $sql .= "); "; + $sql .= ") ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; "; - common_log(LOG_INFO, $sql); $res = $this->conn->query($sql); if (PEAR::isError($res)) { @@ -223,6 +263,47 @@ class MysqlSchema extends Schema return true; } + /** + * Look over a list of column definitions and list up which + * indices will be present + */ + private function _indexList(array $columns) + { + $list = array('uniques' => array(), + 'primary' => array(), + 'indices' => array()); + foreach ($columns as $cd) { + switch ($cd->key) { + case 'UNI': + $list['uniques'][] = $cd->name; + break; + case 'PRI': + $list['primary'][] = $cd->name; + break; + case 'MUL': + $list['indices'][] = $cd->name; + break; + } + } + return $list; + } + + /** + * Get the unique index key name for a given column on this table + */ + function _uniqueKey($tableName, $columnName) + { + return $this->_key($tableName, $columnName); + } + + /** + * Get the index key name for a given column on this table + */ + function _key($tableName, $columnName) + { + return "{$tableName}_{$columnName}_idx"; + } + /** * Drops a table from the schema * @@ -394,21 +475,20 @@ class MysqlSchema extends Schema try { $td = $this->getTableDef($tableName); - } catch (Exception $e) { - if (preg_match('/no such table/', $e->getMessage())) { - return $this->createTable($tableName, $columns); - } else { - throw $e; - } + } catch (SchemaTableMissingException $e) { + return $this->createTable($tableName, $columns); } $cur = $this->_names($td->columns); $new = $this->_names($columns); - $toadd = array_diff($new, $cur); - $todrop = array_diff($cur, $new); - $same = array_intersect($new, $cur); - $tomod = array(); + $dropIndex = array(); + $toadd = array_diff($new, $cur); + $todrop = array_diff($cur, $new); + $same = array_intersect($new, $cur); + $tomod = array(); + $addIndex = array(); + $tableProps = array(); foreach ($same as $m) { $curCol = $this->_byName($td->columns, $m); @@ -416,10 +496,64 @@ class MysqlSchema extends Schema if (!$newCol->equals($curCol)) { $tomod[] = $newCol->name; + continue; + } + + // Earlier versions may have accidentally left tables at default + // charsets which might be latin1 or other freakish things. + if ($this->_isString($curCol)) { + if ($curCol->charset != 'utf8') { + $tomod[] = $newCol->name; + continue; + } + } + } + + // Find any indices we have to change... + $curIdx = $this->_indexList($td->columns); + $newIdx = $this->_indexList($columns); + + if ($curIdx['primary'] != $newIdx['primary']) { + if ($curIdx['primary']) { + $dropIndex[] = 'drop primary key'; + } + if ($newIdx['primary']) { + $keys = implode(',', $newIdx['primary']); + $addIndex[] = "add constraint primary key ($keys)"; } } - if (count($toadd) + count($todrop) + count($tomod) == 0) { + $dropUnique = array_diff($curIdx['uniques'], $newIdx['uniques']); + $addUnique = array_diff($newIdx['uniques'], $curIdx['uniques']); + foreach ($dropUnique as $columnName) { + $dropIndex[] = 'drop key ' . $this->_uniqueKey($tableName, $columnName); + } + foreach ($addUnique as $columnName) { + $addIndex[] = 'add constraint unique key ' . $this->_uniqueKey($tableName, $columnName) . " ($columnName)";; + } + + $dropMultiple = array_diff($curIdx['indices'], $newIdx['indices']); + $addMultiple = array_diff($newIdx['indices'], $curIdx['indices']); + foreach ($dropMultiple as $columnName) { + $dropIndex[] = 'drop key ' . $this->_key($tableName, $columnName); + } + foreach ($addMultiple as $columnName) { + $addIndex[] = 'add key ' . $this->_key($tableName, $columnName) . " ($columnName)"; + } + + // Check for table properties: make sure we're using a sane + // engine type and charset/collation. + // @fixme make the default engine configurable? + $oldProps = $this->getTableProperties($tableName, array('ENGINE', 'TABLE_COLLATION')); + if (strtolower($oldProps['ENGINE']) != 'innodb') { + $tableProps['ENGINE'] = 'InnoDB'; + } + if (strtolower($oldProps['TABLE_COLLATION']) != 'utf8_bin') { + $tableProps['DEFAULT CHARSET'] = 'utf8'; + $tableProps['COLLATE'] = 'utf8_bin'; + } + + if (count($dropIndex) + count($toadd) + count($todrop) + count($tomod) + count($addIndex) + count($tableProps) == 0) { // nothing to do return true; } @@ -429,6 +563,10 @@ class MysqlSchema extends Schema $phrase = array(); + foreach ($dropIndex as $indexSql) { + $phrase[] = $indexSql; + } + foreach ($toadd as $columnName) { $cd = $this->_byName($columns, $columnName); @@ -445,8 +583,17 @@ class MysqlSchema extends Schema $phrase[] = 'MODIFY COLUMN ' . $this->_columnSql($cd); } + foreach ($addIndex as $indexSql) { + $phrase[] = $indexSql; + } + + foreach ($tableProps as $key => $val) { + $phrase[] = "$key=$val"; + } + $sql = 'ALTER TABLE ' . $tableName . ' ' . implode(', ', $phrase); + common_log(LOG_DEBUG, __METHOD__ . ': ' . $sql); $res = $this->conn->query($sql); if (PEAR::isError($res)) { @@ -519,6 +666,10 @@ class MysqlSchema extends Schema $sql .= "{$cd->type} "; } + if ($this->_isString($cd)) { + $sql .= " CHARACTER SET utf8 "; + } + if (!empty($cd->default)) { $sql .= "default {$cd->default} "; } else { @@ -535,4 +686,13 @@ class MysqlSchema extends Schema return $sql; } + + /** + * Is this column a string type? + */ + private function _isString(ColumnDef $cd) + { + $strings = array('char', 'varchar', 'text'); + return in_array(strtolower($cd->type), $strings); + } } diff --git a/lib/schema.php b/lib/schema.php index 137b814e0..1503c96d4 100644 --- a/lib/schema.php +++ b/lib/schema.php @@ -485,3 +485,9 @@ class Schema return $sql; } } + +class SchemaTableMissingException extends Exception +{ + // no-op +} + diff --git a/plugins/OStatus/classes/FeedSub.php b/plugins/OStatus/classes/FeedSub.php index b848b6b1d..80ba37bc1 100644 --- a/plugins/OStatus/classes/FeedSub.php +++ b/plugins/OStatus/classes/FeedSub.php @@ -110,7 +110,7 @@ class FeedSub extends Memcached_DataObject /*size*/ null, /*nullable*/ false, /*key*/ 'PRI', - /*default*/ '0', + /*default*/ null, /*extra*/ null, /*auto_increment*/ true), new ColumnDef('uri', 'varchar', @@ -450,3 +450,4 @@ class FeedSub extends Memcached_DataObject } } + diff --git a/plugins/OStatus/classes/HubSub.php b/plugins/OStatus/classes/HubSub.php index c420b3eef..cdace3c1f 100644 --- a/plugins/OStatus/classes/HubSub.php +++ b/plugins/OStatus/classes/HubSub.php @@ -77,7 +77,7 @@ class HubSub extends Memcached_DataObject new ColumnDef('topic', 'varchar', /*size*/255, /*nullable*/false, - /*key*/'KEY'), + /*key*/'MUL'), new ColumnDef('callback', 'varchar', 255, false), new ColumnDef('secret', 'text', diff --git a/plugins/OStatus/classes/Magicsig.php b/plugins/OStatus/classes/Magicsig.php index 5a46aeeb6..b0a411e5d 100644 --- a/plugins/OStatus/classes/Magicsig.php +++ b/plugins/OStatus/classes/Magicsig.php @@ -70,7 +70,7 @@ class Magicsig extends Memcached_DataObject static function schemaDef() { return array(new ColumnDef('user_id', 'integer', - null, true, 'PRI'), + null, false, 'PRI'), new ColumnDef('keypair', 'varchar', 255, false), new ColumnDef('alg', 'varchar', @@ -230,4 +230,4 @@ function base64_url_encode($input) function base64_url_decode($input) { return base64_decode(strtr($input, '-_', '+/')); -} \ No newline at end of file +} -- cgit v1.2.3-54-g00ecf From 86c8e13466252b2ccde553bcf2793d78696eec43 Mon Sep 17 00:00:00 2001 From: Siebrand Mazeland Date: Sat, 13 Mar 2010 00:48:53 +0100 Subject: Localisation updates for !StatusNet from !translatewiki.net !sntrans Signed-off-by: Siebrand Mazeland --- locale/ar/LC_MESSAGES/statusnet.po | 377 ++++++++++-------- locale/arz/LC_MESSAGES/statusnet.po | 338 ++++++++-------- locale/bg/LC_MESSAGES/statusnet.po | 340 ++++++++-------- locale/br/LC_MESSAGES/statusnet.po | 333 ++++++++-------- locale/ca/LC_MESSAGES/statusnet.po | 340 ++++++++-------- locale/cs/LC_MESSAGES/statusnet.po | 341 ++++++++-------- locale/de/LC_MESSAGES/statusnet.po | 443 ++++++++++++--------- locale/el/LC_MESSAGES/statusnet.po | 336 ++++++++-------- locale/en_GB/LC_MESSAGES/statusnet.po | 338 ++++++++-------- locale/es/LC_MESSAGES/statusnet.po | 338 ++++++++-------- locale/fa/LC_MESSAGES/statusnet.po | 337 ++++++++-------- locale/fi/LC_MESSAGES/statusnet.po | 340 ++++++++-------- locale/fr/LC_MESSAGES/statusnet.po | 340 ++++++++-------- locale/ga/LC_MESSAGES/statusnet.po | 340 ++++++++-------- locale/he/LC_MESSAGES/statusnet.po | 341 ++++++++-------- locale/hsb/LC_MESSAGES/statusnet.po | 536 +++++++++++-------------- locale/ia/LC_MESSAGES/statusnet.po | 475 +++++++++++----------- locale/is/LC_MESSAGES/statusnet.po | 340 ++++++++-------- locale/it/LC_MESSAGES/statusnet.po | 338 ++++++++-------- locale/ja/LC_MESSAGES/statusnet.po | 337 ++++++++-------- locale/ko/LC_MESSAGES/statusnet.po | 340 ++++++++-------- locale/mk/LC_MESSAGES/statusnet.po | 338 ++++++++-------- locale/nb/LC_MESSAGES/statusnet.po | 717 +++++++++++++++++----------------- locale/nl/LC_MESSAGES/statusnet.po | 338 ++++++++-------- locale/nn/LC_MESSAGES/statusnet.po | 340 ++++++++-------- locale/pl/LC_MESSAGES/statusnet.po | 338 ++++++++-------- locale/pt/LC_MESSAGES/statusnet.po | 337 ++++++++-------- locale/pt_BR/LC_MESSAGES/statusnet.po | 362 +++++++++-------- locale/ru/LC_MESSAGES/statusnet.po | 338 ++++++++-------- locale/statusnet.po | 329 ++++++++-------- locale/sv/LC_MESSAGES/statusnet.po | 338 ++++++++-------- locale/te/LC_MESSAGES/statusnet.po | 548 +++++++++++++------------- locale/tr/LC_MESSAGES/statusnet.po | 337 ++++++++-------- locale/uk/LC_MESSAGES/statusnet.po | 340 ++++++++-------- locale/vi/LC_MESSAGES/statusnet.po | 341 ++++++++-------- locale/zh_CN/LC_MESSAGES/statusnet.po | 340 ++++++++-------- locale/zh_TW/LC_MESSAGES/statusnet.po | 338 ++++++++-------- 37 files changed, 6948 insertions(+), 6659 deletions(-) diff --git a/locale/ar/LC_MESSAGES/statusnet.po b/locale/ar/LC_MESSAGES/statusnet.po index 56029bc82..16e050cee 100644 --- a/locale/ar/LC_MESSAGES/statusnet.po +++ b/locale/ar/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:49:16+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:42:03+0000\n" "Language-Team: Arabic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ar\n" "X-Message-Group: out-statusnet\n" @@ -94,7 +94,7 @@ msgstr "لا صفحة كهذه" #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -103,10 +103,8 @@ msgstr "لا صفحة كهذه" #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "لا مستخدم كهذا." @@ -199,12 +197,12 @@ msgstr "" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 msgid "API method not found." msgstr "لم يتم العثور على وسيلة API." @@ -331,7 +329,7 @@ msgstr "" msgid "This status is already a favorite." msgstr "هذه الحالة مفضلة بالفعل." -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "تعذّر إنشاء مفضلة." @@ -448,7 +446,7 @@ msgstr "لم توجد المجموعة!" msgid "You are already a member of that group." msgstr "" -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "" @@ -499,7 +497,7 @@ msgstr "حجم غير صالح." #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -636,12 +634,12 @@ msgstr "" msgid "Unsupported format." msgstr "نسق غير مدعوم." -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "" @@ -651,7 +649,7 @@ msgstr "" msgid "%1$s / Updates mentioning %2$s" msgstr "" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" @@ -661,7 +659,7 @@ msgstr "" msgid "%s public timeline" msgstr "مسار %s الزمني العام" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "" @@ -676,12 +674,12 @@ msgstr "كرر إلى %s" msgid "Repeats of %s" msgstr "تكرارات %s" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "الإشعارات الموسومة ب%s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "" @@ -741,7 +739,7 @@ msgid "Preview" msgstr "معاينة" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "احذف" @@ -821,8 +819,8 @@ msgstr "فشل حفظ معلومات المنع." #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 msgid "No such group." msgstr "لا مجموعة كهذه." @@ -923,7 +921,7 @@ msgstr "أنت لست مالك هذا التطبيق." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "" @@ -979,7 +977,7 @@ msgstr "أمتأكد من أنك تريد حذف هذا الإشعار؟" msgid "Do not delete this notice" msgstr "لا تحذف هذا الإشعار" -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "احذف هذا الإشعار" @@ -1228,7 +1226,7 @@ msgstr "" msgid "Could not update group." msgstr "تعذر تحديث المجموعة." -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 msgid "Could not create aliases." msgstr "تعذّر إنشاء الكنى." @@ -1892,7 +1890,7 @@ msgstr "دعوة مستخدمين جدد" msgid "You are already subscribed to these users:" msgstr "" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" @@ -1993,7 +1991,7 @@ msgstr "%1$s انضم للمجموعة %2$s" msgid "You must be logged in to leave a group." msgstr "يجب أن تلج لتغادر مجموعة." -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 msgid "You are not a member of that group." msgstr "لست عضوا في تلك المجموعة." @@ -2103,12 +2101,12 @@ msgstr "استخدم هذا النموذج لإنشاء مجموعة جديدة. msgid "New message" msgstr "رسالة جديدة" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "لا يمكنك إرسال رسائل إلى هذا المستخدم." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "لا محتوى!" @@ -2116,7 +2114,7 @@ msgstr "لا محتوى!" msgid "No recipient specified." msgstr "لا مستلم حُدّد." -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" @@ -2130,7 +2128,7 @@ msgstr "أُرسلت الرسالة" msgid "Direct message to %s sent." msgstr "رسالة مباشرة ل%s تم إرسالها." -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "خطأ أجاكس" @@ -2256,8 +2254,8 @@ msgstr "نوع المحتوى " msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "ليس نسق بيانات مدعوم." @@ -2388,7 +2386,7 @@ msgstr "كلمة السر القديمة غير صحيحة" msgid "Error saving user; invalid." msgstr "خطأ أثناء حفظ المستخدم؛ غير صالح." -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "تعذّر حفظ كلمة السر الجديدة." @@ -2872,7 +2870,7 @@ msgstr "أعد ضبط كلمة السر" msgid "Recover password" msgstr "استعد كلمة السر" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "طُلبت استعادة كلمة السر" @@ -2892,41 +2890,41 @@ msgstr "أعد الضبط" msgid "Enter a nickname or email address." msgstr "أدخل اسمًا مستعارًا أو عنوان بريد إلكتروني." -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "" -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "" -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "خطأ أثناء حفظ تأكيد العنوان." -#: actions/recoverpassword.php:325 +#: 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:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "" -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "يجب أن تكون كلمة السر 6 محارف أو أكثر." -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "" -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "خطأ أثناء ضبط المستخدم." -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "" @@ -3101,7 +3099,7 @@ msgstr "لا يمكنك تكرار ملاحظتك الشخصية." msgid "You already repeated that notice." msgstr "أنت كررت هذه الملاحظة بالفعل." -#: actions/repeat.php:114 lib/noticelist.php:674 +#: actions/repeat.php:114 lib/noticelist.php:676 msgid "Repeated" msgstr "مكرر" @@ -4288,19 +4286,19 @@ msgstr "النسخة" msgid "Author(s)" msgstr "المؤلف(ون)" -#: classes/File.php:144 +#: classes/File.php:169 #, 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." msgstr "" -#: classes/File.php:154 +#: classes/File.php:179 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:161 +#: classes/File.php:186 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" @@ -4375,7 +4373,7 @@ msgstr "مشكلة أثناء حفظ الإشعار." msgid "Problem saving group inbox." msgstr "مشكلة أثناء حفظ الإشعار." -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, php-format msgid "RT @%1$s %2$s" msgstr "آر تي @%1$s %2$s" @@ -4405,29 +4403,29 @@ msgstr "لم يمكن حذف اشتراك ذاتي." msgid "Couldn't delete subscription OMB token." msgstr "تعذّر حذف الاشتراك." -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "تعذّر حذف الاشتراك." -#: classes/User.php:373 +#: classes/User.php:378 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "أهلا بكم في %1$s يا @%2$s!" -#: classes/User_group.php:477 +#: classes/User_group.php:480 msgid "Could not create group." msgstr "تعذّر إنشاء المجموعة." -#: classes/User_group.php:486 +#: classes/User_group.php:489 #, fuzzy msgid "Could not set group URI." msgstr "تعذّر ضبط عضوية المجموعة." -#: classes/User_group.php:507 +#: classes/User_group.php:510 msgid "Could not set group membership." msgstr "تعذّر ضبط عضوية المجموعة." -#: classes/User_group.php:521 +#: classes/User_group.php:524 #, fuzzy msgid "Could not save local group info." msgstr "تعذّر حفظ الاشتراك." @@ -4633,7 +4631,7 @@ msgstr "الجسر" msgid "StatusNet software license" msgstr "رخصة برنامج StatusNet" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4642,12 +4640,12 @@ msgstr "" "**%%site.name%%** خدمة تدوين مصغر يقدمها لك [%%site.broughtby%%](%%site." "broughtbyurl%%). " -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "" -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4658,41 +4656,41 @@ msgstr "" "المتوفر تحت [رخصة غنو أفيرو العمومية](http://www.fsf.org/licensing/licenses/" "agpl-3.0.html)." -#: lib/action.php:821 +#: lib/action.php:824 msgid "Site content license" msgstr "رخصة محتوى الموقع" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "" -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "الرخصة." -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "" -#: lib/action.php:1161 +#: lib/action.php:1164 msgid "After" msgstr "بعد" -#: lib/action.php:1169 +#: lib/action.php:1172 msgid "Before" msgstr "قبل" @@ -4795,7 +4793,7 @@ msgstr "ضبط المسارات" msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4823,7 +4821,7 @@ msgstr "مسار المصدر" #: lib/applicationeditform.php:218 msgid "URL of the homepage of this application" -msgstr "" +msgstr "مسار صفحة هذا التطبيق" #: lib/applicationeditform.php:224 msgid "Organization responsible for this application" @@ -4893,37 +4891,50 @@ msgstr "تغيير كلمة السر فشل" msgid "Password changing is not allowed" msgstr "تغيير كلمة السر غير مسموح به" -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "نتائج الأمر" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "اكتمل الأمر" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "فشل الأمر" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." -msgstr "" +#: lib/command.php:83 lib/command.php:105 +msgid "Notice with that id does not exist" +msgstr "الملاحظة بهذا الرقم غير موجودة" -#: lib/command.php:88 +#: lib/command.php:99 lib/command.php:570 +msgid "User has no last notice" +msgstr "ليس للمستخدم إشعار أخير" + +#: lib/command.php:125 #, php-format msgid "Could not find a user with nickname %s" msgstr "لم يمكن إيجاد مستخدم بالاسم %s" -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "لم يمكن إيجاد مستخدم بالاسم %s" + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "" + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" -#: lib/command.php:99 +#: lib/command.php:228 #, php-format msgid "Nudge sent to %s" msgstr "التنبيه تم إرساله إلى %s" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -4934,169 +4945,167 @@ msgstr "" "المشتركون: %2$s\n" "الإشعارات: %3$s" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -msgid "Notice with that id does not exist" -msgstr "الملاحظة بهذا الرقم غير موجودة" - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -msgid "User has no last notice" -msgstr "ليس للمستخدم إشعار أخير" - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "" -#: lib/command.php:217 +#: lib/command.php:317 msgid "You are already a member of that group" msgstr "أنت بالفعل عضو في هذه المجموعة" -#: lib/command.php:231 +#: lib/command.php:331 #, php-format msgid "Could not join user %s to group %s" msgstr "لم يمكن ضم المستخدم %s إلى المجموعة %s" -#: lib/command.php:236 +#: lib/command.php:336 #, php-format msgid "%s joined group %s" msgstr "%s انضم إلى مجموعة %s" -#: lib/command.php:275 +#: lib/command.php:373 #, php-format msgid "Could not remove user %s to group %s" msgstr "لم يمكن إزالة المستخدم %s من المجموعة %s" -#: lib/command.php:280 +#: lib/command.php:378 #, php-format msgid "%s left group %s" msgstr "%s ترك المجموعة %s" -#: lib/command.php:309 +#: lib/command.php:401 #, php-format msgid "Fullname: %s" msgstr "الاسم الكامل: %s" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "الموقع: %s" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "الصفحة الرئيسية: %s" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "عن: %s" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "" -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "رسالة مباشرة إلى %s تم إرسالها" -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "" -#: lib/command.php:413 +#: lib/command.php:490 msgid "Cannot repeat your own notice" msgstr "لا يمكنك تكرار ملاحظتك الخاصة" -#: lib/command.php:418 +#: lib/command.php:495 msgid "Already repeated that notice" msgstr "كرر بالفعل هذا الإشعار" -#: lib/command.php:426 +#: lib/command.php:503 #, php-format msgid "Notice from %s repeated" msgstr "الإشعار من %s مكرر" -#: lib/command.php:428 +#: lib/command.php:505 msgid "Error repeating notice." msgstr "خطأ تكرار الإشعار." -#: lib/command.php:482 +#: lib/command.php:536 #, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "" -#: lib/command.php:491 +#: lib/command.php:545 #, php-format msgid "Reply to %s sent" msgstr "رُد على رسالة %s" -#: lib/command.php:493 +#: lib/command.php:547 msgid "Error saving notice." msgstr "خطأ أثناء حفظ الإشعار." -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "" -#: lib/command.php:554 lib/command.php:589 -msgid "No such user" -msgstr "لا مستخدم كهذا" +#: lib/command.php:602 +msgid "Can't subscribe to OMB profiles by command." +msgstr "" -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "مُشترك ب%s" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "" -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "الأمر لم يُجهزّ بعد." -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "الإشعار مُطفأ." -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "تعذّر إطفاء الإشعارات." -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "الإشعار يعمل." -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "تعذّر تشغيل الإشعار." -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" -#: lib/command.php:692 +#: lib/command.php:735 #, fuzzy, php-format msgid "Unsubscribed %s" msgstr "ألغِ الاشتراك" -#: lib/command.php:709 +#: lib/command.php:752 msgid "You are not subscribed to anyone." msgstr "لست مُشتركًا بأي أحد." -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "لست مشتركًا بأحد." @@ -5106,11 +5115,11 @@ msgstr[3] "أنت مشترك بهؤلاء الأشخاص:" msgstr[4] "" msgstr[5] "" -#: lib/command.php:731 +#: lib/command.php:774 msgid "No one is subscribed to you." msgstr "لا أحد مشترك بك." -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "لا أحد مشترك بك." @@ -5120,11 +5129,11 @@ msgstr[3] "هؤلاء الأشخاص مشتركون بك:" msgstr[4] "" msgstr[5] "" -#: lib/command.php:753 +#: lib/command.php:796 msgid "You are not a member of any groups." msgstr "لست عضوًا في أي مجموعة." -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "لست عضوًا في أي مجموعة." @@ -5134,7 +5143,7 @@ msgstr[3] "أنت عضو في هذه المجموعات:" msgstr[4] "" msgstr[5] "" -#: lib/command.php:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5175,6 +5184,44 @@ msgid "" "tracks - not yet implemented.\n" "tracking - not yet implemented.\n" msgstr "" +"الأوامر:\n" +"on - شغّل الإشعار\n" +"off - أطفئ الإشعار\n" +"help - أظهر هذه المساعدة\n" +"follow - اشترك بالمستخدم\n" +"groups - اسرد المجموعات التي أنا عضو فيها\n" +"subscriptions - اسرد الذين أتابعهم\n" +"subscribers - اسرد الذين يتابعونني\n" +"leave - ألغِ الاشتراك بمستخدم\n" +"d - وجّه رسالة مباشرة إلى مستخدم\n" +"get - اجلب آخر رسالة من مستخدم\n" +"whois - اجلب معلومات ملف المستخدم\n" +"lose - أجبر المستخدم على عدم تتبعك\n" +"fav - اجعل آخر إشعار من المستخدم مفضلًا\n" +"fav # - اجعل الإشعار ذا رقم الهوية المعطى مفضلا\n" +"repeat # - كرّر الإشعار ذا رقم الهوية المعطى\n" +"repeat - كرّر آخر إشعار من المستخدم\n" +"reply # - رُد على الإشعار ذي رقم الهوية المعطى\n" +"reply - رُد على آخر إشعار من المستخدم\n" +"join - انضم إلى مجموعة\n" +"login - اجلب وصلة الولوج إلى واجهة الوب\n" +"drop - اترك المجموعة\n" +"stats - اجلب إحصاءاتك\n" +"stop - مثل 'off'\n" +"quit - مثل 'off'\n" +"sub - مثل 'follow'\n" +"unsub - مثل 'leave'\n" +"last - مثل 'get'\n" +"on - لم يطبق بعد.\n" +"off - لم يطبق بعد.\n" +"nudge - ذكّر مستخدمًا بإشعار أرسلته.\n" +"invite - لم يطبق بعد.\n" +"track - لم يطبق بعد.\n" +"untrack - لم يطبق بعد.\n" +"track off - لم يطبق بعد.\n" +"untrack all - لم يطبق بعد.\n" +"tracks - لم يطبق بعد.\n" +"tracking - لم يطبق بعد.\n" #: lib/common.php:148 msgid "No configuration file found. " @@ -5362,49 +5409,49 @@ msgstr "وسوم في إشعارات المجموعة %s" msgid "This page is not available in a media type you accept" msgstr "" -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "" + +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %s." -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "" -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "" -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "" -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "" - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 msgid "Lost our file." msgstr "" -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "نوع ملف غير معروف" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "ميجابايت" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "كيلوبايت" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "[%s]" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, php-format msgid "Unknown inbox source %d." msgstr "مصدر صندوق وارد غير معروف %d." @@ -5621,7 +5668,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 msgid "from" msgstr "من" @@ -5771,23 +5818,23 @@ msgstr "غ" msgid "at" msgstr "في" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 msgid "in context" msgstr "في السياق" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 msgid "Repeated by" msgstr "مكرر بواسطة" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "رُد على هذا الإشعار" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 msgid "Reply" msgstr "رُد" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 msgid "Notice repeated" msgstr "الإشعار مكرر" @@ -6098,47 +6145,47 @@ msgctxt "role" msgid "Moderator" msgstr "مراقب" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "قبل لحظات قليلة" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "قبل دقيقة تقريبًا" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "قبل ساعة تقريبًا" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "قبل يوم تقريبا" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "قبل شهر تقريبًا" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "قبل سنة تقريبًا" @@ -6152,7 +6199,7 @@ msgstr "%s ليس لونًا صحيحًا!" msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "" -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "" diff --git a/locale/arz/LC_MESSAGES/statusnet.po b/locale/arz/LC_MESSAGES/statusnet.po index aaf1d89bd..7b6735e0e 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-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:49:19+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:42:07+0000\n" "Language-Team: Egyptian Spoken Arabic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: arz\n" "X-Message-Group: out-statusnet\n" @@ -100,7 +100,7 @@ msgstr "لا صفحه كهذه" #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -109,10 +109,8 @@ msgstr "لا صفحه كهذه" #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "لا مستخدم كهذا." @@ -205,12 +203,12 @@ msgstr "" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 msgid "API method not found." msgstr "الـ API method مش موجوده." @@ -337,7 +335,7 @@ msgstr "" msgid "This status is already a favorite." msgstr "الحاله دى موجوده فعلا فى التفضيلات." -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "تعذّر إنشاء مفضله." @@ -454,7 +452,7 @@ msgstr "لم توجد المجموعة!" msgid "You are already a member of that group." msgstr "" -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "" @@ -505,7 +503,7 @@ msgstr "حجم غير صالح." #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -642,12 +640,12 @@ msgstr "" msgid "Unsupported format." msgstr "نسق غير مدعوم." -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "" @@ -657,7 +655,7 @@ msgstr "" msgid "%1$s / Updates mentioning %2$s" msgstr "" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" @@ -667,7 +665,7 @@ msgstr "" msgid "%s public timeline" msgstr "مسار %s الزمنى العام" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "" @@ -682,12 +680,12 @@ msgstr "كرر إلى %s" msgid "Repeats of %s" msgstr "تكرارات %s" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "الإشعارات الموسومه ب%s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "" @@ -747,7 +745,7 @@ msgid "Preview" msgstr "عاين" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "احذف" @@ -827,8 +825,8 @@ msgstr "فشل حفظ معلومات المنع." #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 msgid "No such group." msgstr "لا مجموعه كهذه." @@ -931,7 +929,7 @@ msgstr "انت مش بتملك الapplication دى." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "" @@ -990,7 +988,7 @@ msgstr "أمتأكد من أنك تريد حذف هذا الإشعار؟" msgid "Do not delete this notice" msgstr "لا تحذف هذا الإشعار" -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "احذف هذا الإشعار" @@ -1240,7 +1238,7 @@ msgstr "" msgid "Could not update group." msgstr "تعذر تحديث المجموعه." -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 msgid "Could not create aliases." msgstr "تعذّر إنشاء الكنى." @@ -1904,7 +1902,7 @@ msgstr "دعوه مستخدمين جدد" msgid "You are already subscribed to these users:" msgstr "" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" @@ -2006,7 +2004,7 @@ msgstr "%1$s دخل جروپ %2$s" msgid "You must be logged in to leave a group." msgstr "" -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 msgid "You are not a member of that group." msgstr "لست عضوا فى تلك المجموعه." @@ -2116,12 +2114,12 @@ msgstr "استخدم هذا النموذج لإنشاء مجموعه جديده. msgid "New message" msgstr "رساله جديدة" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "" -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "لا محتوى!" @@ -2129,7 +2127,7 @@ msgstr "لا محتوى!" msgid "No recipient specified." msgstr "لا مستلم حُدّد." -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" @@ -2143,7 +2141,7 @@ msgstr "أُرسلت الرسالة" msgid "Direct message to %s sent." msgstr "رساله مباشره اتبعتت لـ%s." -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "خطأ أجاكس" @@ -2267,8 +2265,8 @@ msgstr "نوع المحتوى " msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr " مش نظام بيانات مدعوم." @@ -2399,7 +2397,7 @@ msgstr "كلمه السر القديمه غير صحيحة" msgid "Error saving user; invalid." msgstr "خطأ أثناء حفظ المستخدم؛ غير صالح." -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "تعذّر حفظ كلمه السر الجديده." @@ -2882,7 +2880,7 @@ msgstr "أعد ضبط كلمه السر" msgid "Recover password" msgstr "استعد كلمه السر" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "طُلبت استعاده كلمه السر" @@ -2902,41 +2900,41 @@ msgstr "أعد الضبط" msgid "Enter a nickname or email address." msgstr "أدخل اسمًا مستعارًا أو عنوان بريد إلكترونى." -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "" -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "" -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "خطأ أثناء حفظ تأكيد العنوان." -#: actions/recoverpassword.php:325 +#: 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:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "" -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "يجب أن تكون كلمه السر 6 محارف أو أكثر." -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "" -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "خطأ أثناء ضبط المستخدم." -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "" @@ -3111,7 +3109,7 @@ msgstr "ما ينفعش تكرر الملاحظه بتاعتك." msgid "You already repeated that notice." msgstr "انت عيدت الملاحظه دى فعلا." -#: actions/repeat.php:114 lib/noticelist.php:674 +#: actions/repeat.php:114 lib/noticelist.php:676 msgid "Repeated" msgstr "مكرر" @@ -4291,19 +4289,19 @@ msgstr "النسخه" msgid "Author(s)" msgstr "المؤلف/ين" -#: classes/File.php:144 +#: classes/File.php:169 #, 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." msgstr "" -#: classes/File.php:154 +#: classes/File.php:179 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:161 +#: classes/File.php:186 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" @@ -4379,7 +4377,7 @@ msgstr "مشكله أثناء حفظ الإشعار." msgid "Problem saving group inbox." msgstr "مشكله أثناء حفظ الإشعار." -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, php-format msgid "RT @%1$s %2$s" msgstr "آر تى @%1$s %2$s" @@ -4409,29 +4407,29 @@ msgstr "ما نفعش يمسح الاشتراك الشخصى." msgid "Couldn't delete subscription OMB token." msgstr "تعذّر حذف الاشتراك." -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "تعذّر حذف الاشتراك." -#: classes/User.php:373 +#: classes/User.php:378 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "أهلا بكم فى %1$s يا @%2$s!" -#: classes/User_group.php:477 +#: classes/User_group.php:480 msgid "Could not create group." msgstr "تعذّر إنشاء المجموعه." -#: classes/User_group.php:486 +#: classes/User_group.php:489 #, fuzzy msgid "Could not set group URI." msgstr "تعذّر ضبط عضويه المجموعه." -#: classes/User_group.php:507 +#: classes/User_group.php:510 msgid "Could not set group membership." msgstr "تعذّر ضبط عضويه المجموعه." -#: classes/User_group.php:521 +#: classes/User_group.php:524 #, fuzzy msgid "Could not save local group info." msgstr "تعذّر حفظ الاشتراك." @@ -4653,7 +4651,7 @@ msgstr "" msgid "StatusNet software license" msgstr "" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4662,12 +4660,12 @@ msgstr "" "**%%site.name%%** خدمه تدوين مصغر يقدمها لك [%%site.broughtby%%](%%site." "broughtbyurl%%). " -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "" -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4678,41 +4676,41 @@ msgstr "" "المتوفر تحت [رخصه غنو أفيرو العمومية](http://www.fsf.org/licensing/licenses/" "agpl-3.0.html)." -#: lib/action.php:821 +#: lib/action.php:824 msgid "Site content license" msgstr "رخصه محتوى الموقع" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "" -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "الرخصه." -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "" -#: lib/action.php:1161 +#: lib/action.php:1164 msgid "After" msgstr "بعد" -#: lib/action.php:1169 +#: lib/action.php:1172 msgid "Before" msgstr "قبل" @@ -4821,7 +4819,7 @@ msgstr "ضبط المسارات" msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4919,37 +4917,50 @@ msgstr "تغيير الپاسوورد فشل" msgid "Password changing is not allowed" msgstr "تغيير الپاسوورد مش مسموح" -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "نتائج الأمر" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "اكتمل الأمر" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "فشل الأمر" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." -msgstr "" +#: lib/command.php:83 lib/command.php:105 +msgid "Notice with that id does not exist" +msgstr "الملاحظه بالـID ده مالهاش وجود" -#: lib/command.php:88 +#: lib/command.php:99 lib/command.php:570 +msgid "User has no last notice" +msgstr "ليس للمستخدم إشعار أخير" + +#: lib/command.php:125 #, php-format msgid "Could not find a user with nickname %s" msgstr "ما نفعش يلاقى يوزر بإسم %s" -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "ما نفعش يلاقى يوزر بإسم %s" + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "" + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" -#: lib/command.php:99 +#: lib/command.php:228 #, php-format msgid "Nudge sent to %s" msgstr "Nudge اتبعتت لـ %s" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -4960,170 +4971,167 @@ msgstr "" "المشتركون: %2$s\n" "الإشعارات: %3$s" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -msgid "Notice with that id does not exist" -msgstr "الملاحظه بالـID ده مالهاش وجود" - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -msgid "User has no last notice" -msgstr "ليس للمستخدم إشعار أخير" - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "" -#: lib/command.php:217 +#: lib/command.php:317 msgid "You are already a member of that group" msgstr "انت اصلا عضو فى الجروپ ده" -#: lib/command.php:231 +#: lib/command.php:331 #, php-format msgid "Could not join user %s to group %s" msgstr "ما نفعش يدخل اليوزر %s لجروپ %s" -#: lib/command.php:236 +#: lib/command.php:336 #, php-format msgid "%s joined group %s" msgstr "%s انضم إلى مجموعه %s" -#: lib/command.php:275 +#: lib/command.php:373 #, php-format msgid "Could not remove user %s to group %s" msgstr "ما نفعش يشيل اليوزر %s لجروپ %s" -#: lib/command.php:280 +#: lib/command.php:378 #, php-format msgid "%s left group %s" msgstr "%s ساب الجروپ %s" -#: lib/command.php:309 +#: lib/command.php:401 #, php-format msgid "Fullname: %s" msgstr "الاسم الكامل: %s" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "الموقع: %s" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "الصفحه الرئيسية: %s" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "عن: %s" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "" -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "رساله مباشره اتبعتت لـ %s" -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "" -#: lib/command.php:413 +#: lib/command.php:490 msgid "Cannot repeat your own notice" msgstr "الملاحظه بتاعتك مش نافعه تتكرر" -#: lib/command.php:418 +#: lib/command.php:495 msgid "Already repeated that notice" msgstr "كرر بالفعل هذا الإشعار" -#: lib/command.php:426 +#: lib/command.php:503 #, php-format msgid "Notice from %s repeated" msgstr "الإشعار من %s مكرر" -#: lib/command.php:428 +#: lib/command.php:505 msgid "Error repeating notice." msgstr "خطأ تكرار الإشعار." -#: lib/command.php:482 +#: lib/command.php:536 #, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "" -#: lib/command.php:491 +#: lib/command.php:545 #, php-format msgid "Reply to %s sent" msgstr "رُد على رساله %s" -#: lib/command.php:493 +#: lib/command.php:547 msgid "Error saving notice." msgstr "خطأ أثناء حفظ الإشعار." -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "" -#: lib/command.php:554 lib/command.php:589 -#, fuzzy -msgid "No such user" -msgstr "لا مستخدم كهذا." +#: lib/command.php:602 +msgid "Can't subscribe to OMB profiles by command." +msgstr "" -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "مُشترك ب%s" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "" -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "" -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "" -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "" -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "" -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "" -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" -#: lib/command.php:692 +#: lib/command.php:735 #, fuzzy, php-format msgid "Unsubscribed %s" msgstr "ألغِ الاشتراك" -#: lib/command.php:709 +#: lib/command.php:752 msgid "You are not subscribed to anyone." msgstr "لست مُشتركًا بأى أحد." -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "لست مشتركًا بأحد." @@ -5133,11 +5141,11 @@ msgstr[3] "أنت مشترك بهؤلاء الأشخاص:" msgstr[4] "" msgstr[5] "" -#: lib/command.php:731 +#: lib/command.php:774 msgid "No one is subscribed to you." msgstr "لا أحد مشترك بك." -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "لا أحد مشترك بك." @@ -5147,11 +5155,11 @@ msgstr[3] "هؤلاء الأشخاص مشتركون بك:" msgstr[4] "" msgstr[5] "" -#: lib/command.php:753 +#: lib/command.php:796 msgid "You are not a member of any groups." msgstr "لست عضوًا فى أى مجموعه." -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "لست عضوًا فى أى مجموعه." @@ -5161,7 +5169,7 @@ msgstr[3] "أنت عضو فى هذه المجموعات:" msgstr[4] "" msgstr[5] "" -#: lib/command.php:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5389,49 +5397,49 @@ msgstr "" msgid "This page is not available in a media type you accept" msgstr "" -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "" + +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %s." -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "" -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "" -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "" -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "" - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 msgid "Lost our file." msgstr "" -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "نوع ملف غير معروف" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "ميجابايت" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "كيلوبايت" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "[%s]" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, php-format msgid "Unknown inbox source %d." msgstr "مصدر الـinbox مش معروف %d." @@ -5626,7 +5634,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 msgid "from" msgstr "من" @@ -5777,23 +5785,23 @@ msgstr "غ" msgid "at" msgstr "في" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 msgid "in context" msgstr "فى السياق" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 msgid "Repeated by" msgstr "متكرر من" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "رُد على هذا الإشعار" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 msgid "Reply" msgstr "رُد" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 msgid "Notice repeated" msgstr "الإشعار مكرر" @@ -6105,47 +6113,47 @@ msgctxt "role" msgid "Moderator" msgstr "" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "قبل لحظات قليلة" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "قبل دقيقه تقريبًا" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "قبل ساعه تقريبًا" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "قبل يوم تقريبا" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "قبل شهر تقريبًا" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "قبل سنه تقريبًا" @@ -6159,7 +6167,7 @@ msgstr "%s ليس لونًا صحيحًا!" msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "" -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "" diff --git a/locale/bg/LC_MESSAGES/statusnet.po b/locale/bg/LC_MESSAGES/statusnet.po index 3a6b5b047..57d024979 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-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:49:22+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:42:10+0000\n" "Language-Team: Bulgarian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: bg\n" "X-Message-Group: out-statusnet\n" @@ -95,7 +95,7 @@ msgstr "Няма такака страница." #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -104,10 +104,8 @@ msgstr "Няма такака страница." #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Няма такъв потребител" @@ -200,12 +198,12 @@ msgstr "Бележки от %1$s и приятели в %2$s." #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 msgid "API method not found." msgstr "Не е открит методът в API." @@ -337,7 +335,7 @@ msgstr "Не е открита бележка с такъв идентифика msgid "This status is already a favorite." msgstr "Тази бележка вече е отбелязана като любима!" -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "Грешка при отбелязване като любима." @@ -459,7 +457,7 @@ msgstr "Групата не е открита." msgid "You are already a member of that group." msgstr "Вече членувате в тази група." -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "" @@ -510,7 +508,7 @@ msgstr "Неправилен размер." #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -649,12 +647,12 @@ msgstr "" msgid "Unsupported format." msgstr "Неподдържан формат." -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, fuzzy, php-format msgid "%1$s / Favorites from %2$s" msgstr "%s / Отбелязани като любими от %s" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, fuzzy, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%s бележки отбелязани като любими от %s / %s." @@ -664,7 +662,7 @@ msgstr "%s бележки отбелязани като любими от %s / % msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Реплики на %2$s" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s реплики на съобщения от %2$s / %3$s." @@ -674,7 +672,7 @@ msgstr "%1$s реплики на съобщения от %2$s / %3$s." msgid "%s public timeline" msgstr "Общ поток на %s" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "" @@ -689,12 +687,12 @@ msgstr "Повторено за %s" msgid "Repeats of %s" msgstr "Повторения на %s" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Бележки с етикет %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Бележки от %1$s в %2$s." @@ -756,7 +754,7 @@ msgid "Preview" msgstr "Преглед" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "Изтриване" @@ -836,8 +834,8 @@ msgstr "Грешка при записване данните за блокир #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 msgid "No such group." msgstr "Няма такава група" @@ -943,7 +941,7 @@ msgstr "Не членувате в тази група." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "Имаше проблем със сесията ви в сайта." @@ -1002,7 +1000,7 @@ msgstr "Наистина ли искате да изтриете тази бел msgid "Do not delete this notice" msgstr "Да не се изтрива бележката" -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "Изтриване на бележката" @@ -1268,7 +1266,7 @@ msgstr "Описанието е твърде дълго (до %d символа) msgid "Could not update group." msgstr "Грешка при обновяване на групата." -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 #, fuzzy msgid "Could not create aliases." msgstr "Грешка при отбелязване като любима." @@ -1969,7 +1967,7 @@ msgstr "Покани за нови потребители" msgid "You are already subscribed to these users:" msgstr "Вече сте абонирани за следните потребители:" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" @@ -2101,7 +2099,7 @@ msgstr "%s се присъедини към групата %s" msgid "You must be logged in to leave a group." msgstr "За напуснете група, трябва да сте влезли." -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 msgid "You are not a member of that group." msgstr "Не членувате в тази група." @@ -2219,12 +2217,12 @@ msgstr "Използвайте тази бланка за създаване н msgid "New message" msgstr "Ново съобщение" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "Не може да изпращате съобщения до този потребител." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "Няма съдържание!" @@ -2232,7 +2230,7 @@ msgstr "Няма съдържание!" msgid "No recipient specified." msgstr "Не е указан получател." -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" @@ -2248,7 +2246,7 @@ msgstr "Съобщението е изпратено" msgid "Direct message to %s sent." msgstr "Прякото съобщение до %s е изпратено." -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "Грешка в Ajax" @@ -2377,8 +2375,8 @@ msgstr "вид съдържание " msgid "Only " msgstr "Само " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "Неподдържан формат на данните" @@ -2516,7 +2514,7 @@ msgstr "Грешна стара парола" msgid "Error saving user; invalid." msgstr "Грешка при запазване на потребител — невалидност." -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "Грешка при запазване на новата парола." @@ -2999,7 +2997,7 @@ msgstr "Нова парола" msgid "Recover password" msgstr "Възстановяване на паролата" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "Поискано е възстановяване на парола" @@ -3019,19 +3017,19 @@ msgstr "Обновяване" msgid "Enter a nickname or email address." msgstr "Въведете псевдоним или е-поща." -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "Няма потребител с такава е-поща или потребителско име." -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "Няма указана е-поща за този потребител." -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "Грешка при запазване на потвърждение за адрес" -#: actions/recoverpassword.php:325 +#: actions/recoverpassword.php:338 msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." @@ -3039,23 +3037,23 @@ msgstr "" "На е-пощата, с която сте регистрирани са изпратени инструкции за " "възстановяване на паролата." -#: actions/recoverpassword.php:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "Неочаквано подновяване на паролата." -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "Паролата трябва да е от поне 6 знака." -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Паролата и потвърждението й не съвпадат." -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "Грешка в настройките на потребителя." -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "Новата парола е запазена. Влязохте успешно." @@ -3256,7 +3254,7 @@ msgstr "Не можете да повтаряте собствена бележ msgid "You already repeated that notice." msgstr "Вече сте повторили тази бележка." -#: actions/repeat.php:114 lib/noticelist.php:674 +#: actions/repeat.php:114 lib/noticelist.php:676 msgid "Repeated" msgstr "Повторено" @@ -4471,19 +4469,19 @@ msgstr "Версия" msgid "Author(s)" msgstr "Автор(и)" -#: classes/File.php:144 +#: classes/File.php:169 #, 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." msgstr "" -#: classes/File.php:154 +#: classes/File.php:179 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:161 +#: classes/File.php:186 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" @@ -4569,7 +4567,7 @@ msgstr "Проблем при записване на бележката." msgid "Problem saving group inbox." msgstr "Проблем при записване на бележката." -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4602,30 +4600,30 @@ msgstr "Грешка при изтриване на абонамента." msgid "Couldn't delete subscription OMB token." msgstr "Грешка при изтриване на абонамента." -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "Грешка при изтриване на абонамента." -#: classes/User.php:373 +#: classes/User.php:378 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Добре дошли в %1$s, @%2$s!" -#: classes/User_group.php:477 +#: classes/User_group.php:480 msgid "Could not create group." msgstr "Грешка при създаване на групата." -#: classes/User_group.php:486 +#: classes/User_group.php:489 #, fuzzy msgid "Could not set group URI." msgstr "Грешка при създаване на нов абонамент." -#: classes/User_group.php:507 +#: classes/User_group.php:510 #, fuzzy msgid "Could not set group membership." msgstr "Грешка при създаване на нов абонамент." -#: classes/User_group.php:521 +#: classes/User_group.php:524 #, fuzzy msgid "Could not save local group info." msgstr "Грешка при създаване на нов абонамент." @@ -4850,7 +4848,7 @@ msgstr "Табелка" msgid "StatusNet software license" msgstr "Лиценз на програмата StatusNet" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4859,12 +4857,12 @@ msgstr "" "**%%site.name%%** е услуга за микроблогване, предоставена ви от [%%site." "broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** е услуга за микроблогване. " -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4875,41 +4873,41 @@ msgstr "" "достъпна под [GNU Affero General Public License](http://www.fsf.org/" "licensing/licenses/agpl-3.0.html)." -#: lib/action.php:821 +#: lib/action.php:824 msgid "Site content license" msgstr "Лиценз на съдържанието" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "Всички " -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "лиценз." -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "Страниране" -#: lib/action.php:1161 +#: lib/action.php:1164 msgid "After" msgstr "След" -#: lib/action.php:1169 +#: lib/action.php:1172 msgid "Before" msgstr "Преди" @@ -5022,7 +5020,7 @@ msgstr "Настройка на пътищата" msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5127,37 +5125,51 @@ msgstr "Паролата е записана." msgid "Password changing is not allowed" msgstr "Паролата е записана." -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "Резултат от командата" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "Командата е изпълнена" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "Грешка при изпълнение на командата" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." -msgstr "За съжаление тази команда все още не се поддържа." +#: lib/command.php:83 lib/command.php:105 +#, fuzzy +msgid "Notice with that id does not exist" +msgstr "Не е открита бележка с такъв идентификатор." -#: lib/command.php:88 +#: lib/command.php:99 lib/command.php:570 +msgid "User has no last notice" +msgstr "Потребителят няма последна бележка" + +#: lib/command.php:125 #, fuzzy, php-format msgid "Could not find a user with nickname %s" msgstr "Грешка при обновяване на потребител с потвърден email адрес." -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "Грешка при обновяване на потребител с потвърден email адрес." + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "За съжаление тази команда все още не се поддържа." + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" -#: lib/command.php:99 +#: lib/command.php:228 #, php-format msgid "Nudge sent to %s" msgstr "Изпратено е побутване на %s" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5168,198 +5180,196 @@ msgstr "" "Абонати: %2$s\n" "Бележки: %3$s" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -#, fuzzy -msgid "Notice with that id does not exist" -msgstr "Не е открита бележка с такъв идентификатор." - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -msgid "User has no last notice" -msgstr "Потребителят няма последна бележка" - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "Бележката е отбелязана като любима." -#: lib/command.php:217 +#: lib/command.php:317 msgid "You are already a member of that group" msgstr "Вече членувате в тази група." -#: lib/command.php:231 +#: lib/command.php:331 #, fuzzy, php-format msgid "Could not join user %s to group %s" msgstr "Грешка при проследяване — потребителят не е намерен." -#: lib/command.php:236 +#: lib/command.php:336 #, php-format msgid "%s joined group %s" msgstr "%s се присъедини към групата %s" -#: lib/command.php:275 +#: lib/command.php:373 #, fuzzy, php-format msgid "Could not remove user %s to group %s" msgstr "Грешка при проследяване — потребителят не е намерен." -#: lib/command.php:280 +#: lib/command.php:378 #, php-format msgid "%s left group %s" msgstr "%s напусна групата %s" -#: lib/command.php:309 +#: lib/command.php:401 #, php-format msgid "Fullname: %s" msgstr "Пълно име: %s" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Местоположение: %s" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Домашна страница: %s" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "Относно: %s" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, fuzzy, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "" "Съобщението е твърде дълго. Най-много може да е 140 знака, а сте въвели %d." -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "Прякото съобщение до %s е изпратено." -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "Грешка при изпращане на прякото съобщение" -#: lib/command.php:413 +#: lib/command.php:490 msgid "Cannot repeat your own notice" msgstr "Не можете да повтаряте собствена бележка" -#: lib/command.php:418 +#: lib/command.php:495 msgid "Already repeated that notice" msgstr "Вече сте повторили тази бележка." -#: lib/command.php:426 +#: lib/command.php:503 #, php-format msgid "Notice from %s repeated" msgstr "Бележката от %s е повторена" -#: lib/command.php:428 +#: lib/command.php:505 msgid "Error repeating notice." msgstr "Грешка при повтаряне на бележката." -#: lib/command.php:482 +#: lib/command.php:536 #, fuzzy, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "" "Съобщението е твърде дълго. Най-много може да е 140 знака, а сте въвели %d." -#: lib/command.php:491 +#: lib/command.php:545 #, php-format msgid "Reply to %s sent" msgstr "Отговорът до %s е изпратен" -#: lib/command.php:493 +#: lib/command.php:547 msgid "Error saving notice." msgstr "Грешка при записване на бележката." -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "Уточнете името на потребителя, за когото се абонирате." -#: lib/command.php:554 lib/command.php:589 -msgid "No such user" -msgstr "Няма такъв потребител" +#: lib/command.php:602 +#, fuzzy +msgid "Can't subscribe to OMB profiles by command." +msgstr "Не сте абонирани за този профил" -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "Абонирани сте за %s." -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "Уточнете името на потребителя, от когото се отписвате." -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "Отписани сте от %s." -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "Командата все още не се поддържа." -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "Уведомлението е изключено." -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "Грешка при изключване на уведомлението." -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "Уведомлението е включено." -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "Грешка при включване на уведомлението." -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" -#: lib/command.php:692 +#: lib/command.php:735 #, fuzzy, php-format msgid "Unsubscribed %s" msgstr "Отписани сте от %s." -#: lib/command.php:709 +#: lib/command.php:752 msgid "You are not subscribed to anyone." msgstr "Не сте абонирани за никого." -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Вече сте абонирани за следните потребители:" msgstr[1] "Вече сте абонирани за следните потребители:" -#: lib/command.php:731 +#: lib/command.php:774 msgid "No one is subscribed to you." msgstr "Никой не е абониран за вас." -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Грешка при абониране на друг потребител за вас." msgstr[1] "Грешка при абониране на друг потребител за вас." -#: lib/command.php:753 +#: lib/command.php:796 msgid "You are not a member of any groups." msgstr "Не членувате в нито една група." -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Не членувате в тази група." msgstr[1] "Не членувате в тази група." -#: lib/command.php:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5593,50 +5603,50 @@ msgstr "Етикети в бележките към групата %s" msgid "This page is not available in a media type you accept" msgstr "Страницата не е достъпна във вида медия, който приемате" -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "Форматът на файла с изображението не се поддържа." + +#: lib/imagefile.php:90 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Може да качите лого за групата ви." -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Частично качване на файла." -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Системна грешка при качване на файл." -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Файлът не е изображение или е повреден." -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "Форматът на файла с изображението не се поддържа." - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 #, fuzzy msgid "Lost our file." msgstr "Няма такава бележка." -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "Неподдържан вид файл" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "MB" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "kB" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, fuzzy, php-format msgid "Unknown inbox source %d." msgstr "Непознат език \"%s\"" @@ -5841,7 +5851,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 msgid "from" msgstr "от" @@ -5995,23 +6005,23 @@ msgstr "З" msgid "at" msgstr "" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 msgid "in context" msgstr "в контекст" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 msgid "Repeated by" msgstr "Повторено от" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "Отговаряне на тази бележка" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 msgid "Reply" msgstr "Отговор" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 msgid "Notice repeated" msgstr "Бележката е повторена." @@ -6333,47 +6343,47 @@ msgctxt "role" msgid "Moderator" msgstr "" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "преди няколко секунди" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "преди около минута" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "преди около %d минути" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "преди около час" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "преди около %d часа" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "преди около ден" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "преди около %d дни" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "преди около месец" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "преди около %d месеца" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "преди около година" @@ -6387,7 +6397,7 @@ msgstr "%s не е допустим цвят!" msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "%s не е допустим цвят! Използвайте 3 или 6 шестнадесетични знака." -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, fuzzy, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "" diff --git a/locale/br/LC_MESSAGES/statusnet.po b/locale/br/LC_MESSAGES/statusnet.po index 2197b9e74..613ecff7b 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-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:49:25+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:42:13+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: br\n" "X-Message-Group: out-statusnet\n" @@ -93,7 +93,7 @@ msgstr "N'eus ket eus ar bajenn-se" #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -102,10 +102,8 @@ msgstr "N'eus ket eus ar bajenn-se" #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "N'eus ket eus an implijer-se." @@ -198,12 +196,12 @@ msgstr "Hizivadennoù %1$s ha mignoned e %2$s!" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 msgid "API method not found." msgstr "N'eo ket bet kavet an hentenn API !" @@ -332,7 +330,7 @@ msgstr "N'eo bet kavet statud ebet gant an ID-mañ." msgid "This status is already a favorite." msgstr "Ur pennroll eo dija an ali-mañ." -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "Diposupl eo krouiñ ar pennroll-mañ." @@ -450,7 +448,7 @@ msgstr "N'eo ket bet kavet ar strollad" msgid "You are already a member of that group." msgstr "Un ezel eus ar strollad-mañ eo dija." -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "Stanket oc'h bet eus ar strollad-mañ gant ur merour." @@ -500,7 +498,7 @@ msgstr "Fichenn direizh." #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -635,12 +633,12 @@ msgstr "" msgid "Unsupported format." msgstr "Diembreget eo ar furmad-se." -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / Pennroll %2$s" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s statud pennroll da %2$s / %2$s." @@ -650,7 +648,7 @@ msgstr "%1$s statud pennroll da %2$s / %2$s." msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Hizivadennoù a veneg %2$s" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" @@ -660,7 +658,7 @@ msgstr "" msgid "%s public timeline" msgstr "Oberezhioù publik %s" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s statud an holl !" @@ -675,12 +673,12 @@ msgstr "Adkemeret evit %s" msgid "Repeats of %s" msgstr "Adkemeret eus %s" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Alioù merket gant %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "" @@ -740,7 +738,7 @@ msgid "Preview" msgstr "Rakwelet" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "Diverkañ" @@ -820,8 +818,8 @@ msgstr "Diposubl eo enrollañ an titouroù stankañ." #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 msgid "No such group." msgstr "N'eus ket eus ar strollad-se." @@ -923,7 +921,7 @@ msgstr "N'oc'h ket perc'henn ar poellad-se." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "" @@ -979,7 +977,7 @@ msgstr "Ha sur oc'h ho peus c'hoant dilemel an ali-mañ ?" msgid "Do not delete this notice" msgstr "Arabat dilemel an ali-mañ" -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "Dilemel an ali-mañ" @@ -1228,7 +1226,7 @@ msgstr "re hir eo an deskrivadur (%d arouezenn d'ar muiañ)." msgid "Could not update group." msgstr "Diposubl eo hizivaat ar strollad." -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 msgid "Could not create aliases." msgstr "Diposubl eo krouiñ an aliasoù." @@ -1891,7 +1889,7 @@ msgstr "Pediñ implijerien nevez" msgid "You are already subscribed to these users:" msgstr "Koumanantet oc'h dija d'an implijerien-mañ :" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" @@ -1993,7 +1991,7 @@ msgstr "%1$s a zo bet er strollad %2$s" msgid "You must be logged in to leave a group." msgstr "Ret eo deoc'h bezañ kevreet evit kuitaat ur strollad" -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 msgid "You are not a member of that group." msgstr "N'oc'h ket un ezel eus ar strollad-mañ." @@ -2110,12 +2108,12 @@ msgstr "Implijit ar furmskrid-mañ a-benn krouiñ ur strollad nevez." msgid "New message" msgstr "Kemennadenn nevez" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "Ne c'helloc'h ket kas kemennadennoù d'an implijer-mañ." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "Goullo eo !" @@ -2123,7 +2121,7 @@ msgstr "Goullo eo !" msgid "No recipient specified." msgstr "N'o peus ket lakaet a resever." -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" @@ -2139,7 +2137,7 @@ msgstr "Kaset eo bet ar gemenadenn" msgid "Direct message to %s sent." msgstr "Kaset eo bet da %s ar gemennadenn war-eeun." -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "Fazi Ajax" @@ -2263,8 +2261,8 @@ msgstr "seurt an danvez " msgid "Only " msgstr "Hepken " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "" @@ -2395,7 +2393,7 @@ msgstr "ger-termen kozh amreizh" msgid "Error saving user; invalid." msgstr "Ur fazi 'zo bet e-pad enolladenn an implijer ; diwiriek." -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "Dibosupl eo enrollañ ar ger-tremen nevez." @@ -2872,7 +2870,7 @@ msgstr "Adderaouekaat ar ger-tremen" msgid "Recover password" msgstr "Adtapout ar ger-tremen" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "Goulennet eo an adtapout gerioù-tremen" @@ -2892,41 +2890,41 @@ msgstr "Adderaouekaat" msgid "Enter a nickname or email address." msgstr "Lakait ul lesanv pe ur chomlec'h postel." -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "" -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "" -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "" -#: actions/recoverpassword.php:325 +#: 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:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "" -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "" -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "" -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "" -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "" @@ -3101,7 +3099,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:674 +#: actions/repeat.php:114 lib/noticelist.php:676 msgid "Repeated" msgstr "Adlavaret" @@ -4271,19 +4269,19 @@ msgstr "Stumm" msgid "Author(s)" msgstr "Aozer(ien)" -#: classes/File.php:144 +#: classes/File.php:169 #, 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." msgstr "" -#: classes/File.php:154 +#: classes/File.php:179 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:161 +#: classes/File.php:186 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" @@ -4357,7 +4355,7 @@ msgstr "" msgid "Problem saving group inbox." msgstr "" -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4387,28 +4385,28 @@ msgstr "" msgid "Couldn't delete subscription OMB token." msgstr "Diposubl eo dilemel ar postel kadarnadur." -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "" -#: classes/User.php:373 +#: classes/User.php:378 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:477 +#: classes/User_group.php:480 msgid "Could not create group." msgstr "" -#: classes/User_group.php:486 +#: classes/User_group.php:489 msgid "Could not set group URI." msgstr "" -#: classes/User_group.php:507 +#: classes/User_group.php:510 msgid "Could not set group membership." msgstr "" -#: classes/User_group.php:521 +#: classes/User_group.php:524 msgid "Could not save local group info." msgstr "" @@ -4612,19 +4610,19 @@ msgstr "" msgid "StatusNet software license" msgstr "" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%). " msgstr "" -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "" -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4632,41 +4630,41 @@ msgid "" "org/licensing/licenses/agpl-3.0.html)." msgstr "" -#: lib/action.php:821 +#: lib/action.php:824 msgid "Site content license" msgstr "" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "Pep tra " -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "aotre implijout." -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "Pajennadur" -#: lib/action.php:1161 +#: lib/action.php:1164 msgid "After" msgstr "War-lerc'h" -#: lib/action.php:1169 +#: lib/action.php:1172 msgid "Before" msgstr "Kent" @@ -4769,7 +4767,7 @@ msgstr "" msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4867,37 +4865,50 @@ msgstr "" msgid "Password changing is not allowed" msgstr "" -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." +#: lib/command.php:83 lib/command.php:105 +msgid "Notice with that id does not exist" msgstr "" -#: lib/command.php:88 +#: lib/command.php:99 lib/command.php:570 +msgid "User has no last notice" +msgstr "" + +#: lib/command.php:125 #, php-format msgid "Could not find a user with nickname %s" msgstr "" -#: lib/command.php:92 +#: lib/command.php:143 +#, php-format +msgid "Could not find a local user with nickname %s" +msgstr "" + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "" + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" -#: lib/command.php:99 +#: lib/command.php:228 #, php-format msgid "Nudge sent to %s" msgstr "" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -4905,198 +4916,196 @@ msgid "" "Notices: %3$s" msgstr "" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -msgid "Notice with that id does not exist" -msgstr "" - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -msgid "User has no last notice" -msgstr "" - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "" -#: lib/command.php:217 +#: lib/command.php:317 msgid "You are already a member of that group" msgstr "" -#: lib/command.php:231 +#: lib/command.php:331 #, php-format msgid "Could not join user %s to group %s" msgstr "" -#: lib/command.php:236 +#: lib/command.php:336 #, php-format msgid "%s joined group %s" msgstr "%s zo emezelet er strollad %s" -#: lib/command.php:275 +#: lib/command.php:373 #, php-format msgid "Could not remove user %s to group %s" msgstr "" -#: lib/command.php:280 +#: lib/command.php:378 #, php-format msgid "%s left group %s" msgstr "%s {{Gender:.|en|he}} deus kuitaet ar strollad %s" -#: lib/command.php:309 +#: lib/command.php:401 #, php-format msgid "Fullname: %s" msgstr "Anv klok : %s" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "Diwar-benn : %s" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "" -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "" -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "" -#: lib/command.php:413 +#: lib/command.php:490 msgid "Cannot repeat your own notice" msgstr "" -#: lib/command.php:418 +#: lib/command.php:495 msgid "Already repeated that notice" msgstr "" -#: lib/command.php:426 +#: lib/command.php:503 #, php-format msgid "Notice from %s repeated" msgstr "" -#: lib/command.php:428 +#: lib/command.php:505 msgid "Error repeating notice." msgstr "" -#: lib/command.php:482 +#: lib/command.php:536 #, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "" -#: lib/command.php:491 +#: lib/command.php:545 #, php-format msgid "Reply to %s sent" msgstr "" -#: lib/command.php:493 +#: lib/command.php:547 msgid "Error saving notice." msgstr "" -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "" -#: lib/command.php:554 lib/command.php:589 -msgid "No such user" +#: lib/command.php:602 +msgid "Can't subscribe to OMB profiles by command." msgstr "" -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "" -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "" -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "" -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "" -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "" -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "" -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" -#: lib/command.php:692 +#: lib/command.php:735 #, php-format msgid "Unsubscribed %s" msgstr "" -#: lib/command.php:709 +#: lib/command.php:752 msgid "You are not subscribed to anyone." msgstr "" -#: lib/command.php:711 +#: lib/command.php:754 #, 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:731 +#: lib/command.php:774 msgid "No one is subscribed to you." msgstr "" -#: lib/command.php:733 +#: lib/command.php:776 #, 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:753 +#: lib/command.php:796 msgid "You are not a member of any groups." msgstr "" -#: lib/command.php:755 +#: lib/command.php:798 #, 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:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5324,49 +5333,49 @@ msgstr "" msgid "This page is not available in a media type you accept" msgstr "" -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "" + +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "" -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "" -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "" -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "" -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "" - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 msgid "Lost our file." msgstr "" -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "Mo" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "Ko" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "[%s]" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, php-format msgid "Unknown inbox source %d." msgstr "" @@ -5561,7 +5570,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 msgid "from" msgstr "eus" @@ -5711,23 +5720,23 @@ msgstr "K" msgid "at" msgstr "e" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 msgid "in context" msgstr "" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 msgid "Repeated by" msgstr "" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 msgid "Reply" msgstr "Respont" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 msgid "Notice repeated" msgstr "" @@ -6040,47 +6049,47 @@ msgctxt "role" msgid "Moderator" msgstr "Habaskaat" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "un nebeud eilennoù zo" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "1 vunutenn zo well-wazh" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "%d munutenn zo well-wazh" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "1 eurvezh zo well-wazh" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "%d eurvezh zo well-wazh" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "1 devezh zo well-wazh" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "%d devezh zo well-wazh" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "miz zo well-wazh" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "%d miz zo well-wazh" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "bloaz zo well-wazh" @@ -6094,7 +6103,7 @@ msgstr "" msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "" -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "" diff --git a/locale/ca/LC_MESSAGES/statusnet.po b/locale/ca/LC_MESSAGES/statusnet.po index bd7c5cd5a..80c46e2bb 100644 --- a/locale/ca/LC_MESSAGES/statusnet.po +++ b/locale/ca/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:49:29+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:42:16+0000\n" "Language-Team: Catalan\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ca\n" "X-Message-Group: out-statusnet\n" @@ -101,7 +101,7 @@ msgstr "No existeix la pàgina." #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -110,10 +110,8 @@ msgstr "No existeix la pàgina." #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "No existeix aquest usuari." @@ -208,12 +206,12 @@ msgstr "Actualitzacions de %1$s i amics a %2$s!" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "No s'ha trobat el mètode API!" @@ -349,7 +347,7 @@ msgstr "No s'ha trobat cap estatus amb aquesta ID." msgid "This status is already a favorite." msgstr "Aquest estat ja és un preferit!" -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "No es pot crear favorit." @@ -473,7 +471,7 @@ msgstr "No s'ha trobat el grup!" msgid "You are already a member of that group." msgstr "Ja sou membre del grup." -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "L'administrador us ha blocat del grup." @@ -524,7 +522,7 @@ msgstr "Mida invàlida." #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -668,12 +666,12 @@ msgstr "" msgid "Unsupported format." msgstr "El format no està implementat." -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, fuzzy, php-format msgid "%1$s / Favorites from %2$s" msgstr "%s / Preferits de %s" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, fuzzy, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%s actualitzacions favorites per %s / %s." @@ -683,7 +681,7 @@ msgstr "%s actualitzacions favorites per %s / %s." msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Notificacions contestant a %2$s" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s notificacions que responen a notificacions de %2$s / %3$s." @@ -693,7 +691,7 @@ msgstr "%1$s notificacions que responen a notificacions de %2$s / %3$s." msgid "%s public timeline" msgstr "%s línia temporal pública" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s notificacions de tots!" @@ -708,12 +706,12 @@ msgstr "Respostes a %s" msgid "Repeats of %s" msgstr "Repeticions de %s" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Aviso etiquetats amb %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Actualitzacions etiquetades amb %1$s el %2$s!" @@ -774,7 +772,7 @@ msgid "Preview" msgstr "Vista prèvia" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "Suprimeix" @@ -856,8 +854,8 @@ msgstr "Error al guardar la informació del block." #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 msgid "No such group." msgstr "No s'ha trobat el grup." @@ -963,7 +961,7 @@ msgstr "No sou un membre del grup." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "Ha ocorregut algun problema amb la teva sessió." @@ -1026,7 +1024,7 @@ msgstr "N'estàs segur que vols eliminar aquesta notificació?" msgid "Do not delete this notice" msgstr "No es pot esborrar la notificació." -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "Eliminar aquesta nota" @@ -1288,7 +1286,7 @@ msgstr "la descripció és massa llarga (màx. %d caràcters)." msgid "Could not update group." msgstr "No s'ha pogut actualitzar el grup." -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 msgid "Could not create aliases." msgstr "No s'han pogut crear els àlies." @@ -1991,7 +1989,7 @@ msgstr "Invitar nous usuaris" msgid "You are already subscribed to these users:" msgstr "Ja estàs subscrit a aquests usuaris:" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" @@ -2124,7 +2122,7 @@ msgstr "%1$s s'ha unit al grup %2$s" msgid "You must be logged in to leave a group." msgstr "Has d'haver entrat per a poder marxar d'un grup." -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 msgid "You are not a member of that group." msgstr "No ets membre d'aquest grup." @@ -2245,12 +2243,12 @@ msgstr "Utilitza aquest formulari per crear un nou grup." msgid "New message" msgstr "Nou missatge" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "No podeu enviar un misssatge a aquest usuari." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "Cap contingut!" @@ -2258,7 +2256,7 @@ msgstr "Cap contingut!" msgid "No recipient specified." msgstr "No has especificat el destinatari." -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "No t'enviïs missatges a tu mateix, simplement dir-te això." @@ -2272,7 +2270,7 @@ msgstr "S'ha enviat el missatge" msgid "Direct message to %s sent." msgstr "S'ha enviat un missatge directe a %s." -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "Ajax Error" @@ -2402,8 +2400,8 @@ msgstr "tipus de contingut " msgid "Only " msgstr "Només " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "Format de data no suportat." @@ -2541,7 +2539,7 @@ msgstr "Contrasenya antiga incorrecta" msgid "Error saving user; invalid." msgstr "Error en guardar usuari; invàlid." -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "No es pot guardar la nova contrasenya." @@ -3040,7 +3038,7 @@ msgstr "Restablir contrasenya" msgid "Recover password" msgstr "Recuperar contrasenya" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "Recuperació de contrasenya sol·licitada" @@ -3060,19 +3058,19 @@ msgstr "Restablir" msgid "Enter a nickname or email address." msgstr "Escriu un sobrenom o una adreça de correu electrònic." -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "No hi ha cap usuari amb aquesta direcció o usuari." -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "Cap adreça de correu electrònic registrada per aquest usuari." -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "Error en guardar confirmació de l'adreça." -#: actions/recoverpassword.php:325 +#: actions/recoverpassword.php:338 msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." @@ -3080,23 +3078,23 @@ msgstr "" "S'han enviat instruccions per a recuperar la teva contrasenya a l'adreça de " "correu electrònic registrada." -#: actions/recoverpassword.php:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "Restabliment de contrasenya inesperat." -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "La contrasenya ha de tenir 6 o més caràcters." -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "La contrasenya i la confirmació no coincideixen." -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "Error en configurar l'usuari." -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "Nova contrasenya guardada correctament. Has iniciat una sessió." @@ -3303,7 +3301,7 @@ msgstr "No pots registrar-te si no estàs d'acord amb la llicència." msgid "You already repeated that notice." msgstr "Ja heu blocat l'usuari." -#: actions/repeat.php:114 lib/noticelist.php:674 +#: actions/repeat.php:114 lib/noticelist.php:676 msgid "Repeated" msgstr "Repetit" @@ -4537,19 +4535,19 @@ msgstr "Sessions" msgid "Author(s)" msgstr "Autoria" -#: classes/File.php:144 +#: classes/File.php:169 #, 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." msgstr "" -#: classes/File.php:154 +#: classes/File.php:179 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:161 +#: classes/File.php:186 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" @@ -4634,7 +4632,7 @@ msgstr "Problema en guardar l'avís." msgid "Problem saving group inbox." msgstr "Problema en guardar l'avís." -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4666,29 +4664,29 @@ msgstr "No s'ha pogut eliminar la subscripció." msgid "Couldn't delete subscription OMB token." msgstr "No s'ha pogut eliminar la subscripció." -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "No s'ha pogut eliminar la subscripció." -#: classes/User.php:373 +#: classes/User.php:378 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Us donem la benvinguda a %1$s, @%2$s!" -#: classes/User_group.php:477 +#: classes/User_group.php:480 msgid "Could not create group." msgstr "No s'ha pogut crear el grup." -#: classes/User_group.php:486 +#: classes/User_group.php:489 #, fuzzy msgid "Could not set group URI." msgstr "No s'ha pogut establir la pertinença d'aquest grup." -#: classes/User_group.php:507 +#: classes/User_group.php:510 msgid "Could not set group membership." msgstr "No s'ha pogut establir la pertinença d'aquest grup." -#: classes/User_group.php:521 +#: classes/User_group.php:524 #, fuzzy msgid "Could not save local group info." msgstr "No s'ha pogut guardar la subscripció." @@ -4911,7 +4909,7 @@ msgstr "Insígnia" msgid "StatusNet software license" msgstr "Llicència del programari StatusNet" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4920,12 +4918,12 @@ msgstr "" "**%%site.name%%** és un servei de microblogging de [%%site.broughtby%%**](%%" "site.broughtbyurl%%)." -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** és un servei de microblogging." -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4936,41 +4934,41 @@ msgstr "" "%s, disponible sota la [GNU Affero General Public License](http://www.fsf." "org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:821 +#: lib/action.php:824 msgid "Site content license" msgstr "Llicència de contingut del lloc" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "Tot " -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "llicència." -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "Paginació" -#: lib/action.php:1161 +#: lib/action.php:1164 msgid "After" msgstr "Posteriors" -#: lib/action.php:1169 +#: lib/action.php:1172 msgid "Before" msgstr "Anteriors" @@ -5083,7 +5081,7 @@ msgstr "Configuració dels camins" msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5187,37 +5185,51 @@ msgstr "El canvi de contrasenya ha fallat" msgid "Password changing is not allowed" msgstr "Contrasenya canviada." -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "Resultats de les comandes" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "Comanda completada" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "Comanda fallida" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." -msgstr "Perdona, aquesta comanda no està implementada." +#: lib/command.php:83 lib/command.php:105 +#, fuzzy +msgid "Notice with that id does not exist" +msgstr "No hi ha cap perfil amb aquesta id." -#: lib/command.php:88 +#: lib/command.php:99 lib/command.php:570 +msgid "User has no last notice" +msgstr "L'usuari no té última nota" + +#: lib/command.php:125 #, fuzzy, php-format msgid "Could not find a user with nickname %s" msgstr "No es pot actualitzar l'usuari amb el correu electrònic confirmat" -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "No es pot actualitzar l'usuari amb el correu electrònic confirmat" + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "Perdona, aquesta comanda no està implementada." + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" -#: lib/command.php:99 +#: lib/command.php:228 #, fuzzy, php-format msgid "Nudge sent to %s" msgstr "Reclamació enviada" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5225,202 +5237,200 @@ msgid "" "Notices: %3$s" msgstr "" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -#, fuzzy -msgid "Notice with that id does not exist" -msgstr "No hi ha cap perfil amb aquesta id." - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -msgid "User has no last notice" -msgstr "L'usuari no té última nota" - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "Nota marcada com a favorita." -#: lib/command.php:217 +#: lib/command.php:317 msgid "You are already a member of that group" msgstr "Ja sou membre del grup." -#: lib/command.php:231 +#: lib/command.php:331 #, php-format msgid "Could not join user %s to group %s" msgstr "No s'ha pogut afegir l'usuari %s al grup %s." -#: lib/command.php:236 +#: lib/command.php:336 #, php-format msgid "%s joined group %s" msgstr "%s s'ha pogut afegir al grup %s" -#: lib/command.php:275 +#: lib/command.php:373 #, php-format msgid "Could not remove user %s to group %s" msgstr "No s'ha pogut eliminar l'usuari %s del grup %s" -#: lib/command.php:280 +#: lib/command.php:378 #, php-format msgid "%s left group %s" msgstr "%s ha abandonat el grup %s" -#: lib/command.php:309 +#: lib/command.php:401 #, php-format msgid "Fullname: %s" msgstr "Nom complet: %s" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Localització: %s" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Pàgina web: %s" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "Sobre tu: %s" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, fuzzy, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "Missatge massa llarg - màxim és 140 caràcters, tu has enviat %d" -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "Missatge directe per a %s enviat" -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "Error al enviar el missatge directe." -#: lib/command.php:413 +#: lib/command.php:490 #, fuzzy msgid "Cannot repeat your own notice" msgstr "No es poden posar en on les notificacions." -#: lib/command.php:418 +#: lib/command.php:495 #, fuzzy msgid "Already repeated that notice" msgstr "Eliminar aquesta nota" -#: lib/command.php:426 +#: lib/command.php:503 #, fuzzy, php-format msgid "Notice from %s repeated" msgstr "Notificació publicada" -#: lib/command.php:428 +#: lib/command.php:505 #, fuzzy msgid "Error repeating notice." msgstr "Problema en guardar l'avís." -#: lib/command.php:482 +#: lib/command.php:536 #, fuzzy, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "Missatge massa llarg - màxim és 140 caràcters, tu has enviat %d" -#: lib/command.php:491 +#: lib/command.php:545 #, php-format msgid "Reply to %s sent" msgstr "S'ha enviat la resposta a %s" -#: lib/command.php:493 +#: lib/command.php:547 #, fuzzy msgid "Error saving notice." msgstr "Problema en guardar l'avís." -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "Especifica el nom de l'usuari a que vols subscriure't" -#: lib/command.php:554 lib/command.php:589 -msgid "No such user" -msgstr "No existeix aquest usuari." +#: lib/command.php:602 +#, fuzzy +msgid "Can't subscribe to OMB profiles by command." +msgstr "No estàs subscrit a aquest perfil." -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "Subscrit a %s" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "Especifica el nom de l'usuari del que vols deixar d'estar subscrit" -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "Has deixat d'estar subscrit a %s" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "Comanda encara no implementada." -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "Notificacions off." -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "No es poden posar en off les notificacions." -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "Notificacions on." -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "No es poden posar en on les notificacions." -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" -#: lib/command.php:692 +#: lib/command.php:735 #, fuzzy, php-format msgid "Unsubscribed %s" msgstr "Has deixat d'estar subscrit a %s" -#: lib/command.php:709 +#: lib/command.php:752 #, fuzzy msgid "You are not subscribed to anyone." msgstr "No estàs subscrit a aquest perfil." -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Ja estàs subscrit a aquests usuaris:" msgstr[1] "Ja estàs subscrit a aquests usuaris:" -#: lib/command.php:731 +#: lib/command.php:774 #, fuzzy msgid "No one is subscribed to you." msgstr "No pots subscriure a un altre a tu mateix." -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "No pots subscriure a un altre a tu mateix." msgstr[1] "No pots subscriure a un altre a tu mateix." -#: lib/command.php:753 +#: lib/command.php:796 msgid "You are not a member of any groups." msgstr "No sou membre de cap grup." -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Sou un membre d'aquest grup:" msgstr[1] "Sou un membre d'aquests grups:" -#: lib/command.php:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5650,49 +5660,49 @@ msgstr "Etiquetes en les notificacions del grup %s" msgid "This page is not available in a media type you accept" msgstr "Aquesta pàgina no està disponible en un tipus de mèdia que acceptis." -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "Format d'imatge no suportat." + +#: lib/imagefile.php:90 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Pots pujar una imatge de logo per al grup." -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Càrrega parcial." -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Error del sistema en pujar el fitxer." -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "No és una imatge o és un fitxer corrupte." -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "Format d'imatge no suportat." - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 msgid "Lost our file." msgstr "Hem perdut el nostre arxiu." -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "Tipus de fitxer desconegut" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "MB" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "kB" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, fuzzy, php-format msgid "Unknown inbox source %d." msgstr "Llengua desconeguda «%s»" @@ -5903,7 +5913,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 msgid "from" msgstr "de" @@ -6058,23 +6068,23 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 msgid "in context" msgstr "en context" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 msgid "Repeated by" msgstr "Repetit per" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "respondre a aquesta nota" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 msgid "Reply" msgstr "Respon" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 #, fuzzy msgid "Notice repeated" msgstr "Notificació publicada" @@ -6395,47 +6405,47 @@ msgctxt "role" msgid "Moderator" msgstr "Modera" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "fa pocs segons" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "fa un minut" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "fa %d minuts" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "fa una hora" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "fa %d hores" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "fa un dia" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "fa %d dies" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "fa un mes" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "fa %d mesos" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "fa un any" @@ -6449,7 +6459,7 @@ msgstr "%s no és un color vàlid!" msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "%s no és un color vàlid! Feu servir 3 o 6 caràcters hexadecimals." -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, fuzzy, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "Missatge massa llarg - màxim és 140 caràcters, tu has enviat %d" diff --git a/locale/cs/LC_MESSAGES/statusnet.po b/locale/cs/LC_MESSAGES/statusnet.po index a48ec5885..74a2f9cc9 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-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:49:32+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:42:19+0000\n" "Language-Team: Czech\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: cs\n" "X-Message-Group: out-statusnet\n" @@ -101,7 +101,7 @@ msgstr "Žádné takové oznámení." #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -110,10 +110,8 @@ msgstr "Žádné takové oznámení." #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Žádný takový uživatel." @@ -207,12 +205,12 @@ msgstr "" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "Potvrzující kód nebyl nalezen" @@ -345,7 +343,7 @@ msgstr "" msgid "This status is already a favorite." msgstr "Toto je již vaše Jabber" -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "" @@ -468,7 +466,7 @@ msgstr "Žádný požadavek nebyl nalezen!" msgid "You are already a member of that group." msgstr "Již jste přihlášen" -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "" @@ -520,7 +518,7 @@ msgstr "Neplatná velikost" #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -664,12 +662,12 @@ msgstr "" msgid "Unsupported format." msgstr "Nepodporovaný formát obrázku." -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, fuzzy, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1 statusů na %2" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, fuzzy, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "Mikroblog od %s" @@ -679,7 +677,7 @@ msgstr "Mikroblog od %s" msgid "%1$s / Updates mentioning %2$s" msgstr "%1 statusů na %2" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" @@ -689,7 +687,7 @@ msgstr "" msgid "%s public timeline" msgstr "" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "" @@ -704,12 +702,12 @@ msgstr "Odpovědi na %s" msgid "Repeats of %s" msgstr "Odpovědi na %s" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Mikroblog od %s" @@ -772,7 +770,7 @@ msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "Odstranit" @@ -855,8 +853,8 @@ msgstr "" #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 #, fuzzy msgid "No such group." msgstr "Žádné takové oznámení." @@ -965,7 +963,7 @@ msgstr "Neodeslal jste nám profil" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "" @@ -1025,7 +1023,7 @@ msgstr "" msgid "Do not delete this notice" msgstr "Žádné takové oznámení." -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "Odstranit toto oznámení" @@ -1291,7 +1289,7 @@ msgstr "Text je příliš dlouhý (maximální délka je 140 zanků)" msgid "Could not update group." msgstr "Nelze aktualizovat uživatele" -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 #, fuzzy msgid "Could not create aliases." msgstr "Nelze uložin informace o obrázku" @@ -1998,7 +1996,7 @@ msgstr "" msgid "You are already subscribed to these users:" msgstr "" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "" @@ -2100,7 +2098,7 @@ msgstr "" msgid "You must be logged in to leave a group." msgstr "" -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 #, fuzzy msgid "You are not a member of that group." msgstr "Neodeslal jste nám profil" @@ -2216,12 +2214,12 @@ msgstr "" msgid "New message" msgstr "" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "" -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "Žádný obsah!" @@ -2229,7 +2227,7 @@ msgstr "Žádný obsah!" msgid "No recipient specified." msgstr "" -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" @@ -2243,7 +2241,7 @@ msgstr "" msgid "Direct message to %s sent." msgstr "" -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "" @@ -2372,8 +2370,8 @@ msgstr "Připojit" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "" @@ -2513,7 +2511,7 @@ msgstr "Neplatné heslo" msgid "Error saving user; invalid." msgstr "Chyba při ukládaní uživatele; neplatný" -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "Nelze uložit nové heslo" @@ -3011,7 +3009,7 @@ msgstr "Resetovat heslo" msgid "Recover password" msgstr "Obnovit" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "Žádost o obnovu hesla" @@ -3031,19 +3029,19 @@ msgstr "Reset" msgid "Enter a nickname or email address." msgstr "Zadej přezdívku nebo emailovou adresu" -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "" -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "Žádný registrovaný email pro tohoto uživatele." -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "Chyba při ukládání potvrzení adresy" -#: actions/recoverpassword.php:325 +#: actions/recoverpassword.php:338 msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." @@ -3051,23 +3049,23 @@ msgstr "" "Návod jak obnovit heslo byl odeslát na vaší emailovou adresu zaregistrovanou " "u vašeho účtu." -#: actions/recoverpassword.php:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "Nečekané resetování hesla." -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "Heslo musí být alespoň 6 znaků dlouhé" -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Heslo a potvrzení nesouhlasí" -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "Chyba nastavení uživatele" -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "Nové heslo bylo uloženo. Nyní jste přihlášen." @@ -3255,7 +3253,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:674 +#: actions/repeat.php:114 lib/noticelist.php:676 #, fuzzy msgid "Repeated" msgstr "Vytvořit" @@ -4480,19 +4478,19 @@ msgstr "Osobní" msgid "Author(s)" msgstr "" -#: classes/File.php:144 +#: classes/File.php:169 #, 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." msgstr "" -#: classes/File.php:154 +#: classes/File.php:179 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:161 +#: classes/File.php:186 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" @@ -4573,7 +4571,7 @@ msgstr "Problém při ukládání sdělení" msgid "Problem saving group inbox." msgstr "Problém při ukládání sdělení" -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4606,31 +4604,31 @@ msgstr "Nelze smazat odebírání" msgid "Couldn't delete subscription OMB token." msgstr "Nelze smazat odebírání" -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "Nelze smazat odebírání" -#: classes/User.php:373 +#: classes/User.php:378 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:477 +#: classes/User_group.php:480 #, fuzzy msgid "Could not create group." msgstr "Nelze uložin informace o obrázku" -#: classes/User_group.php:486 +#: classes/User_group.php:489 #, fuzzy msgid "Could not set group URI." msgstr "Nelze vytvořit odebírat" -#: classes/User_group.php:507 +#: classes/User_group.php:510 #, fuzzy msgid "Could not set group membership." msgstr "Nelze vytvořit odebírat" -#: classes/User_group.php:521 +#: classes/User_group.php:524 #, fuzzy msgid "Could not save local group info." msgstr "Nelze vytvořit odebírat" @@ -4852,7 +4850,7 @@ msgstr "" msgid "StatusNet software license" msgstr "" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4861,12 +4859,12 @@ msgstr "" "**%%site.name%%** je služba microblogů, kterou pro vás poskytuje [%%site." "broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** je služba mikroblogů." -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4877,43 +4875,43 @@ msgstr "" "dostupná pod [GNU Affero General Public License](http://www.fsf.org/" "licensing/licenses/agpl-3.0.html)." -#: lib/action.php:821 +#: lib/action.php:824 #, fuzzy msgid "Site content license" msgstr "Nové sdělení" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "" -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "" -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "" -#: lib/action.php:1161 +#: lib/action.php:1164 #, fuzzy msgid "After" msgstr "« Novější" -#: lib/action.php:1169 +#: lib/action.php:1172 #, fuzzy msgid "Before" msgstr "Starší »" @@ -5026,7 +5024,7 @@ msgstr "Potvrzení emailové adresy" msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5131,37 +5129,52 @@ msgstr "Heslo uloženo" msgid "Password changing is not allowed" msgstr "Heslo uloženo" -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." -msgstr "" +#: lib/command.php:83 lib/command.php:105 +#, fuzzy +msgid "Notice with that id does not exist" +msgstr "Vzdálený profil s nesouhlasícím profilem" -#: lib/command.php:88 +#: lib/command.php:99 lib/command.php:570 +#, fuzzy +msgid "User has no last notice" +msgstr "Uživatel nemá profil." + +#: lib/command.php:125 #, php-format msgid "Could not find a user with nickname %s" msgstr "Nelze aktualizovat uživatele" -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "Nelze aktualizovat uživatele" + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "" + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" -#: lib/command.php:99 +#: lib/command.php:228 #, fuzzy, php-format msgid "Nudge sent to %s" msgstr "Odpovědi na %s" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5169,209 +5182,205 @@ msgid "" "Notices: %3$s" msgstr "" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -#, fuzzy -msgid "Notice with that id does not exist" -msgstr "Vzdálený profil s nesouhlasícím profilem" - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -#, fuzzy -msgid "User has no last notice" -msgstr "Uživatel nemá profil." - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "" -#: lib/command.php:217 +#: lib/command.php:317 #, fuzzy msgid "You are already a member of that group" msgstr "Již jste přihlášen" -#: lib/command.php:231 +#: lib/command.php:331 #, fuzzy, php-format msgid "Could not join user %s to group %s" msgstr "Nelze přesměrovat na server: %s" -#: lib/command.php:236 +#: lib/command.php:336 #, fuzzy, php-format msgid "%s joined group %s" msgstr "%1 statusů na %2" -#: lib/command.php:275 +#: lib/command.php:373 #, fuzzy, php-format msgid "Could not remove user %s to group %s" msgstr "Nelze vytvořit OpenID z: %s" -#: lib/command.php:280 +#: lib/command.php:378 #, fuzzy, php-format msgid "%s left group %s" msgstr "%1 statusů na %2" -#: lib/command.php:309 +#: lib/command.php:401 #, fuzzy, php-format msgid "Fullname: %s" msgstr "Celé jméno" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "" -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "" -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "" -#: lib/command.php:413 +#: lib/command.php:490 #, fuzzy msgid "Cannot repeat your own notice" msgstr "Nemůžete se registrovat, pokud nesouhlasíte s licencí." -#: lib/command.php:418 +#: lib/command.php:495 #, fuzzy msgid "Already repeated that notice" msgstr "Odstranit toto oznámení" -#: lib/command.php:426 +#: lib/command.php:503 #, fuzzy, php-format msgid "Notice from %s repeated" msgstr "Sdělení" -#: lib/command.php:428 +#: lib/command.php:505 #, fuzzy msgid "Error repeating notice." msgstr "Problém při ukládání sdělení" -#: lib/command.php:482 +#: lib/command.php:536 #, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "" -#: lib/command.php:491 +#: lib/command.php:545 #, fuzzy, php-format msgid "Reply to %s sent" msgstr "Odpovědi na %s" -#: lib/command.php:493 +#: lib/command.php:547 #, fuzzy msgid "Error saving notice." msgstr "Problém při ukládání sdělení" -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "" -#: lib/command.php:554 lib/command.php:589 +#: lib/command.php:602 #, fuzzy -msgid "No such user" -msgstr "Žádný takový uživatel." +msgid "Can't subscribe to OMB profiles by command." +msgstr "Neodeslal jste nám profil" -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "" -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "" -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "" -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "" -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "" -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "" -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" -#: lib/command.php:692 +#: lib/command.php:735 #, fuzzy, php-format msgid "Unsubscribed %s" msgstr "Odhlásit" -#: lib/command.php:709 +#: lib/command.php:752 #, fuzzy msgid "You are not subscribed to anyone." msgstr "Neodeslal jste nám profil" -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Neodeslal jste nám profil" msgstr[1] "Neodeslal jste nám profil" msgstr[2] "" -#: lib/command.php:731 +#: lib/command.php:774 #, fuzzy msgid "No one is subscribed to you." msgstr "Vzdálený odběr" -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Vzdálený odběr" msgstr[1] "Vzdálený odběr" msgstr[2] "" -#: lib/command.php:753 +#: lib/command.php:796 #, fuzzy msgid "You are not a member of any groups." msgstr "Neodeslal jste nám profil" -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Neodeslal jste nám profil" msgstr[1] "Neodeslal jste nám profil" msgstr[2] "" -#: lib/command.php:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5608,50 +5617,50 @@ msgstr "" msgid "This page is not available in a media type you accept" msgstr "Tato stránka není k dispozici v typu média která přijímáte." -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "Nepodporovaný formát obrázku." + +#: lib/imagefile.php:90 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Je to příliš dlouhé. Maximální sdělení délka je 140 znaků" -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Částečné náhrání." -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Chyba systému při nahrávání souboru" -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Není obrázkem, nebo jde o poškozený soubor." -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "Nepodporovaný formát obrázku." - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 #, fuzzy msgid "Lost our file." msgstr "Žádné takové oznámení." -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, php-format msgid "Unknown inbox source %d." msgstr "" @@ -5855,7 +5864,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 #, fuzzy msgid "from" msgstr " od " @@ -6012,26 +6021,26 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 #, fuzzy msgid "in context" msgstr "Žádný obsah!" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 #, fuzzy msgid "Repeated by" msgstr "Vytvořit" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 #, fuzzy msgid "Reply" msgstr "odpověď" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 #, fuzzy msgid "Notice repeated" msgstr "Sdělení" @@ -6356,47 +6365,47 @@ msgctxt "role" msgid "Moderator" msgstr "" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "před pár sekundami" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "asi před minutou" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "asi před %d minutami" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "asi před hodinou" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "asi před %d hodinami" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "asi přede dnem" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "před %d dny" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "asi před měsícem" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "asi před %d mesíci" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "asi před rokem" @@ -6410,7 +6419,7 @@ msgstr "Stránka není platnou URL." msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "" -#: lib/xmppmanager.php:402 +#: 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 4bad95b9e..5f98f4650 100644 --- a/locale/de/LC_MESSAGES/statusnet.po +++ b/locale/de/LC_MESSAGES/statusnet.po @@ -15,12 +15,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-08 21:10:39+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:42:22+0000\n" "Language-Team: German\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63415); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: out-statusnet\n" @@ -100,7 +100,7 @@ msgstr "Seite nicht vorhanden" #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -109,10 +109,8 @@ msgstr "Seite nicht vorhanden" #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Unbekannter Benutzer." @@ -215,12 +213,12 @@ msgstr "Aktualisierungen von %1$s und Freunden auf %2$s!" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 msgid "API method not found." msgstr "API-Methode nicht gefunden." @@ -352,7 +350,7 @@ msgstr "Keine Nachricht mit dieser ID gefunden." msgid "This status is already a favorite." msgstr "Diese Nachricht ist bereits ein Favorit!" -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "Konnte keinen Favoriten erstellen." @@ -472,7 +470,7 @@ msgstr "Gruppe nicht gefunden!" msgid "You are already a member of that group." msgstr "Du bist bereits Mitglied dieser Gruppe" -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "Der Admin dieser Gruppe hat dich gesperrt." @@ -510,9 +508,8 @@ msgid "No oauth_token parameter provided." msgstr "Kein oauth_token Parameter angegeben." #: actions/apioauthauthorize.php:106 -#, fuzzy msgid "Invalid token." -msgstr "Ungültige Größe." +msgstr "Ungültiges Token." #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 @@ -523,7 +520,7 @@ msgstr "Ungültige Größe." #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -583,6 +580,9 @@ msgid "" "the ability to %3$s your %4$s account data. You should only " "give access to your %4$s account to third parties you trust." msgstr "" +"Das Programm %1$s von %2$s würde gerne " +"%3$s bei deinem %4$s Zugang. Du solltest nur " +"vertrauenswürdigen Quellen Erlaubnis zu deinem %4$s Zugang geben." #: actions/apioauthauthorize.php:310 lib/action.php:438 msgid "Account" @@ -664,12 +664,12 @@ msgstr "" msgid "Unsupported format." msgstr "Bildformat wird nicht unterstützt." -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / Favoriten von %2$s" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s Aktualisierung in den Favoriten von %2$s / %2$s." @@ -679,7 +679,7 @@ msgstr "%1$s Aktualisierung in den Favoriten von %2$s / %2$s." msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Aktualisierungen erwähnen %2$s" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "Nachrichten von %1$, die auf Nachrichten von %2$ / %3$ antworten." @@ -689,7 +689,7 @@ msgstr "Nachrichten von %1$, die auf Nachrichten von %2$ / %3$ antworten." msgid "%s public timeline" msgstr "%s öffentliche Zeitleiste" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s Nachrichten von allen!" @@ -704,12 +704,12 @@ msgstr "Antworten an %s" msgid "Repeats of %s" msgstr "Antworten von %s" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Nachrichten, die mit %s getagt sind" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Aktualisierungen mit %1$s getagt auf %2$s!" @@ -770,7 +770,7 @@ msgid "Preview" msgstr "Vorschau" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "Löschen" @@ -854,8 +854,8 @@ msgstr "Konnte Blockierungsdaten nicht speichern." #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 msgid "No such group." msgstr "Keine derartige Gruppe." @@ -956,7 +956,7 @@ msgstr "Du bist Besitzer dieses Programms" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "Es gab ein Problem mit deinem Sessiontoken." @@ -1016,7 +1016,7 @@ msgstr "Bist du sicher, dass du diese Nachricht löschen möchtest?" msgid "Do not delete this notice" msgstr "Diese Nachricht nicht löschen" -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "Nachricht löschen" @@ -1270,7 +1270,7 @@ msgstr "Die Beschreibung ist zu lang (max. %d Zeichen)." msgid "Could not update group." msgstr "Konnte Gruppe nicht aktualisieren." -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 msgid "Could not create aliases." msgstr "Konnte keinen Favoriten erstellen." @@ -1598,9 +1598,8 @@ msgid "This role is reserved and cannot be set." msgstr "Diese Aufgabe ist reserviert und kann nicht gesetzt werden" #: actions/grantrole.php:75 -#, fuzzy msgid "You cannot grant user roles on this site." -msgstr "Du kannst diesem Benutzer keine Nachricht schicken." +msgstr "Auf dieser Seite können keine Benutzerrollen gewährt werden." #: actions/grantrole.php:82 msgid "User already has this role." @@ -1981,7 +1980,7 @@ msgstr "Lade neue Leute ein" msgid "You are already subscribed to these users:" msgstr "Du hast diese Benutzer bereits abonniert:" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" @@ -2115,7 +2114,7 @@ msgstr "%1$s ist der Gruppe %2$s beigetreten" msgid "You must be logged in to leave a group." msgstr "Du musst angemeldet sein, um aus einer Gruppe auszutreten." -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 msgid "You are not a member of that group." msgstr "Du bist kein Mitglied dieser Gruppe." @@ -2229,12 +2228,12 @@ msgstr "Benutzer dieses Formular, um eine neue Gruppe zu erstellen." msgid "New message" msgstr "Neue Nachricht" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "Du kannst diesem Benutzer keine Nachricht schicken." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "Kein Inhalt!" @@ -2242,7 +2241,7 @@ msgstr "Kein Inhalt!" msgid "No recipient specified." msgstr "Kein Empfänger angegeben." -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" @@ -2257,7 +2256,7 @@ msgstr "Nachricht gesendet" msgid "Direct message to %s sent." msgstr "Direkte Nachricht an %s abgeschickt" -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "Ajax-Fehler" @@ -2395,8 +2394,8 @@ msgstr "Content-Typ " msgid "Only " msgstr "Nur " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "Kein unterstütztes Datenformat." @@ -2449,14 +2448,12 @@ msgid "No login token specified." msgstr "Kein Zugangstoken angegeben." #: actions/otp.php:90 -#, fuzzy msgid "No login token requested." -msgstr "Keine Profil-ID in der Anfrage." +msgstr "Kein Login-Token angefordert." #: actions/otp.php:95 -#, fuzzy msgid "Invalid login token specified." -msgstr "Token ungültig oder abgelaufen." +msgstr "Login-Token ungültig oder abgelaufen." #: actions/otp.php:104 msgid "Login token expired." @@ -2530,7 +2527,7 @@ msgstr "Altes Passwort falsch" msgid "Error saving user; invalid." msgstr "Fehler beim Speichern des Nutzers, ungültig." -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "Konnte neues Passwort nicht speichern" @@ -3037,7 +3034,7 @@ msgstr "Passwort zurücksetzen" msgid "Recover password" msgstr "Stelle Passwort wieder her" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "Wiederherstellung des Passworts angefordert" @@ -3057,19 +3054,19 @@ msgstr "Zurücksetzen" msgid "Enter a nickname or email address." msgstr "Gib einen Spitznamen oder eine E-Mail-Adresse ein." -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "Kein Benutzer mit dieser E-Mail-Adresse oder mit diesem Nutzernamen." -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "Der Nutzer hat keine registrierte E-Mail-Adresse." -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "Fehler beim Speichern der Adressbestätigung." -#: actions/recoverpassword.php:325 +#: actions/recoverpassword.php:338 msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." @@ -3077,23 +3074,23 @@ msgstr "" "Anweisungen für die Wiederherstellung deines Passworts wurden an deine " "hinterlegte E-Mail-Adresse geschickt." -#: actions/recoverpassword.php:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "Unerwarteter Passwortreset." -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "Passwort muss mehr als 6 Zeichen enthalten" -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Passwort und seine Bestätigung stimmen nicht überein." -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "Fehler bei den Nutzereinstellungen." -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "Neues Passwort erfolgreich gespeichert. Du bist jetzt angemeldet." @@ -3298,7 +3295,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:674 +#: actions/repeat.php:114 lib/noticelist.php:676 msgid "Repeated" msgstr "Wiederholt" @@ -3347,6 +3344,8 @@ msgid "" "You can engage other users in a conversation, subscribe to more people or " "[join groups](%%action.groups%%)." msgstr "" +"Du kannst andere Nutzer ansprechen, mehr Leuten folgen oder [Gruppen " +"beitreten](%%action.groups%%)." #: actions/replies.php:206 #, php-format @@ -3376,9 +3375,8 @@ msgid "StatusNet" msgstr "StatusNet" #: actions/sandbox.php:65 actions/unsandbox.php:65 -#, fuzzy msgid "You cannot sandbox users on this site." -msgstr "Du kannst diesem Benutzer keine Nachricht schicken." +msgstr "Du kannst Benutzer auf dieser Seite nicht auf den Spielplaz schicken." #: actions/sandbox.php:72 msgid "User is already sandboxed." @@ -3420,9 +3418,8 @@ msgid "You must be logged in to view an application." msgstr "Du musst angemeldet sein, um aus dieses Programm zu betrachten." #: actions/showapplication.php:157 -#, fuzzy msgid "Application profile" -msgstr "Nachricht hat kein Profil" +msgstr "Anwendungsprofil" #: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" @@ -3525,6 +3522,9 @@ 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 "" +"Du hast noch keine Lieblingsnachrichten gewählt. Klicke den Favorisieren-" +"Button bei einer Nachricht, die dir gefällt um die Aufmerksamkeit auf sie zu " +"richten und sie in deine Lesezeichen aufzunehmen." #: actions/showfavorites.php:208 #, php-format @@ -3816,9 +3816,8 @@ msgid "Contact email address for your site" msgstr "Kontakt-E-Mail-Adresse für Deine Site." #: actions/siteadminpanel.php:245 -#, fuzzy msgid "Local" -msgstr "Lokale Ansichten" +msgstr "Lokal" #: actions/siteadminpanel.php:256 msgid "Default timezone" @@ -3835,6 +3834,8 @@ msgstr "Bevorzugte Sprache" #: actions/siteadminpanel.php:263 msgid "Site language when autodetection from browser settings is not available" msgstr "" +"Sprache der Seite für den Fall, dass die automatische Erkennung anhand der " +"Browser-Einstellungen nicht verfügbar ist." #: actions/siteadminpanel.php:271 msgid "Limits" @@ -4415,7 +4416,7 @@ msgstr "Profiladresse '%s' ist für einen lokalen Benutzer." #: actions/userauthorization.php:345 #, php-format msgid "Avatar URL ‘%s’ is not valid." -msgstr "" +msgstr "Avatar Adresse '%s' ist nicht gültig." #: actions/userauthorization.php:350 #, php-format @@ -4528,7 +4529,7 @@ msgstr "Version" msgid "Author(s)" msgstr "Autor(en)" -#: classes/File.php:144 +#: classes/File.php:169 #, php-format msgid "" "No file may be larger than %d bytes and the file you sent was %d bytes. Try " @@ -4537,12 +4538,12 @@ 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." -#: classes/File.php:154 +#: classes/File.php:179 #, 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:161 +#: classes/File.php:186 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" @@ -4566,9 +4567,9 @@ msgid "Could not update local group." msgstr "Konnte Gruppe nicht aktualisieren." #: classes/Login_token.php:76 -#, fuzzy, php-format +#, php-format msgid "Could not create login token for %s" -msgstr "Konnte keinen Favoriten erstellen." +msgstr "Konnte keinen Login-Token für %s erstellen" #: classes/Message.php:45 msgid "You are banned from sending direct messages." @@ -4623,7 +4624,7 @@ msgstr "Problem bei Speichern der Nachricht." msgid "Problem saving group inbox." msgstr "Problem bei Speichern der Nachricht." -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4653,32 +4654,30 @@ msgstr "Konnte Abonnement nicht löschen." msgid "Couldn't delete subscription OMB token." msgstr "Konnte OMB-Abonnement nicht löschen." -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "Konnte Abonnement nicht löschen." -#: classes/User.php:373 +#: classes/User.php:378 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Herzlich willkommen bei %1$s, @%2$s!" -#: classes/User_group.php:477 +#: classes/User_group.php:480 msgid "Could not create group." msgstr "Konnte Gruppe nicht erstellen." -#: classes/User_group.php:486 -#, fuzzy +#: classes/User_group.php:489 msgid "Could not set group URI." -msgstr "Konnte Gruppenmitgliedschaft nicht setzen." +msgstr "Konnte die Gruppen URI nicht setzen." -#: classes/User_group.php:507 +#: classes/User_group.php:510 msgid "Could not set group membership." msgstr "Konnte Gruppenmitgliedschaft nicht setzen." -#: classes/User_group.php:521 -#, fuzzy +#: classes/User_group.php:524 msgid "Could not save local group info." -msgstr "Konnte Abonnement nicht erstellen." +msgstr "Konnte die lokale Gruppen Information nicht speichern." #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" @@ -4880,7 +4879,7 @@ msgstr "Plakette" msgid "StatusNet software license" msgstr "StatusNet-Software-Lizenz" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4889,12 +4888,12 @@ msgstr "" "**%%site.name%%** ist ein Microbloggingdienst von [%%site.broughtby%%](%%" "site.broughtbyurl%%)." -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** ist ein Microbloggingdienst." -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4905,49 +4904,51 @@ msgstr "" "(Version %s) betrieben, die unter der [GNU Affero General Public License]" "(http://www.fsf.org/licensing/licenses/agpl-3.0.html) erhältlich ist." -#: lib/action.php:821 +#: lib/action.php:824 msgid "Site content license" msgstr "StatusNet-Software-Lizenz" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" "Inhalt und Daten urheberrechtlich geschützt durch %1$s. Alle Rechte " "vorbehalten." -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" +"Urheberrecht von Inhalt und Daten liegt bei den Beteiligten. Alle Rechte " +"vorbehalten." -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "Alle " -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "Lizenz." -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "Seitenerstellung" -#: lib/action.php:1161 +#: lib/action.php:1164 msgid "After" msgstr "Später" -#: lib/action.php:1169 +#: lib/action.php:1172 msgid "Before" msgstr "Vorher" #: lib/activity.php:453 msgid "Can't handle remote content yet." -msgstr "" +msgstr "Fremdinhalt kann noch nicht eingebunden werden." #: lib/activity.php:481 msgid "Can't handle embedded XML content yet." @@ -4955,7 +4956,7 @@ msgstr "Kann eingebundenen XML Inhalt nicht verarbeiten." #: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." -msgstr "" +msgstr "Eingebundener Base64 Inhalt kann noch nicht verarbeitet werden." #. TRANS: Client error message #: lib/adminpanelaction.php:98 @@ -5044,7 +5045,7 @@ msgstr "SMS-Konfiguration" msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5076,7 +5077,7 @@ msgstr "Adresse der Homepage dieses Programms" #: lib/applicationeditform.php:224 msgid "Organization responsible for this application" -msgstr "" +msgstr "Für diese Anwendung verantwortliche Organisation" #: lib/applicationeditform.php:230 msgid "URL for the homepage of the organization" @@ -5144,37 +5145,50 @@ msgstr "Passwort konnte nicht geändert werden" msgid "Password changing is not allowed" msgstr "Passwort kann nicht geändert werden" -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "Befehl-Ergebnisse" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "Befehl ausgeführt" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "Befehl fehlgeschlagen" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." -msgstr "Leider ist dieser Befehl noch nicht implementiert." +#: lib/command.php:83 lib/command.php:105 +msgid "Notice with that id does not exist" +msgstr "Nachricht mit dieser ID existiert nicht" + +#: lib/command.php:99 lib/command.php:570 +msgid "User has no last notice" +msgstr "Benutzer hat keine letzte Nachricht" -#: lib/command.php:88 +#: lib/command.php:125 #, php-format msgid "Could not find a user with nickname %s" msgstr "Die bestätigte E-Mail-Adresse konnte nicht gespeichert werden." -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "Die bestätigte E-Mail-Adresse konnte nicht gespeichert werden." + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "Leider ist dieser Befehl noch nicht implementiert." + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "Es macht keinen Sinn dich selbst anzustupsen!" -#: lib/command.php:99 +#: lib/command.php:228 #, php-format msgid "Nudge sent to %s" msgstr "Stups an %s geschickt" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5185,195 +5199,194 @@ msgstr "" "Abonnenten: %2$s\n" "Mitteilungen: %3$s" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -msgid "Notice with that id does not exist" -msgstr "Nachricht mit dieser ID existiert nicht" - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -msgid "User has no last notice" -msgstr "Benutzer hat keine letzte Nachricht" - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "Nachricht als Favorit markiert." -#: lib/command.php:217 +#: lib/command.php:317 msgid "You are already a member of that group" msgstr "Du bist bereits Mitglied dieser Gruppe" -#: lib/command.php:231 +#: lib/command.php:331 #, php-format msgid "Could not join user %s to group %s" msgstr "Konnte Benutzer %s nicht der Gruppe %s hinzufügen" -#: lib/command.php:236 +#: lib/command.php:336 #, php-format msgid "%s joined group %s" msgstr "%s ist der Gruppe %s beigetreten" -#: lib/command.php:275 +#: lib/command.php:373 #, php-format msgid "Could not remove user %s to group %s" msgstr "Konnte Benutzer %s aus der Gruppe %s nicht entfernen" -#: lib/command.php:280 +#: lib/command.php:378 #, php-format msgid "%s left group %s" msgstr "%s hat die Gruppe %s verlassen" -#: lib/command.php:309 +#: lib/command.php:401 #, php-format msgid "Fullname: %s" msgstr "Vollständiger Name: %s" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Standort: %s" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Homepage: %s" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "Über: %s" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "Nachricht zu lang - maximal %d Zeichen erlaubt, du hast %d gesendet" -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "Direkte Nachricht an %s abgeschickt" -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "Fehler beim Senden der Nachricht" -#: lib/command.php:413 +#: lib/command.php:490 msgid "Cannot repeat your own notice" msgstr "Du kannst deine eigenen Nachrichten nicht wiederholen." -#: lib/command.php:418 +#: lib/command.php:495 msgid "Already repeated that notice" msgstr "Nachricht bereits wiederholt" -#: lib/command.php:426 +#: lib/command.php:503 #, php-format msgid "Notice from %s repeated" msgstr "Nachricht von %s wiederholt" -#: lib/command.php:428 +#: lib/command.php:505 msgid "Error repeating notice." msgstr "Fehler beim Wiederholen der Nachricht" -#: lib/command.php:482 +#: lib/command.php:536 #, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "Nachricht zu lange - maximal %d Zeichen erlaubt, du hast %d gesendet" -#: lib/command.php:491 +#: lib/command.php:545 #, php-format msgid "Reply to %s sent" msgstr "Antwort an %s gesendet" -#: lib/command.php:493 +#: lib/command.php:547 msgid "Error saving notice." msgstr "Problem beim Speichern der Nachricht." -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "Gib den Namen des Benutzers an, den du abonnieren möchtest" -#: lib/command.php:554 lib/command.php:589 -msgid "No such user" -msgstr "Unbekannter Benutzer." +#: lib/command.php:602 +#, fuzzy +msgid "Can't subscribe to OMB profiles by command." +msgstr "Du hast dieses Profil nicht abonniert." -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "%s abonniert" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "Gib den Namen des Benutzers ein, den du nicht mehr abonnieren möchtest" -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "%s nicht mehr abonniert" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "Befehl noch nicht implementiert." -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "Benachrichtigung deaktiviert." -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "Konnte Benachrichtigung nicht deaktivieren." -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "Benachrichtigung aktiviert." -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "Konnte Benachrichtigung nicht aktivieren." -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "Anmeldung ist abgeschaltet" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "Der Link ist nur einmal benutzbar und für eine Dauer von 2 Minuten: %s" -#: lib/command.php:692 +#: lib/command.php:735 #, php-format msgid "Unsubscribed %s" msgstr "%s nicht mehr abonniert" -#: lib/command.php:709 +#: lib/command.php:752 msgid "You are not subscribed to anyone." msgstr "Du hast niemanden abonniert." -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Du hast diese Benutzer bereits abonniert:" msgstr[1] "Du hast diese Benutzer bereits abonniert:" -#: lib/command.php:731 +#: lib/command.php:774 msgid "No one is subscribed to you." msgstr "Niemand hat Dich abonniert." -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Die Gegenseite konnte Dich nicht abonnieren." msgstr[1] "Die Gegenseite konnte Dich nicht abonnieren." -#: lib/command.php:753 +#: lib/command.php:796 msgid "You are not a member of any groups." msgstr "Du bist in keiner Gruppe Mitglied." -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Du bist Mitglied dieser Gruppe:" msgstr[1] "Du bist Mitglied dieser Gruppen:" -#: lib/command.php:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5414,6 +5427,44 @@ msgid "" "tracks - not yet implemented.\n" "tracking - not yet implemented.\n" msgstr "" +"Befehle:\n" +"on - Benachrichtigung einschalten\n" +"off - Benachrichtigung ausschalten\n" +"help - diese Hilfe anzeigen\n" +"follow - einem Nutzer folgen\n" +"groups - Gruppen auflisten in denen du Mitglied bist\n" +"subscriptions - Leute auflisten denen du folgst\n" +"subscribers - Leute auflisten die dir folgen\n" +"leave - einem Nutzer nicht mehr folgen\n" +"d - Direkte Nachricht an einen Nutzer schicken\n" +"get - letzte Nachricht eines Nutzers abrufen\n" +"whois - Profil eines Nutzers abrufen\n" +"lose - Nutzer zwingen dir nicht mehr zu folgen\n" +"fav - letzte Nachricht eines Nutzers als Favorit markieren\n" +"fav # - Nachricht mit bestimmter ID als Favorit markieren\n" +"repeat # - Nachricht mit bestimmter ID wiederholen\n" +"repeat - letzte Nachricht eines Nutzers wiederholen\n" +"reply # - Nachricht mit bestimmter ID beantworten\n" +"reply - letzte Nachricht eines Nutzers beantworten\n" +"join - Gruppe beitreten\n" +"login - Link zum Anmelden auf der Webseite anfordern\n" +"drop - Gruppe verlassen\n" +"stats - deine Statistik abrufen\n" +"stop - Äquivalent zu 'off'\n" +"quit - Äquivalent zu 'off'\n" +"sub - same as 'follow'\n" +"unsub - same as 'leave'\n" +"last - same as 'get'\n" +"on - not yet implemented.\n" +"off - not yet implemented.\n" +"nudge - remind a user to update.\n" +"invite - not yet implemented.\n" +"track - not yet implemented.\n" +"untrack - 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" #: lib/common.php:148 msgid "No configuration file found. " @@ -5554,6 +5605,8 @@ msgstr "" #, php-format msgid "Extra nicknames for the group, comma- or space- separated, max %d" msgstr "" +"Zusätzliche Spitznamen für die Gruppe, Komma oder Leerzeichen getrennt, max %" +"d" #: lib/groupnav.php:85 msgid "Group" @@ -5604,49 +5657,49 @@ msgstr "Stichworte in den Nachrichten der Gruppe %s" msgid "This page is not available in a media type you accept" msgstr "Dies Seite liegt in keinem von dir akzeptierten Mediatype vor." -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "Bildformat wird nicht unterstützt." + +#: lib/imagefile.php:90 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Du kannst ein Logo für Deine Gruppe hochladen." -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Unvollständiges Hochladen." -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Systemfehler beim hochladen der Datei." -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Kein Bild oder defekte Datei." -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "Bildformat wird nicht unterstützt." - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 msgid "Lost our file." msgstr "Daten verloren." -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "Unbekannter Dateityp" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "MB" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "kB" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "[%s]" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, fuzzy, php-format msgid "Unknown inbox source %d." msgstr "Unbekannte Sprache „%s“" @@ -5867,6 +5920,16 @@ msgid "" "Faithfully yours,\n" "%6$s\n" msgstr "" +"%1$s (@%7$s) hat gerade deine Mitteilung von %2$s als Favorit hinzugefügt.\n" +"Die Adresse der Nachricht ist:\n" +"%3$s\n" +"Der Text der Nachricht ist:\n" +"%4$s\n" +"Die Favoritenliste von %1$s ist hier:\n" +"%5$s\n" +"\n" +"Gruß,\n" +"%6$s\n" #: lib/mail.php:635 #, php-format @@ -5902,7 +5965,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:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 msgid "from" msgstr "von" @@ -6039,7 +6102,7 @@ msgstr "" #: lib/noticelist.php:429 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" -msgstr "" +msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" #: lib/noticelist.php:430 msgid "N" @@ -6061,23 +6124,23 @@ msgstr "W" msgid "at" msgstr "in" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 msgid "in context" msgstr "im Zusammenhang" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 msgid "Repeated by" msgstr "Wiederholt von" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "Auf diese Nachricht antworten" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 msgid "Reply" msgstr "Antworten" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 msgid "Notice repeated" msgstr "Nachricht wiederholt" @@ -6222,7 +6285,7 @@ msgstr "Widerrufe die \"%s\" Rolle von diesem Benutzer" #: lib/router.php:671 msgid "No single user defined for single-user mode." -msgstr "" +msgstr "Kein einzelner Nutzer für den Ein-Benutzer-Modus ausgewählt." #: lib/sandboxform.php:67 msgid "Sandbox" @@ -6388,47 +6451,47 @@ msgctxt "role" msgid "Moderator" msgstr "Moderator" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "vor wenigen Sekunden" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "vor einer Minute" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "vor %d Minuten" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "vor einer Stunde" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "vor %d Stunden" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "vor einem Tag" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "vor %d Tagen" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "vor einem Monat" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "vor %d Monaten" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "vor einem Jahr" @@ -6442,7 +6505,7 @@ msgstr "%s ist keine gültige Farbe!" msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "%s ist keine gültige Farbe! Verwenden Sie 3 oder 6 Hex-Zeichen." -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "" diff --git a/locale/el/LC_MESSAGES/statusnet.po b/locale/el/LC_MESSAGES/statusnet.po index 0ebe84fe7..8364d1ebf 100644 --- a/locale/el/LC_MESSAGES/statusnet.po +++ b/locale/el/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:49:37+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:42:26+0000\n" "Language-Team: Greek\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: el\n" "X-Message-Group: out-statusnet\n" @@ -97,7 +97,7 @@ msgstr "Δεν υπάρχει τέτοια σελίδα" #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -106,10 +106,8 @@ msgstr "Δεν υπάρχει τέτοια σελίδα" #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Κανένας τέτοιος χρήστης." @@ -202,12 +200,12 @@ msgstr "" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "Η μέθοδος του ΑΡΙ δε βρέθηκε!" @@ -338,7 +336,7 @@ msgstr "" msgid "This status is already a favorite." msgstr "" -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "" @@ -460,7 +458,7 @@ msgstr "Η ομάδα δεν βρέθηκε!" msgid "You are already a member of that group." msgstr "" -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "" @@ -511,7 +509,7 @@ msgstr "Μήνυμα" #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -650,12 +648,12 @@ msgstr "" msgid "Unsupported format." msgstr "" -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "" @@ -665,7 +663,7 @@ msgstr "" msgid "%1$s / Updates mentioning %2$s" msgstr "" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" @@ -675,7 +673,7 @@ msgstr "" msgid "%s public timeline" msgstr "" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "" @@ -690,12 +688,12 @@ msgstr "" msgid "Repeats of %s" msgstr "" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "" @@ -755,7 +753,7 @@ msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "Διαγραφή" @@ -838,8 +836,8 @@ msgstr "" #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 #, fuzzy msgid "No such group." msgstr "Αδύνατη η αποθήκευση του προφίλ." @@ -945,7 +943,7 @@ msgstr "Ομάδες με τα περισσότερα μέλη" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "" @@ -1006,7 +1004,7 @@ msgstr "Είσαι σίγουρος ότι θες να διαγράψεις αυ msgid "Do not delete this notice" msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "" @@ -1268,7 +1266,7 @@ msgstr "Το βιογραφικό είναι πολύ μεγάλο (μέγιστ msgid "Could not update group." msgstr "Αδύνατη η αποθήκευση του προφίλ." -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 #, fuzzy msgid "Could not create aliases." msgstr "Αδύνατη η αποθήκευση του προφίλ." @@ -1958,7 +1956,7 @@ msgstr "" msgid "You are already subscribed to these users:" msgstr "" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "" @@ -2059,7 +2057,7 @@ msgstr "" msgid "You must be logged in to leave a group." msgstr "" -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 msgid "You are not a member of that group." msgstr "" @@ -2175,12 +2173,12 @@ msgstr "" msgid "New message" msgstr "" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "" -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "" @@ -2188,7 +2186,7 @@ msgstr "" msgid "No recipient specified." msgstr "" -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" @@ -2202,7 +2200,7 @@ msgstr "" msgid "Direct message to %s sent." msgstr "" -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "" @@ -2328,8 +2326,8 @@ msgstr "Σύνδεση" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "" @@ -2467,7 +2465,7 @@ msgstr "Λάθος παλιός κωδικός" msgid "Error saving user; invalid." msgstr "" -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "Αδύνατη η αποθήκευση του νέου κωδικού" @@ -2958,7 +2956,7 @@ msgstr "" msgid "Recover password" msgstr "" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "" @@ -2978,19 +2976,19 @@ msgstr "" msgid "Enter a nickname or email address." msgstr "Εισάγετε ψευδώνυμο ή διεύθυνση email." -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "" -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "" -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "" -#: actions/recoverpassword.php:325 +#: actions/recoverpassword.php:338 msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." @@ -2998,23 +2996,23 @@ msgstr "" "Οδηγίες για την ανάκτηση του κωδικού σας έχουν σταλεί στην διεύθυνση email " "που έχετε καταχωρίσει στον λογαριασμό σας." -#: actions/recoverpassword.php:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "" -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "Ο κωδικός πρέπει να είναι 6 χαρακτήρες ή περισσότεροι." -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Ο κωδικός και η επιβεβαίωση του δεν ταυτίζονται." -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "" -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "" @@ -3213,7 +3211,7 @@ msgstr "" msgid "You already repeated that notice." msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." -#: actions/repeat.php:114 lib/noticelist.php:674 +#: actions/repeat.php:114 lib/noticelist.php:676 #, fuzzy msgid "Repeated" msgstr "Δημιουργία" @@ -4407,19 +4405,19 @@ msgstr "Προσωπικά" msgid "Author(s)" msgstr "" -#: classes/File.php:144 +#: classes/File.php:169 #, 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." msgstr "" -#: classes/File.php:154 +#: classes/File.php:179 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:161 +#: classes/File.php:186 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" @@ -4497,7 +4495,7 @@ msgstr "" msgid "Problem saving group inbox." msgstr "" -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4529,30 +4527,30 @@ msgstr "Απέτυχε η διαγραφή συνδρομής." msgid "Couldn't delete subscription OMB token." msgstr "Απέτυχε η διαγραφή συνδρομής." -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "Απέτυχε η διαγραφή συνδρομής." -#: classes/User.php:373 +#: classes/User.php:378 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:477 +#: classes/User_group.php:480 msgid "Could not create group." msgstr "Δεν ήταν δυνατή η δημιουργία ομάδας." -#: classes/User_group.php:486 +#: classes/User_group.php:489 #, fuzzy msgid "Could not set group URI." msgstr "Αδύνατη η αποθήκευση των νέων πληροφοριών του προφίλ" -#: classes/User_group.php:507 +#: classes/User_group.php:510 #, fuzzy msgid "Could not set group membership." msgstr "Αδύνατη η αποθήκευση των νέων πληροφοριών του προφίλ" -#: classes/User_group.php:521 +#: classes/User_group.php:524 #, fuzzy msgid "Could not save local group info." msgstr "Αδύνατη η αποθήκευση των νέων πληροφοριών του προφίλ" @@ -4769,7 +4767,7 @@ msgstr "" msgid "StatusNet software license" msgstr "" -#: lib/action.php:802 +#: lib/action.php:804 #, fuzzy, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4778,13 +4776,13 @@ msgstr "" "To **%%site.name%%** είναι μία υπηρεσία microblogging (μικρο-ιστολογίου) που " "έφερε κοντά σας το [%%site.broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:804 +#: lib/action.php:806 #, fuzzy, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "" "Το **%%site.name%%** είναι μία υπηρεσία microblogging (μικρο-ιστολογίου). " -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4792,41 +4790,41 @@ msgid "" "org/licensing/licenses/agpl-3.0.html)." msgstr "" -#: lib/action.php:821 +#: lib/action.php:824 msgid "Site content license" msgstr "" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "" -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "" -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "" -#: lib/action.php:1161 +#: lib/action.php:1164 msgid "After" msgstr "" -#: lib/action.php:1169 +#: lib/action.php:1172 msgid "Before" msgstr "" @@ -4937,7 +4935,7 @@ msgstr "Επιβεβαίωση διεύθυνσης email" msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5038,37 +5036,50 @@ msgstr "Ο κωδικός αποθηκεύτηκε." msgid "Password changing is not allowed" msgstr "Ο κωδικός αποθηκεύτηκε." -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." +#: lib/command.php:83 lib/command.php:105 +msgid "Notice with that id does not exist" +msgstr "" + +#: lib/command.php:99 lib/command.php:570 +msgid "User has no last notice" msgstr "" -#: lib/command.php:88 +#: lib/command.php:125 #, fuzzy, php-format msgid "Could not find a user with nickname %s" msgstr "Απέτυχε η ενημέρωση χρήστη μέσω επιβεβαιωμένης email διεύθυνσης." -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "Απέτυχε η ενημέρωση χρήστη μέσω επιβεβαιωμένης email διεύθυνσης." + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "" + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" -#: lib/command.php:99 +#: lib/command.php:228 #, php-format msgid "Nudge sent to %s" msgstr "" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5076,201 +5087,198 @@ msgid "" "Notices: %3$s" msgstr "" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -msgid "Notice with that id does not exist" -msgstr "" - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -msgid "User has no last notice" -msgstr "" - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "" -#: lib/command.php:217 +#: lib/command.php:317 #, fuzzy msgid "You are already a member of that group" msgstr "Ομάδες με τα περισσότερα μέλη" -#: lib/command.php:231 +#: lib/command.php:331 #, fuzzy, php-format msgid "Could not join user %s to group %s" msgstr "Αδύνατη η αποθήκευση των νέων πληροφοριών του προφίλ" -#: lib/command.php:236 +#: lib/command.php:336 #, fuzzy, php-format msgid "%s joined group %s" msgstr "ομάδες των χρηστών %s" -#: lib/command.php:275 +#: lib/command.php:373 #, fuzzy, php-format msgid "Could not remove user %s to group %s" msgstr "Αδύνατη η αποθήκευση του προφίλ." -#: lib/command.php:280 +#: lib/command.php:378 #, fuzzy, php-format msgid "%s left group %s" msgstr "ομάδες των χρηστών %s" -#: lib/command.php:309 +#: lib/command.php:401 #, fuzzy, php-format msgid "Fullname: %s" msgstr "Ονοματεπώνυμο" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "" -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "" -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "" -#: lib/command.php:413 +#: lib/command.php:490 #, fuzzy msgid "Cannot repeat your own notice" msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." -#: lib/command.php:418 +#: lib/command.php:495 #, fuzzy msgid "Already repeated that notice" msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." -#: lib/command.php:426 +#: lib/command.php:503 #, fuzzy, php-format msgid "Notice from %s repeated" msgstr "Ρυθμίσεις OpenID" -#: lib/command.php:428 +#: lib/command.php:505 msgid "Error repeating notice." msgstr "" -#: lib/command.php:482 +#: lib/command.php:536 #, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "" -#: lib/command.php:491 +#: lib/command.php:545 #, php-format msgid "Reply to %s sent" msgstr "" -#: lib/command.php:493 +#: lib/command.php:547 msgid "Error saving notice." msgstr "" -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "" -#: lib/command.php:554 lib/command.php:589 -#, fuzzy -msgid "No such user" -msgstr "Κανένας τέτοιος χρήστης." +#: lib/command.php:602 +msgid "Can't subscribe to OMB profiles by command." +msgstr "" -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "" -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "" -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "" -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "" -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "" -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "" -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" -#: lib/command.php:692 +#: lib/command.php:735 #, fuzzy, php-format msgid "Unsubscribed %s" msgstr "Απέτυχε η συνδρομή." -#: lib/command.php:709 +#: lib/command.php:752 #, fuzzy msgid "You are not subscribed to anyone." msgstr "Δεν επιτρέπεται να κάνεις συνδρομητές του λογαριασμού σου άλλους." -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Δεν επιτρέπεται να κάνεις συνδρομητές του λογαριασμού σου άλλους." msgstr[1] "Δεν επιτρέπεται να κάνεις συνδρομητές του λογαριασμού σου άλλους." -#: lib/command.php:731 +#: lib/command.php:774 #, fuzzy msgid "No one is subscribed to you." msgstr "Δεν επιτρέπεται να κάνεις συνδρομητές του λογαριασμού σου άλλους." -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Δεν επιτρέπεται να κάνεις συνδρομητές του λογαριασμού σου άλλους." msgstr[1] "Δεν επιτρέπεται να κάνεις συνδρομητές του λογαριασμού σου άλλους." -#: lib/command.php:753 +#: lib/command.php:796 msgid "You are not a member of any groups." msgstr "Δεν είστε μέλος καμίας ομάδας." -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Ομάδες με τα περισσότερα μέλη" msgstr[1] "Ομάδες με τα περισσότερα μέλη" -#: lib/command.php:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5501,50 +5509,50 @@ msgstr "" msgid "This page is not available in a media type you accept" msgstr "" -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "" + +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "" -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "" -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "" -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "" -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "" - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 #, fuzzy msgid "Lost our file." msgstr "Αδύνατη η αποθήκευση του προφίλ." -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, php-format msgid "Unknown inbox source %d." msgstr "" @@ -5741,7 +5749,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 msgid "from" msgstr "από" @@ -5894,23 +5902,23 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 msgid "in context" msgstr "" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 msgid "Repeated by" msgstr "Επαναλαμβάνεται από" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 msgid "Reply" msgstr "" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 #, fuzzy msgid "Notice repeated" msgstr "Ρυθμίσεις OpenID" @@ -6230,47 +6238,47 @@ msgctxt "role" msgid "Moderator" msgstr "" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "" @@ -6284,7 +6292,7 @@ msgstr "Το %s δεν είναι ένα έγκυρο χρώμα!" msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "" -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "" diff --git a/locale/en_GB/LC_MESSAGES/statusnet.po b/locale/en_GB/LC_MESSAGES/statusnet.po index 8d846c4e2..4a50e8a19 100644 --- a/locale/en_GB/LC_MESSAGES/statusnet.po +++ b/locale/en_GB/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:49:40+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:42:29+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 (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: en-gb\n" "X-Message-Group: out-statusnet\n" @@ -96,7 +96,7 @@ msgstr "No such page" #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -105,10 +105,8 @@ msgstr "No such page" #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "No such user." @@ -208,12 +206,12 @@ msgstr "Updates from %1$s and friends on %2$s!" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 msgid "API method not found." msgstr "API method not found." @@ -346,7 +344,7 @@ msgstr "No status found with that ID." msgid "This status is already a favorite." msgstr "This status is already a favourite." -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "Could not create favourite." @@ -463,7 +461,7 @@ msgstr "Group not found!" msgid "You are already a member of that group." msgstr "You are already a member of that group." -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "You have been blocked from that group by the admin." @@ -513,7 +511,7 @@ msgstr "Invalid token." #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -653,12 +651,12 @@ msgstr "Max notice size is %d chars, including attachment URL." msgid "Unsupported format." msgstr "Unsupported format." -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / Favourites from %2$s" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s updates favourited by %2$s / %2$s." @@ -668,7 +666,7 @@ msgstr "%1$s updates favourited by %2$s / %2$s." msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Updates mentioning %2$s" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s updates that reply to updates from %2$s / %3$s." @@ -678,7 +676,7 @@ msgstr "%1$s updates that reply to updates from %2$s / %3$s." msgid "%s public timeline" msgstr "%s public timeline" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s updates from everyone!" @@ -693,12 +691,12 @@ msgstr "Repeated to %s" msgid "Repeats of %s" msgstr "Repeats of %s" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Notices tagged with %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Updates tagged with %1$s on %2$s!" @@ -758,7 +756,7 @@ msgid "Preview" msgstr "Preview" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "Delete" @@ -841,8 +839,8 @@ msgstr "Failed to save block information." #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 msgid "No such group." msgstr "No such group." @@ -943,7 +941,7 @@ msgstr "You are not the owner of this application." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "There was a problem with your session token." @@ -1004,7 +1002,7 @@ msgstr "Are you sure you want to delete this notice?" msgid "Do not delete this notice" msgstr "Do not delete this notice" -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "Delete this notice" @@ -1257,7 +1255,7 @@ msgstr "description is too long (max %d chars)." msgid "Could not update group." msgstr "Could not update group." -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 msgid "Could not create aliases." msgstr "Could not create aliases" @@ -1952,7 +1950,7 @@ msgstr "Invite new users" msgid "You are already subscribed to these users:" msgstr "You are already subscribed to these users:" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" @@ -2083,7 +2081,7 @@ msgstr "%1$s joined group %2$s" msgid "You must be logged in to leave a group." msgstr "You must be logged in to leave a group." -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 msgid "You are not a member of that group." msgstr "You are not a member of that group." @@ -2196,12 +2194,12 @@ msgstr "Use this form to create a new group." msgid "New message" msgstr "New message" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "You can't send a message to this user." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "No content!" @@ -2209,7 +2207,7 @@ msgstr "No content!" msgid "No recipient specified." msgstr "No recipient specified." -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" @@ -2224,7 +2222,7 @@ msgstr "Message sent" msgid "Direct message to %s sent." msgstr "Could not create application." -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "Ajax Error" @@ -2355,8 +2353,8 @@ msgstr "content type " msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "Not a supported data format." @@ -2487,7 +2485,7 @@ msgstr "Incorrect old password" msgid "Error saving user; invalid." msgstr "Error saving user; invalid." -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "Can't save new password." @@ -2978,7 +2976,7 @@ msgstr "Reset password" msgid "Recover password" msgstr "Recover password" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "Password recovery requested" @@ -2998,19 +2996,19 @@ msgstr "Reset" msgid "Enter a nickname or email address." msgstr "Enter a nickname or e-mail address." -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "No user with that e-mail address or username." -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "No registered e-mail address for that user." -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "Error saving address confirmation." -#: actions/recoverpassword.php:325 +#: actions/recoverpassword.php:338 msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." @@ -3018,23 +3016,23 @@ msgstr "" "Instructions for recovering your password have been sent to the e-mail " "address registered to your account." -#: actions/recoverpassword.php:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "Unexpected password reset." -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "Password must be 6 chars or more." -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Password and confirmation do not match." -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "Error setting user." -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "New password successfully saved. You are now logged in." @@ -3230,7 +3228,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:674 +#: actions/repeat.php:114 lib/noticelist.php:676 msgid "Repeated" msgstr "Repeated" @@ -4460,19 +4458,19 @@ msgstr "Version" msgid "Author(s)" msgstr "" -#: classes/File.php:144 +#: classes/File.php:169 #, 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." msgstr "" -#: classes/File.php:154 +#: classes/File.php:179 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:161 +#: classes/File.php:186 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" @@ -4549,7 +4547,7 @@ msgstr "Problem saving notice." msgid "Problem saving group inbox." msgstr "Problem saving group inbox." -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4580,28 +4578,28 @@ msgstr "Couldn't delete self-subscription." msgid "Couldn't delete subscription OMB token." msgstr "Couldn't delete subscription." -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "Couldn't delete subscription." -#: classes/User.php:373 +#: classes/User.php:378 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Welcome to %1$s, @%2$s!" -#: classes/User_group.php:477 +#: classes/User_group.php:480 msgid "Could not create group." msgstr "Could not create group." -#: classes/User_group.php:486 +#: classes/User_group.php:489 msgid "Could not set group URI." msgstr "Could not set group URI." -#: classes/User_group.php:507 +#: classes/User_group.php:510 msgid "Could not set group membership." msgstr "Could not set group membership." -#: classes/User_group.php:521 +#: classes/User_group.php:524 msgid "Could not save local group info." msgstr "Could not save local group info." @@ -4822,7 +4820,7 @@ msgstr "Badge" msgid "StatusNet software license" msgstr "StatusNet software licence" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4831,12 +4829,12 @@ msgstr "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%)." -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** is a microblogging service." -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4847,41 +4845,41 @@ msgstr "" "s, available under the [GNU Affero General Public Licence](http://www.fsf." "org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:821 +#: lib/action.php:824 msgid "Site content license" msgstr "Site content license" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "All " -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "licence." -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "Pagination" -#: lib/action.php:1161 +#: lib/action.php:1164 msgid "After" msgstr "After" -#: lib/action.php:1169 +#: lib/action.php:1172 msgid "Before" msgstr "Before" @@ -4987,7 +4985,7 @@ msgstr "Paths configuration" msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5085,37 +5083,50 @@ msgstr "Password changing failed" msgid "Password changing is not allowed" msgstr "Password changing is not allowed" -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "Command results" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "Command complete" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "Command failed" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." -msgstr "Sorry, this command is not yet implemented." +#: lib/command.php:83 lib/command.php:105 +msgid "Notice with that id does not exist" +msgstr "Notice with that id does not exist" -#: lib/command.php:88 +#: lib/command.php:99 lib/command.php:570 +msgid "User has no last notice" +msgstr "User has no last notice" + +#: lib/command.php:125 #, php-format msgid "Could not find a user with nickname %s" msgstr "Could not find a user with nickname %s" -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "Could not find a user with nickname %s" + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "Sorry, this command is not yet implemented." + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" -#: lib/command.php:99 +#: lib/command.php:228 #, php-format msgid "Nudge sent to %s" msgstr "Nudge sent to %s" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5123,195 +5134,194 @@ msgid "" "Notices: %3$s" msgstr "" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -msgid "Notice with that id does not exist" -msgstr "Notice with that id does not exist" - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -msgid "User has no last notice" -msgstr "User has no last notice" - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "Notice marked as fave." -#: lib/command.php:217 +#: lib/command.php:317 msgid "You are already a member of that group" msgstr "You are already a member of that group." -#: lib/command.php:231 +#: lib/command.php:331 #, php-format msgid "Could not join user %s to group %s" msgstr "Could not join user %s to group %s." -#: lib/command.php:236 +#: lib/command.php:336 #, php-format msgid "%s joined group %s" msgstr "%s joined group %s" -#: lib/command.php:275 +#: lib/command.php:373 #, php-format msgid "Could not remove user %s to group %s" msgstr "Could not remove user %s to group %s" -#: lib/command.php:280 +#: lib/command.php:378 #, php-format msgid "%s left group %s" msgstr "%s left group %s" -#: lib/command.php:309 +#: lib/command.php:401 #, php-format msgid "Fullname: %s" msgstr "Fullname: %s" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Location: %s" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Homepage: %s" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "About: %s" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "Message too long - maximum is %d characters, you sent %d" -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "Direct message to %s sent" -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "Error sending direct message." -#: lib/command.php:413 +#: lib/command.php:490 msgid "Cannot repeat your own notice" msgstr "Cannot repeat your own notice." -#: lib/command.php:418 +#: lib/command.php:495 msgid "Already repeated that notice" msgstr "Already repeated that notice." -#: lib/command.php:426 +#: lib/command.php:503 #, php-format msgid "Notice from %s repeated" msgstr "Notice from %s repeated" -#: lib/command.php:428 +#: lib/command.php:505 msgid "Error repeating notice." msgstr "Error repeating notice." -#: lib/command.php:482 +#: lib/command.php:536 #, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "Notice too long - maximum is %d characters, you sent %d" -#: lib/command.php:491 +#: lib/command.php:545 #, php-format msgid "Reply to %s sent" msgstr "Reply to %s sent" -#: lib/command.php:493 +#: lib/command.php:547 msgid "Error saving notice." msgstr "Error saving notice." -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "Specify the name of the user to subscribe to" -#: lib/command.php:554 lib/command.php:589 -msgid "No such user" -msgstr "No such user." +#: lib/command.php:602 +#, fuzzy +msgid "Can't subscribe to OMB profiles by command." +msgstr "You are not subscribed to that profile." -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "Subscribed to %s" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "Specify the name of the user to unsubscribe from" -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "Unsubscribed from %s" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "Command not yet implemented." -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "Notification off." -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "Can't turn off notification." -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "Notification on." -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "Can't turn on notification." -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" -#: lib/command.php:692 +#: lib/command.php:735 #, php-format msgid "Unsubscribed %s" msgstr "Unsubscribed %s" -#: lib/command.php:709 +#: lib/command.php:752 msgid "You are not subscribed to anyone." msgstr "You are not subscribed to anyone." -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "You are already subscribed to these users:" msgstr[1] "You are already subscribed to these users:" -#: lib/command.php:731 +#: lib/command.php:774 msgid "No one is subscribed to you." msgstr "No one is subscribed to you." -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Could not subscribe other to you." msgstr[1] "Could not subscribe other to you." -#: lib/command.php:753 +#: lib/command.php:796 msgid "You are not a member of any groups." msgstr "You are not a member of any groups." -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "You are not a member of that group." msgstr[1] "You are not a member of that group." -#: lib/command.php:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5541,49 +5551,49 @@ msgstr "Tags in %s group's notices" msgid "This page is not available in a media type you accept" msgstr "This page is not available in a media type you accept" -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "Unsupported image file format." + +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "That file is too big. The maximum file size is %s." -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Partial upload." -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "System error uploading file." -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Not an image or corrupt file." -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "Unsupported image file format." - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 msgid "Lost our file." msgstr "Lost our file." -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "Unknown file type" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, php-format msgid "Unknown inbox source %d." msgstr "" @@ -5796,7 +5806,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 msgid "from" msgstr "from" @@ -5946,23 +5956,23 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 msgid "in context" msgstr "in context" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 msgid "Repeated by" msgstr "Repeated by" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "Reply to this notice" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 msgid "Reply" msgstr "Reply" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 msgid "Notice repeated" msgstr "Notice repeated" @@ -6274,47 +6284,47 @@ msgctxt "role" msgid "Moderator" msgstr "" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "a few seconds ago" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "about a minute ago" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "about %d minutes ago" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "about an hour ago" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "about %d hours ago" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "about a day ago" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "about %d days ago" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "about a month ago" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "about %d months ago" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "about a year ago" @@ -6328,7 +6338,7 @@ msgstr "%s is not a valid colour!" msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "%s is not a valid colour! Use 3 or 6 hex chars." -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "Message too long - maximum is %1$d characters, you sent %2$d." diff --git a/locale/es/LC_MESSAGES/statusnet.po b/locale/es/LC_MESSAGES/statusnet.po index cdc0184e4..1f18b6066 100644 --- a/locale/es/LC_MESSAGES/statusnet.po +++ b/locale/es/LC_MESSAGES/statusnet.po @@ -13,12 +13,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:49:43+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:42:32+0000\n" "Language-Team: Spanish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: es\n" "X-Message-Group: out-statusnet\n" @@ -99,7 +99,7 @@ msgstr "No existe tal página" #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -108,10 +108,8 @@ msgstr "No existe tal página" #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "No existe ese usuario." @@ -212,12 +210,12 @@ msgstr "¡Actualizaciones de %1$s y amigos en %2$s!" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 msgid "API method not found." msgstr "Método de API no encontrado." @@ -348,7 +346,7 @@ msgstr "No se encontró estado para ese ID" msgid "This status is already a favorite." msgstr "Este status ya está en favoritos." -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "No se pudo crear favorito." @@ -467,7 +465,7 @@ msgstr "¡No se ha encontrado el grupo!" msgid "You are already a member of that group." msgstr "Ya eres miembro de ese grupo" -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "Has sido bloqueado de ese grupo por el administrador." @@ -517,7 +515,7 @@ msgstr "Token inválido." #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -662,12 +660,12 @@ msgstr "" msgid "Unsupported format." msgstr "Formato no soportado." -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / Favoritos de %2$s" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s actualizaciones favoritas de %2$s / %2$s." @@ -677,7 +675,7 @@ msgstr "%1$s actualizaciones favoritas de %2$s / %2$s." msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Actualizaciones que mencionan %2$s" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "actualizaciones de %1$s en respuesta a las de %2$s / %3$s" @@ -687,7 +685,7 @@ msgstr "actualizaciones de %1$s en respuesta a las de %2$s / %3$s" msgid "%s public timeline" msgstr "línea temporal pública de %s" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "¡Actualizaciones de todos en %s!" @@ -702,12 +700,12 @@ msgstr "Repetido a %s" msgid "Repeats of %s" msgstr "Repeticiones de %s" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Avisos marcados con %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Actualizaciones etiquetadas con %1$s en %2$s!" @@ -767,7 +765,7 @@ msgid "Preview" msgstr "Vista previa" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "Borrar" @@ -850,8 +848,8 @@ msgstr "No se guardó información de bloqueo." #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 msgid "No such group." msgstr "No existe ese grupo." @@ -953,7 +951,7 @@ msgstr "No eres el propietario de esta aplicación." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "Hubo problemas con tu clave de sesión." @@ -1014,7 +1012,7 @@ msgstr "¿Estás seguro de que quieres eliminar este aviso?" msgid "Do not delete this notice" msgstr "No eliminar este mensaje" -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "Borrar este aviso" @@ -1267,7 +1265,7 @@ msgstr "La descripción es muy larga (máx. %d caracteres)." msgid "Could not update group." msgstr "No se pudo actualizar el grupo." -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 msgid "Could not create aliases." msgstr "No fue posible crear alias." @@ -1978,7 +1976,7 @@ msgstr "Invitar nuevos usuarios:" msgid "You are already subscribed to these users:" msgstr "Ya estás suscrito a estos usuarios:" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" @@ -2110,7 +2108,7 @@ msgstr "%1$s se ha unido al grupo %2$" msgid "You must be logged in to leave a group." msgstr "Debes estar conectado para dejar un grupo." -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 msgid "You are not a member of that group." msgstr "No eres miembro de este grupo." @@ -2226,12 +2224,12 @@ msgstr "Usa este formulario para crear un grupo nuevo." msgid "New message" msgstr "Nuevo Mensaje " -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "No puedes enviar mensaje a este usuario." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "¡Ningún contenido!" @@ -2239,7 +2237,7 @@ msgstr "¡Ningún contenido!" msgid "No recipient specified." msgstr "No se especificó receptor." -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "No te auto envíes un mensaje; dícetelo a ti mismo." @@ -2253,7 +2251,7 @@ msgstr "Mensaje enviado" msgid "Direct message to %s sent." msgstr "Se ha enviado un mensaje directo a %s." -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "Error de Ajax" @@ -2389,8 +2387,8 @@ msgstr "tipo de contenido " msgid "Only " msgstr "Sólo " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "No es un formato de dato soportado" @@ -2522,7 +2520,7 @@ msgstr "Contraseña antigua incorrecta." msgid "Error saving user; invalid." msgstr "Error al guardar el usuario; inválido." -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "No se puede guardar la nueva contraseña." @@ -3024,7 +3022,7 @@ msgstr "Restablecer contraseña" msgid "Recover password" msgstr "Recuperar contraseña" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "Recuperación de contraseña solicitada" @@ -3044,19 +3042,19 @@ msgstr "Restablecer" msgid "Enter a nickname or email address." msgstr "Ingresa un apodo o correo electronico" -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "No hay ningún usuario con esa dirección de correo o nombre de usuario." -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "Ninguna dirección de correo electrónico registrada por este usuario." -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "Error al guardar confirmación de la dirección." -#: actions/recoverpassword.php:325 +#: actions/recoverpassword.php:338 msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." @@ -3064,23 +3062,23 @@ msgstr "" "Se enviaron instrucciones para recuperar tu contraseña a la dirección de " "correo registrada." -#: actions/recoverpassword.php:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "Restablecimiento de contraseña inesperado." -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "La contraseña debe tener 6 o más caracteres." -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "La contraseña y la confirmación no coinciden." -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "Error al configurar el usuario." -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "Nueva contraseña guardada correctamente. Has iniciado una sesión." @@ -3282,7 +3280,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:674 +#: actions/repeat.php:114 lib/noticelist.php:676 msgid "Repeated" msgstr "Repetido" @@ -4503,19 +4501,19 @@ msgstr "Sesiones" msgid "Author(s)" msgstr "Autor(es)" -#: classes/File.php:144 +#: classes/File.php:169 #, 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." msgstr "" -#: classes/File.php:154 +#: classes/File.php:179 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:161 +#: classes/File.php:186 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" @@ -4598,7 +4596,7 @@ msgstr "Hubo un problema al guardar el aviso." msgid "Problem saving group inbox." msgstr "Hubo un problema al guardar el aviso." -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4630,30 +4628,30 @@ msgstr "No se pudo eliminar la suscripción." msgid "Couldn't delete subscription OMB token." msgstr "No se pudo eliminar la suscripción." -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "No se pudo eliminar la suscripción." -#: classes/User.php:373 +#: classes/User.php:378 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Bienvenido a %1$s, @%2$s!" -#: classes/User_group.php:477 +#: classes/User_group.php:480 msgid "Could not create group." msgstr "No se pudo crear grupo." -#: classes/User_group.php:486 +#: classes/User_group.php:489 #, fuzzy msgid "Could not set group URI." msgstr "No se pudo configurar miembros de grupo." -#: classes/User_group.php:507 +#: classes/User_group.php:510 #, fuzzy msgid "Could not set group membership." msgstr "No se pudo configurar miembros de grupo." -#: classes/User_group.php:521 +#: classes/User_group.php:524 #, fuzzy msgid "Could not save local group info." msgstr "No se ha podido guardar la suscripción." @@ -4875,7 +4873,7 @@ msgstr "Insignia" msgid "StatusNet software license" msgstr "Licencia de software de StatusNet" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4884,12 +4882,12 @@ msgstr "" "**%%site.name%%** es un servicio de microblogueo de [%%site.broughtby%%**](%%" "site.broughtbyurl%%)." -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** es un servicio de microblogueo." -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4900,43 +4898,43 @@ msgstr "" "disponible bajo la [GNU Affero General Public License](http://www.fsf.org/" "licensing/licenses/agpl-3.0.html)." -#: lib/action.php:821 +#: lib/action.php:824 msgid "Site content license" msgstr "Licencia de contenido del sitio" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Derechos de autor de contenido y datos por los colaboradores. Todos los " "derechos reservados." -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "Todo" -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "Licencia." -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "Paginación" -#: lib/action.php:1161 +#: lib/action.php:1164 msgid "After" msgstr "Después" -#: lib/action.php:1169 +#: lib/action.php:1172 msgid "Before" msgstr "Antes" @@ -5047,7 +5045,7 @@ msgstr "SMS confirmación" msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5149,37 +5147,50 @@ msgstr "El cambio de contraseña ha fallado" msgid "Password changing is not allowed" msgstr "Cambio de contraseña " -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "Resultados de comando" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "Comando completo" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "Comando falló" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." -msgstr "Disculpa, todavía no se implementa este comando." +#: lib/command.php:83 lib/command.php:105 +msgid "Notice with that id does not exist" +msgstr "No existe ningún mensaje con ese id" -#: lib/command.php:88 +#: lib/command.php:99 lib/command.php:570 +msgid "User has no last notice" +msgstr "Usuario no tiene último aviso" + +#: lib/command.php:125 #, php-format msgid "Could not find a user with nickname %s" msgstr "No se pudo encontrar a nadie con el nombre de usuario %s" -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "No se pudo encontrar a nadie con el nombre de usuario %s" + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "Disculpa, todavía no se implementa este comando." + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" -#: lib/command.php:99 +#: lib/command.php:228 #, php-format msgid "Nudge sent to %s" msgstr "zumbido enviado a %s" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5187,200 +5198,199 @@ msgid "" "Notices: %3$s" msgstr "" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -msgid "Notice with that id does not exist" -msgstr "No existe ningún mensaje con ese id" - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -msgid "User has no last notice" -msgstr "Usuario no tiene último aviso" - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "Aviso marcado como favorito." -#: lib/command.php:217 +#: lib/command.php:317 #, fuzzy msgid "You are already a member of that group" msgstr "Ya eres miembro de ese grupo" -#: lib/command.php:231 +#: lib/command.php:331 #, fuzzy, php-format msgid "Could not join user %s to group %s" msgstr "No se puede unir usuario %s a grupo %s" -#: lib/command.php:236 +#: lib/command.php:336 #, php-format msgid "%s joined group %s" msgstr "%s se unió a grupo %s" -#: lib/command.php:275 +#: lib/command.php:373 #, fuzzy, php-format msgid "Could not remove user %s to group %s" msgstr "No se pudo eliminar a usuario %s de grupo %s" -#: lib/command.php:280 +#: lib/command.php:378 #, php-format msgid "%s left group %s" msgstr "%s dejó grupo %s" -#: lib/command.php:309 +#: lib/command.php:401 #, php-format msgid "Fullname: %s" msgstr "Nombre completo: %s" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Lugar: %s" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Página de inicio: %s" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "Sobre: %s" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, fuzzy, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "Mensaje muy largo - máximo 140 caracteres, enviaste %d" -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "Se envió mensaje directo a %s" -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "Error al enviar mensaje directo." -#: lib/command.php:413 +#: lib/command.php:490 #, fuzzy msgid "Cannot repeat your own notice" msgstr "No se puede activar notificación." -#: lib/command.php:418 +#: lib/command.php:495 #, fuzzy msgid "Already repeated that notice" msgstr "Borrar este aviso" -#: lib/command.php:426 +#: lib/command.php:503 #, fuzzy, php-format msgid "Notice from %s repeated" msgstr "Aviso publicado" -#: lib/command.php:428 +#: lib/command.php:505 #, fuzzy msgid "Error repeating notice." msgstr "Hubo un problema al guardar el aviso." -#: lib/command.php:482 +#: lib/command.php:536 #, fuzzy, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "Mensaje muy largo - máximo 140 caracteres, enviaste %d" -#: lib/command.php:491 +#: lib/command.php:545 #, fuzzy, php-format msgid "Reply to %s sent" msgstr "Responder este aviso." -#: lib/command.php:493 +#: lib/command.php:547 #, fuzzy msgid "Error saving notice." msgstr "Hubo un problema al guardar el aviso." -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "Especificar el nombre del usuario a suscribir" -#: lib/command.php:554 lib/command.php:589 -msgid "No such user" -msgstr "No existe ese usuario." +#: lib/command.php:602 +#, fuzzy +msgid "Can't subscribe to OMB profiles by command." +msgstr "No te has suscrito a ese perfil." -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "Suscrito a %s" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "Especificar el nombre del usuario para desuscribirse de" -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "Desuscrito de %s" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "Todavía no se implementa comando." -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "Notificación no activa." -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "No se puede desactivar notificación." -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "Notificación activada." -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "No se puede activar notificación." -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" -#: lib/command.php:692 +#: lib/command.php:735 #, fuzzy, php-format msgid "Unsubscribed %s" msgstr "Desuscrito de %s" -#: lib/command.php:709 +#: lib/command.php:752 msgid "You are not subscribed to anyone." msgstr "No estás suscrito a nadie." -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Ya estás suscrito a estos usuarios:" msgstr[1] "Ya estás suscrito a estos usuarios:" -#: lib/command.php:731 +#: lib/command.php:774 msgid "No one is subscribed to you." msgstr "Nadie está suscrito a ti." -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "No se pudo suscribir otro a ti." msgstr[1] "No se pudo suscribir otro a ti." -#: lib/command.php:753 +#: lib/command.php:796 msgid "You are not a member of any groups." msgstr "No eres miembro de ningún grupo" -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Eres miembro de este grupo:" msgstr[1] "Eres miembro de estos grupos:" -#: lib/command.php:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5614,49 +5624,49 @@ msgstr "Tags en avisos del grupo %s" msgid "This page is not available in a media type you accept" msgstr "Esta página no está disponible en el tipo de medio que aceptas." -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "Formato de imagen no soportado." + +#: lib/imagefile.php:90 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Puedes cargar una imagen de logo para tu grupo." -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Carga parcial." -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Error del sistema al cargar el archivo." -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "No es una imagen o es un fichero corrupto." -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "Formato de imagen no soportado." - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 msgid "Lost our file." msgstr "Se perdió nuestro archivo." -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "Tipo de archivo desconocido" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "MB" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "kB" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, php-format msgid "Unknown inbox source %d." msgstr "" @@ -5867,7 +5877,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 msgid "from" msgstr "desde" @@ -6023,24 +6033,24 @@ msgstr "" msgid "at" msgstr "en" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 msgid "in context" msgstr "en contexto" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 #, fuzzy msgid "Repeated by" msgstr "Crear" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "Responder este aviso." -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 msgid "Reply" msgstr "Responder" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 #, fuzzy msgid "Notice repeated" msgstr "Aviso borrado" @@ -6366,47 +6376,47 @@ msgctxt "role" msgid "Moderator" msgstr "Moderar" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "hace unos segundos" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "hace un minuto" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "hace %d minutos" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "hace una hora" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "hace %d horas" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "hace un día" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "hace %d días" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "hace un mes" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "hace %d meses" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "hace un año" @@ -6420,7 +6430,7 @@ msgstr "" msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "" -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, fuzzy, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "Mensaje muy largo - máximo 140 caracteres, enviaste %d" diff --git a/locale/fa/LC_MESSAGES/statusnet.po b/locale/fa/LC_MESSAGES/statusnet.po index 955efd243..c781194ad 100644 --- a/locale/fa/LC_MESSAGES/statusnet.po +++ b/locale/fa/LC_MESSAGES/statusnet.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:49:48+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:42:38+0000\n" "Last-Translator: Ahmad Sufi Mahmudi\n" "Language-Team: Persian\n" "MIME-Version: 1.0\n" @@ -20,7 +20,7 @@ msgstr "" "X-Language-Code: fa\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" #. TRANS: Page title @@ -101,7 +101,7 @@ msgstr "چنین صفحه‌ای وجود ندارد" #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -110,10 +110,8 @@ msgstr "چنین صفحه‌ای وجود ندارد" #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "چنین کاربری وجود ندارد." @@ -212,12 +210,12 @@ msgstr "به روز رسانی از %1$ و دوستان در %2$" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 msgid "API method not found." msgstr "رابط مورد نظر پیدا نشد." @@ -346,7 +344,7 @@ msgstr "هیچ وضعیتی با آن شناسه پیدا نشد." msgid "This status is already a favorite." msgstr "این وضعیت درحال حاضر یک وضعیت مورد علاقه است!" -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "نمی‌توان وضعیت را موردعلاقه کرد." @@ -465,7 +463,7 @@ msgstr "گروه یافت نشد!" msgid "You are already a member of that group." msgstr "شما از پیش یک عضو این گروه هستید." -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "دسترسی شما به گروه توسط مدیر آن محدود شده است." @@ -516,7 +514,7 @@ msgstr "اندازه‌ی نادرست" #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -654,12 +652,12 @@ msgstr "حداکثر طول پیام %d حرف است که شامل ضمیمه msgid "Unsupported format." msgstr "قالب پشتیبانی نشده." -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, fuzzy, php-format msgid "%1$s / Favorites from %2$s" msgstr "%s / دوست داشتنی از %s" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, fuzzy, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%s به روز رسانی های دوست داشتنی %s / %s" @@ -669,7 +667,7 @@ msgstr "%s به روز رسانی های دوست داشتنی %s / %s" msgid "%1$s / Updates mentioning %2$s" msgstr "%$1s / به روز رسانی های شامل %2$s" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s به روز رسانی هایی که در پاسخ به $2$s / %3$s" @@ -679,7 +677,7 @@ msgstr "%1$s به روز رسانی هایی که در پاسخ به $2$s / %3$s msgid "%s public timeline" msgstr "%s خط‌زمانی عمومی" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s به روز رسانی های عموم" @@ -694,12 +692,12 @@ msgstr "" msgid "Repeats of %s" msgstr "تکرار %s" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "پیام‌هایی که با %s نشانه گزاری شده اند." -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "پیام‌های نشانه گزاری شده با %1$s در %2$s" @@ -760,7 +758,7 @@ msgid "Preview" msgstr "پیش‌نمایش" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "حذف" @@ -844,8 +842,8 @@ msgstr "" #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 msgid "No such group." msgstr "چنین گروهی وجود ندارد." @@ -950,7 +948,7 @@ msgstr "شما یک عضو این گروه نیستید." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "" @@ -1014,7 +1012,7 @@ msgstr "آیا اطمینان دارید که می‌خواهید این پیا msgid "Do not delete this notice" msgstr "این پیام را پاک نکن" -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "این پیام را پاک کن" @@ -1277,7 +1275,7 @@ msgstr "توصیف بسیار زیاد است (حداکثر %d حرف)." msgid "Could not update group." msgstr "نمی‌توان گروه را به‌هنگام‌سازی کرد." -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 msgid "Could not create aliases." msgstr "نمی‌توان نام‌های مستعار را ساخت." @@ -1971,7 +1969,7 @@ msgstr "دعوت کردن کاربران تازه" msgid "You are already subscribed to these users:" msgstr "هم اکنون شما این کاربران را دنبال می‌کنید: " -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "" @@ -2076,7 +2074,7 @@ msgstr "ملحق شدن به گروه" msgid "You must be logged in to leave a group." msgstr "برای ترک یک گروه، شما باید وارد شده باشید." -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 msgid "You are not a member of that group." msgstr "شما یک کاربر این گروه نیستید." @@ -2193,12 +2191,12 @@ msgstr "از این فرم برای ساختن یک گروه جدید استفا msgid "New message" msgstr "پیام جدید" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "شما نمی توانید به این کاربر پیام بفرستید." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "بدون محتوا!" @@ -2206,7 +2204,7 @@ msgstr "بدون محتوا!" msgid "No recipient specified." msgstr "هیچ گیرنده ای مشخص نشده" -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "یک پیام را به خودتان نفرستید؛ در عوض آن را آهسته برای خود بگویید." @@ -2220,7 +2218,7 @@ msgstr "پیام فرستاده‌شد" msgid "Direct message to %s sent." msgstr "پیام مستقیم به %s فرستاده شد." -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "اشکال آژاکسی" @@ -2355,8 +2353,8 @@ msgstr "نوع محتوا " msgid "Only " msgstr " فقط" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "یک قالب دادهٔ پشتیبانی‌شده نیست." @@ -2494,7 +2492,7 @@ msgstr "گذرواژه قدیمی اشتباه است" msgid "Error saving user; invalid." msgstr "خطا هنگام ذخیره ی کاربر؛ نا معتبر." -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "نمی‌توان گذرواژه جدید را ذخیره کرد." @@ -2978,7 +2976,7 @@ msgstr "ریست کردن کلمه ی عبور" msgid "Recover password" msgstr "بازیابی کلمه ی عبور" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "بازیابی کلمه ی عبور درخواست شد" @@ -2998,19 +2996,19 @@ msgstr "ریست( راه انداری مجدد )" msgid "Enter a nickname or email address." msgstr "یک نام کاربری یا آدرس ایمیل وارد کنید." -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "هیچ کاربری با آن آدرس ایمیل یا نام کاربری وجود ندارد." -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "برای آن کاربر آدرس ایمیل ثبت شده وجود ندارد." -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "خطا هنگام ذخیره ی تاییدیه ی آدرس." -#: actions/recoverpassword.php:325 +#: actions/recoverpassword.php:338 msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." @@ -3018,23 +3016,23 @@ msgstr "" "دستورالعمل چگونگی بازیابی کلمه ی عبور به آدرس ایمیل ثبت شده در حساب شما " "ارسال شده است." -#: actions/recoverpassword.php:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "کلمه ی عبور به طور غیر منتظره ریست شد." -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "کلمه ی عبور باید ۶ کاراکتر یا بیشتر باشد." -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "کلمه ی عبور و تاییدیه ی آن با هم تطابق ندارند." -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "" -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "کلمه ی عبور جدید با موفقیت ذخیره شد. شما الان وارد شده اید." @@ -3213,7 +3211,7 @@ msgstr "شما نمی توانید آگهی خودتان را تکرار کنی msgid "You already repeated that notice." msgstr "شما قبلا آن آگهی را تکرار کردید." -#: actions/repeat.php:114 lib/noticelist.php:674 +#: actions/repeat.php:114 lib/noticelist.php:676 msgid "Repeated" msgstr "" @@ -4411,19 +4409,19 @@ msgstr "شخصی" msgid "Author(s)" msgstr "مؤلف" -#: classes/File.php:144 +#: classes/File.php:169 #, 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." msgstr "" -#: classes/File.php:154 +#: classes/File.php:179 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:161 +#: classes/File.php:186 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" @@ -4504,7 +4502,7 @@ msgstr "مشکل در ذخیره کردن آگهی." msgid "Problem saving group inbox." msgstr "مشکل در ذخیره کردن آگهی." -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4534,29 +4532,29 @@ msgstr "" msgid "Couldn't delete subscription OMB token." msgstr "نمی‌توان تصدیق پست الکترونیک را پاک کرد." -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "" -#: classes/User.php:373 +#: classes/User.php:378 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "خوش امدید به %1$s , @%2$s!" -#: classes/User_group.php:477 +#: classes/User_group.php:480 msgid "Could not create group." msgstr "نمیتوان گروه را تشکیل داد" -#: classes/User_group.php:486 +#: classes/User_group.php:489 #, fuzzy msgid "Could not set group URI." msgstr "نمیتوان گروه را تشکیل داد" -#: classes/User_group.php:507 +#: classes/User_group.php:510 msgid "Could not set group membership." msgstr "" -#: classes/User_group.php:521 +#: classes/User_group.php:524 #, fuzzy msgid "Could not save local group info." msgstr "نمی‌توان شناس‌نامه را ذخیره کرد." @@ -4777,19 +4775,19 @@ msgstr "" msgid "StatusNet software license" msgstr "StatusNet مجوز نرم افزار" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%). " msgstr "" -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "" -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4797,41 +4795,41 @@ msgid "" "org/licensing/licenses/agpl-3.0.html)." msgstr "" -#: lib/action.php:821 +#: lib/action.php:824 msgid "Site content license" msgstr "مجوز محتویات سایت" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "همه " -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "مجوز." -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "صفحه بندى" -#: lib/action.php:1161 +#: lib/action.php:1164 msgid "After" msgstr "بعد از" -#: lib/action.php:1169 +#: lib/action.php:1172 msgid "Before" msgstr "قبل از" @@ -4941,7 +4939,7 @@ msgstr "پیکره بندی اصلی سایت" msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5043,37 +5041,50 @@ msgstr "تغییر گذرواژه" msgid "Password changing is not allowed" msgstr "تغییر گذرواژه" -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "نتیجه دستور" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "دستور انجام شد" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "فرمان شکست خورد" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." -msgstr "متاسفانه این دستور هنوز اجرا نشده." +#: lib/command.php:83 lib/command.php:105 +msgid "Notice with that id does not exist" +msgstr "خبری با این مشخصه ایجاد نشد" -#: lib/command.php:88 +#: lib/command.php:99 lib/command.php:570 +msgid "User has no last notice" +msgstr "کاربر آگهی آخر ندارد" + +#: lib/command.php:125 #, php-format msgid "Could not find a user with nickname %s" msgstr "پیدا نشد %s کاریری یا نام مستعار" -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "پیدا نشد %s کاریری یا نام مستعار" + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "متاسفانه این دستور هنوز اجرا نشده." + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" -#: lib/command.php:99 +#: lib/command.php:228 #, fuzzy, php-format msgid "Nudge sent to %s" msgstr "فرتادن اژیر" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5084,197 +5095,195 @@ msgstr "" "مشترک : %2$s\n" "خبر : %3$s" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -msgid "Notice with that id does not exist" -msgstr "خبری با این مشخصه ایجاد نشد" - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -msgid "User has no last notice" -msgstr "کاربر آگهی آخر ندارد" - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "" -#: lib/command.php:217 +#: lib/command.php:317 msgid "You are already a member of that group" msgstr "شما از پیش یک عضو این گروه هستید." -#: lib/command.php:231 +#: lib/command.php:331 #, php-format msgid "Could not join user %s to group %s" msgstr "عضویت %s در گروه %s نا موفق بود." -#: lib/command.php:236 +#: lib/command.php:336 #, php-format msgid "%s joined group %s" msgstr "ملحق شدن به گروه" -#: lib/command.php:275 +#: lib/command.php:373 #, fuzzy, php-format msgid "Could not remove user %s to group %s" msgstr "خارج شدن %s از گروه %s نا موفق بود" -#: lib/command.php:280 +#: lib/command.php:378 #, php-format msgid "%s left group %s" msgstr "%s گروه %s را ترک کرد." -#: lib/command.php:309 +#: lib/command.php:401 #, php-format msgid "Fullname: %s" msgstr "نام کامل : %s" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "موقعیت : %s" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "صفحه خانگی : %s" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "درباره ی : %s" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "" "پیغام بسیار طولانی است - بیشترین اندازه امکان پذیر %d کاراکتر است , شما %d " "تا فرستادید" -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "پیام مستقیم به %s فرستاده شد." -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "خطا در فرستادن پیام مستقیم." -#: lib/command.php:413 +#: lib/command.php:490 msgid "Cannot repeat your own notice" msgstr "نمی توان آگهی خودتان را تکرار کرد" -#: lib/command.php:418 +#: lib/command.php:495 msgid "Already repeated that notice" msgstr "آن آگهی قبلا تکرار شده است." -#: lib/command.php:426 +#: lib/command.php:503 #, fuzzy, php-format msgid "Notice from %s repeated" msgstr "آگهی تکرار شد" -#: lib/command.php:428 +#: lib/command.php:505 msgid "Error repeating notice." msgstr "خطا هنگام تکرار آگهی." -#: lib/command.php:482 +#: lib/command.php:536 #, fuzzy, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "" "پیغام بسیار طولانی است - بیشترین اندازه امکان پذیر %d کاراکتر است , شما %d " "تا فرستادید" -#: lib/command.php:491 +#: lib/command.php:545 #, fuzzy, php-format msgid "Reply to %s sent" msgstr "به این آگهی جواب دهید" -#: lib/command.php:493 +#: lib/command.php:547 msgid "Error saving notice." msgstr "خطا هنگام ذخیره ی آگهی" -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "" -#: lib/command.php:554 lib/command.php:589 +#: lib/command.php:602 #, fuzzy -msgid "No such user" -msgstr "چنین کاربری وجود ندارد." +msgid "Can't subscribe to OMB profiles by command." +msgstr "شما به این پروفيل متعهد نشدید" -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "" -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "دستور هنوز اجرا نشده" -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "" -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "ناتوان در خاموش کردن آگاه سازی." -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "آگاه سازی فعال است." -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "ناتوان در روشن کردن آگاه سازی." -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "فرمان ورود از کار افتاده است" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" -#: lib/command.php:692 +#: lib/command.php:735 #, fuzzy, php-format msgid "Unsubscribed %s" msgstr "مشترک‌ها" -#: lib/command.php:709 +#: lib/command.php:752 msgid "You are not subscribed to anyone." msgstr "شما توسط هیچ کس تصویب نشده اید ." -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "هم اکنون شما این کاربران را دنبال می‌کنید: " -#: lib/command.php:731 +#: lib/command.php:774 msgid "No one is subscribed to you." msgstr "هیچکس شما را تایید نکرده ." -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "هیچکس شما را تایید نکرده ." -#: lib/command.php:753 +#: lib/command.php:796 msgid "You are not a member of any groups." msgstr "شما در هیچ گروهی عضو نیستید ." -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "شما یک عضو این گروه نیستید." -#: lib/command.php:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5503,50 +5512,50 @@ msgstr "" msgid "This page is not available in a media type you accept" msgstr "" -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "فرمت(فایل) عکس پشتیبانی نشده." + +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "" "است . این فایل بسیار یزرگ است %s بیشترین مقدار قابل قبول برای اندازه ی فایل." -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "" -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "خطای سیستم ارسال فایل." -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "تصویر یا فایل خرابی نیست" -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "فرمت(فایل) عکس پشتیبانی نشده." - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 msgid "Lost our file." msgstr "فایلمان گم شده" -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "نوع فایل پشتیبانی نشده" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "مگابایت" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "کیلوبایت" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, php-format msgid "Unknown inbox source %d." msgstr "" @@ -5747,7 +5756,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 msgid "from" msgstr "از" @@ -5902,23 +5911,23 @@ msgstr "" msgid "at" msgstr "در" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 msgid "in context" msgstr "در زمینه" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 msgid "Repeated by" msgstr "تکرار از" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "به این آگهی جواب دهید" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 msgid "Reply" msgstr "جواب دادن" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 msgid "Notice repeated" msgstr "آگهی تکرار شد" @@ -6230,47 +6239,47 @@ msgctxt "role" msgid "Moderator" msgstr "" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "چند ثانیه پیش" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "حدود یک دقیقه پیش" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "حدود %d دقیقه پیش" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "حدود یک ساعت پیش" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "حدود %d ساعت پیش" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "حدود یک روز پیش" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "حدود %d روز پیش" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "حدود یک ماه پیش" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "حدود %d ماه پیش" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "حدود یک سال پیش" @@ -6284,7 +6293,7 @@ msgstr "%s یک رنگ صحیح نیست!" msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "%s یک رنگ صحیح نیست! از ۳ یا ۶ حرف مبنای شانزده استفاده کنید" -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, fuzzy, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "" diff --git a/locale/fi/LC_MESSAGES/statusnet.po b/locale/fi/LC_MESSAGES/statusnet.po index 68a63537b..aa53f56f2 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-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:49:46+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:42:35+0000\n" "Language-Team: Finnish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fi\n" "X-Message-Group: out-statusnet\n" @@ -102,7 +102,7 @@ msgstr "Sivua ei ole." #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -111,10 +111,8 @@ msgstr "Sivua ei ole." #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Käyttäjää ei ole." @@ -213,12 +211,12 @@ msgstr "Käyttäjän %1$s ja kavereiden päivitykset palvelussa %2$s!" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "API-metodia ei löytynyt!" @@ -353,7 +351,7 @@ msgstr "Käyttäjätunnukselle ei löytynyt statusviestiä." msgid "This status is already a favorite." msgstr "Tämä päivitys on jo suosikki!" -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "Ei voitu lisätä suosikiksi." @@ -476,7 +474,7 @@ msgstr "Ryhmää ei löytynyt!" msgid "You are already a member of that group." msgstr "Sinä kuulut jo tähän ryhmään." -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "Sinut on estetty osallistumasta tähän ryhmään ylläpitäjän toimesta." @@ -527,7 +525,7 @@ msgstr "Koko ei kelpaa." #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -671,12 +669,12 @@ msgstr "Maksimikoko päivitykselle on %d merkkiä, mukaan lukien URL-osoite." msgid "Unsupported format." msgstr "Formaattia ei ole tuettu." -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, fuzzy, php-format msgid "%1$s / Favorites from %2$s" msgstr "%s / Käyttäjän %s suosikit" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, fuzzy, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr " Palvelun %s päivitykset, jotka %s / %s on merkinnyt suosikikseen." @@ -686,7 +684,7 @@ msgstr " Palvelun %s päivitykset, jotka %s / %s on merkinnyt suosikikseen." msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Vastaukset päivitykseen %2$s" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" @@ -697,7 +695,7 @@ msgstr "" msgid "%s public timeline" msgstr "%s julkinen aikajana" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s päivitykset kaikilta!" @@ -712,12 +710,12 @@ msgstr "Vastaukset käyttäjälle %s" msgid "Repeats of %s" msgstr "Vastaukset käyttäjälle %s" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Päivitykset joilla on tagi %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Käyttäjän %1$s päivitykset palvelussa %2$s!" @@ -777,7 +775,7 @@ msgid "Preview" msgstr "Esikatselu" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "Poista" @@ -858,8 +856,8 @@ msgstr "Käyttäjän estotiedon tallennus epäonnistui." #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 msgid "No such group." msgstr "Tuota ryhmää ei ole." @@ -966,7 +964,7 @@ msgstr "Sinä et kuulu tähän ryhmään." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "Istuntoavaimesi kanssa oli ongelma." @@ -1027,7 +1025,7 @@ msgstr "Oletko varma että haluat poistaa tämän päivityksen?" msgid "Do not delete this notice" msgstr "Älä poista tätä päivitystä" -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "Poista tämä päivitys" @@ -1298,7 +1296,7 @@ msgstr "kuvaus on liian pitkä (max %d merkkiä)." msgid "Could not update group." msgstr "Ei voitu päivittää ryhmää." -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 msgid "Could not create aliases." msgstr "Ei voitu lisätä aliasta." @@ -2002,7 +2000,7 @@ msgstr "Kutsu uusia käyttäjiä" msgid "You are already subscribed to these users:" msgstr "Olet jos tilannut seuraavien käyttäjien päivitykset:" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" @@ -2135,7 +2133,7 @@ msgstr "%s liittyi ryhmään %s" msgid "You must be logged in to leave a group." msgstr "Sinun pitää olla kirjautunut sisään, jotta voit erota ryhmästä." -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 msgid "You are not a member of that group." msgstr "Sinä et kuulu tähän ryhmään." @@ -2256,12 +2254,12 @@ msgstr "Käytä tätä lomaketta luodaksesi ryhmän." msgid "New message" msgstr "Uusi viesti" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "Et voi lähettää viestiä tälle käyttäjälle." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "Ei sisältöä!" @@ -2269,7 +2267,7 @@ msgstr "Ei sisältöä!" msgid "No recipient specified." msgstr "Vastaanottajaa ei ole määritelty." -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "Älä lähetä viestiä itsellesi, vaan kuiskaa se vain hiljaa itsellesi." @@ -2283,7 +2281,7 @@ msgstr "Viesti lähetetty" msgid "Direct message to %s sent." msgstr "Suora viesti käyttäjälle %s lähetetty" -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "Ajax-virhe" @@ -2418,8 +2416,8 @@ msgstr "Yhdistä" msgid "Only " msgstr "Vain " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "Tuo ei ole tuettu tietomuoto." @@ -2557,7 +2555,7 @@ msgstr "Väärä vanha salasana" msgid "Error saving user; invalid." msgstr "Virhe tapahtui käyttäjän tallentamisessa; epäkelpo." -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "Uutta salasanaa ei voida tallentaa." @@ -3064,7 +3062,7 @@ msgstr "Vaihda salasana" msgid "Recover password" msgstr "Salasanan palautus" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "Salasanan palautuspyyntö lähetetty." @@ -3084,19 +3082,19 @@ msgstr "Vaihda" msgid "Enter a nickname or email address." msgstr "Syötä käyttäjätunnus tai sähköpostiosoite" -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "Käyttäjää tuolla sähköpostilla tai käyttäjätunnuksella ei ole." -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "Rekisteröityä sähköpostiosoitetta ei ole tälle käyttäjälle." -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "Virhe tapahtui osoitevahvistuksen tallentamisessa" -#: actions/recoverpassword.php:325 +#: actions/recoverpassword.php:338 msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." @@ -3104,23 +3102,23 @@ msgstr "" "Ohjeet salasanan palauttamiseksi on lähetetty sähköpostiisiosoitteeseen, " "joka on rekisteröity käyttäjätunnuksellesi." -#: actions/recoverpassword.php:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "Odottamaton salasanan uudelleenasetus." -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "Salasanassa pitää olla 6 tai useampia merkkejä." -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Salasana ja salasanan vahvistus eivät täsmää." -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "Virhe tapahtui käyttäjän asettamisessa." -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "" "Uusi salasana tallennettiin onnistuneesti. Olet nyt kirjautunut sisään." @@ -3332,7 +3330,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:674 +#: actions/repeat.php:114 lib/noticelist.php:676 #, fuzzy msgid "Repeated" msgstr "Luotu" @@ -4578,19 +4576,19 @@ msgstr "Omat" msgid "Author(s)" msgstr "" -#: classes/File.php:144 +#: classes/File.php:169 #, 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." msgstr "" -#: classes/File.php:154 +#: classes/File.php:179 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:161 +#: classes/File.php:186 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" @@ -4675,7 +4673,7 @@ msgstr "Ongelma päivityksen tallentamisessa." msgid "Problem saving group inbox." msgstr "Ongelma päivityksen tallentamisessa." -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4708,29 +4706,29 @@ msgstr "Ei voitu poistaa tilausta." msgid "Couldn't delete subscription OMB token." msgstr "Ei voitu poistaa tilausta." -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "Ei voitu poistaa tilausta." -#: classes/User.php:373 +#: classes/User.php:378 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Viesti käyttäjälle %1$s, %2$s" -#: classes/User_group.php:477 +#: classes/User_group.php:480 msgid "Could not create group." msgstr "Ryhmän luonti ei onnistunut." -#: classes/User_group.php:486 +#: classes/User_group.php:489 #, fuzzy msgid "Could not set group URI." msgstr "Ryhmän jäsenyystietoja ei voitu asettaa." -#: classes/User_group.php:507 +#: classes/User_group.php:510 msgid "Could not set group membership." msgstr "Ryhmän jäsenyystietoja ei voitu asettaa." -#: classes/User_group.php:521 +#: classes/User_group.php:524 #, fuzzy msgid "Could not save local group info." msgstr "Tilausta ei onnistuttu tallentamaan." @@ -4954,7 +4952,7 @@ msgstr "Tönäise" msgid "StatusNet software license" msgstr "StatusNet-ohjelmiston lisenssi" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4963,12 +4961,12 @@ msgstr "" "**%%site.name%%** on mikroblogipalvelu, jonka tarjoaa [%%site.broughtby%%](%%" "site.broughtbyurl%%). " -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** on mikroblogipalvelu. " -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4979,42 +4977,42 @@ msgstr "" "versio %s, saatavilla lisenssillä [GNU Affero General Public License](http://" "www.fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:821 +#: lib/action.php:824 #, fuzzy msgid "Site content license" msgstr "StatusNet-ohjelmiston lisenssi" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "Kaikki " -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "lisenssi." -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "Sivutus" -#: lib/action.php:1161 +#: lib/action.php:1164 msgid "After" msgstr "Myöhemmin" -#: lib/action.php:1169 +#: lib/action.php:1172 msgid "Before" msgstr "Aiemmin" @@ -5131,7 +5129,7 @@ msgstr "SMS vahvistus" msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5237,37 +5235,51 @@ msgstr "Salasanan vaihto" msgid "Password changing is not allowed" msgstr "Salasanan vaihto" -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "Komennon tulos" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "Komento suoritettu" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "Komento epäonnistui" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." -msgstr "Valitettavasti tätä komentoa ei ole vielä toteutettu." +#: lib/command.php:83 lib/command.php:105 +#, fuzzy +msgid "Notice with that id does not exist" +msgstr "Ei profiilia tuolla id:llä." -#: lib/command.php:88 +#: lib/command.php:99 lib/command.php:570 +msgid "User has no last notice" +msgstr "Käyttäjällä ei ole viimeistä päivitystä" + +#: lib/command.php:125 #, fuzzy, php-format msgid "Could not find a user with nickname %s" msgstr "Ei voitu päivittää käyttäjälle vahvistettua sähköpostiosoitetta." -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "Ei voitu päivittää käyttäjälle vahvistettua sähköpostiosoitetta." + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "Valitettavasti tätä komentoa ei ole vielä toteutettu." + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" -#: lib/command.php:99 +#: lib/command.php:228 #, fuzzy, php-format msgid "Nudge sent to %s" msgstr "Tönäisy lähetetty" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5275,203 +5287,201 @@ msgid "" "Notices: %3$s" msgstr "" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -#, fuzzy -msgid "Notice with that id does not exist" -msgstr "Ei profiilia tuolla id:llä." - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -msgid "User has no last notice" -msgstr "Käyttäjällä ei ole viimeistä päivitystä" - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "Päivitys on merkitty suosikiksi." -#: lib/command.php:217 +#: lib/command.php:317 msgid "You are already a member of that group" msgstr "Sinä kuulut jo tähän ryhmään." -#: lib/command.php:231 +#: lib/command.php:331 #, php-format msgid "Could not join user %s to group %s" msgstr "Käyttäjä %s ei voinut liittyä ryhmään %s." -#: lib/command.php:236 +#: lib/command.php:336 #, php-format msgid "%s joined group %s" msgstr "%s liittyi ryhmään %s" -#: lib/command.php:275 +#: lib/command.php:373 #, php-format msgid "Could not remove user %s to group %s" msgstr "Ei voitu poistaa käyttäjää %s ryhmästä %s" -#: lib/command.php:280 +#: lib/command.php:378 #, php-format msgid "%s left group %s" msgstr "%s erosi ryhmästä %s" -#: lib/command.php:309 +#: lib/command.php:401 #, php-format msgid "Fullname: %s" msgstr "Koko nimi: %s" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Kotipaikka: %s" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Kotisivu: %s" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "Tietoa: %s" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, fuzzy, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "Viesti oli liian pitkä - maksimikoko on 140 merkkiä, lähetit %d" -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "Suora viesti käyttäjälle %s lähetetty" -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "Tapahtui virhe suoran viestin lähetyksessä." -#: lib/command.php:413 +#: lib/command.php:490 #, fuzzy msgid "Cannot repeat your own notice" msgstr "Ilmoituksia ei voi pistää päälle." -#: lib/command.php:418 +#: lib/command.php:495 #, fuzzy msgid "Already repeated that notice" msgstr "Poista tämä päivitys" -#: lib/command.php:426 +#: lib/command.php:503 #, fuzzy, php-format msgid "Notice from %s repeated" msgstr "Päivitys lähetetty" -#: lib/command.php:428 +#: lib/command.php:505 #, fuzzy msgid "Error repeating notice." msgstr "Ongelma päivityksen tallentamisessa." -#: lib/command.php:482 +#: lib/command.php:536 #, fuzzy, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "Viesti oli liian pitkä - maksimikoko on 140 merkkiä, lähetit %d" -#: lib/command.php:491 +#: lib/command.php:545 #, fuzzy, php-format msgid "Reply to %s sent" msgstr "Vastaa tähän päivitykseen" -#: lib/command.php:493 +#: lib/command.php:547 #, fuzzy msgid "Error saving notice." msgstr "Ongelma päivityksen tallentamisessa." -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "Anna käyttäjätunnus, jonka päivitykset haluat tilata" -#: lib/command.php:554 lib/command.php:589 -msgid "No such user" -msgstr "Käyttäjää ei ole." +#: lib/command.php:602 +#, fuzzy +msgid "Can't subscribe to OMB profiles by command." +msgstr "Et ole tilannut tämän käyttäjän päivityksiä." -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "Käyttäjän %s päivitykset tilattu" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "Anna käyttäjätunnus, jonka päivityksien tilauksen haluat lopettaa" -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "Käyttäjän %s päivitysten tilaus lopetettu" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "Komentoa ei ole vielä toteutettu." -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "Ilmoitukset pois päältä." -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "Ilmoituksia ei voi pistää pois päältä." -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "Ilmoitukset päällä." -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "Ilmoituksia ei voi pistää päälle." -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" -#: lib/command.php:692 +#: lib/command.php:735 #, fuzzy, php-format msgid "Unsubscribed %s" msgstr "Käyttäjän %s päivitysten tilaus lopetettu" -#: lib/command.php:709 +#: lib/command.php:752 #, fuzzy msgid "You are not subscribed to anyone." msgstr "Et ole tilannut tämän käyttäjän päivityksiä." -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Olet jos tilannut seuraavien käyttäjien päivitykset:" msgstr[1] "Olet jos tilannut seuraavien käyttäjien päivitykset:" -#: lib/command.php:731 +#: lib/command.php:774 #, fuzzy msgid "No one is subscribed to you." msgstr "Toista ei voitu asettaa tilaamaan sinua." -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Toista ei voitu asettaa tilaamaan sinua." msgstr[1] "Toista ei voitu asettaa tilaamaan sinua." -#: lib/command.php:753 +#: lib/command.php:796 #, fuzzy msgid "You are not a member of any groups." msgstr "Sinä et kuulu tähän ryhmään." -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Sinä et kuulu tähän ryhmään." msgstr[1] "Sinä et kuulu tähän ryhmään." -#: lib/command.php:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5709,49 +5719,49 @@ msgstr "Tagit ryhmän %s päivityksissä" msgid "This page is not available in a media type you accept" msgstr "Tämä sivu ei ole saatavilla sinulle sopivassa mediatyypissä." -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "Kuvatiedoston formaattia ei ole tuettu." + +#: lib/imagefile.php:90 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Voit ladata ryhmälle logon." -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Osittain ladattu palvelimelle." -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Tiedoston lähetyksessä tapahtui järjestelmävirhe." -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Tuo ei ole kelvollinen kuva tai tiedosto on rikkoutunut." -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "Kuvatiedoston formaattia ei ole tuettu." - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 msgid "Lost our file." msgstr "Tiedosto hävisi." -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "Tunnistamaton tiedoston tyyppi" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, php-format msgid "Unknown inbox source %d." msgstr "" @@ -5966,7 +5976,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 #, fuzzy msgid "from" msgstr " lähteestä " @@ -6122,25 +6132,25 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 #, fuzzy msgid "in context" msgstr "Ei sisältöä!" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 #, fuzzy msgid "Repeated by" msgstr "Luotu" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "Vastaa tähän päivitykseen" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 msgid "Reply" msgstr "Vastaus" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 #, fuzzy msgid "Notice repeated" msgstr "Päivitys on poistettu." @@ -6469,47 +6479,47 @@ msgctxt "role" msgid "Moderator" msgstr "" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "muutama sekunti sitten" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "noin minuutti sitten" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "noin %d minuuttia sitten" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "noin tunti sitten" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "noin %d tuntia sitten" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "noin päivä sitten" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "noin %d päivää sitten" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "noin kuukausi sitten" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "noin %d kuukautta sitten" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "noin vuosi sitten" @@ -6523,7 +6533,7 @@ msgstr "Kotisivun verkko-osoite ei ole toimiva." msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "" -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, fuzzy, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "Viesti oli liian pitkä - maksimikoko on 140 merkkiä, lähetit %d" diff --git a/locale/fr/LC_MESSAGES/statusnet.po b/locale/fr/LC_MESSAGES/statusnet.po index 4c9429e21..02bdef611 100644 --- a/locale/fr/LC_MESSAGES/statusnet.po +++ b/locale/fr/LC_MESSAGES/statusnet.po @@ -14,12 +14,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:49:51+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:42:42+0000\n" "Language-Team: French\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: out-statusnet\n" @@ -98,7 +98,7 @@ msgstr "Page non trouvée" #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -107,10 +107,8 @@ msgstr "Page non trouvée" #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Utilisateur non trouvé." @@ -212,12 +210,12 @@ msgstr "Statuts de %1$s et ses amis dans %2$s!" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 msgid "API method not found." msgstr "Méthode API non trouvée !" @@ -350,7 +348,7 @@ msgstr "Aucun statut trouvé avec cet identifiant. " msgid "This status is already a favorite." msgstr "Cet avis est déjà un favori." -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "Impossible de créer le favori." @@ -469,7 +467,7 @@ msgstr "Groupe non trouvé !" msgid "You are already a member of that group." msgstr "Vous êtes déjà membre de ce groupe." -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "Vous avez été bloqué de ce groupe par l’administrateur." @@ -519,7 +517,7 @@ msgstr "Jeton incorrect." #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -668,12 +666,12 @@ msgstr "" msgid "Unsupported format." msgstr "Format non supporté." -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / Favoris de %2$s" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s statuts favoris de %2$s / %2$s." @@ -683,7 +681,7 @@ msgstr "%1$s statuts favoris de %2$s / %2$s." msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Mises à jour mentionnant %2$s" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s statuts en réponses aux statuts de %2$s / %3$s." @@ -693,7 +691,7 @@ msgstr "%1$s statuts en réponses aux statuts de %2$s / %3$s." msgid "%s public timeline" msgstr "Activité publique %s" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s statuts de tout le monde !" @@ -708,12 +706,12 @@ msgstr "Repris pour %s" msgid "Repeats of %s" msgstr "Reprises de %s" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Avis marqués avec %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Mises à jour marquées avec %1$s dans %2$s !" @@ -775,7 +773,7 @@ msgid "Preview" msgstr "Aperçu" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "Supprimer" @@ -858,8 +856,8 @@ msgstr "Impossible d’enregistrer les informations de blocage." #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 msgid "No such group." msgstr "Aucun groupe trouvé." @@ -960,7 +958,7 @@ msgstr "Vous n’êtes pas le propriétaire de cette application." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "Un problème est survenu avec votre jeton de session." @@ -1021,7 +1019,7 @@ msgstr "Voulez-vous vraiment supprimer cet avis ?" msgid "Do not delete this notice" msgstr "Ne pas supprimer cet avis" -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "Supprimer cet avis" @@ -1274,7 +1272,7 @@ msgstr "la description est trop longue (%d caractères maximum)." msgid "Could not update group." msgstr "Impossible de mettre à jour le groupe." -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 msgid "Could not create aliases." msgstr "Impossible de créer les alias." @@ -1604,7 +1602,7 @@ msgstr "Vous ne pouvez pas attribuer des rôles aux utilisateurs sur ce site." #: actions/grantrole.php:82 msgid "User already has this role." -msgstr "L'utilisateur a déjà ce rôle." +msgstr "L’utilisateur a déjà ce rôle." #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 @@ -1985,7 +1983,7 @@ msgstr "Inviter de nouveaux utilisateurs" msgid "You are already subscribed to these users:" msgstr "Vous êtes déjà abonné à ces utilisateurs :" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" @@ -2118,7 +2116,7 @@ msgstr "%1$s a rejoint le groupe %2$s" msgid "You must be logged in to leave a group." msgstr "Vous devez ouvrir une session pour quitter un groupe." -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 msgid "You are not a member of that group." msgstr "Vous n’êtes pas membre de ce groupe." @@ -2239,12 +2237,12 @@ msgstr "Remplissez les champs ci-dessous pour créer un nouveau groupe :" msgid "New message" msgstr "Nouveau message" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "Vous ne pouvez pas envoyer de messages à cet utilisateur." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "Aucun contenu !" @@ -2252,7 +2250,7 @@ msgstr "Aucun contenu !" msgid "No recipient specified." msgstr "Aucun destinataire n’a été spécifié." -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" @@ -2267,7 +2265,7 @@ msgstr "Message envoyé" msgid "Direct message to %s sent." msgstr "Message direct envoyé à %s." -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "Erreur Ajax" @@ -2403,8 +2401,8 @@ msgstr "type de contenu " msgid "Only " msgstr "Seulement " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "Format de données non supporté." @@ -2536,7 +2534,7 @@ msgstr "Ancien mot de passe incorrect" msgid "Error saving user; invalid." msgstr "Erreur lors de l’enregistrement de l’utilisateur ; invalide." -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "Impossible de sauvegarder le nouveau mot de passe." @@ -3043,7 +3041,7 @@ msgstr "Réinitialiser le mot de passe" msgid "Recover password" msgstr "Récupérer le mot de passe" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "Récupération de mot de passe demandée" @@ -3063,19 +3061,19 @@ msgstr "Réinitialiser" msgid "Enter a nickname or email address." msgstr "Entrez un pseudo ou une adresse courriel." -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "Aucun utilisateur trouvé avec ce courriel ou ce nom." -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "Aucune adresse courriel enregistrée pour cet utilisateur." -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "Erreur lors de l’enregistrement de la confirmation du courriel." -#: actions/recoverpassword.php:325 +#: actions/recoverpassword.php:338 msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." @@ -3083,23 +3081,23 @@ msgstr "" "Les instructions pour récupérer votre mot de passe ont été envoyées à " "l’adresse courriel indiquée dans votre compte." -#: actions/recoverpassword.php:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "Réinitialisation inattendue du mot de passe." -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "Le mot de passe doit contenir au moins 6 caractères." -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Le mot de passe et sa confirmation ne correspondent pas." -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "Erreur lors de la configuration de l’utilisateur." -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "" "Nouveau mot de passe créé avec succès. Votre session est maintenant ouverte." @@ -3304,7 +3302,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:674 +#: actions/repeat.php:114 lib/noticelist.php:676 msgid "Repeated" msgstr "Repris" @@ -4572,7 +4570,7 @@ msgstr "Version" msgid "Author(s)" msgstr "Auteur(s)" -#: classes/File.php:144 +#: classes/File.php:169 #, php-format msgid "" "No file may be larger than %d bytes and the file you sent was %d bytes. Try " @@ -4581,12 +4579,12 @@ 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." -#: classes/File.php:154 +#: classes/File.php:179 #, 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:161 +#: classes/File.php:186 #, 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." @@ -4664,7 +4662,7 @@ msgstr "Problème lors de l’enregistrement de l’avis." msgid "Problem saving group inbox." msgstr "Problème lors de l’enregistrement de la boîte de réception du groupe." -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4693,28 +4691,28 @@ msgstr "Impossible de supprimer l’abonnement à soi-même." msgid "Couldn't delete subscription OMB token." msgstr "Impossible de supprimer le jeton OMB de l'abonnement ." -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "Impossible de cesser l’abonnement" -#: classes/User.php:373 +#: classes/User.php:378 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Bienvenue à %1$s, @%2$s !" -#: classes/User_group.php:477 +#: classes/User_group.php:480 msgid "Could not create group." msgstr "Impossible de créer le groupe." -#: classes/User_group.php:486 +#: classes/User_group.php:489 msgid "Could not set group URI." msgstr "Impossible de définir l'URI du groupe." -#: classes/User_group.php:507 +#: classes/User_group.php:510 msgid "Could not set group membership." msgstr "Impossible d’établir l’inscription au groupe." -#: classes/User_group.php:521 +#: classes/User_group.php:524 msgid "Could not save local group info." msgstr "Impossible d’enregistrer les informations du groupe local." @@ -4918,7 +4916,7 @@ msgstr "Insigne" msgid "StatusNet software license" msgstr "Licence du logiciel StatusNet" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4927,12 +4925,12 @@ msgstr "" "**%%site.name%%** est un service de microblogging qui vous est proposé par " "[%%site.broughtby%%](%%site.broughtbyurl%%)." -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** est un service de micro-blogging." -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4943,45 +4941,45 @@ msgstr "" "version %s, disponible sous la licence [GNU Affero General Public License] " "(http://www.fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:821 +#: lib/action.php:824 msgid "Site content license" msgstr "Licence du contenu du site" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Le contenu et les données de %1$s sont privés et confidentiels." -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" "Le contenu et les données sont sous le droit d’auteur de %1$s. Tous droits " "réservés." -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Le contenu et les données sont sous le droit d’auteur du contributeur. Tous " "droits réservés." -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "Tous " -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "licence." -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "Pagination" -#: lib/action.php:1161 +#: lib/action.php:1164 msgid "After" msgstr "Après" -#: lib/action.php:1169 +#: lib/action.php:1172 msgid "Before" msgstr "Avant" @@ -5085,7 +5083,7 @@ msgstr "" "La ressource de l’API a besoin de l’accès en lecture et en écriture, mais " "vous n’y avez accès qu’en lecture." -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5187,37 +5185,50 @@ msgstr "La modification du mot de passe a échoué" msgid "Password changing is not allowed" msgstr "La modification du mot de passe n’est pas autorisée" -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "Résultats de la commande" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "Commande complétée" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "Échec de la commande" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." -msgstr "Désolé, cette commande n’a pas encore été implémentée." +#: lib/command.php:83 lib/command.php:105 +msgid "Notice with that id does not exist" +msgstr "Aucun avis avec cet identifiant n’existe" -#: lib/command.php:88 +#: lib/command.php:99 lib/command.php:570 +msgid "User has no last notice" +msgstr "Aucun avis récent pour cet utilisateur" + +#: lib/command.php:125 #, php-format msgid "Could not find a user with nickname %s" msgstr "Impossible de trouver un utilisateur avec le pseudo %s" -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "Impossible de trouver un utilisateur avec le pseudo %s" + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "Désolé, cette commande n’a pas encore été implémentée." + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "Ça n’a pas de sens de se faire un clin d’œil à soi-même !" -#: lib/command.php:99 +#: lib/command.php:228 #, php-format msgid "Nudge sent to %s" msgstr "Clin d’œil envoyé à %s" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5228,201 +5239,200 @@ msgstr "" "Abonnés : %2$s\n" "Messages : %3$s" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -msgid "Notice with that id does not exist" -msgstr "Aucun avis avec cet identifiant n’existe" - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -msgid "User has no last notice" -msgstr "Aucun avis récent pour cet utilisateur" - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "Avis ajouté aux favoris." -#: lib/command.php:217 +#: lib/command.php:317 msgid "You are already a member of that group" msgstr "Vous êtes déjà membre de ce groupe" -#: lib/command.php:231 +#: lib/command.php:331 #, php-format msgid "Could not join user %s to group %s" msgstr "Impossible d’inscrire l’utilisateur %s au groupe %s" -#: lib/command.php:236 +#: lib/command.php:336 #, php-format msgid "%s joined group %s" msgstr "%s a rejoint le groupe %s" -#: lib/command.php:275 +#: lib/command.php:373 #, php-format msgid "Could not remove user %s to group %s" msgstr "Impossible de retirer l’utilisateur %s du groupe %s" -#: lib/command.php:280 +#: lib/command.php:378 #, php-format msgid "%s left group %s" msgstr "%s a quitté le groupe %s" -#: lib/command.php:309 +#: lib/command.php:401 #, php-format msgid "Fullname: %s" msgstr "Nom complet : %s" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Emplacement : %s" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Site Web : %s" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "À propos : %s" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "" "Message trop long ! La taille maximale est de %d caractères ; vous en avez " "entré %d." -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "Message direct envoyé à %s." -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "Une erreur est survenue pendant l’envoi de votre message." -#: lib/command.php:413 +#: lib/command.php:490 msgid "Cannot repeat your own notice" msgstr "Impossible de reprendre votre propre avis" -#: lib/command.php:418 +#: lib/command.php:495 msgid "Already repeated that notice" msgstr "Avis déjà repris" -#: lib/command.php:426 +#: lib/command.php:503 #, php-format msgid "Notice from %s repeated" msgstr "Avis de %s repris" -#: lib/command.php:428 +#: lib/command.php:505 msgid "Error repeating notice." msgstr "Erreur lors de la reprise de l’avis." -#: lib/command.php:482 +#: lib/command.php:536 #, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "" "Avis trop long ! La taille maximale est de %d caractères ; vous en avez " "entré %d." -#: lib/command.php:491 +#: lib/command.php:545 #, php-format msgid "Reply to %s sent" msgstr "Réponse à %s envoyée" -#: lib/command.php:493 +#: lib/command.php:547 msgid "Error saving notice." msgstr "Problème lors de l’enregistrement de l’avis." -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "Indiquez le nom de l’utilisateur auquel vous souhaitez vous abonner" -#: lib/command.php:554 lib/command.php:589 -msgid "No such user" -msgstr "Utilisateur non trouvé." +#: lib/command.php:602 +#, fuzzy +msgid "Can't subscribe to OMB profiles by command." +msgstr "Vous n’êtes pas abonné(e) à ce profil." -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "Abonné à %s" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "Indiquez le nom de l’utilisateur duquel vous souhaitez vous désabonner" -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "Désabonné de %s" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "Cette commande n’a pas encore été implémentée." -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "Avertissements désactivés." -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "Impossible de désactiver les avertissements." -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "Avertissements activés." -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "Impossible d’activer les avertissements." -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "La commande d’ouverture de session est désactivée" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" "Ce lien n’est utilisable qu’une seule fois, et est valable uniquement " "pendant 2 minutes : %s" -#: lib/command.php:692 +#: lib/command.php:735 #, php-format msgid "Unsubscribed %s" msgstr "Désabonné de %s" -#: lib/command.php:709 +#: lib/command.php:752 msgid "You are not subscribed to anyone." msgstr "Vous n’êtes abonné(e) à personne." -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Vous êtes abonné à cette personne :" msgstr[1] "Vous êtes abonné à ces personnes :" -#: lib/command.php:731 +#: lib/command.php:774 msgid "No one is subscribed to you." msgstr "Personne ne s’est abonné à vous." -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Cette personne est abonnée à vous :" msgstr[1] "Ces personnes sont abonnées à vous :" -#: lib/command.php:753 +#: lib/command.php:796 msgid "You are not a member of any groups." msgstr "Vous n’êtes membre d’aucun groupe." -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Vous êtes membre de ce groupe :" msgstr[1] "Vous êtes membre de ces groupes :" -#: lib/command.php:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5697,49 +5707,49 @@ msgid "This page is not available in a media type you accept" msgstr "" "Cette page n’est pas disponible dans un des formats que vous avez autorisés." -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "Format de fichier d’image non supporté." + +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Ce fichier est trop grand. La taille maximale est %s." -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Transfert partiel." -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Erreur système lors du transfert du fichier." -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Ceci n’est pas une image, ou c’est un fichier corrompu." -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "Format de fichier d’image non supporté." - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 msgid "Lost our file." msgstr "Fichier perdu." -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "Type de fichier inconnu" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "Mo" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "Ko" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "[%s]" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, php-format msgid "Unknown inbox source %d." msgstr "Source %d inconnue pour la boîte de réception." @@ -6020,7 +6030,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:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 msgid "from" msgstr "de" @@ -6176,23 +6186,23 @@ msgstr "O" msgid "at" msgstr "chez" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 msgid "in context" msgstr "dans le contexte" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 msgid "Repeated by" msgstr "Repris par" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "Répondre à cet avis" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 msgid "Reply" msgstr "Répondre" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 msgid "Notice repeated" msgstr "Avis repris" @@ -6502,47 +6512,47 @@ msgctxt "role" msgid "Moderator" msgstr "Modérateur" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "il y a quelques secondes" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "il y a 1 minute" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "il y a %d minutes" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "il y a 1 heure" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "il y a %d heures" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "il y a 1 jour" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "il y a %d jours" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "il y a 1 mois" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "il y a %d mois" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "il y a environ 1 an" @@ -6557,7 +6567,7 @@ msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "" "%s n’est pas une couleur valide ! Utilisez 3 ou 6 caractères hexadécimaux." -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "" diff --git a/locale/ga/LC_MESSAGES/statusnet.po b/locale/ga/LC_MESSAGES/statusnet.po index dea9dd11c..ee14c3a2f 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-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:49:54+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:42:45+0000\n" "Language-Team: Irish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ga\n" "X-Message-Group: out-statusnet\n" @@ -102,7 +102,7 @@ msgstr "Non existe a etiqueta." #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -111,10 +111,8 @@ msgstr "Non existe a etiqueta." #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Ningún usuario." @@ -208,12 +206,12 @@ msgstr "Actualizacións dende %1$s e amigos en %2$s!" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "Método da API non atopado" @@ -349,7 +347,7 @@ msgstr "Non se atopou un estado con ese ID." msgid "This status is already a favorite." msgstr "Este chío xa é un favorito!" -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "Non se puido crear o favorito." @@ -474,7 +472,7 @@ msgstr "Método da API non atopado" msgid "You are already a member of that group." msgstr "Xa estas suscrito a estes usuarios:" -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "" @@ -525,7 +523,7 @@ msgstr "Tamaño inválido." #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -670,12 +668,12 @@ msgstr "" msgid "Unsupported format." msgstr "Formato de ficheiro de imaxe non soportado." -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, fuzzy, php-format msgid "%1$s / Favorites from %2$s" msgstr "%s / Favoritos dende %s" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, fuzzy, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%s updates favorited by %s / %s." @@ -685,7 +683,7 @@ msgstr "%s updates favorited by %s / %s." msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Chíos que respostan a %2$s" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "Hai %1$s chíos en resposta a chíos dende %2$s / %3$s." @@ -695,7 +693,7 @@ msgstr "Hai %1$s chíos en resposta a chíos dende %2$s / %3$s." msgid "%s public timeline" msgstr "Liña de tempo pública de %s" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s chíos de calquera!" @@ -710,12 +708,12 @@ msgstr "Replies to %s" msgid "Repeats of %s" msgstr "Replies to %s" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Chíos tagueados con %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Actualizacións dende %1$s en %2$s!" @@ -777,7 +775,7 @@ msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 #, fuzzy msgid "Delete" msgstr "eliminar" @@ -865,8 +863,8 @@ msgstr "Erro ao gardar información de bloqueo." #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 #, fuzzy msgid "No such group." msgstr "Non existe a etiqueta." @@ -976,7 +974,7 @@ msgstr "Non estás suscrito a ese perfil" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 #, fuzzy msgid "There was a problem with your session token." msgstr "Houbo un problema co teu token de sesión. Tentao de novo, anda..." @@ -1040,7 +1038,7 @@ msgstr "Estas seguro que queres eliminar este chío?" msgid "Do not delete this notice" msgstr "Non se pode eliminar este chíos." -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 #, fuzzy msgid "Delete this notice" msgstr "Eliminar chío" @@ -1319,7 +1317,7 @@ msgstr "O teu Bio é demasiado longo (max 140 car.)." msgid "Could not update group." msgstr "Non se puido actualizar o usuario." -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 #, fuzzy msgid "Could not create aliases." msgstr "Non se puido crear o favorito." @@ -2036,7 +2034,7 @@ msgstr "Invitar a novos usuarios" msgid "You are already subscribed to these users:" msgstr "Xa estas suscrito a estes usuarios:" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" @@ -2168,7 +2166,7 @@ msgstr "%s / Favoritos dende %s" msgid "You must be logged in to leave a group." msgstr "Debes estar logueado para invitar a outros usuarios a empregar %s" -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 #, fuzzy msgid "You are not a member of that group." msgstr "Non estás suscrito a ese perfil" @@ -2287,12 +2285,12 @@ msgstr "" msgid "New message" msgstr "Nova mensaxe" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "Non podes enviar mensaxes a este usurio." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "Sen contido!" @@ -2300,7 +2298,7 @@ msgstr "Sen contido!" msgid "No recipient specified." msgstr "Non se especificou ningún destinatario" -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" @@ -2317,7 +2315,7 @@ msgstr "Non hai mensaxes de texto!" msgid "Direct message to %s sent." msgstr "Mensaxe directo a %s enviado" -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "Erro de Ajax" @@ -2449,8 +2447,8 @@ msgstr "Conectar" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "Non é un formato de datos soportado." @@ -2590,7 +2588,7 @@ msgstr "Contrasinal actual incorrecta" msgid "Error saving user; invalid." msgstr "Acounteceu un erro gardando o usuario: é inválido." -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "Non se pode gardar a contrasinal." @@ -3103,7 +3101,7 @@ msgstr "Restaurar contrasinal" msgid "Recover password" msgstr "Recuperar contrasinal" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "Petición de recuperación de contrasinal" @@ -3123,19 +3121,19 @@ msgstr "Restaurar" msgid "Enter a nickname or email address." msgstr "Insire o teu alcume ou enderezo de correo." -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "Non hai ningún usuario con isa dirección de correo ou nome de usuario." -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "Non hai un enderezo de correo rexistrado para ese usuario." -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "Acounteceu un erro gardando a confirmación de enderezo." -#: actions/recoverpassword.php:325 +#: actions/recoverpassword.php:338 msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." @@ -3143,23 +3141,23 @@ msgstr "" "As instruccións para recuperar a túa contrasinal foron enviadas ó enderezo " "de correo da túa conta." -#: actions/recoverpassword.php:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "Restauración de contrasinal non esperada." -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "A contrasinal debe ter 6 caracteres ou máis." -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "A contrasinal e a súa confirmación non coinciden." -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "Acounteceu un erro configurando o usuario." -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "A nova contrasinal gardouse correctamente. Xa estas logueado." @@ -3372,7 +3370,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:674 +#: actions/repeat.php:114 lib/noticelist.php:676 #, fuzzy msgid "Repeated" msgstr "Crear" @@ -4633,19 +4631,19 @@ msgstr "Persoal" msgid "Author(s)" msgstr "" -#: classes/File.php:144 +#: classes/File.php:169 #, 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." msgstr "" -#: classes/File.php:154 +#: classes/File.php:179 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:161 +#: classes/File.php:186 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" @@ -4731,7 +4729,7 @@ msgstr "Aconteceu un erro ó gardar o chío." msgid "Problem saving group inbox." msgstr "Aconteceu un erro ó gardar o chío." -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4764,31 +4762,31 @@ msgstr "Non se pode eliminar a subscrición." msgid "Couldn't delete subscription OMB token." msgstr "Non se pode eliminar a subscrición." -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "Non se pode eliminar a subscrición." -#: classes/User.php:373 +#: classes/User.php:378 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Mensaxe de %1$s en %2$s" -#: classes/User_group.php:477 +#: classes/User_group.php:480 #, fuzzy msgid "Could not create group." msgstr "Non se puido crear o favorito." -#: classes/User_group.php:486 +#: classes/User_group.php:489 #, fuzzy msgid "Could not set group URI." msgstr "Non se pode gardar a subscrición." -#: classes/User_group.php:507 +#: classes/User_group.php:510 #, fuzzy msgid "Could not set group membership." msgstr "Non se pode gardar a subscrición." -#: classes/User_group.php:521 +#: classes/User_group.php:524 #, fuzzy msgid "Could not save local group info." msgstr "Non se pode gardar a subscrición." @@ -5012,7 +5010,7 @@ msgstr "" msgid "StatusNet software license" msgstr "" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5021,12 +5019,12 @@ msgstr "" "**%%site.name%%** é un servizo de microbloguexo que che proporciona [%%site." "broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** é un servizo de microbloguexo." -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5037,44 +5035,44 @@ msgstr "" "%s, dispoñible baixo licenza [GNU Affero General Public License](http://www." "fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:821 +#: lib/action.php:824 #, fuzzy msgid "Site content license" msgstr "Atopar no contido dos chíos" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:847 +#: lib/action.php:850 #, fuzzy msgid "All " msgstr "Todos" -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "" -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "" -#: lib/action.php:1161 +#: lib/action.php:1164 #, fuzzy msgid "After" msgstr "« Despois" -#: lib/action.php:1169 +#: lib/action.php:1172 #, fuzzy msgid "Before" msgstr "Antes »" @@ -5192,7 +5190,7 @@ msgstr "Confirmación de SMS" msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5298,37 +5296,51 @@ msgstr "Contrasinal gardada." msgid "Password changing is not allowed" msgstr "Contrasinal gardada." -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "Resultados do comando" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "Comando completo" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "Comando fallido" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." -msgstr "Desculpa, este comando todavía non está implementado." +#: lib/command.php:83 lib/command.php:105 +#, fuzzy +msgid "Notice with that id does not exist" +msgstr "Non se atopou un perfil con ese ID." -#: lib/command.php:88 +#: lib/command.php:99 lib/command.php:570 +msgid "User has no last notice" +msgstr "O usuario non ten último chio." + +#: lib/command.php:125 #, fuzzy, php-format msgid "Could not find a user with nickname %s" msgstr "Non se puido actualizar o usuario coa dirección de correo electrónico." -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "Non se puido actualizar o usuario coa dirección de correo electrónico." + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "Desculpa, este comando todavía non está implementado." + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" -#: lib/command.php:99 +#: lib/command.php:228 #, fuzzy, php-format msgid "Nudge sent to %s" msgstr "Toque enviado" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5339,176 +5351,174 @@ msgstr "" "Suscriptores: %2$s\n" "Chíos: %3$s" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -#, fuzzy -msgid "Notice with that id does not exist" -msgstr "Non se atopou un perfil con ese ID." - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -msgid "User has no last notice" -msgstr "O usuario non ten último chio." - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "Chío marcado coma favorito." -#: lib/command.php:217 +#: lib/command.php:317 #, fuzzy msgid "You are already a member of that group" msgstr "Xa estas suscrito a estes usuarios:" -#: lib/command.php:231 +#: lib/command.php:331 #, fuzzy, php-format msgid "Could not join user %s to group %s" msgstr "Non podes seguir a este usuario: o Usuario non se atopa." -#: lib/command.php:236 +#: lib/command.php:336 #, fuzzy, php-format msgid "%s joined group %s" msgstr "%s / Favoritos dende %s" -#: lib/command.php:275 +#: lib/command.php:373 #, fuzzy, php-format msgid "Could not remove user %s to group %s" msgstr "Non podes seguir a este usuario: o Usuario non se atopa." -#: lib/command.php:280 +#: lib/command.php:378 #, fuzzy, php-format msgid "%s left group %s" msgstr "%s / Favoritos dende %s" -#: lib/command.php:309 +#: lib/command.php:401 #, php-format msgid "Fullname: %s" msgstr "Nome completo: %s" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Ubicación: %s" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Páxina persoal: %s" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "Sobre: %s" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, fuzzy, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "Mensaxe demasiado longa - o máximo é 140 caracteres, ti enviaches %d " -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "Mensaxe directo a %s enviado" -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "Erro ó enviar a mensaxe directa." -#: lib/command.php:413 +#: lib/command.php:490 #, fuzzy msgid "Cannot repeat your own notice" msgstr "Non se pode activar a notificación." -#: lib/command.php:418 +#: lib/command.php:495 #, fuzzy msgid "Already repeated that notice" msgstr "Eliminar chío" -#: lib/command.php:426 +#: lib/command.php:503 #, fuzzy, php-format msgid "Notice from %s repeated" msgstr "Chío publicado" -#: lib/command.php:428 +#: lib/command.php:505 #, fuzzy msgid "Error repeating notice." msgstr "Aconteceu un erro ó gardar o chío." -#: lib/command.php:482 +#: lib/command.php:536 #, fuzzy, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "Mensaxe demasiado longa - o máximo é 140 caracteres, ti enviaches %d " -#: lib/command.php:491 +#: lib/command.php:545 #, php-format msgid "Reply to %s sent" msgstr "Non se pode eliminar este chíos." -#: lib/command.php:493 +#: lib/command.php:547 #, fuzzy msgid "Error saving notice." msgstr "Aconteceu un erro ó gardar o chío." -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "Especifica o nome do usuario ó que queres suscribirte" -#: lib/command.php:554 lib/command.php:589 -msgid "No such user" -msgstr "Ningún usuario." +#: lib/command.php:602 +#, fuzzy +msgid "Can't subscribe to OMB profiles by command." +msgstr "Non estás suscrito a ese perfil" -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "Suscrito a %s" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "Especifica o nome de usuario ó que queres deixar de seguir" -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "Desuscribir de %s" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "Comando non implementado." -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "Notificación desactivada." -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "No se pode desactivar a notificación." -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "Notificación habilitada." -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "Non se pode activar a notificación." -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" -#: lib/command.php:692 +#: lib/command.php:735 #, fuzzy, php-format msgid "Unsubscribed %s" msgstr "Desuscribir de %s" -#: lib/command.php:709 +#: lib/command.php:752 #, fuzzy msgid "You are not subscribed to anyone." msgstr "Non estás suscrito a ese perfil" -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Xa estas suscrito a estes usuarios:" @@ -5517,12 +5527,12 @@ msgstr[2] "" msgstr[3] "" msgstr[4] "" -#: lib/command.php:731 +#: lib/command.php:774 #, fuzzy msgid "No one is subscribed to you." msgstr "Outro usuario non se puido suscribir a ti." -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Outro usuario non se puido suscribir a ti." @@ -5531,12 +5541,12 @@ msgstr[2] "" msgstr[3] "" msgstr[4] "" -#: lib/command.php:753 +#: lib/command.php:796 #, fuzzy msgid "You are not a member of any groups." msgstr "Non estás suscrito a ese perfil" -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Non estás suscrito a ese perfil" @@ -5545,7 +5555,7 @@ msgstr[2] "" msgstr[3] "" msgstr[4] "" -#: lib/command.php:769 +#: lib/command.php:812 #, fuzzy msgid "" "Commands:\n" @@ -5812,51 +5822,51 @@ msgstr "" msgid "This page is not available in a media type you accept" msgstr "Esta páxina non está dispoñíbel no tipo de medio que aceptas" -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "Formato de ficheiro de imaxe non soportado." + +#: lib/imagefile.php:90 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Podes actualizar a túa información do perfil persoal aquí" -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Carga parcial." -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Aconteceu un erro no sistema namentras se estaba cargando o ficheiro." -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Non é unha imaxe ou está corrupta." -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "Formato de ficheiro de imaxe non soportado." - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 #, fuzzy msgid "Lost our file." msgstr "Bloqueo de usuario fallido." -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 #, fuzzy msgid "Unknown file type" msgstr "tipo de ficheiro non soportado" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, php-format msgid "Unknown inbox source %d." msgstr "" @@ -6117,7 +6127,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 #, fuzzy msgid "from" msgstr " dende " @@ -6276,27 +6286,27 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 #, fuzzy msgid "in context" msgstr "Sen contido!" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 #, fuzzy msgid "Repeated by" msgstr "Crear" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 #, fuzzy msgid "Reply to this notice" msgstr "Non se pode eliminar este chíos." -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 #, fuzzy msgid "Reply" msgstr "contestar" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 #, fuzzy msgid "Notice repeated" msgstr "Chío publicado" @@ -6638,47 +6648,47 @@ msgctxt "role" msgid "Moderator" msgstr "" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "fai uns segundos" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "fai un minuto" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "fai %d minutos" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "fai unha hora" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "fai %d horas" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "fai un día" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "fai %d días" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "fai un mes" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "fai %d meses" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "fai un ano" @@ -6692,7 +6702,7 @@ msgstr "%1s non é unha orixe fiable." msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "" -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, fuzzy, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "Mensaxe demasiado longa - o máximo é 140 caracteres, ti enviaches %d " diff --git a/locale/he/LC_MESSAGES/statusnet.po b/locale/he/LC_MESSAGES/statusnet.po index 49f229a96..72ddfb14b 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-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:49:57+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:43:00+0000\n" "Language-Team: Hebrew\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: out-statusnet\n" @@ -99,7 +99,7 @@ msgstr "אין הודעה כזו." #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -108,10 +108,8 @@ msgstr "אין הודעה כזו." #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "אין משתמש כזה." @@ -205,12 +203,12 @@ msgstr "" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "קוד האישור לא נמצא." @@ -343,7 +341,7 @@ msgstr "" msgid "This status is already a favorite." msgstr "זהו כבר זיהוי ה-Jabber שלך." -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "" @@ -466,7 +464,7 @@ msgstr "לא נמצא" msgid "You are already a member of that group." msgstr "כבר נכנסת למערכת!" -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "" @@ -518,7 +516,7 @@ msgstr "גודל לא חוקי." #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -661,12 +659,12 @@ msgstr "" msgid "Unsupported format." msgstr "פורמט התמונה אינו נתמך." -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, fuzzy, php-format msgid "%1$s / Favorites from %2$s" msgstr "הסטטוס של %1$s ב-%2$s " -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, fuzzy, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "מיקרובלוג מאת %s" @@ -676,7 +674,7 @@ msgstr "מיקרובלוג מאת %s" msgid "%1$s / Updates mentioning %2$s" msgstr "הסטטוס של %1$s ב-%2$s " -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" @@ -686,7 +684,7 @@ msgstr "" msgid "%s public timeline" msgstr "" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "" @@ -701,12 +699,12 @@ msgstr "תגובת עבור %s" msgid "Repeats of %s" msgstr "תגובת עבור %s" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "מיקרובלוג מאת %s" @@ -769,7 +767,7 @@ msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 #, fuzzy msgid "Delete" msgstr "מחק" @@ -855,8 +853,8 @@ msgstr "" #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 #, fuzzy msgid "No such group." msgstr "אין הודעה כזו." @@ -965,7 +963,7 @@ msgstr "לא שלחנו אלינו את הפרופיל הזה" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "" @@ -1025,7 +1023,7 @@ msgstr "" msgid "Do not delete this notice" msgstr "אין הודעה כזו." -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "" @@ -1297,7 +1295,7 @@ msgstr "הביוגרפיה ארוכה מידי (לכל היותר 140 אותיו msgid "Could not update group." msgstr "עידכון המשתמש נכשל." -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 #, fuzzy msgid "Could not create aliases." msgstr "שמירת מידע התמונה נכשל" @@ -2006,7 +2004,7 @@ msgstr "" msgid "You are already subscribed to these users:" msgstr "" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "" @@ -2108,7 +2106,7 @@ msgstr "" msgid "You must be logged in to leave a group." msgstr "" -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 #, fuzzy msgid "You are not a member of that group." msgstr "לא שלחנו אלינו את הפרופיל הזה" @@ -2223,12 +2221,12 @@ msgstr "" msgid "New message" msgstr "הודעה חדשה" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "" -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "אין תוכן!" @@ -2236,7 +2234,7 @@ msgstr "אין תוכן!" msgid "No recipient specified." msgstr "" -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" @@ -2251,7 +2249,7 @@ msgstr "הודעה חדשה" msgid "Direct message to %s sent." msgstr "" -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "" @@ -2380,8 +2378,8 @@ msgstr "התחבר" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "" @@ -2521,7 +2519,7 @@ msgstr "הסיסמה הישנה לא נכונה" msgid "Error saving user; invalid." msgstr "שגיאה בשמירת שם המשתמש, לא עומד בכללים." -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "לא ניתן לשמור את הסיסמה" @@ -3019,7 +3017,7 @@ msgstr "איפוס סיסמה" msgid "Recover password" msgstr "סיסמת שיחזור" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "התבקש שיחזור סיסמה" @@ -3039,41 +3037,41 @@ msgstr "איפוס" msgid "Enter a nickname or email address." msgstr "" -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "" -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "" -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "שגיאה בשמירת אישור הכתובת." -#: actions/recoverpassword.php:325 +#: 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:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "איפוס סיסמה לא צפוי." -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "הסיסמה חייבת להיות בת לפחות 6 אותיות." -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "הסיסמה ואישורה אינן תואמות." -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "שגיאה ביצירת שם המשתמש." -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "הסיסמה החדשה נשמרה בהצלחה. אתה מחובר למערכת." @@ -3258,7 +3256,7 @@ msgstr "לא ניתן להירשם ללא הסכמה לרשיון" msgid "You already repeated that notice." msgstr "כבר נכנסת למערכת!" -#: actions/repeat.php:114 lib/noticelist.php:674 +#: actions/repeat.php:114 lib/noticelist.php:676 #, fuzzy msgid "Repeated" msgstr "צור" @@ -4482,19 +4480,19 @@ msgstr "אישי" msgid "Author(s)" msgstr "" -#: classes/File.php:144 +#: classes/File.php:169 #, 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." msgstr "" -#: classes/File.php:154 +#: classes/File.php:179 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:161 +#: classes/File.php:186 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" @@ -4575,7 +4573,7 @@ msgstr "בעיה בשמירת ההודעה." msgid "Problem saving group inbox." msgstr "בעיה בשמירת ההודעה." -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4608,31 +4606,31 @@ msgstr "מחיקת המנוי לא הצליחה." msgid "Couldn't delete subscription OMB token." msgstr "מחיקת המנוי לא הצליחה." -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "מחיקת המנוי לא הצליחה." -#: classes/User.php:373 +#: classes/User.php:378 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:477 +#: classes/User_group.php:480 #, fuzzy msgid "Could not create group." msgstr "שמירת מידע התמונה נכשל" -#: classes/User_group.php:486 +#: classes/User_group.php:489 #, fuzzy msgid "Could not set group URI." msgstr "יצירת המנוי נכשלה." -#: classes/User_group.php:507 +#: classes/User_group.php:510 #, fuzzy msgid "Could not set group membership." msgstr "יצירת המנוי נכשלה." -#: classes/User_group.php:521 +#: classes/User_group.php:524 #, fuzzy msgid "Could not save local group info." msgstr "יצירת המנוי נכשלה." @@ -4854,7 +4852,7 @@ msgstr "" msgid "StatusNet software license" msgstr "" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4863,12 +4861,12 @@ msgstr "" "**%%site.name%%** הוא שרות ביקרובלוג הניתן על ידי [%%site.broughtby%%](%%" "site.broughtbyurl%%)." -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** הוא שרות ביקרובלוג." -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4879,43 +4877,43 @@ msgstr "" "s, המופצת תחת רשיון [GNU Affero General Public License](http://www.fsf.org/" "licensing/licenses/agpl-3.0.html)" -#: lib/action.php:821 +#: lib/action.php:824 #, fuzzy msgid "Site content license" msgstr "הודעה חדשה" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "" -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "" -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "" -#: lib/action.php:1161 +#: lib/action.php:1164 #, fuzzy msgid "After" msgstr "<< אחרי" -#: lib/action.php:1169 +#: lib/action.php:1172 #, fuzzy msgid "Before" msgstr "לפני >>" @@ -5027,7 +5025,7 @@ msgstr "הרשמות" msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5133,37 +5131,52 @@ msgstr "הסיסמה נשמרה." msgid "Password changing is not allowed" msgstr "הסיסמה נשמרה." -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." -msgstr "" +#: lib/command.php:83 lib/command.php:105 +#, fuzzy +msgid "Notice with that id does not exist" +msgstr "אין פרופיל תואם לפרופיל המרוחק " -#: lib/command.php:88 +#: lib/command.php:99 lib/command.php:570 +#, fuzzy +msgid "User has no last notice" +msgstr "למשתמש אין פרופיל." + +#: lib/command.php:125 #, php-format msgid "Could not find a user with nickname %s" msgstr "עידכון המשתמש נכשל." -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "עידכון המשתמש נכשל." + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "" + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" -#: lib/command.php:99 +#: lib/command.php:228 #, fuzzy, php-format msgid "Nudge sent to %s" msgstr "תגובת עבור %s" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5171,206 +5184,202 @@ msgid "" "Notices: %3$s" msgstr "" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -#, fuzzy -msgid "Notice with that id does not exist" -msgstr "אין פרופיל תואם לפרופיל המרוחק " - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -#, fuzzy -msgid "User has no last notice" -msgstr "למשתמש אין פרופיל." - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "" -#: lib/command.php:217 +#: lib/command.php:317 #, fuzzy msgid "You are already a member of that group" msgstr "כבר נכנסת למערכת!" -#: lib/command.php:231 +#: lib/command.php:331 #, fuzzy, php-format msgid "Could not join user %s to group %s" msgstr "נכשלה ההפניה לשרת: %s" -#: lib/command.php:236 +#: lib/command.php:336 #, fuzzy, php-format msgid "%s joined group %s" msgstr "הסטטוס של %1$s ב-%2$s " -#: lib/command.php:275 +#: lib/command.php:373 #, fuzzy, php-format msgid "Could not remove user %s to group %s" msgstr "נכשלה יצירת OpenID מתוך: %s" -#: lib/command.php:280 +#: lib/command.php:378 #, fuzzy, php-format msgid "%s left group %s" msgstr "הסטטוס של %1$s ב-%2$s " -#: lib/command.php:309 +#: lib/command.php:401 #, fuzzy, php-format msgid "Fullname: %s" msgstr "שם מלא" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "אודות: %s" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "" -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "" -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "" -#: lib/command.php:413 +#: lib/command.php:490 #, fuzzy msgid "Cannot repeat your own notice" msgstr "לא ניתן להירשם ללא הסכמה לרשיון" -#: lib/command.php:418 +#: lib/command.php:495 #, fuzzy msgid "Already repeated that notice" msgstr "כבר נכנסת למערכת!" -#: lib/command.php:426 +#: lib/command.php:503 #, fuzzy, php-format msgid "Notice from %s repeated" msgstr "הודעות" -#: lib/command.php:428 +#: lib/command.php:505 #, fuzzy msgid "Error repeating notice." msgstr "בעיה בשמירת ההודעה." -#: lib/command.php:482 +#: lib/command.php:536 #, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "" -#: lib/command.php:491 +#: lib/command.php:545 #, fuzzy, php-format msgid "Reply to %s sent" msgstr "תגובת עבור %s" -#: lib/command.php:493 +#: lib/command.php:547 #, fuzzy msgid "Error saving notice." msgstr "בעיה בשמירת ההודעה." -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "" -#: lib/command.php:554 lib/command.php:589 +#: lib/command.php:602 #, fuzzy -msgid "No such user" -msgstr "אין משתמש כזה." +msgid "Can't subscribe to OMB profiles by command." +msgstr "לא שלחנו אלינו את הפרופיל הזה" -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "" -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "" -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "" -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "" -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "" -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "" -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" -#: lib/command.php:692 +#: lib/command.php:735 #, fuzzy, php-format msgid "Unsubscribed %s" msgstr "בטל מנוי" -#: lib/command.php:709 +#: lib/command.php:752 #, fuzzy msgid "You are not subscribed to anyone." msgstr "לא שלחנו אלינו את הפרופיל הזה" -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "לא שלחנו אלינו את הפרופיל הזה" msgstr[1] "לא שלחנו אלינו את הפרופיל הזה" -#: lib/command.php:731 +#: lib/command.php:774 #, fuzzy msgid "No one is subscribed to you." msgstr "הרשמה מרוחקת" -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "הרשמה מרוחקת" msgstr[1] "הרשמה מרוחקת" -#: lib/command.php:753 +#: lib/command.php:796 #, fuzzy msgid "You are not a member of any groups." msgstr "לא שלחנו אלינו את הפרופיל הזה" -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "לא שלחנו אלינו את הפרופיל הזה" msgstr[1] "לא שלחנו אלינו את הפרופיל הזה" -#: lib/command.php:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5608,50 +5617,50 @@ msgstr "" msgid "This page is not available in a media type you accept" msgstr "עמוד זה אינו זמין בסוג מדיה שאתה יכול לקבל" -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "פורמט התמונה אינו נתמך." + +#: lib/imagefile.php:90 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "זה ארוך מידי. אורך מירבי להודעה הוא 140 אותיות." -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "העלאה חלקית." -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "שגיאת מערכת בהעלאת הקובץ." -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "זהו לא קובץ תמונה, או שחל בו שיבוש." -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "פורמט התמונה אינו נתמך." - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 #, fuzzy msgid "Lost our file." msgstr "אין הודעה כזו." -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, php-format msgid "Unknown inbox source %d." msgstr "" @@ -5855,7 +5864,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 msgid "from" msgstr "" @@ -6012,26 +6021,26 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 #, fuzzy msgid "in context" msgstr "אין תוכן!" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 #, fuzzy msgid "Repeated by" msgstr "צור" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 #, fuzzy msgid "Reply" msgstr "הגב" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 #, fuzzy msgid "Notice repeated" msgstr "הודעות" @@ -6361,47 +6370,47 @@ msgctxt "role" msgid "Moderator" msgstr "" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "לפני מספר שניות" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "לפני כדקה" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "לפני כ-%d דקות" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "לפני כשעה" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "לפני כ-%d שעות" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "לפני כיום" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "לפני כ-%d ימים" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "לפני כחודש" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "לפני כ-%d חודשים" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "לפני כשנה" @@ -6415,7 +6424,7 @@ msgstr "לאתר הבית יש כתובת לא חוקית." msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "" -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "" diff --git a/locale/hsb/LC_MESSAGES/statusnet.po b/locale/hsb/LC_MESSAGES/statusnet.po index 91d9c9c73..0856b4277 100644 --- a/locale/hsb/LC_MESSAGES/statusnet.po +++ b/locale/hsb/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:50:00+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:43:05+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: hsb\n" "X-Message-Group: out-statusnet\n" @@ -29,15 +29,13 @@ msgstr "Přistup" #. TRANS: Page notice #: actions/accessadminpanel.php:67 -#, fuzzy msgid "Site access settings" -msgstr "Sydłowe nastajenja składować" +msgstr "Nastajenja za sydłowy přistup" #. TRANS: Form legend for registration form. #: actions/accessadminpanel.php:161 -#, fuzzy msgid "Registration" -msgstr "Registrować" +msgstr "Registrowanje" #. TRANS: Checkbox instructions for admin setting "Private" #: actions/accessadminpanel.php:165 @@ -46,7 +44,6 @@ msgstr "" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -#, fuzzy msgctxt "LABEL" msgid "Private" msgstr "Priwatny" @@ -73,12 +70,10 @@ msgstr "Začinjeny" #. TRANS: Title / tooltip for button to save access settings in site admin panel #: actions/accessadminpanel.php:202 -#, fuzzy msgid "Save access settings" -msgstr "Sydłowe nastajenja składować" +msgstr "Přistupne nastajenja składować" #: actions/accessadminpanel.php:203 -#, fuzzy msgctxt "BUTTON" msgid "Save" msgstr "Składować" @@ -99,7 +94,7 @@ msgstr "Strona njeeksistuje" #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -108,10 +103,8 @@ msgstr "Strona njeeksistuje" #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Wužiwar njeeksistuje" @@ -204,12 +197,12 @@ msgstr "" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 msgid "API method not found." msgstr "API-metoda njenamakana." @@ -336,7 +329,7 @@ msgstr "Status z tym ID njenamakany." msgid "This status is already a favorite." msgstr "Tutón status je hižo faworit." -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "" @@ -453,7 +446,7 @@ msgstr "Skupina njenamakana!" msgid "You are already a member of that group." msgstr "Sy hižo čłon teje skupiny." -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "" @@ -491,9 +484,8 @@ msgid "No oauth_token parameter provided." msgstr "" #: actions/apioauthauthorize.php:106 -#, fuzzy msgid "Invalid token." -msgstr "Njepłaćiwa wulkosć." +msgstr "Njepłaćiwy token." #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268 #: actions/deletenotice.php:157 actions/disfavor.php:74 @@ -504,7 +496,7 @@ msgstr "Njepłaćiwa wulkosć." #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -518,12 +510,10 @@ msgid "Invalid nickname / password!" msgstr "Njepłaćiwe přimjeno abo hesło!" #: actions/apioauthauthorize.php:159 -#, fuzzy msgid "Database error deleting OAuth application user." -msgstr "Zmylk datoweje banki při zasunjenju wužiwarja OAuth-aplikacije." +msgstr "Zmylk datoweje banki při zhašenju wužiwarja OAuth-aplikacije." #: actions/apioauthauthorize.php:185 -#, fuzzy msgid "Database error inserting OAuth application user." msgstr "Zmylk datoweje banki při zasunjenju wužiwarja OAuth-aplikacije." @@ -641,12 +631,12 @@ msgstr "" msgid "Unsupported format." msgstr "Njepodpěrany format." -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "" @@ -656,7 +646,7 @@ msgstr "" msgid "%1$s / Updates mentioning %2$s" msgstr "" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" @@ -666,7 +656,7 @@ msgstr "" msgid "%s public timeline" msgstr "" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "" @@ -681,12 +671,12 @@ msgstr "" msgid "Repeats of %s" msgstr "" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "" @@ -747,7 +737,7 @@ msgid "Preview" msgstr "Přehlad" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "Zničić" @@ -827,8 +817,8 @@ msgstr "" #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 msgid "No such group." msgstr "Skupina njeeksistuje." @@ -915,14 +905,12 @@ msgid "Notices" msgstr "Zdźělenki" #: actions/deleteapplication.php:63 -#, fuzzy msgid "You must be logged in to delete an application." -msgstr "Dyrbiš přizjewjeny być, zo by skupinu wobdźěłał." +msgstr "Dyrbiš přizjewjeny być, zo by aplikaciju zničił." #: actions/deleteapplication.php:71 -#, fuzzy msgid "Application not found." -msgstr "Aplikaciski profil" +msgstr "Aplikaciska njenamakana." #: actions/deleteapplication.php:78 actions/editapplication.php:77 #: actions/showapplication.php:94 @@ -931,14 +919,13 @@ msgstr "Njejsy wobsedźer tuteje aplikacije." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "" #: actions/deleteapplication.php:123 actions/deleteapplication.php:147 -#, fuzzy msgid "Delete application" -msgstr "Aplikacija njeeksistuje." +msgstr "Aplikaciju zničić" #: actions/deleteapplication.php:149 msgid "" @@ -948,14 +935,12 @@ msgid "" msgstr "" #: actions/deleteapplication.php:156 -#, fuzzy msgid "Do not delete this application" -msgstr "Tutu zdźělenku njewušmórnyć" +msgstr "Tutu aplikaciju njezničić" #: actions/deleteapplication.php:160 -#, fuzzy msgid "Delete this application" -msgstr "Tutu zdźělenku wušmórnyć" +msgstr "Tutu aplikaciju zničić" #. TRANS: Client error message #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 @@ -990,7 +975,7 @@ msgstr "Chceš woprawdźe tutu zdźělenku wušmórnyć?" msgid "Do not delete this notice" msgstr "Tutu zdźělenku njewušmórnyć" -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "Tutu zdźělenku wušmórnyć" @@ -1144,14 +1129,13 @@ msgid "Add to favorites" msgstr "K faworitam přidać" #: actions/doc.php:158 -#, fuzzy, php-format +#, php-format msgid "No such document \"%s\"" -msgstr "Dokument njeeksistuje." +msgstr "Dokument \"%s\" njeeksistuje" #: actions/editapplication.php:54 -#, fuzzy msgid "Edit Application" -msgstr "Aplikacije OAuth" +msgstr "Aplikaciju wobdźěłać" #: actions/editapplication.php:66 msgid "You must be logged in to edit an application." @@ -1175,9 +1159,8 @@ msgid "Name is too long (max 255 chars)." msgstr "Mjeno je předołho (maks. 255 znamješkow)." #: actions/editapplication.php:183 actions/newapplication.php:162 -#, fuzzy msgid "Name already in use. Try another one." -msgstr "Přimjeno so hižo wužiwa. Spytaj druhe." +msgstr "Mjeno so hižo wužiwa. Spytaj druhe." #: actions/editapplication.php:186 actions/newapplication.php:168 msgid "Description is required." @@ -1242,7 +1225,7 @@ msgstr "wopisanje je předołho (maks. %d znamješkow)." msgid "Could not update group." msgstr "Skupina njeje so dała aktualizować." -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 msgid "Could not create aliases." msgstr "Aliasy njejsu so dali wutworić." @@ -1547,23 +1530,20 @@ msgid "Cannot read file." msgstr "Dataja njeda so čitać." #: actions/grantrole.php:62 actions/revokerole.php:62 -#, fuzzy msgid "Invalid role." -msgstr "Njepłaćiwa wulkosć." +msgstr "Njepłaćiwa róla." #: actions/grantrole.php:66 actions/revokerole.php:66 msgid "This role is reserved and cannot be set." msgstr "" #: actions/grantrole.php:75 -#, fuzzy msgid "You cannot grant user roles on this site." -msgstr "Njemóžeš tutomu wužiwarju powěsć pósłać." +msgstr "Njemóžeš wužiwarske róle na tutym sydle garantować." #: actions/grantrole.php:82 -#, fuzzy msgid "User already has this role." -msgstr "Wužiwar nima profil." +msgstr "Wužiwar hižo ma tutu rólu." #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 @@ -1908,7 +1888,7 @@ msgstr "Nowych wužiwarjow přeprosyć" msgid "You are already subscribed to these users:" msgstr "Sy tutych wužiwarjow hižo abonował:" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" @@ -1953,7 +1933,6 @@ msgstr "Wosobinsku powěsć po dobrozdaću přeprošenju přidać." #. TRANS: Send button for inviting friends #: actions/invite.php:198 -#, fuzzy msgctxt "BUTTON" msgid "Send" msgstr "Pósłać" @@ -1999,9 +1978,8 @@ msgid "You must be logged in to join a group." msgstr "" #: actions/joingroup.php:88 actions/leavegroup.php:88 -#, fuzzy msgid "No nickname or ID." -msgstr "Žane přimjeno." +msgstr "Žane přimjeno abo žadyn ID." #: actions/joingroup.php:141 #, php-format @@ -2012,7 +1990,7 @@ msgstr "" msgid "You must be logged in to leave a group." msgstr "Dyrbiš přizjewjeny być, zo by skupinu wopušćił." -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 msgid "You are not a member of that group." msgstr "Njejsy čłon teje skupiny." @@ -2090,9 +2068,8 @@ msgid "No current status" msgstr "Žadyn aktualny status" #: actions/newapplication.php:52 -#, fuzzy msgid "New Application" -msgstr "Aplikacija njeeksistuje." +msgstr "Nowa aplikacija" #: actions/newapplication.php:64 msgid "You must be logged in to register an application." @@ -2122,12 +2099,12 @@ msgstr "Wužij tutón formular, zo by nowu skupinu wutworił." msgid "New message" msgstr "Nowa powěsć" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "Njemóžeš tutomu wužiwarju powěsć pósłać." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "Žadyn wobsah!" @@ -2135,7 +2112,7 @@ msgstr "Žadyn wobsah!" msgid "No recipient specified." msgstr "Žadyn přijimowar podaty." -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" @@ -2149,7 +2126,7 @@ msgstr "Powěsć pósłana" msgid "Direct message to %s sent." msgstr "Direktna powěsć do %s pósłana." -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "Zmylk Ajax" @@ -2273,8 +2250,8 @@ msgstr "" msgid "Only " msgstr "Jenož " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "Njeje podpěrany datowy format." @@ -2405,7 +2382,7 @@ msgstr "Wopačne stare hesło" msgid "Error saving user; invalid." msgstr "" -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "" @@ -2882,7 +2859,7 @@ msgstr "Hesło wróćo stajić" msgid "Recover password" msgstr "" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "" @@ -2902,42 +2879,42 @@ msgstr "Wróćo stajić" msgid "Enter a nickname or email address." msgstr "Zapodaj přimjeno abo e-mejlowu adresu." -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "" "Wužiwar z tej e-mejlowej adresu abo tym wužiwarskim mjenom njeeksistuje." -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "Wužiwar nima žanu zregistrowanu e-mejlowu adresu." -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "" -#: actions/recoverpassword.php:325 +#: 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:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "" -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "Hesło dyrbi 6 znamješkow abo wjace měć." -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "" -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "" -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "" @@ -3112,7 +3089,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:674 +#: actions/repeat.php:114 lib/noticelist.php:676 msgid "Repeated" msgstr "Wospjetowany" @@ -3173,14 +3150,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 "Njemóžeš tutomu wužiwarju powěsć pósłać." +msgstr "Njemóžeš wužiwarske róle na tutym sydle wotwołać." #: actions/revokerole.php:82 -#, fuzzy msgid "User doesn't have this role." -msgstr "Wužiwar bjez hodźaceho so profila." +msgstr "Wužiwar nima tutu rólu." #: actions/rsd.php:146 actions/version.php:157 msgid "StatusNet" @@ -3201,9 +3176,8 @@ msgid "Sessions" msgstr "Posedźenja" #: actions/sessionsadminpanel.php:65 -#, fuzzy msgid "Session settings for this StatusNet site." -msgstr "Designowe nastajenja za tute sydło StatusNet." +msgstr "Nastajenja posedźenja za tute sydło StatusNet." #: actions/sessionsadminpanel.php:175 msgid "Handle sessions" @@ -3301,14 +3275,13 @@ msgid "" msgstr "" #: actions/showapplication.php:309 -#, fuzzy msgid "Are you sure you want to reset your consumer key and secret?" -msgstr "Chceš woprawdźe tutu zdźělenku wušmórnyć?" +msgstr "Chceš woprawdźe swój přetrjebowarski kluč a potajny kod wróćo stajić?" #: actions/showfavorites.php:79 -#, fuzzy, php-format +#, php-format msgid "%1$s's favorite notices, page %2$d" -msgstr "%1$s a přećeljo, strona %2$d" +msgstr "Preferowane zdźělenki wot %1$s, strona %2$d" #: actions/showfavorites.php:132 msgid "Could not retrieve favorite notices." @@ -3360,9 +3333,9 @@ msgid "%s group" msgstr "" #: actions/showgroup.php:84 -#, fuzzy, php-format +#, php-format msgid "%1$s group, page %2$d" -msgstr "%1$s skupinskich čłonow, strona %2$d" +msgstr "%1$s skupina, strona %2$d" #: actions/showgroup.php:226 msgid "Group profile" @@ -3475,9 +3448,9 @@ msgid " tagged %s" msgstr "" #: actions/showstream.php:79 -#, fuzzy, php-format +#, php-format msgid "%1$s, page %2$d" -msgstr "%1$s a přećeljo, strona %2$d" +msgstr "%1$s, strona %2$d" #: actions/showstream.php:122 #, php-format @@ -3553,9 +3526,8 @@ msgid "User is already silenced." msgstr "" #: actions/siteadminpanel.php:69 -#, fuzzy msgid "Basic settings for this StatusNet site" -msgstr "Designowe nastajenja za tute sydło StatusNet." +msgstr "Zakładne nastajenja za tute sydło StatusNet." #: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." @@ -3623,9 +3595,8 @@ msgid "Default timezone for the site; usually UTC." msgstr "" #: actions/siteadminpanel.php:262 -#, fuzzy msgid "Default language" -msgstr "Standardna sydłowa rěč" +msgstr "Standardna rěč" #: actions/siteadminpanel.php:263 msgid "Site language when autodetection from browser settings is not available" @@ -3652,37 +3623,32 @@ msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" #: actions/sitenoticeadminpanel.php:56 -#, fuzzy msgid "Site Notice" -msgstr "Zdźělenki" +msgstr "Sydłowa zdźělenka" #: actions/sitenoticeadminpanel.php:67 -#, fuzzy msgid "Edit site-wide message" -msgstr "Nowa powěsć" +msgstr "Sydłodaloku powěsć wobdźěłać" #: actions/sitenoticeadminpanel.php:103 -#, fuzzy msgid "Unable to save site notice." -msgstr "Wužiwar nima poslednju powěsć" +msgstr "Njeje móžno, sydłowu zdźělenku składować." #: actions/sitenoticeadminpanel.php:113 msgid "Max length for the site-wide notice is 255 chars" msgstr "" #: actions/sitenoticeadminpanel.php:176 -#, fuzzy msgid "Site notice text" -msgstr "Njepłaćiwy wobsah zdźělenki" +msgstr "Tekst sydłoweje zdźělenki" #: actions/sitenoticeadminpanel.php:178 msgid "Site-wide notice text (255 chars max; HTML okay)" msgstr "" #: actions/sitenoticeadminpanel.php:198 -#, fuzzy msgid "Save site notice" -msgstr "Sydłowe nastajenja składować" +msgstr "Sydłowu zdźělenku składować" #: actions/smssettings.php:58 msgid "SMS settings" @@ -3783,9 +3749,8 @@ msgid "Snapshots" msgstr "" #: actions/snapshotadminpanel.php:65 -#, fuzzy msgid "Manage snapshot configuration" -msgstr "SMS-wobkrućenje" +msgstr "Konfiguraciju wobrazowkoweho fota zrjadować" #: actions/snapshotadminpanel.php:127 msgid "Invalid snapshot run value." @@ -3832,9 +3797,8 @@ msgid "Snapshots will be sent to this URL" msgstr "" #: actions/snapshotadminpanel.php:248 -#, fuzzy msgid "Save snapshot settings" -msgstr "Sydłowe nastajenja składować" +msgstr "Nastajenja wobrazowkoweho fota składować" #: actions/subedit.php:70 msgid "You are not subscribed to that profile." @@ -3850,14 +3814,12 @@ msgid "This action only accepts POST requests." msgstr "" #: actions/subscribe.php:107 -#, fuzzy msgid "No such profile." -msgstr "Dataja njeeksistuje." +msgstr "Profil njeeksistuje." #: actions/subscribe.php:117 -#, fuzzy msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." -msgstr "Njejsy tón profil abonował." +msgstr "Njemóžeš zdaleny profil OMB 0.1 z tutej akciju abonować." #: actions/subscribe.php:145 msgid "Subscribed" @@ -4039,7 +4001,6 @@ msgstr "" #. TRANS: User admin panel title #: actions/useradminpanel.php:59 -#, fuzzy msgctxt "TITLE" msgid "User" msgstr "Wužiwar" @@ -4214,9 +4175,9 @@ msgid "Enjoy your hotdog!" msgstr "" #: actions/usergroups.php:64 -#, fuzzy, php-format +#, php-format msgid "%1$s groups, page %2$d" -msgstr "%1$s skupinskich čłonow, strona %2$d" +msgstr "%1$s skupinow, strona %2$d" #: actions/usergroups.php:130 msgid "Search for more groups" @@ -4289,19 +4250,19 @@ msgstr "Wersija" msgid "Author(s)" msgstr "Awtorojo" -#: classes/File.php:144 +#: classes/File.php:169 #, 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." msgstr "" -#: classes/File.php:154 +#: classes/File.php:179 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:161 +#: classes/File.php:186 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" @@ -4319,9 +4280,8 @@ msgid "Group leave failed." msgstr "Wopušćenje skupiny je so njeporadźiło." #: classes/Local_group.php:41 -#, fuzzy msgid "Could not update local group." -msgstr "Skupina njeje so dała aktualizować." +msgstr "Lokalna skupina njeda so aktualizować." #: classes/Login_token.php:76 #, php-format @@ -4376,7 +4336,7 @@ msgstr "" msgid "Problem saving group inbox." msgstr "" -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4402,36 +4362,33 @@ msgid "Couldn't delete self-subscription." msgstr "Sebjeabonement njeje so dał zničić." #: classes/Subscription.php:190 -#, fuzzy msgid "Couldn't delete subscription OMB token." -msgstr "Abonoment njeje so dał zničić." +msgstr "Znamjo OMB-abonementa njeda so zhašeć." -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "Abonoment njeje so dał zničić." -#: classes/User.php:373 +#: classes/User.php:378 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:477 +#: classes/User_group.php:480 msgid "Could not create group." msgstr "" -#: classes/User_group.php:486 -#, fuzzy +#: classes/User_group.php:489 msgid "Could not set group URI." -msgstr "Skupina njeje so dała aktualizować." +msgstr "URI skupiny njeda so nastajić." -#: classes/User_group.php:507 +#: classes/User_group.php:510 msgid "Could not set group membership." msgstr "" -#: classes/User_group.php:521 -#, fuzzy +#: classes/User_group.php:524 msgid "Could not save local group info." -msgstr "Profil njeje so składować dał." +msgstr "Informacije wo lokalnej skupinje njedachu so składować." #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" @@ -4481,24 +4438,21 @@ msgid "Personal profile and friends timeline" msgstr "" #: lib/action.php:433 -#, fuzzy msgctxt "MENU" msgid "Personal" msgstr "Wosobinski" #. TRANS: Tooltip for main menu option "Account" #: lib/action.php:435 -#, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" -msgstr "Změń swoje hesło." +msgstr "Wašu e-mejl, waš awatar, waše hesło, waš profil změnić" #. TRANS: Tooltip for main menu option "Services" #: lib/action.php:440 -#, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" -msgstr "Zwiski" +msgstr "Ze słužbami zwjazać" #: lib/action.php:443 msgid "Connect" @@ -4506,93 +4460,78 @@ msgstr "Zwjazać" #. TRANS: Tooltip for menu option "Admin" #: lib/action.php:446 -#, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" -msgstr "SMS-wobkrućenje" +msgstr "Sydłowu konfiguraciju změnić" #: lib/action.php:449 -#, fuzzy msgctxt "MENU" msgid "Admin" msgstr "Administrator" #. TRANS: Tooltip for main menu option "Invite" #: lib/action.php:453 -#, fuzzy, php-format +#, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" -msgstr "" -"Wužij tutón formular, zo by swojich přećelow a kolegow přeprosył, zo bychu " -"tutu słužbu wužiwali." +msgstr "Přećelow a kolegow přeprosyć, so tebi na %s přidružić" #: lib/action.php:456 -#, fuzzy msgctxt "MENU" msgid "Invite" msgstr "Přeprosyć" #. TRANS: Tooltip for main menu option "Logout" #: lib/action.php:462 -#, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" -msgstr "Šat za sydło." +msgstr "Ze sydła wotzjewić" #: lib/action.php:465 -#, fuzzy msgctxt "MENU" msgid "Logout" -msgstr "Logo" +msgstr "Wotzjewić" #. TRANS: Tooltip for main menu option "Register" #: lib/action.php:470 -#, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "Konto załožić" #: lib/action.php:473 -#, fuzzy msgctxt "MENU" msgid "Register" msgstr "Registrować" #. TRANS: Tooltip for main menu option "Login" #: lib/action.php:476 -#, fuzzy msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Při sydle přizjewić" #: lib/action.php:479 -#, fuzzy msgctxt "MENU" msgid "Login" -msgstr "Přizjewić" +msgstr "Přizjewjenje" #. TRANS: Tooltip for main menu option "Help" #: lib/action.php:482 -#, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "Pomhaj!" #: lib/action.php:485 -#, fuzzy msgctxt "MENU" msgid "Help" msgstr "Pomoc" #. TRANS: Tooltip for main menu option "Search" #: lib/action.php:488 -#, fuzzy msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Za ludźimi abo tekstom pytać" #: lib/action.php:491 -#, fuzzy msgctxt "MENU" msgid "Search" msgstr "Pytać" @@ -4651,19 +4590,19 @@ msgstr "" msgid "StatusNet software license" msgstr "" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%). " msgstr "" -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "" -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4671,41 +4610,41 @@ msgid "" "org/licensing/licenses/agpl-3.0.html)." msgstr "" -#: lib/action.php:821 +#: lib/action.php:824 msgid "Site content license" msgstr "" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "" -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "" -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "" -#: lib/action.php:1161 +#: lib/action.php:1164 msgid "After" msgstr "" -#: lib/action.php:1169 +#: lib/action.php:1172 msgid "Before" msgstr "" @@ -4753,7 +4692,6 @@ msgstr "" #. TRANS: Menu item for site administration #: lib/adminpanelaction.php:350 -#, fuzzy msgctxt "MENU" msgid "Site" msgstr "Sydło" @@ -4765,16 +4703,14 @@ msgstr "" #. TRANS: Menu item for site administration #: lib/adminpanelaction.php:358 -#, fuzzy msgctxt "MENU" msgid "Design" msgstr "Design" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:364 -#, fuzzy msgid "User configuration" -msgstr "SMS-wobkrućenje" +msgstr "Wužiwarska konfiguracija" #. TRANS: Menu item for site administration #: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 @@ -4783,9 +4719,8 @@ msgstr "Wužiwar" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:372 -#, fuzzy msgid "Access configuration" -msgstr "SMS-wobkrućenje" +msgstr "Přistupna konfiguracija" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:380 @@ -4794,27 +4729,24 @@ msgstr "" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:388 -#, fuzzy msgid "Sessions configuration" -msgstr "SMS-wobkrućenje" +msgstr "Konfiguracija posedźenjow" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:396 -#, fuzzy msgid "Edit site notice" -msgstr "Dwójna zdźělenka" +msgstr "Sydłowu zdźělenku wobdźěłać" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:404 -#, fuzzy msgid "Snapshots configuration" -msgstr "SMS-wobkrućenje" +msgstr "Konfiguracija wobrazowkowych fotow" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4912,37 +4844,50 @@ msgstr "Změnjenje hesła je so njeporadźiło" msgid "Password changing is not allowed" msgstr "Změnjenje hesła njeje dowolene" -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." -msgstr "" +#: lib/command.php:83 lib/command.php:105 +msgid "Notice with that id does not exist" +msgstr "Zdźělenka z tym ID njeeksistuje" + +#: lib/command.php:99 lib/command.php:570 +msgid "User has no last notice" +msgstr "Wužiwar nima poslednju powěsć" -#: lib/command.php:88 +#: lib/command.php:125 #, php-format msgid "Could not find a user with nickname %s" msgstr "" -#: lib/command.php:92 +#: lib/command.php:143 +#, php-format +msgid "Could not find a local user with nickname %s" +msgstr "" + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "" + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" -#: lib/command.php:99 +#: lib/command.php:228 #, php-format msgid "Nudge sent to %s" msgstr "" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -4950,170 +4895,168 @@ msgid "" "Notices: %3$s" msgstr "" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -msgid "Notice with that id does not exist" -msgstr "Zdźělenka z tym ID njeeksistuje" - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -msgid "User has no last notice" -msgstr "Wužiwar nima poslednju powěsć" - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "" -#: lib/command.php:217 +#: lib/command.php:317 msgid "You are already a member of that group" msgstr "Sy hižo čłon teje skupiny" -#: lib/command.php:231 +#: lib/command.php:331 #, php-format msgid "Could not join user %s to group %s" msgstr "Njebě móžno wužiwarja %s skupinje %s přidać" -#: lib/command.php:236 +#: lib/command.php:336 #, php-format msgid "%s joined group %s" msgstr "%s je so k skupinje %s přizamknył" -#: lib/command.php:275 +#: lib/command.php:373 #, php-format msgid "Could not remove user %s to group %s" msgstr "Njebě móžno wužiwarja %s do skupiny %s přesunyć" -#: lib/command.php:280 +#: lib/command.php:378 #, php-format msgid "%s left group %s" msgstr "%s je skupinu %s wopušćił" -#: lib/command.php:309 +#: lib/command.php:401 #, php-format msgid "Fullname: %s" msgstr "Dospołne mjeno: %s" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Městno: %s" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "Wo: %s" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "" -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "Direktna powěsć do %s pósłana" -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "" -#: lib/command.php:413 +#: lib/command.php:490 msgid "Cannot repeat your own notice" msgstr "Njemóžeš swójsku powěsć wospjetować" -#: lib/command.php:418 +#: lib/command.php:495 msgid "Already repeated that notice" msgstr "Tuta zdźělenka bu hižo wospjetowana" -#: lib/command.php:426 +#: lib/command.php:503 #, php-format msgid "Notice from %s repeated" msgstr "Zdźělenka wot %s wospjetowana" -#: lib/command.php:428 +#: lib/command.php:505 msgid "Error repeating notice." msgstr "Zmylk při wospjetowanju zdźělenki" -#: lib/command.php:482 +#: lib/command.php:536 #, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "" -#: lib/command.php:491 +#: lib/command.php:545 #, php-format msgid "Reply to %s sent" msgstr "Wotmołwa na %s pósłana" -#: lib/command.php:493 +#: lib/command.php:547 msgid "Error saving notice." msgstr "" -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "" -#: lib/command.php:554 lib/command.php:589 +#: lib/command.php:602 #, fuzzy -msgid "No such user" -msgstr "Wužiwar njeeksistuje" +msgid "Can't subscribe to OMB profiles by command." +msgstr "Njejsy tón profil abonował." -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "" -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "" -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "" -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "" -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "" -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "" -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" -#: lib/command.php:692 -#, fuzzy, php-format +#: lib/command.php:735 +#, php-format msgid "Unsubscribed %s" -msgstr "Wotskazany" +msgstr "%s wotskazany" -#: lib/command.php:709 +#: lib/command.php:752 msgid "You are not subscribed to anyone." msgstr "" -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Sy tutu wosobu abonował:" @@ -5121,11 +5064,11 @@ msgstr[1] "Sy tutej wosobje abonował:" msgstr[2] "Sy tute wosoby abonował:" msgstr[3] "Sy tute wosoby abonował:" -#: lib/command.php:731 +#: lib/command.php:774 msgid "No one is subscribed to you." msgstr "" -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Tuta wosoba je će abonowała:" @@ -5133,11 +5076,11 @@ msgstr[1] "Tutej wosobje stej će abonowałoj:" msgstr[2] "Tute wosoby su će abonowali:" msgstr[3] "Tute wosoby su će abonowali:" -#: lib/command.php:753 +#: lib/command.php:796 msgid "You are not a member of any groups." msgstr "" -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Sy čłon tuteje skupiny:" @@ -5145,7 +5088,7 @@ msgstr[1] "Sy čłon tuteju skupinow:" msgstr[2] "Sy čłon tutych skupinow:" msgstr[3] "Sy čłon tutych skupinow:" -#: lib/command.php:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5373,49 +5316,49 @@ msgstr "" msgid "This page is not available in a media type you accept" msgstr "" -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "" + +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "" -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Dźělne nahraće." -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "" -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "" -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "" - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 msgid "Lost our file." msgstr "Naša dataja je so zhubiła." -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "Njeznaty datajowy typ" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "MB" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "KB" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "[%s]" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, php-format msgid "Unknown inbox source %d." msgstr "Njeznate žórło postoweho kašćika %d." @@ -5610,7 +5553,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 msgid "from" msgstr "wot" @@ -5700,7 +5643,6 @@ msgid "Available characters" msgstr "K dispoziciji stejace znamješka" #: lib/messageform.php:178 lib/noticeform.php:236 -#, fuzzy msgctxt "Send button for sending notice" msgid "Send" msgstr "Pósłać" @@ -5761,23 +5703,23 @@ msgstr "Z" msgid "at" msgstr "" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 msgid "in context" msgstr "" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 msgid "Repeated by" msgstr "Wospjetowany wot" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "Na tutu zdźělenku wotmołwić" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 msgid "Reply" msgstr "Wotmołwić" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 msgid "Notice repeated" msgstr "Zdźělenka wospjetowana" @@ -5915,9 +5857,9 @@ msgid "Repeat this notice" msgstr "Tutu zdźělenku wospjetować" #: lib/revokeroleform.php:91 -#, fuzzy, php-format +#, php-format msgid "Revoke the \"%s\" role from this user" -msgstr "Tutoho wužiwarja za tutu skupinu blokować" +msgstr "Rólu \"%s\" tutoho wužiwarja wotwołać" #: lib/router.php:671 msgid "No single user defined for single-user mode." @@ -6074,62 +6016,60 @@ msgid "Moderate" msgstr "" #: lib/userprofile.php:352 -#, fuzzy msgid "User role" -msgstr "Wužiwarski profil" +msgstr "Wužiwarska róla" #: lib/userprofile.php:354 -#, fuzzy msgctxt "role" msgid "Administrator" -msgstr "Administratorojo" +msgstr "Administrator" #: lib/userprofile.php:355 msgctxt "role" msgid "Moderator" msgstr "" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "před něšto sekundami" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "před něhdźe jednej mjeńšinu" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "před %d mjeńšinami" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "před něhdźe jednej hodźinu" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "před něhdźe %d hodźinami" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "před něhdźe jednym dnjom" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "před něhdźe %d dnjemi" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "před něhdźe jednym měsacom" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "před něhdźe %d měsacami" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "před něhdźe jednym lětom" @@ -6145,7 +6085,7 @@ msgstr "" "%s płaćiwa barba njeje! Wužij 3 heksadecimalne znamješka abo 6 " "heksadecimalnych znamješkow." -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "" diff --git a/locale/ia/LC_MESSAGES/statusnet.po b/locale/ia/LC_MESSAGES/statusnet.po index 7a96686ed..3169d6fa4 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-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:50:08+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:43:09+0000\n" "Language-Team: Interlingua\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: out-statusnet\n" @@ -42,7 +42,6 @@ msgstr "Prohibir al usatores anonyme (sin session aperte) de vider le sito?" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -#, fuzzy msgctxt "LABEL" msgid "Private" msgstr "Private" @@ -73,7 +72,6 @@ msgid "Save access settings" msgstr "Salveguardar configurationes de accesso" #: actions/accessadminpanel.php:203 -#, fuzzy msgctxt "BUTTON" msgid "Save" msgstr "Salveguardar" @@ -94,7 +92,7 @@ msgstr "Pagina non existe" #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -103,10 +101,8 @@ msgstr "Pagina non existe" #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Usator non existe." @@ -207,12 +203,12 @@ msgstr "Actualisationes de %1$s e su amicos in %2$s!" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 msgid "API method not found." msgstr "Methodo API non trovate." @@ -343,7 +339,7 @@ msgstr "Nulle stato trovate con iste ID." msgid "This status is already a favorite." msgstr "Iste stato es ja favorite." -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "Non poteva crear le favorite." @@ -460,7 +456,7 @@ msgstr "Gruppo non trovate!" msgid "You are already a member of that group." msgstr "Tu es ja membro de iste gruppo." -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "Le administrator te ha blocate de iste gruppo." @@ -510,7 +506,7 @@ msgstr "Indicio invalide." #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -656,12 +652,12 @@ msgstr "" msgid "Unsupported format." msgstr "Formato non supportate." -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / Favorites de %2$s" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s actualisationes favoritisate per %2$s / %2$s." @@ -671,7 +667,7 @@ msgstr "%1$s actualisationes favoritisate per %2$s / %2$s." msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Actualisationes que mentiona %2$s" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" @@ -682,7 +678,7 @@ msgstr "" msgid "%s public timeline" msgstr "Chronologia public de %s" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "Actualisationes de totes in %s!" @@ -697,12 +693,12 @@ msgstr "Repetite a %s" msgid "Repeats of %s" msgstr "Repetitiones de %s" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Notas con etiquetta %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Actualisationes con etiquetta %1$s in %2$s!" @@ -763,7 +759,7 @@ msgid "Preview" msgstr "Previsualisation" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "Deler" @@ -846,8 +842,8 @@ msgstr "Falleva de salveguardar le information del blocada." #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 msgid "No such group." msgstr "Gruppo non existe." @@ -948,7 +944,7 @@ msgstr "Tu non es le proprietario de iste application." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "Il habeva un problema con tu indicio de session." @@ -1009,7 +1005,7 @@ msgstr "Es tu secur de voler deler iste nota?" msgid "Do not delete this notice" msgstr "Non deler iste nota" -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "Deler iste nota" @@ -1262,7 +1258,7 @@ msgstr "description es troppo longe (max %d chars)." msgid "Could not update group." msgstr "Non poteva actualisar gruppo." -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 msgid "Could not create aliases." msgstr "Non poteva crear aliases." @@ -1578,23 +1574,20 @@ msgid "Cannot read file." msgstr "Non pote leger file." #: actions/grantrole.php:62 actions/revokerole.php:62 -#, fuzzy msgid "Invalid role." -msgstr "Indicio invalide." +msgstr "Rolo invalide." #: actions/grantrole.php:66 actions/revokerole.php:66 msgid "This role is reserved and cannot be set." -msgstr "" +msgstr "Iste rolo es reservate e non pote esser apponite." #: actions/grantrole.php:75 -#, fuzzy msgid "You cannot grant user roles on this site." -msgstr "Tu non pote mitter usatores in le cassa de sablo in iste sito." +msgstr "Tu non pote conceder rolos a usatores in iste sito." #: actions/grantrole.php:82 -#, fuzzy msgid "User already has this role." -msgstr "Usator es ja silentiate." +msgstr "Le usator ha ja iste rolo." #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 @@ -1968,7 +1961,7 @@ msgstr "Invitar nove usatores" msgid "You are already subscribed to these users:" msgstr "Tu es a subscribite a iste usatores:" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" @@ -2016,7 +2009,6 @@ msgstr "Si tu vole, adde un message personal al invitation." #. TRANS: Send button for inviting friends #: actions/invite.php:198 -#, fuzzy msgctxt "BUTTON" msgid "Send" msgstr "Inviar" @@ -2088,9 +2080,8 @@ msgid "You must be logged in to join a group." msgstr "Tu debe aperir un session pro facer te membro de un gruppo." #: actions/joingroup.php:88 actions/leavegroup.php:88 -#, fuzzy msgid "No nickname or ID." -msgstr "Nulle pseudonymo." +msgstr "Nulle pseudonymo o ID." #: actions/joingroup.php:141 #, php-format @@ -2101,7 +2092,7 @@ msgstr "%1$s es ora membro del gruppo %2$s" msgid "You must be logged in to leave a group." msgstr "Tu debe aperir un session pro quitar un gruppo." -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 msgid "You are not a member of that group." msgstr "Tu non es membro de iste gruppo." @@ -2217,12 +2208,12 @@ msgstr "Usa iste formulario pro crear un nove gruppo." msgid "New message" msgstr "Nove message" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "Tu non pote inviar un message a iste usator." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "Nulle contento!" @@ -2230,7 +2221,7 @@ msgstr "Nulle contento!" msgid "No recipient specified." msgstr "Nulle destinatario specificate." -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" @@ -2246,7 +2237,7 @@ msgstr "Message inviate" msgid "Direct message to %s sent." msgstr "Message directe a %s inviate." -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "Error de Ajax" @@ -2381,8 +2372,8 @@ msgstr "typo de contento " msgid "Only " msgstr "Solmente " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "Formato de datos non supportate." @@ -2514,7 +2505,7 @@ msgstr "Ancian contrasigno incorrecte" msgid "Error saving user; invalid." msgstr "Error de salveguardar le usator; invalide." -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "Non pote salveguardar le nove contrasigno." @@ -3015,7 +3006,7 @@ msgstr "Reinitialisar contrasigno" msgid "Recover password" msgstr "Recuperar contrasigno" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "Recuperation de contrasigno requestate" @@ -3035,19 +3026,19 @@ msgstr "Reinitialisar" msgid "Enter a nickname or email address." msgstr "Entra un pseudonymo o adresse de e-mail." -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "Nulle usator existe con iste adresse de e-mail o nomine de usator." -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "Nulle adresse de e-mail registrate pro iste usator." -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "Error al salveguardar le confirmation del adresse." -#: actions/recoverpassword.php:325 +#: actions/recoverpassword.php:338 msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." @@ -3055,23 +3046,23 @@ msgstr "" "Instructiones pro recuperar tu contrasigno ha essite inviate al adresse de e-" "mail registrate in tu conto." -#: actions/recoverpassword.php:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "Reinitialisation inexpectate del contrasigno." -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "Le contrasigno debe haber 6 characteres o plus." -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Contrasigno e confirmation non corresponde." -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "Error durante le configuration del usator." -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "Nove contrasigno salveguardate con successo. Tu session es ora aperte." @@ -3273,7 +3264,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:674 +#: actions/repeat.php:114 lib/noticelist.php:676 msgid "Repeated" msgstr "Repetite" @@ -3340,14 +3331,12 @@ msgid "Replies to %1$s on %2$s!" msgstr "Responsas a %1$s in %2$s!" #: actions/revokerole.php:75 -#, fuzzy msgid "You cannot revoke user roles on this site." -msgstr "Tu non pote silentiar usatores in iste sito." +msgstr "Tu non pote revocar rolos de usatores in iste sito." #: actions/revokerole.php:82 -#, fuzzy msgid "User doesn't have this role." -msgstr "Usator sin profilo correspondente" +msgstr "Le usator non ha iste rolo." #: actions/rsd.php:146 actions/version.php:157 msgid "StatusNet" @@ -3750,9 +3739,8 @@ msgid "User is already silenced." msgstr "Usator es ja silentiate." #: actions/siteadminpanel.php:69 -#, fuzzy msgid "Basic settings for this StatusNet site" -msgstr "Configurationes de base pro iste sito de StatusNet." +msgstr "Configurationes de base pro iste sito de StatusNet" #: actions/siteadminpanel.php:133 msgid "Site name must have non-zero length." @@ -3820,13 +3808,14 @@ msgid "Default timezone for the site; usually UTC." msgstr "Fuso horari predefinite pro le sito; normalmente UTC." #: actions/siteadminpanel.php:262 -#, fuzzy msgid "Default language" -msgstr "Lingua predefinite del sito" +msgstr "Lingua predefinite" #: actions/siteadminpanel.php:263 msgid "Site language when autodetection from browser settings is not available" msgstr "" +"Le lingua del sito quando le detection automatic ex le configuration del " +"navigator non es disponibile" #: actions/siteadminpanel.php:271 msgid "Limits" @@ -3851,37 +3840,33 @@ msgstr "" "publicar le mesme cosa de novo." #: actions/sitenoticeadminpanel.php:56 -#, fuzzy msgid "Site Notice" msgstr "Aviso del sito" #: actions/sitenoticeadminpanel.php:67 -#, fuzzy msgid "Edit site-wide message" -msgstr "Nove message" +msgstr "Modificar message a tote le sito" #: actions/sitenoticeadminpanel.php:103 -#, fuzzy msgid "Unable to save site notice." -msgstr "Impossibile salveguardar le configurationes del apparentia." +msgstr "Impossibile salveguardar le aviso del sito." #: actions/sitenoticeadminpanel.php:113 msgid "Max length for the site-wide notice is 255 chars" -msgstr "" +msgstr "Le longitude maxime del aviso a tote le sito es 255 characteres" #: actions/sitenoticeadminpanel.php:176 -#, fuzzy msgid "Site notice text" -msgstr "Aviso del sito" +msgstr "Texto del aviso del sito" #: actions/sitenoticeadminpanel.php:178 msgid "Site-wide notice text (255 chars max; HTML okay)" msgstr "" +"Le texto del aviso a tote le sito (max. 255 characteres; HTML permittite)" #: actions/sitenoticeadminpanel.php:198 -#, fuzzy msgid "Save site notice" -msgstr "Aviso del sito" +msgstr "Salveguardar aviso del sito" #: actions/smssettings.php:58 msgid "SMS settings" @@ -3989,9 +3974,8 @@ msgid "Snapshots" msgstr "Instantaneos" #: actions/snapshotadminpanel.php:65 -#, fuzzy msgid "Manage snapshot configuration" -msgstr "Modificar le configuration del sito" +msgstr "Gerer configuration de instantaneos" #: actions/snapshotadminpanel.php:127 msgid "Invalid snapshot run value." @@ -4038,9 +4022,8 @@ msgid "Snapshots will be sent to this URL" msgstr "Le instantaneos essera inviate a iste URL" #: actions/snapshotadminpanel.php:248 -#, fuzzy msgid "Save snapshot settings" -msgstr "Salveguardar configurationes del sito" +msgstr "Salveguardar configuration de instantaneos" #: actions/subedit.php:70 msgid "You are not subscribed to that profile." @@ -4053,17 +4036,15 @@ msgstr "Non poteva salveguardar le subscription." #: actions/subscribe.php:77 msgid "This action only accepts POST requests." -msgstr "" +msgstr "Iste action accepta solmente le requestas de typo POST." #: actions/subscribe.php:107 -#, fuzzy msgid "No such profile." -msgstr "File non existe." +msgstr "Profilo non existe." #: actions/subscribe.php:117 -#, fuzzy msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." -msgstr "Tu non es subscribite a iste profilo." +msgstr "Tu non pote subscriber te a un profilo remote OMB 0.1 con iste action." #: actions/subscribe.php:145 msgid "Subscribed" @@ -4262,7 +4243,6 @@ msgstr "" #. TRANS: User admin panel title #: actions/useradminpanel.php:59 -#, fuzzy msgctxt "TITLE" msgid "User" msgstr "Usator" @@ -4535,7 +4515,7 @@ msgstr "Version" msgid "Author(s)" msgstr "Autor(es)" -#: classes/File.php:144 +#: classes/File.php:169 #, php-format msgid "" "No file may be larger than %d bytes and the file you sent was %d bytes. Try " @@ -4544,12 +4524,12 @@ 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:154 +#: classes/File.php:179 #, 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:161 +#: classes/File.php:186 #, 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." @@ -4567,9 +4547,8 @@ msgid "Group leave failed." msgstr "Le cancellation del membrato del gruppo ha fallite." #: classes/Local_group.php:41 -#, fuzzy msgid "Could not update local group." -msgstr "Non poteva actualisar gruppo." +msgstr "Non poteva actualisar gruppo local." #: classes/Login_token.php:76 #, php-format @@ -4628,7 +4607,7 @@ msgstr "Problema salveguardar nota." msgid "Problem saving group inbox." msgstr "Problema salveguardar le cassa de entrata del gruppo." -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4654,36 +4633,33 @@ msgid "Couldn't delete self-subscription." msgstr "Non poteva deler auto-subscription." #: classes/Subscription.php:190 -#, fuzzy msgid "Couldn't delete subscription OMB token." -msgstr "Non poteva deler subscription." +msgstr "Non poteva deler le indicio OMB del subscription." -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "Non poteva deler subscription." -#: classes/User.php:373 +#: classes/User.php:378 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Benvenite a %1$s, @%2$s!" -#: classes/User_group.php:477 +#: classes/User_group.php:480 msgid "Could not create group." msgstr "Non poteva crear gruppo." -#: classes/User_group.php:486 -#, fuzzy +#: classes/User_group.php:489 msgid "Could not set group URI." -msgstr "Non poteva configurar le membrato del gruppo." +msgstr "Non poteva definir le URL del gruppo." -#: classes/User_group.php:507 +#: classes/User_group.php:510 msgid "Could not set group membership." msgstr "Non poteva configurar le membrato del gruppo." -#: classes/User_group.php:521 -#, fuzzy +#: classes/User_group.php:524 msgid "Could not save local group info." -msgstr "Non poteva salveguardar le subscription." +msgstr "Non poteva salveguardar le informationes del gruppo local." #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" @@ -4728,30 +4704,26 @@ msgstr "Navigation primari del sito" #. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:430 -#, fuzzy msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Profilo personal e chronologia de amicos" #: lib/action.php:433 -#, fuzzy msgctxt "MENU" msgid "Personal" msgstr "Personal" #. TRANS: Tooltip for main menu option "Account" #: lib/action.php:435 -#, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" msgstr "Cambiar tu e-mail, avatar, contrasigno, profilo" #. TRANS: Tooltip for main menu option "Services" #: lib/action.php:440 -#, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" -msgstr "Connecter con servicios" +msgstr "Connecter a servicios" #: lib/action.php:443 msgid "Connect" @@ -4759,91 +4731,78 @@ msgstr "Connecter" #. TRANS: Tooltip for menu option "Admin" #: lib/action.php:446 -#, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" msgstr "Modificar le configuration del sito" #: lib/action.php:449 -#, fuzzy msgctxt "MENU" msgid "Admin" -msgstr "Administrator" +msgstr "Admin" #. TRANS: Tooltip for main menu option "Invite" #: lib/action.php:453 -#, fuzzy, php-format +#, php-format msgctxt "TOOLTIP" msgid "Invite friends and colleagues to join you on %s" msgstr "Invitar amicos e collegas a accompaniar te in %s" #: lib/action.php:456 -#, fuzzy msgctxt "MENU" msgid "Invite" msgstr "Invitar" #. TRANS: Tooltip for main menu option "Logout" #: lib/action.php:462 -#, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "Terminar le session del sito" #: lib/action.php:465 -#, fuzzy msgctxt "MENU" msgid "Logout" msgstr "Clauder session" #. TRANS: Tooltip for main menu option "Register" #: lib/action.php:470 -#, fuzzy msgctxt "TOOLTIP" msgid "Create an account" msgstr "Crear un conto" #: lib/action.php:473 -#, fuzzy msgctxt "MENU" msgid "Register" msgstr "Crear conto" #. TRANS: Tooltip for main menu option "Login" #: lib/action.php:476 -#, fuzzy msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Identificar te a iste sito" #: lib/action.php:479 -#, fuzzy msgctxt "MENU" msgid "Login" msgstr "Aperir session" #. TRANS: Tooltip for main menu option "Help" #: lib/action.php:482 -#, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "Adjuta me!" #: lib/action.php:485 -#, fuzzy msgctxt "MENU" msgid "Help" msgstr "Adjuta" #. TRANS: Tooltip for main menu option "Search" #: lib/action.php:488 -#, fuzzy msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Cercar personas o texto" #: lib/action.php:491 -#, fuzzy msgctxt "MENU" msgid "Search" msgstr "Cercar" @@ -4902,7 +4861,7 @@ msgstr "Insignia" msgid "StatusNet software license" msgstr "Licentia del software StatusNet" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4911,12 +4870,12 @@ msgstr "" "**%%site.name%%** es un servicio de microblog offerite per [%%site.broughtby%" "%](%%site.broughtbyurl%%). " -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** es un servicio de microblog. " -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4927,56 +4886,56 @@ msgstr "" "net/), version %s, disponibile sub le [GNU Affero General Public License]" "(http://www.fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:821 +#: lib/action.php:824 msgid "Site content license" msgstr "Licentia del contento del sito" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Le contento e datos de %1$s es private e confidential." -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "Contento e datos sub copyright de %1$s. Tote le derectos reservate." -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Contento e datos sub copyright del contributores. Tote le derectos reservate." -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "Totes " -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "licentia." -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "Pagination" -#: lib/action.php:1161 +#: lib/action.php:1164 msgid "After" msgstr "Post" -#: lib/action.php:1169 +#: lib/action.php:1172 msgid "Before" msgstr "Ante" #: lib/activity.php:453 msgid "Can't handle remote content yet." -msgstr "" +msgstr "Non pote ancora tractar contento remote." #: lib/activity.php:481 msgid "Can't handle embedded XML content yet." -msgstr "" +msgstr "Non pote ancora tractar contento XML incastrate." #: lib/activity.php:485 msgid "Can't handle embedded Base64 content yet." -msgstr "" +msgstr "Non pote ancora tractar contento Base64 incastrate." #. TRANS: Client error message #: lib/adminpanelaction.php:98 @@ -5010,7 +4969,6 @@ msgstr "Configuration basic del sito" #. TRANS: Menu item for site administration #: lib/adminpanelaction.php:350 -#, fuzzy msgctxt "MENU" msgid "Site" msgstr "Sito" @@ -5022,7 +4980,6 @@ msgstr "Configuration del apparentia" #. TRANS: Menu item for site administration #: lib/adminpanelaction.php:358 -#, fuzzy msgctxt "MENU" msgid "Design" msgstr "Apparentia" @@ -5054,15 +5011,13 @@ msgstr "Configuration del sessiones" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:396 -#, fuzzy msgid "Edit site notice" -msgstr "Aviso del sito" +msgstr "Modificar aviso del sito" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:404 -#, fuzzy msgid "Snapshots configuration" -msgstr "Configuration del camminos" +msgstr "Configuration del instantaneos" #: lib/apiauth.php:94 msgid "API resource requires read-write access, but you only have read access." @@ -5070,7 +5025,7 @@ msgstr "" "Le ressource de API require accesso pro lectura e scriptura, ma tu ha " "solmente accesso pro lectura." -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5172,37 +5127,50 @@ msgstr "Cambio del contrasigno fallite" msgid "Password changing is not allowed" msgstr "Cambio del contrasigno non permittite" -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "Resultatos del commando" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "Commando complete" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "Commando fallite" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." -msgstr "Pardono, iste commando non es ancora implementate." +#: lib/command.php:83 lib/command.php:105 +msgid "Notice with that id does not exist" +msgstr "Non existe un nota con iste ID" + +#: lib/command.php:99 lib/command.php:570 +msgid "User has no last notice" +msgstr "Usator non ha ultime nota" -#: lib/command.php:88 +#: lib/command.php:125 #, php-format msgid "Could not find a user with nickname %s" msgstr "Non poteva trovar un usator con pseudonymo %s" -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "Non poteva trovar un usator con pseudonymo %s" + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "Pardono, iste commando non es ancora implementate." + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "Non ha multe senso pulsar te mesme!" -#: lib/command.php:99 +#: lib/command.php:228 #, php-format msgid "Nudge sent to %s" msgstr "Pulsata inviate a %s" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5213,198 +5181,196 @@ msgstr "" "Subscriptores: %2$s\n" "Notas: %3$s" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -msgid "Notice with that id does not exist" -msgstr "Non existe un nota con iste ID" - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -msgid "User has no last notice" -msgstr "Usator non ha ultime nota" - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "Nota marcate como favorite." -#: lib/command.php:217 +#: lib/command.php:317 msgid "You are already a member of that group" msgstr "Tu es ja membro de iste gruppo" -#: lib/command.php:231 +#: lib/command.php:331 #, php-format msgid "Could not join user %s to group %s" msgstr "Non poteva facer le usator %s membro del gruppo %s" -#: lib/command.php:236 +#: lib/command.php:336 #, php-format msgid "%s joined group %s" msgstr "%s se faceva membro del gruppo %s" -#: lib/command.php:275 +#: lib/command.php:373 #, php-format msgid "Could not remove user %s to group %s" msgstr "Non poteva remover le usator %s del gruppo %s" -#: lib/command.php:280 +#: lib/command.php:378 #, php-format msgid "%s left group %s" msgstr "%s quitava le gruppo %s" -#: lib/command.php:309 +#: lib/command.php:401 #, php-format msgid "Fullname: %s" msgstr "Nomine complete: %s" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Loco: %s" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Pagina personal: %s" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "A proposito: %s" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "Message troppo longe - maximo es %d characteres, tu inviava %d" -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "Message directe a %s inviate" -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "Error durante le invio del message directe." -#: lib/command.php:413 +#: lib/command.php:490 msgid "Cannot repeat your own notice" msgstr "Non pote repeter tu proprie nota" -#: lib/command.php:418 +#: lib/command.php:495 msgid "Already repeated that notice" msgstr "Iste nota ha ja essite repetite" -#: lib/command.php:426 +#: lib/command.php:503 #, php-format msgid "Notice from %s repeated" msgstr "Nota de %s repetite" -#: lib/command.php:428 +#: lib/command.php:505 msgid "Error repeating notice." msgstr "Error durante le repetition del nota." -#: lib/command.php:482 +#: lib/command.php:536 #, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "Nota troppo longe - maximo es %d characteres, tu inviava %d" -#: lib/command.php:491 +#: lib/command.php:545 #, php-format msgid "Reply to %s sent" msgstr "Responsa a %s inviate" -#: lib/command.php:493 +#: lib/command.php:547 msgid "Error saving notice." msgstr "Errur durante le salveguarda del nota." -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "Specifica le nomine del usator al qual subscriber te" -#: lib/command.php:554 lib/command.php:589 -msgid "No such user" -msgstr "Usator non existe" +#: lib/command.php:602 +#, fuzzy +msgid "Can't subscribe to OMB profiles by command." +msgstr "Tu non es subscribite a iste profilo." -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "Subscribite a %s" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "Specifica le nomine del usator al qual cancellar le subscription" -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "Subscription a %s cancellate" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "Commando non ancora implementate." -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "Notification disactivate." -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "Non pote disactivar notification." -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "Notification activate." -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "Non pote activar notification." -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "Le commando de apertura de session es disactivate" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" "Iste ligamine pote esser usate solmente un vice, e es valide durante " "solmente 2 minutas: %s" -#: lib/command.php:692 -#, fuzzy, php-format +#: lib/command.php:735 +#, php-format msgid "Unsubscribed %s" -msgstr "Subscription a %s cancellate" +msgstr "Subscription de %s cancellate" -#: lib/command.php:709 +#: lib/command.php:752 msgid "You are not subscribed to anyone." msgstr "Tu non es subscribite a alcuno." -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Tu es subscribite a iste persona:" msgstr[1] "Tu es subscribite a iste personas:" -#: lib/command.php:731 +#: lib/command.php:774 msgid "No one is subscribed to you." msgstr "Necuno es subscribite a te." -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Iste persona es subscribite a te:" msgstr[1] "Iste personas es subscribite a te:" -#: lib/command.php:753 +#: lib/command.php:796 msgid "You are not a member of any groups." msgstr "Tu non es membro de alcun gruppo." -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Tu es membro de iste gruppo:" msgstr[1] "Tu es membro de iste gruppos:" -#: lib/command.php:769 -#, fuzzy +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5454,9 +5420,10 @@ msgstr "" "subscriptions - listar le personas que tu seque\n" "subscribers - listar le personas qui te seque\n" "leave - cancellar subscription al usator\n" -"d - diriger message al usator\n" -"get - obtener ultime nota del usator\n" +"d - diriger un message al usator\n" +"get - obtener le ultime nota del usator\n" "whois - obtener info de profilo del usator\n" +"lose - fortiar le usator de cessar de sequer te\n" "fav - adder ultime nota del usator como favorite\n" "fav # - adder nota con le ID date como favorite\n" "repeat # - repeter le nota con le ID date\n" @@ -5597,7 +5564,7 @@ msgstr "Ir" #: lib/grantroleform.php:91 #, php-format msgid "Grant this user the \"%s\" role" -msgstr "" +msgstr "Conceder le rolo \"%s\" a iste usator" #: lib/groupeditform.php:163 msgid "URL of the homepage or blog of the group or topic" @@ -5673,49 +5640,49 @@ msgstr "Etiquettas in le notas del gruppo %s" msgid "This page is not available in a media type you accept" msgstr "Iste pagina non es disponibile in un formato que tu accepta" -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "Formato de file de imagine non supportate." + +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Iste file es troppo grande. Le dimension maximal es %s." -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Incargamento partial." -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Error de systema durante le incargamento del file." -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Le file non es un imagine o es defectuose." -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "Formato de file de imagine non supportate." - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 msgid "Lost our file." msgstr "File perdite." -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "Typo de file incognite" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "MB" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "KB" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "[%s]" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, php-format msgid "Unknown inbox source %d." msgstr "Fonte de cassa de entrata \"%s\" incognite" @@ -5996,7 +5963,7 @@ msgstr "" "altere usatores in conversation. Altere personas pote inviar te messages que " "solmente tu pote leger." -#: lib/mailbox.php:227 lib/noticelist.php:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 msgid "from" msgstr "de" @@ -6090,7 +6057,6 @@ msgid "Available characters" msgstr "Characteres disponibile" #: lib/messageform.php:178 lib/noticeform.php:236 -#, fuzzy msgctxt "Send button for sending notice" msgid "Send" msgstr "Inviar" @@ -6153,23 +6119,23 @@ msgstr "W" msgid "at" msgstr "a" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 msgid "in context" msgstr "in contexto" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 msgid "Repeated by" msgstr "Repetite per" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "Responder a iste nota" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 msgid "Reply" msgstr "Responder" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 msgid "Notice repeated" msgstr "Nota repetite" @@ -6307,9 +6273,9 @@ msgid "Repeat this notice" msgstr "Repeter iste nota" #: lib/revokeroleform.php:91 -#, fuzzy, php-format +#, php-format msgid "Revoke the \"%s\" role from this user" -msgstr "Blocar iste usator de iste gruppo" +msgstr "Revocar le rolo \"%s\" de iste usator" #: lib/router.php:671 msgid "No single user defined for single-user mode." @@ -6466,63 +6432,60 @@ msgid "Moderate" msgstr "Moderar" #: lib/userprofile.php:352 -#, fuzzy msgid "User role" -msgstr "Profilo del usator" +msgstr "Rolo de usator" #: lib/userprofile.php:354 -#, fuzzy msgctxt "role" msgid "Administrator" -msgstr "Administratores" +msgstr "Administrator" #: lib/userprofile.php:355 -#, fuzzy msgctxt "role" msgid "Moderator" -msgstr "Moderar" +msgstr "Moderator" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "alcun secundas retro" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "circa un minuta retro" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "circa %d minutas retro" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "circa un hora retro" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "circa %d horas retro" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "circa un die retro" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "circa %d dies retro" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "circa un mense retro" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "circa %d menses retro" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "circa un anno retro" @@ -6536,7 +6499,7 @@ msgstr "%s non es un color valide!" msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "%s non es un color valide! Usa 3 o 6 characteres hexadecimal." -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "Message troppo longe - maximo es %1$d characteres, tu inviava %2$d." diff --git a/locale/is/LC_MESSAGES/statusnet.po b/locale/is/LC_MESSAGES/statusnet.po index 3c8f33565..71caf4b56 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-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:50:12+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:43:19+0000\n" "Language-Team: Icelandic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: is\n" "X-Message-Group: out-statusnet\n" @@ -102,7 +102,7 @@ msgstr "Ekkert þannig merki." #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -111,10 +111,8 @@ msgstr "Ekkert þannig merki." #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Enginn svoleiðis notandi." @@ -207,12 +205,12 @@ msgstr "Færslur frá %1$s og vinum á %2$s!" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "Aðferð í forritsskilum fannst ekki!" @@ -345,7 +343,7 @@ msgstr "Engin staða fundin með þessu kenni." msgid "This status is already a favorite." msgstr "Þetta babl er nú þegar í uppáhaldi!" -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "Gat ekki búið til uppáhald." @@ -468,7 +466,7 @@ msgstr "Aðferð í forritsskilum fannst ekki!" msgid "You are already a member of that group." msgstr "Þú ert nú þegar meðlimur í þessum hópi" -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "" @@ -520,7 +518,7 @@ msgstr "Ótæk stærð." #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -662,12 +660,12 @@ msgstr "" msgid "Unsupported format." msgstr "Skráarsnið myndar ekki stutt." -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, fuzzy, php-format msgid "%1$s / Favorites from %2$s" msgstr "%s / Uppáhaldsbabl frá %s" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, fuzzy, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%s færslur gerðar að uppáhaldsbabli af %s / %s." @@ -677,7 +675,7 @@ msgstr "%s færslur gerðar að uppáhaldsbabli af %s / %s." msgid "%1$s / Updates mentioning %2$s" msgstr "" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s færslur sem svara færslum frá %2$s / %3$s." @@ -687,7 +685,7 @@ msgstr "%1$s færslur sem svara færslum frá %2$s / %3$s." msgid "%s public timeline" msgstr "Almenningsrás %s" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s færslur frá öllum!" @@ -702,12 +700,12 @@ msgstr "Svör við %s" msgid "Repeats of %s" msgstr "Svör við %s" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Babl merkt með %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "" @@ -767,7 +765,7 @@ msgid "Preview" msgstr "Forsýn" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "Eyða" @@ -850,8 +848,8 @@ msgstr "Mistókst að vista upplýsingar um notendalokun" #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 msgid "No such group." msgstr "Enginn þannig hópur." @@ -958,7 +956,7 @@ msgstr "Þú ert ekki meðlimur í þessum hópi." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "Það komu upp vandamál varðandi setutókann þinn." @@ -1017,7 +1015,7 @@ msgstr "Ertu viss um að þú viljir eyða þessu babli?" msgid "Do not delete this notice" msgstr "" -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "Eyða þessu babli" @@ -1288,7 +1286,7 @@ msgstr "Lýsing er of löng (í mesta lagi 140 tákn)." msgid "Could not update group." msgstr "Gat ekki uppfært hóp." -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 msgid "Could not create aliases." msgstr "" @@ -1986,7 +1984,7 @@ msgstr "Bjóða nýjum notendum að vera með" msgid "You are already subscribed to these users:" msgstr "Þú ert nú þegar í áskrift að þessum notendum:" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" @@ -2119,7 +2117,7 @@ msgstr "%s bætti sér í hópinn %s" msgid "You must be logged in to leave a group." msgstr "Þú verður aða hafa skráð þig inn til að ganga úr hóp." -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 msgid "You are not a member of that group." msgstr "Þú ert ekki meðlimur í þessum hópi." @@ -2240,12 +2238,12 @@ msgstr "Notaðu þetta eyðublað til að búa til nýjan hóp." msgid "New message" msgstr "Ný skilaboð" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "Þú getur ekki sent þessum notanda skilaboð." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "Ekkert innihald!" @@ -2253,7 +2251,7 @@ msgstr "Ekkert innihald!" msgid "No recipient specified." msgstr "Enginn móttökuaðili tilgreindur." -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" @@ -2269,7 +2267,7 @@ msgstr "" msgid "Direct message to %s sent." msgstr "Bein skilaboð send til %s" -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "Ajax villa" @@ -2400,8 +2398,8 @@ msgstr "" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "Enginn stuðningur við gagnasnið." @@ -2540,7 +2538,7 @@ msgstr "Rangt eldra lykilorð" msgid "Error saving user; invalid." msgstr "Villa kom upp í vistun notanda: ótækt." -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "Get ekki vistað nýja lykilorðið." @@ -3042,7 +3040,7 @@ msgstr "Endurstilla lykilorð" msgid "Recover password" msgstr "Endurheimta lykilorð" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "Beiðni um að endurheimta lykilorð hefur verið send inn" @@ -3062,19 +3060,19 @@ msgstr "Endurstilla" msgid "Enter a nickname or email address." msgstr "Sláðu inn stuttnefni eða tölvupóstfang." -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "Enginn notandi með þetta tölvupóstfang eða notendanafn" -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "Ekkert tölvupóstfang á skrá fyrir þennan notanda." -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "Villa kom upp í vistun netfangsstaðfestingar." -#: actions/recoverpassword.php:325 +#: actions/recoverpassword.php:338 msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." @@ -3082,23 +3080,23 @@ msgstr "" "Leiðbeiningar um það hvernig þú getur endurheimt lykilorðið þitt hafa verið " "sendar á tölvupóstfangið sem er tengt notendaaðganginum þínum." -#: actions/recoverpassword.php:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "Bjóst ekki við endurstillingu lykilorðs." -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "Lykilorð verður að vera 6 tákn eða fleiri." -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Lykilorð og staðfesting passa ekki saman." -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "Villa kom upp í stillingu notanda." -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "Tókst að vista nýtt lykilorð. Þú ert núna innskráð(ur)" @@ -3304,7 +3302,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:674 +#: actions/repeat.php:114 lib/noticelist.php:676 #, fuzzy msgid "Repeated" msgstr "Í sviðsljósinu" @@ -4530,19 +4528,19 @@ msgstr "Persónulegt" msgid "Author(s)" msgstr "" -#: classes/File.php:144 +#: classes/File.php:169 #, 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." msgstr "" -#: classes/File.php:154 +#: classes/File.php:179 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:161 +#: classes/File.php:186 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" @@ -4624,7 +4622,7 @@ msgstr "Vandamál komu upp við að vista babl." msgid "Problem saving group inbox." msgstr "Vandamál komu upp við að vista babl." -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4657,29 +4655,29 @@ msgstr "Gat ekki eytt áskrift." msgid "Couldn't delete subscription OMB token." msgstr "Gat ekki eytt áskrift." -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "Gat ekki eytt áskrift." -#: classes/User.php:373 +#: classes/User.php:378 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:477 +#: classes/User_group.php:480 msgid "Could not create group." msgstr "Gat ekki búið til hóp." -#: classes/User_group.php:486 +#: classes/User_group.php:489 #, fuzzy msgid "Could not set group URI." msgstr "Gat ekki skráð hópmeðlimi." -#: classes/User_group.php:507 +#: classes/User_group.php:510 msgid "Could not set group membership." msgstr "Gat ekki skráð hópmeðlimi." -#: classes/User_group.php:521 +#: classes/User_group.php:524 #, fuzzy msgid "Could not save local group info." msgstr "Gat ekki vistað áskrift." @@ -4903,7 +4901,7 @@ msgstr "" msgid "StatusNet software license" msgstr "Hugbúnaðarleyfi StatusNet" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4912,12 +4910,12 @@ msgstr "" "**%%site.name%%** er örbloggsþjónusta í boði [%%site.broughtby%%](%%site." "broughtbyurl%%). " -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** er örbloggsþjónusta." -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4928,42 +4926,42 @@ msgstr "" "sem er gefinn út undir [GNU Affero almenningsleyfinu](http://www.fsf.org/" "licensing/licenses/agpl-3.0.html)." -#: lib/action.php:821 +#: lib/action.php:824 #, fuzzy msgid "Site content license" msgstr "Hugbúnaðarleyfi StatusNet" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "Allt " -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "leyfi." -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "Uppröðun" -#: lib/action.php:1161 +#: lib/action.php:1164 msgid "After" msgstr "Eftir" -#: lib/action.php:1169 +#: lib/action.php:1172 msgid "Before" msgstr "Áður" @@ -5079,7 +5077,7 @@ msgstr "SMS staðfesting" msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5184,37 +5182,51 @@ msgstr "Lykilorðabreyting" msgid "Password changing is not allowed" msgstr "Lykilorðabreyting" -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "Niðurstöður skipunar" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "Fullkláruð skipun" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "Misheppnuð skipun" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." -msgstr "Fyrirgefðu en þessi skipun hefur ekki enn verið útbúin." +#: lib/command.php:83 lib/command.php:105 +#, fuzzy +msgid "Notice with that id does not exist" +msgstr "Enginn persónuleg síða með þessu einkenni." -#: lib/command.php:88 +#: lib/command.php:99 lib/command.php:570 +msgid "User has no last notice" +msgstr "Notandi hefur ekkert nýtt babl" + +#: lib/command.php:125 #, fuzzy, php-format msgid "Could not find a user with nickname %s" msgstr "Gat ekki uppfært notanda með staðfestu tölvupóstfangi." -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "Gat ekki uppfært notanda með staðfestu tölvupóstfangi." + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "Fyrirgefðu en þessi skipun hefur ekki enn verið útbúin." + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" -#: lib/command.php:99 +#: lib/command.php:228 #, fuzzy, php-format msgid "Nudge sent to %s" msgstr "Ýtt við notanda" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5222,203 +5234,201 @@ msgid "" "Notices: %3$s" msgstr "" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -#, fuzzy -msgid "Notice with that id does not exist" -msgstr "Enginn persónuleg síða með þessu einkenni." - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -msgid "User has no last notice" -msgstr "Notandi hefur ekkert nýtt babl" - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "Babl gert að uppáhaldi." -#: lib/command.php:217 +#: lib/command.php:317 msgid "You are already a member of that group" msgstr "Þú ert nú þegar meðlimur í þessum hópi" -#: lib/command.php:231 +#: lib/command.php:331 #, php-format msgid "Could not join user %s to group %s" msgstr "Gat ekki bætt notandanum %s í hópinn %s" -#: lib/command.php:236 +#: lib/command.php:336 #, php-format msgid "%s joined group %s" msgstr "%s bætti sér í hópinn %s" -#: lib/command.php:275 +#: lib/command.php:373 #, php-format msgid "Could not remove user %s to group %s" msgstr "Gat ekki fjarlægt notandann %s úr hópnum %s" -#: lib/command.php:280 +#: lib/command.php:378 #, php-format msgid "%s left group %s" msgstr "%s gekk úr hópnum %s" -#: lib/command.php:309 +#: lib/command.php:401 #, php-format msgid "Fullname: %s" msgstr "Fullt nafn: %s" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Staðsetning: %s" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Heimasíða: %s" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "Um: %s" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, fuzzy, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "Skilaboð eru of löng - 140 tákn eru í mesta lagi leyfð en þú sendir %d" -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "Bein skilaboð send til %s" -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "Villa kom upp við að senda bein skilaboð" -#: lib/command.php:413 +#: lib/command.php:490 #, fuzzy msgid "Cannot repeat your own notice" msgstr "Get ekki kveikt á tilkynningum." -#: lib/command.php:418 +#: lib/command.php:495 #, fuzzy msgid "Already repeated that notice" msgstr "Eyða þessu babli" -#: lib/command.php:426 +#: lib/command.php:503 #, fuzzy, php-format msgid "Notice from %s repeated" msgstr "Babl sent inn" -#: lib/command.php:428 +#: lib/command.php:505 #, fuzzy msgid "Error repeating notice." msgstr "Vandamál komu upp við að vista babl." -#: lib/command.php:482 +#: lib/command.php:536 #, fuzzy, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "Skilaboð eru of löng - 140 tákn eru í mesta lagi leyfð en þú sendir %d" -#: lib/command.php:491 +#: lib/command.php:545 #, fuzzy, php-format msgid "Reply to %s sent" msgstr "Svara þessu babli" -#: lib/command.php:493 +#: lib/command.php:547 #, fuzzy msgid "Error saving notice." msgstr "Vandamál komu upp við að vista babl." -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "Tilgreindu nafn notandans sem þú vilt gerast áskrifandi að" -#: lib/command.php:554 lib/command.php:589 -msgid "No such user" -msgstr "Enginn svoleiðis notandi." +#: lib/command.php:602 +#, fuzzy +msgid "Can't subscribe to OMB profiles by command." +msgstr "Þú ert ekki áskrifandi." -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "Nú ert þú áskrifandi að %s" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "Tilgreindu nafn notandans sem þú vilt hætta sem áskrifandi að" -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "Nú ert þú ekki lengur áskrifandi að %s" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "Skipun hefur ekki verið fullbúin" -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "Tilkynningar af." -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "Get ekki slökkt á tilkynningum." -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "Tilkynningar á." -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "Get ekki kveikt á tilkynningum." -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" -#: lib/command.php:692 +#: lib/command.php:735 #, fuzzy, php-format msgid "Unsubscribed %s" msgstr "Nú ert þú ekki lengur áskrifandi að %s" -#: lib/command.php:709 +#: lib/command.php:752 #, fuzzy msgid "You are not subscribed to anyone." msgstr "Þú ert ekki áskrifandi." -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Þú ert nú þegar í áskrift að þessum notendum:" msgstr[1] "Þú ert nú þegar í áskrift að þessum notendum:" -#: lib/command.php:731 +#: lib/command.php:774 #, fuzzy msgid "No one is subscribed to you." msgstr "Gat ekki leyft öðrum að gerast áskrifandi að þér." -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Gat ekki leyft öðrum að gerast áskrifandi að þér." msgstr[1] "Gat ekki leyft öðrum að gerast áskrifandi að þér." -#: lib/command.php:753 +#: lib/command.php:796 #, fuzzy msgid "You are not a member of any groups." msgstr "Þú ert ekki meðlimur í þessum hópi." -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Þú ert ekki meðlimur í þessum hópi." msgstr[1] "Þú ert ekki meðlimur í þessum hópi." -#: lib/command.php:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5653,49 +5663,49 @@ msgid "This page is not available in a media type you accept" msgstr "" "Þessi síða er ekki aðgengileg í margmiðlunargerðinni sem þú tekur á móti" -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "Skráarsnið myndar ekki stutt." + +#: lib/imagefile.php:90 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Þetta er of langt. Hámarkslengd babls er 140 tákn." -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Upphal að hluta til." -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Kerfisvilla kom upp við upphal skráar." -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Annaðhvort ekki mynd eða þá að skráin er gölluð." -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "Skráarsnið myndar ekki stutt." - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 msgid "Lost our file." msgstr "Týndum skránni okkar" -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "Óþekkt skráargerð" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, php-format msgid "Unknown inbox source %d." msgstr "" @@ -5900,7 +5910,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 #, fuzzy msgid "from" msgstr "frá" @@ -6056,24 +6066,24 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 msgid "in context" msgstr "" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 #, fuzzy msgid "Repeated by" msgstr "Í sviðsljósinu" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "Svara þessu babli" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 msgid "Reply" msgstr "Svara" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 #, fuzzy msgid "Notice repeated" msgstr "Babl sent inn" @@ -6396,47 +6406,47 @@ msgctxt "role" msgid "Moderator" msgstr "" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "fyrir nokkrum sekúndum" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "fyrir um einni mínútu síðan" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "fyrir um %d mínútum síðan" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "fyrir um einum klukkutíma síðan" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "fyrir um %d klukkutímum síðan" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "fyrir um einum degi síðan" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "fyrir um %d dögum síðan" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "fyrir um einum mánuði síðan" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "fyrir um %d mánuðum síðan" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "fyrir um einu ári síðan" @@ -6450,7 +6460,7 @@ msgstr "" msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "" -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, fuzzy, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "Skilaboð eru of löng - 140 tákn eru í mesta lagi leyfð en þú sendir %d" diff --git a/locale/it/LC_MESSAGES/statusnet.po b/locale/it/LC_MESSAGES/statusnet.po index 1bd3f26ad..96328690d 100644 --- a/locale/it/LC_MESSAGES/statusnet.po +++ b/locale/it/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:50:15+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:43:26+0000\n" "Language-Team: Italian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: it\n" "X-Message-Group: out-statusnet\n" @@ -95,7 +95,7 @@ msgstr "Pagina inesistente." #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -104,10 +104,8 @@ msgstr "Pagina inesistente." #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Utente inesistente." @@ -209,12 +207,12 @@ msgstr "Messaggi da %1$s e amici su %2$s!" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 msgid "API method not found." msgstr "Metodo delle API non trovato." @@ -345,7 +343,7 @@ msgstr "Nessuno messaggio trovato con quel ID." msgid "This status is already a favorite." msgstr "Questo messaggio è già un preferito." -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "Impossibile creare un preferito." @@ -464,7 +462,7 @@ msgstr "Gruppo non trovato!" msgid "You are already a member of that group." msgstr "Fai già parte di quel gruppo." -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "L'amministratore ti ha bloccato l'accesso a quel gruppo." @@ -514,7 +512,7 @@ msgstr "Token non valido." #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -656,12 +654,12 @@ msgstr "" msgid "Unsupported format." msgstr "Formato non supportato." -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / Preferiti da %2$s" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s aggiornamenti preferiti da %2$s / %3$s" @@ -671,7 +669,7 @@ msgstr "%1$s aggiornamenti preferiti da %2$s / %3$s" msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Messaggi che citano %2$s" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s messaggi in risposta a quelli da %2$s / %3$s" @@ -681,7 +679,7 @@ msgstr "%1$s messaggi in risposta a quelli da %2$s / %3$s" msgid "%s public timeline" msgstr "Attività pubblica di %s" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "Aggiornamenti di %s da tutti!" @@ -696,12 +694,12 @@ msgstr "Ripetuto a %s" msgid "Repeats of %s" msgstr "Ripetizioni di %s" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Messaggi etichettati con %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Messaggi etichettati con %1$s su %2$s!" @@ -762,7 +760,7 @@ msgid "Preview" msgstr "Anteprima" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "Elimina" @@ -845,8 +843,8 @@ msgstr "Salvataggio delle informazioni per il blocco non riuscito." #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 msgid "No such group." msgstr "Nessuna gruppo." @@ -947,7 +945,7 @@ msgstr "Questa applicazione non è di tua proprietà." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "Si è verificato un problema con il tuo token di sessione." @@ -1007,7 +1005,7 @@ msgstr "Vuoi eliminare questo messaggio?" msgid "Do not delete this notice" msgstr "Non eliminare il messaggio" -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "Elimina questo messaggio" @@ -1260,7 +1258,7 @@ msgstr "La descrizione è troppo lunga (max %d caratteri)." msgid "Could not update group." msgstr "Impossibile aggiornare il gruppo." -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 msgid "Could not create aliases." msgstr "Impossibile creare gli alias." @@ -1967,7 +1965,7 @@ msgstr "Invita nuovi utenti" msgid "You are already subscribed to these users:" msgstr "Hai già un abbonamento a questi utenti:" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" @@ -2097,7 +2095,7 @@ msgstr "%1$s fa ora parte del gruppo %2$s" msgid "You must be logged in to leave a group." msgstr "Devi eseguire l'accesso per lasciare un gruppo." -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 msgid "You are not a member of that group." msgstr "Non fai parte di quel gruppo." @@ -2211,12 +2209,12 @@ msgstr "Usa questo modulo per creare un nuovo gruppo." msgid "New message" msgstr "Nuovo messaggio" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "Non puoi inviare un messaggio a questo utente." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "Nessun contenuto!" @@ -2224,7 +2222,7 @@ msgstr "Nessun contenuto!" msgid "No recipient specified." msgstr "Nessun destinatario specificato." -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "Non inviarti un messaggio, piuttosto ripetilo a voce dolcemente." @@ -2238,7 +2236,7 @@ msgstr "Messaggio inviato" msgid "Direct message to %s sent." msgstr "Messaggio diretto a %s inviato." -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "Errore di Ajax" @@ -2372,8 +2370,8 @@ msgstr "tipo di contenuto " msgid "Only " msgstr "Solo " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "Non è un formato di dati supportato." @@ -2506,7 +2504,7 @@ msgstr "Vecchia password non corretta" msgid "Error saving user; invalid." msgstr "Errore nel salvare l'utente; non valido." -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "Impossibile salvare la nuova password." @@ -3006,7 +3004,7 @@ msgstr "Reimposta la password" msgid "Recover password" msgstr "Recupera la password" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "Richiesta password di ripristino" @@ -3026,19 +3024,19 @@ msgstr "Reimposta" msgid "Enter a nickname or email address." msgstr "Inserisci un soprannome o un indirizzo email." -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "Nessun utente con quell'email o nome utente." -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "Nessun indirizzo email registrato per quell'utente." -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "Errore nel salvare la conferma dell'indirizzo." -#: actions/recoverpassword.php:325 +#: actions/recoverpassword.php:338 msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." @@ -3046,23 +3044,23 @@ msgstr "" "Le istruzioni per recuperare la tua password sono state inviate " "all'indirizzo email registrato nel tuo account." -#: actions/recoverpassword.php:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "Ripristino della password inaspettato." -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "La password deve essere lunga almeno 6 caratteri." -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "La password e la conferma non corrispondono." -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "Errore nell'impostare l'utente." -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "Nuova password salvata con successo. Hai effettuato l'accesso." @@ -3266,7 +3264,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:674 +#: actions/repeat.php:114 lib/noticelist.php:676 msgid "Repeated" msgstr "Ripetuti" @@ -4515,7 +4513,7 @@ msgstr "Versione" msgid "Author(s)" msgstr "Autori" -#: classes/File.php:144 +#: classes/File.php:169 #, php-format msgid "" "No file may be larger than %d bytes and the file you sent was %d bytes. Try " @@ -4524,13 +4522,13 @@ 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:154 +#: classes/File.php:179 #, 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:161 +#: classes/File.php:186 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" @@ -4609,7 +4607,7 @@ msgstr "Problema nel salvare il messaggio." msgid "Problem saving group inbox." msgstr "Problema nel salvare la casella della posta del gruppo." -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4638,28 +4636,28 @@ msgstr "Impossibile eliminare l'auto-abbonamento." msgid "Couldn't delete subscription OMB token." msgstr "Impossibile eliminare il token di abbonamento OMB." -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "Impossibile eliminare l'abbonamento." -#: classes/User.php:373 +#: classes/User.php:378 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Benvenuti su %1$s, @%2$s!" -#: classes/User_group.php:477 +#: classes/User_group.php:480 msgid "Could not create group." msgstr "Impossibile creare il gruppo." -#: classes/User_group.php:486 +#: classes/User_group.php:489 msgid "Could not set group URI." msgstr "Impossibile impostare l'URI del gruppo." -#: classes/User_group.php:507 +#: classes/User_group.php:510 msgid "Could not set group membership." msgstr "Impossibile impostare la membership al gruppo." -#: classes/User_group.php:521 +#: classes/User_group.php:524 msgid "Could not save local group info." msgstr "Impossibile salvare le informazioni del gruppo locale." @@ -4863,7 +4861,7 @@ msgstr "Badge" msgid "StatusNet software license" msgstr "Licenza del software StatusNet" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4872,12 +4870,12 @@ msgstr "" "**%%site.name%%** è un servizio di microblog offerto da [%%site.broughtby%%]" "(%%site.broughtbyurl%%). " -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** è un servizio di microblog. " -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4888,44 +4886,44 @@ msgstr "" "s, disponibile nei termini della licenza [GNU Affero General Public License]" "(http://www.fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:821 +#: lib/action.php:824 msgid "Site content license" msgstr "Licenza del contenuto del sito" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "I contenuti e i dati di %1$s sono privati e confidenziali." -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" "I contenuti e i dati sono copyright di %1$s. Tutti i diritti riservati." -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "I contenuti e i dati sono forniti dai collaboratori. Tutti i diritti " "riservati." -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "Tutti " -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "licenza." -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "Paginazione" -#: lib/action.php:1161 +#: lib/action.php:1164 msgid "After" msgstr "Successivi" -#: lib/action.php:1169 +#: lib/action.php:1172 msgid "Before" msgstr "Precedenti" @@ -5029,7 +5027,7 @@ msgstr "" "Le risorse API richiedono accesso lettura-scrittura, ma si dispone del solo " "accesso in lettura." -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5130,37 +5128,50 @@ msgstr "Modifica della password non riuscita" msgid "Password changing is not allowed" msgstr "La modifica della password non è permessa" -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "Risultati comando" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "Comando completato" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "Comando non riuscito" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." -msgstr "Questo comando non è ancora implementato." +#: lib/command.php:83 lib/command.php:105 +msgid "Notice with that id does not exist" +msgstr "Un messaggio con quel ID non esiste" -#: lib/command.php:88 +#: lib/command.php:99 lib/command.php:570 +msgid "User has no last notice" +msgstr "L'utente non ha un ultimo messaggio." + +#: lib/command.php:125 #, php-format msgid "Could not find a user with nickname %s" msgstr "Impossibile trovare un utente col soprannome %s" -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "Impossibile trovare un utente col soprannome %s" + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "Questo comando non è ancora implementato." + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "Non ha molto senso se cerchi di richiamarti!" -#: lib/command.php:99 +#: lib/command.php:228 #, php-format msgid "Nudge sent to %s" msgstr "Richiamo inviato a %s" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5171,197 +5182,196 @@ msgstr "" "Abbonati: %2$s\n" "Messaggi: %3$s" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -msgid "Notice with that id does not exist" -msgstr "Un messaggio con quel ID non esiste" - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -msgid "User has no last notice" -msgstr "L'utente non ha un ultimo messaggio." - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "Messaggio indicato come preferito." -#: lib/command.php:217 +#: lib/command.php:317 msgid "You are already a member of that group" msgstr "Fai già parte di quel gruppo" -#: lib/command.php:231 +#: lib/command.php:331 #, php-format msgid "Could not join user %s to group %s" msgstr "Impossibile iscrivere l'utente %1$s al gruppo %2$s." -#: lib/command.php:236 +#: lib/command.php:336 #, php-format msgid "%s joined group %s" msgstr "%s fa ora parte del gruppo %s" -#: lib/command.php:275 +#: lib/command.php:373 #, php-format msgid "Could not remove user %s to group %s" msgstr "Impossibile rimuovere l'utente %1$s dal gruppo %2$s" -#: lib/command.php:280 +#: lib/command.php:378 #, php-format msgid "%s left group %s" msgstr "%1$s ha lasciato il gruppo %2$s" -#: lib/command.php:309 +#: lib/command.php:401 #, php-format msgid "Fullname: %s" msgstr "Nome completo: %s" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Posizione: %s" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Pagina web: %s" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "Informazioni: %s" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "Messaggio troppo lungo: massimo %d caratteri, inviati %d" -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "Messaggio diretto a %s inviato." -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "Errore nell'inviare il messaggio diretto." -#: lib/command.php:413 +#: lib/command.php:490 msgid "Cannot repeat your own notice" msgstr "Impossibile ripetere un proprio messaggio" -#: lib/command.php:418 +#: lib/command.php:495 msgid "Already repeated that notice" msgstr "Hai già ripetuto quel messaggio" -#: lib/command.php:426 +#: lib/command.php:503 #, php-format msgid "Notice from %s repeated" msgstr "Messaggio da %s ripetuto" -#: lib/command.php:428 +#: lib/command.php:505 msgid "Error repeating notice." msgstr "Errore nel ripetere il messaggio." -#: lib/command.php:482 +#: lib/command.php:536 #, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "Messaggio troppo lungo: massimo %d caratteri, inviati %d" -#: lib/command.php:491 +#: lib/command.php:545 #, php-format msgid "Reply to %s sent" msgstr "Risposta a %s inviata" -#: lib/command.php:493 +#: lib/command.php:547 msgid "Error saving notice." msgstr "Errore nel salvare il messaggio." -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "Specifica il nome dell'utente a cui abbonarti." -#: lib/command.php:554 lib/command.php:589 -msgid "No such user" -msgstr "Utente inesistente." +#: lib/command.php:602 +#, fuzzy +msgid "Can't subscribe to OMB profiles by command." +msgstr "Non hai una abbonamento a quel profilo." -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "Abbonati a %s" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "Specifica il nome dell'utente da cui annullare l'abbonamento." -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "Abbonamento a %s annullato" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "Comando non ancora implementato." -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "Notifiche disattivate." -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "Impossibile disattivare le notifiche." -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "Notifiche attivate." -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "Impossibile attivare le notifiche." -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "Il comando di accesso è disabilitato" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" "Questo collegamento è utilizzabile una sola volta ed è valido solo per 2 " "minuti: %s" -#: lib/command.php:692 +#: lib/command.php:735 #, php-format msgid "Unsubscribed %s" msgstr "%s ha annullato l'abbonamento" -#: lib/command.php:709 +#: lib/command.php:752 msgid "You are not subscribed to anyone." msgstr "Il tuo abbonamento è stato annullato." -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Persona di cui hai già un abbonamento:" msgstr[1] "Persone di cui hai già un abbonamento:" -#: lib/command.php:731 +#: lib/command.php:774 msgid "No one is subscribed to you." msgstr "Nessuno è abbonato ai tuoi messaggi." -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Questa persona è abbonata ai tuoi messaggi:" msgstr[1] "Queste persone sono abbonate ai tuoi messaggi:" -#: lib/command.php:753 +#: lib/command.php:796 msgid "You are not a member of any groups." msgstr "Non fai parte di alcun gruppo." -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Non fai parte di questo gruppo:" msgstr[1] "Non fai parte di questi gruppi:" -#: lib/command.php:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5634,49 +5644,49 @@ msgstr "Etichette nei messaggi del gruppo %s" msgid "This page is not available in a media type you accept" msgstr "Questa pagina non è disponibile in un tipo di supporto che tu accetti" -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "Formato file immagine non supportato." + +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Quel file è troppo grande. La dimensione massima è %s." -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Caricamento parziale." -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Errore di sistema nel caricare il file." -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Non è un'immagine o il file è danneggiato." -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "Formato file immagine non supportato." - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 msgid "Lost our file." msgstr "Perso il nostro file." -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "Tipo di file sconosciuto" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "MB" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "kB" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "[%s]" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, php-format msgid "Unknown inbox source %d." msgstr "Sorgente casella in arrivo %d sconosciuta." @@ -5957,7 +5967,7 @@ msgstr "" "iniziare una conversazione con altri utenti. Altre persone possono mandare " "messaggi riservati solamente a te." -#: lib/mailbox.php:227 lib/noticelist.php:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 msgid "from" msgstr "via" @@ -6112,23 +6122,23 @@ msgstr "O" msgid "at" msgstr "presso" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 msgid "in context" msgstr "in una discussione" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 msgid "Repeated by" msgstr "Ripetuto da" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "Rispondi a questo messaggio" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 msgid "Reply" msgstr "Rispondi" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 msgid "Notice repeated" msgstr "Messaggio ripetuto" @@ -6438,47 +6448,47 @@ msgctxt "role" msgid "Moderator" msgstr "Moderatore" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "pochi secondi fa" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "circa un minuto fa" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "circa %d minuti fa" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "circa un'ora fa" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "circa %d ore fa" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "circa un giorno fa" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "circa %d giorni fa" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "circa un mese fa" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "circa %d mesi fa" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "circa un anno fa" @@ -6492,7 +6502,7 @@ msgstr "%s non è un colore valido." msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "%s non è un colore valido. Usa 3 o 6 caratteri esadecimali." -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "Messaggio troppo lungo: massimo %1$d caratteri, inviati %2$d." diff --git a/locale/ja/LC_MESSAGES/statusnet.po b/locale/ja/LC_MESSAGES/statusnet.po index 847f24c59..a3e00a367 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-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:50:18+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:43:30+0000\n" "Language-Team: Japanese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ja\n" "X-Message-Group: out-statusnet\n" @@ -97,7 +97,7 @@ msgstr "そのようなページはありません。" #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -106,10 +106,8 @@ msgstr "そのようなページはありません。" #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "そのようなユーザはいません。" @@ -208,12 +206,12 @@ msgstr "%2$s に %1$s と友人からの更新があります!" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 msgid "API method not found." msgstr "API メソッドが見つかりません。" @@ -344,7 +342,7 @@ msgstr "そのIDのステータスが見つかりません。" msgid "This status is already a favorite." msgstr "このステータスはすでにお気に入りです。" -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "お気に入りを作成できません。" @@ -464,7 +462,7 @@ msgstr "グループが見つかりません!" msgid "You are already a member of that group." msgstr "すでにこのグループのメンバーです。" -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "管理者によってこのグループからブロックされています。" @@ -514,7 +512,7 @@ msgstr "不正なトークン。" #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -651,12 +649,12 @@ msgstr "つぶやきは URL を含めて最大 %d 字までです。" msgid "Unsupported format." msgstr "サポート外の形式です。" -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / %2$s からのお気に入り" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s は %2$s でお気に入りを更新しました / %2$s。" @@ -666,7 +664,7 @@ msgstr "%1$s は %2$s でお気に入りを更新しました / %2$s。" msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / %2$s について更新" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%2$s からアップデートに答える %1$s アップデート" @@ -676,7 +674,7 @@ msgstr "%2$s からアップデートに答える %1$s アップデート" msgid "%s public timeline" msgstr "%s のパブリックタイムライン" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "皆からの %s アップデート!" @@ -691,12 +689,12 @@ msgstr "%s への返信" msgid "Repeats of %s" msgstr "%s の返信" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "%s とタグ付けされたつぶやき" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "%2$s に %1$s による更新があります!" @@ -756,7 +754,7 @@ msgid "Preview" msgstr "プレビュー" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "削除" @@ -840,8 +838,8 @@ msgstr "ブロック情報の保存に失敗しました。" #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 msgid "No such group." msgstr "そのようなグループはありません。" @@ -942,7 +940,7 @@ msgstr "このアプリケーションのオーナーではありません。" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "あなたのセッショントークンに関する問題がありました。" @@ -1003,7 +1001,7 @@ msgstr "本当にこのつぶやきを削除しますか?" msgid "Do not delete this notice" msgstr "このつぶやきを削除できません。" -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "このつぶやきを削除" @@ -1256,7 +1254,7 @@ msgstr "記述が長すぎます。(最長 %d 字)" msgid "Could not update group." msgstr "グループを更新できません。" -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 msgid "Could not create aliases." msgstr "別名を作成できません。" @@ -1963,7 +1961,7 @@ msgstr "新しいユーザを招待" msgid "You are already subscribed to these users:" msgstr "すでにこれらのユーザをフォローしています:" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "" @@ -2096,7 +2094,7 @@ msgstr "%1$s はグループ %2$s に参加しました" msgid "You must be logged in to leave a group." msgstr "グループから離れるにはログインしていなければなりません。" -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 msgid "You are not a member of that group." msgstr "あなたはそのグループのメンバーではありません。" @@ -2209,12 +2207,12 @@ msgstr "このフォームを使って新しいグループを作成します。 msgid "New message" msgstr "新しいメッセージ" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "このユーザにメッセージを送ることはできません。" -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "コンテンツがありません!" @@ -2222,7 +2220,7 @@ msgstr "コンテンツがありません!" msgid "No recipient specified." msgstr "受取人が書かれていません。" -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" @@ -2237,7 +2235,7 @@ msgstr "メッセージを送りました" msgid "Direct message to %s sent." msgstr "ダイレクトメッセージを %s に送りました" -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "Ajax エラー" @@ -2370,8 +2368,8 @@ msgstr "内容種別 " msgid "Only " msgstr "だけ " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "サポートされていないデータ形式。" @@ -2504,7 +2502,7 @@ msgstr "古いパスワードが間違っています。" msgid "Error saving user; invalid." msgstr "ユーザ保存エラー; 不正なユーザ" -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "新しいパスワードを保存できません。" @@ -3005,7 +3003,7 @@ msgstr "パスワードをリセット" msgid "Recover password" msgstr "パスワードを回復" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "パスワード回復がリクエストされました" @@ -3025,41 +3023,41 @@ msgstr "リセット" msgid "Enter a nickname or email address." msgstr "ニックネームかメールアドレスを入力してください。" -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "そのメールアドレスかユーザ名をもっているユーザがありません。" -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "そのユーザにはメールアドレスの登録がありません。" -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "アドレス確認保存エラー" -#: actions/recoverpassword.php:325 +#: 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:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "予期せぬパスワードのリセットです。" -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "パスワードは6字以上でなければいけません。" -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "パスワードと確認が一致しません。" -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "ユーザ設定エラー" -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "新しいパスワードの保存に成功しました。ログインしています。" @@ -3260,7 +3258,7 @@ msgstr "自分のつぶやきは繰り返せません。" msgid "You already repeated that notice." msgstr "すでにそのつぶやきを繰り返しています。" -#: actions/repeat.php:114 lib/noticelist.php:674 +#: actions/repeat.php:114 lib/noticelist.php:676 msgid "Repeated" msgstr "繰り返された" @@ -4514,7 +4512,7 @@ msgstr "バージョン" msgid "Author(s)" msgstr "作者" -#: classes/File.php:144 +#: classes/File.php:169 #, php-format msgid "" "No file may be larger than %d bytes and the file you sent was %d bytes. Try " @@ -4524,13 +4522,13 @@ msgstr "" "ファイルは %d バイトでした。より小さいバージョンをアップロードするようにして" "ください。" -#: classes/File.php:154 +#: classes/File.php:179 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" "これほど大きいファイルはあなたの%dバイトのユーザ割当てを超えているでしょう。" -#: classes/File.php:161 +#: classes/File.php:186 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" @@ -4609,7 +4607,7 @@ msgstr "つぶやきを保存する際に問題が発生しました。" msgid "Problem saving group inbox." msgstr "グループ受信箱を保存する際に問題が発生しました。" -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4639,29 +4637,29 @@ msgstr "自己フォローを削除できません。" msgid "Couldn't delete subscription OMB token." msgstr "フォローを削除できません" -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "フォローを削除できません" -#: classes/User.php:373 +#: classes/User.php:378 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "ようこそ %1$s、@%2$s!" -#: classes/User_group.php:477 +#: classes/User_group.php:480 msgid "Could not create group." msgstr "グループを作成できません。" -#: classes/User_group.php:486 +#: classes/User_group.php:489 #, fuzzy msgid "Could not set group URI." msgstr "グループメンバーシップをセットできません。" -#: classes/User_group.php:507 +#: classes/User_group.php:510 msgid "Could not set group membership." msgstr "グループメンバーシップをセットできません。" -#: classes/User_group.php:521 +#: classes/User_group.php:524 #, fuzzy msgid "Could not save local group info." msgstr "フォローを保存できません。" @@ -4883,7 +4881,7 @@ msgstr "バッジ" msgid "StatusNet software license" msgstr "StatusNet ソフトウェアライセンス" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4892,12 +4890,12 @@ msgstr "" "**%%site.name%%** は [%%site.broughtby%%](%%site.broughtbyurl%%) が提供するマ" "イクロブログサービスです。 " -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** はマイクロブログサービスです。 " -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4908,41 +4906,41 @@ msgstr "" "いています。 ライセンス [GNU Affero General Public License](http://www.fsf." "org/licensing/licenses/agpl-3.0.html)。" -#: lib/action.php:821 +#: lib/action.php:824 msgid "Site content license" msgstr "サイト内容ライセンス" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "全て " -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "ライセンス。" -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "ページ化" -#: lib/action.php:1161 +#: lib/action.php:1164 msgid "After" msgstr "<<後" -#: lib/action.php:1169 +#: lib/action.php:1172 msgid "Before" msgstr "前>>" @@ -5050,7 +5048,7 @@ msgstr "" "APIリソースは読み書きアクセスが必要です、しかしあなたは読みアクセスしか持って" "いません。" -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5150,37 +5148,50 @@ msgstr "パスワード変更に失敗しました" msgid "Password changing is not allowed" msgstr "パスワード変更は許可されていません" -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "コマンド結果" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "コマンド完了" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "コマンド失敗" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." -msgstr "すみません、このコマンドはまだ実装されていません。" +#: lib/command.php:83 lib/command.php:105 +msgid "Notice with that id does not exist" +msgstr "その ID によるつぶやきは存在していません" -#: lib/command.php:88 +#: lib/command.php:99 lib/command.php:570 +msgid "User has no last notice" +msgstr "ユーザはまだつぶやいていません" + +#: lib/command.php:125 #, php-format msgid "Could not find a user with nickname %s" msgstr "ユーザを更新できません" -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "ユーザを更新できません" + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "すみません、このコマンドはまだ実装されていません。" + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "それは自分自身への合図で多くは意味がありません!" -#: lib/command.php:99 +#: lib/command.php:228 #, php-format msgid "Nudge sent to %s" msgstr "%s へ合図を送りました" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5191,193 +5202,191 @@ msgstr "" "フォローされている: %2$s\n" "つぶやき: %3$s" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -msgid "Notice with that id does not exist" -msgstr "その ID によるつぶやきは存在していません" - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -msgid "User has no last notice" -msgstr "ユーザはまだつぶやいていません" - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "お気に入りにされているつぶやき。" -#: lib/command.php:217 +#: lib/command.php:317 msgid "You are already a member of that group" msgstr "あなたは既にそのグループに参加しています。" -#: lib/command.php:231 +#: lib/command.php:331 #, php-format msgid "Could not join user %s to group %s" msgstr "ユーザ %s はグループ %s に参加できません" -#: lib/command.php:236 +#: lib/command.php:336 #, php-format msgid "%s joined group %s" msgstr "%s はグループ %s に参加しました" -#: lib/command.php:275 +#: lib/command.php:373 #, php-format msgid "Could not remove user %s to group %s" msgstr "ユーザ %s をグループ %s から削除することができません" -#: lib/command.php:280 +#: lib/command.php:378 #, php-format msgid "%s left group %s" msgstr "%s はグループ %s に残りました。" -#: lib/command.php:309 +#: lib/command.php:401 #, php-format msgid "Fullname: %s" msgstr "フルネーム: %s" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "場所: %s" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "ホームページ: %s" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "About: %s" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "メッセージが長すぎます - 最大 %d 字、あなたが送ったのは %d" -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "ダイレクトメッセージを %s に送りました" -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "ダイレクトメッセージ送信エラー。" -#: lib/command.php:413 +#: lib/command.php:490 msgid "Cannot repeat your own notice" msgstr "自分のつぶやきを繰り返すことはできません" -#: lib/command.php:418 +#: lib/command.php:495 msgid "Already repeated that notice" msgstr "すでにこのつぶやきは繰り返されています" -#: lib/command.php:426 +#: lib/command.php:503 #, php-format msgid "Notice from %s repeated" msgstr "%s からつぶやきが繰り返されています" -#: lib/command.php:428 +#: lib/command.php:505 msgid "Error repeating notice." msgstr "つぶやき繰り返しエラー" -#: lib/command.php:482 +#: lib/command.php:536 #, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "つぶやきが長すぎます - 最大 %d 字、あなたが送ったのは %d" -#: lib/command.php:491 +#: lib/command.php:545 #, php-format msgid "Reply to %s sent" msgstr "%s へ返信を送りました" -#: lib/command.php:493 +#: lib/command.php:547 msgid "Error saving notice." msgstr "つぶやき保存エラー。" -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "フォローするユーザの名前を指定してください" -#: lib/command.php:554 lib/command.php:589 +#: lib/command.php:602 #, fuzzy -msgid "No such user" -msgstr "そのようなユーザはいません。" +msgid "Can't subscribe to OMB profiles by command." +msgstr "あなたはそのプロファイルにフォローされていません。" -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "%s をフォローしました" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "フォローをやめるユーザの名前を指定してください" -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "%s のフォローをやめる" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "コマンドはまだ実装されていません。" -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "通知オフ。" -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "通知をオフできません。" -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "通知オン。" -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "通知をオンできません。" -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "ログインコマンドが無効になっています。" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "このリンクは、かつてだけ使用可能であり、2分間だけ良いです: %s" -#: lib/command.php:692 +#: lib/command.php:735 #, fuzzy, php-format msgid "Unsubscribed %s" msgstr "%s のフォローをやめる" -#: lib/command.php:709 +#: lib/command.php:752 msgid "You are not subscribed to anyone." msgstr "あなたはだれにもフォローされていません。" -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "あなたはこの人にフォローされています:" -#: lib/command.php:731 +#: lib/command.php:774 msgid "No one is subscribed to you." msgstr "誰もフォローしていません。" -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "この人はあなたにフォローされている:" -#: lib/command.php:753 +#: lib/command.php:796 msgid "You are not a member of any groups." msgstr "あなたはどのグループのメンバーでもありません。" -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "あなたはこのグループのメンバーではありません:" -#: lib/command.php:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5609,49 +5618,49 @@ msgstr "%s グループのつぶやきにあるタグ" msgid "This page is not available in a media type you accept" msgstr "このページはあなたが承認したメディアタイプでは利用できません。" -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "サポート外の画像形式です。" + +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "ファイルが大きすぎます。最大ファイルサイズは %s 。" -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "不完全なアップロード。" -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "ファイルのアップロードでシステムエラー" -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "画像ではないかファイルが破損しています。" -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "サポート外の画像形式です。" - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 msgid "Lost our file." msgstr "ファイルを紛失。" -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "不明なファイルタイプ" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "MB" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "kB" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, php-format msgid "Unknown inbox source %d." msgstr "不明な受信箱のソース %d。" @@ -5931,7 +5940,7 @@ msgstr "" "に引き込むプライベートメッセージを送ることができます。人々はあなただけへの" "メッセージを送ることができます。" -#: lib/mailbox.php:227 lib/noticelist.php:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 msgid "from" msgstr "from" @@ -6094,23 +6103,23 @@ msgstr "西" msgid "at" msgstr "at" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 msgid "in context" msgstr "" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 msgid "Repeated by" msgstr "" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "このつぶやきへ返信" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 msgid "Reply" msgstr "返信" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 msgid "Notice repeated" msgstr "つぶやきを繰り返しました" @@ -6424,47 +6433,47 @@ msgctxt "role" msgid "Moderator" msgstr "管理" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "数秒前" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "約 1 分前" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "約 %d 分前" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "約 1 時間前" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "約 %d 時間前" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "約 1 日前" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "約 %d 日前" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "約 1 ヵ月前" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "約 %d ヵ月前" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "約 1 年前" @@ -6478,7 +6487,7 @@ msgstr "%sは有効な色ではありません!" msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "%s は有効な色ではありません! 3か6の16進数を使ってください。" -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "メッセージが長すぎます - 最大 %1$d 字、あなたが送ったのは %2$d。" diff --git a/locale/ko/LC_MESSAGES/statusnet.po b/locale/ko/LC_MESSAGES/statusnet.po index 69bf4efb9..ce01a9966 100644 --- a/locale/ko/LC_MESSAGES/statusnet.po +++ b/locale/ko/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:50:22+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:43:33+0000\n" "Language-Team: Korean\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ko\n" "X-Message-Group: out-statusnet\n" @@ -100,7 +100,7 @@ msgstr "그러한 태그가 없습니다." #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -109,10 +109,8 @@ msgstr "그러한 태그가 없습니다." #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "그러한 사용자는 없습니다." @@ -206,12 +204,12 @@ msgstr "%1$s 및 %2$s에 있는 친구들의 업데이트!" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "API 메서드를 찾을 수 없습니다." @@ -345,7 +343,7 @@ msgstr "그 ID로 발견된 상태가 없습니다." msgid "This status is already a favorite." msgstr "이 게시글은 이미 좋아하는 게시글입니다." -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "좋아하는 게시글을 생성할 수 없습니다." @@ -471,7 +469,7 @@ msgstr "API 메서드를 찾을 수 없습니다." msgid "You are already a member of that group." msgstr "당신은 이미 이 그룹의 멤버입니다." -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "" @@ -523,7 +521,7 @@ msgstr "옳지 않은 크기" #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -666,12 +664,12 @@ msgstr "" msgid "Unsupported format." msgstr "지원하지 않는 그림 파일 형식입니다." -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, fuzzy, php-format msgid "%1$s / Favorites from %2$s" msgstr "%s / %s의 좋아하는 글들" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, fuzzy, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%s 좋아하는 글이 업데이트 됐습니다. %S에 의해 / %s." @@ -681,7 +679,7 @@ msgstr "%s 좋아하는 글이 업데이트 됐습니다. %S에 의해 / %s." msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / %2$s에게 답신 업데이트" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s님이 %2$s/%3$s의 업데이트에 답변했습니다." @@ -691,7 +689,7 @@ msgstr "%1$s님이 %2$s/%3$s의 업데이트에 답변했습니다." msgid "%s public timeline" msgstr "%s 공개 타임라인" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "모두로부터의 업데이트 %s개!" @@ -706,12 +704,12 @@ msgstr "%s에 답신" msgid "Repeats of %s" msgstr "%s에 답신" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "%s 태그된 통지" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "%2$s에 있는 %1$s의 업데이트!" @@ -772,7 +770,7 @@ msgid "Preview" msgstr "미리보기" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "삭제" @@ -855,8 +853,8 @@ msgstr "정보차단을 저장하는데 실패했습니다." #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 msgid "No such group." msgstr "그러한 그룹이 없습니다." @@ -965,7 +963,7 @@ msgstr "당신은 해당 그룹의 멤버가 아닙니다." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "당신의 세션토큰관련 문제가 있습니다." @@ -1027,7 +1025,7 @@ msgstr "정말로 통지를 삭제하시겠습니까?" msgid "Do not delete this notice" msgstr "이 통지를 지울 수 없습니다." -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "이 게시글 삭제하기" @@ -1302,7 +1300,7 @@ msgstr "설명이 너무 길어요. (최대 140글자)" msgid "Could not update group." msgstr "그룹을 업데이트 할 수 없습니다." -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 #, fuzzy msgid "Could not create aliases." msgstr "좋아하는 게시글을 생성할 수 없습니다." @@ -2015,7 +2013,7 @@ msgstr "새 사용자를 초대" msgid "You are already subscribed to these users:" msgstr "당신은 다음 사용자를 이미 구독하고 있습니다." -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" @@ -2140,7 +2138,7 @@ msgstr "%s 는 그룹 %s에 가입했습니다." msgid "You must be logged in to leave a group." msgstr "그룹을 떠나기 위해서는 로그인해야 합니다." -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 msgid "You are not a member of that group." msgstr "당신은 해당 그룹의 멤버가 아닙니다." @@ -2258,12 +2256,12 @@ msgstr "새 그룹을 만들기 위해 이 양식을 사용하세요." msgid "New message" msgstr "새로운 메시지입니다." -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "당신은 이 사용자에게 메시지를 보낼 수 없습니다." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "내용이 없습니다!" @@ -2271,7 +2269,7 @@ msgstr "내용이 없습니다!" msgid "No recipient specified." msgstr "수신자를 지정하지 않았습니다." -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" @@ -2287,7 +2285,7 @@ msgstr "메시지" msgid "Direct message to %s sent." msgstr "%s에게 보낸 직접 메시지" -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "Ajax 에러입니다." @@ -2418,8 +2416,8 @@ msgstr "연결" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "지원하는 형식의 데이터가 아닙니다." @@ -2557,7 +2555,7 @@ msgstr "기존 비밀 번호가 틀렸습니다" msgid "Error saving user; invalid." msgstr "사용자 저장 오류; 무효한 사용자" -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "새 비밀번호를 저장 할 수 없습니다." @@ -3057,7 +3055,7 @@ msgstr "비밀 번호 초기화" msgid "Recover password" msgstr "비밀 번호 복구" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "비밀 번호 복구가 요청되었습니다." @@ -3077,41 +3075,41 @@ msgstr "초기화" msgid "Enter a nickname or email address." msgstr "별명이나 이메일 계정을 입력하십시오." -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "그러한 이메일 주소나 계정을 가진 사용자는 없습니다." -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "그 사용자는 등록된 메일주소가 없습니다." -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "주소 확인 저장 에러" -#: actions/recoverpassword.php:325 +#: 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:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "잘못된 비밀 번호 지정" -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "비밀 번호는 6자 이상이어야 합니다." -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "비밀 번호가 일치하지 않습니다." -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "사용자 세팅 오류" -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "" "새로운 비밀 번호를 성공적으로 저장했습니다. 귀하는 이제 로그인 되었습니다." @@ -3318,7 +3316,7 @@ msgstr "라이선스에 동의하지 않는다면 등록할 수 없습니다." msgid "You already repeated that notice." msgstr "당신은 이미 이 사용자를 차단하고 있습니다." -#: actions/repeat.php:114 lib/noticelist.php:674 +#: actions/repeat.php:114 lib/noticelist.php:676 #, fuzzy msgid "Repeated" msgstr "생성" @@ -4551,19 +4549,19 @@ msgstr "개인적인" msgid "Author(s)" msgstr "" -#: classes/File.php:144 +#: classes/File.php:169 #, 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." msgstr "" -#: classes/File.php:154 +#: classes/File.php:179 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:161 +#: classes/File.php:186 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" @@ -4649,7 +4647,7 @@ msgstr "통지를 저장하는데 문제가 발생했습니다." msgid "Problem saving group inbox." msgstr "통지를 저장하는데 문제가 발생했습니다." -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4682,29 +4680,29 @@ msgstr "예약 구독을 삭제 할 수 없습니다." msgid "Couldn't delete subscription OMB token." msgstr "예약 구독을 삭제 할 수 없습니다." -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "예약 구독을 삭제 할 수 없습니다." -#: classes/User.php:373 +#: classes/User.php:378 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "%2$s에서 %1$s까지 메시지" -#: classes/User_group.php:477 +#: classes/User_group.php:480 msgid "Could not create group." msgstr "새 그룹을 만들 수 없습니다." -#: classes/User_group.php:486 +#: classes/User_group.php:489 #, fuzzy msgid "Could not set group URI." msgstr "그룹 맴버십을 세팅할 수 없습니다." -#: classes/User_group.php:507 +#: classes/User_group.php:510 msgid "Could not set group membership." msgstr "그룹 맴버십을 세팅할 수 없습니다." -#: classes/User_group.php:521 +#: classes/User_group.php:524 #, fuzzy msgid "Could not save local group info." msgstr "구독을 저장할 수 없습니다." @@ -4928,7 +4926,7 @@ msgstr "찔러 보기" msgid "StatusNet software license" msgstr "라코니카 소프트웨어 라이선스" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4937,12 +4935,12 @@ msgstr "" "**%%site.name%%** 는 [%%site.broughtby%%](%%site.broughtbyurl%%)가 제공하는 " "마이크로블로깅서비스입니다." -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** 는 마이크로블로깅서비스입니다." -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4953,42 +4951,42 @@ msgstr "" "을 사용합니다. StatusNet는 [GNU Affero General Public License](http://www." "fsf.org/licensing/licenses/agpl-3.0.html) 라이선스에 따라 사용할 수 있습니다." -#: lib/action.php:821 +#: lib/action.php:824 #, fuzzy msgid "Site content license" msgstr "라코니카 소프트웨어 라이선스" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "모든 것" -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "라이선스" -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "페이지수" -#: lib/action.php:1161 +#: lib/action.php:1164 msgid "After" msgstr "뒷 페이지" -#: lib/action.php:1169 +#: lib/action.php:1172 msgid "Before" msgstr "앞 페이지" @@ -5105,7 +5103,7 @@ msgstr "SMS 인증" msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5211,37 +5209,51 @@ msgstr "비밀번호 변경" msgid "Password changing is not allowed" msgstr "비밀번호 변경" -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "실행결과" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "실행 완료" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "실행 실패" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." -msgstr "죄송합니다. 이 명령은 아직 실행되지 않았습니다." +#: lib/command.php:83 lib/command.php:105 +#, fuzzy +msgid "Notice with that id does not exist" +msgstr "해당 id의 프로필이 없습니다." -#: lib/command.php:88 +#: lib/command.php:99 lib/command.php:570 +msgid "User has no last notice" +msgstr "이용자의 지속적인 게시글이 없습니다." + +#: lib/command.php:125 #, fuzzy, php-format msgid "Could not find a user with nickname %s" msgstr "이 이메일 주소로 사용자를 업데이트 할 수 없습니다." -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "이 이메일 주소로 사용자를 업데이트 할 수 없습니다." + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "죄송합니다. 이 명령은 아직 실행되지 않았습니다." + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" -#: lib/command.php:99 +#: lib/command.php:228 #, fuzzy, php-format msgid "Nudge sent to %s" msgstr "찔러 보기를 보냈습니다." -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5249,200 +5261,198 @@ msgid "" "Notices: %3$s" msgstr "" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -#, fuzzy -msgid "Notice with that id does not exist" -msgstr "해당 id의 프로필이 없습니다." - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -msgid "User has no last notice" -msgstr "이용자의 지속적인 게시글이 없습니다." - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "게시글이 좋아하는 글로 지정되었습니다." -#: lib/command.php:217 +#: lib/command.php:317 msgid "You are already a member of that group" msgstr "당신은 이미 이 그룹의 멤버입니다." -#: lib/command.php:231 +#: lib/command.php:331 #, php-format msgid "Could not join user %s to group %s" msgstr "그룹 %s에 %s는 가입할 수 없습니다." -#: lib/command.php:236 +#: lib/command.php:336 #, php-format msgid "%s joined group %s" msgstr "%s 는 그룹 %s에 가입했습니다." -#: lib/command.php:275 +#: lib/command.php:373 #, php-format msgid "Could not remove user %s to group %s" msgstr "그룹 %s에서 %s 사용자를 제거할 수 없습니다." -#: lib/command.php:280 +#: lib/command.php:378 #, php-format msgid "%s left group %s" msgstr "%s가 그룹%s를 떠났습니다." -#: lib/command.php:309 +#: lib/command.php:401 #, php-format msgid "Fullname: %s" msgstr "전체이름: %s" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "위치: %s" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "홈페이지: %s" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "자기소개: %s" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, fuzzy, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "당신이 보낸 메시지가 너무 길어요. 최대 140글자까지입니다." -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "%s에게 보낸 직접 메시지" -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "직접 메시지 보내기 오류." -#: lib/command.php:413 +#: lib/command.php:490 #, fuzzy msgid "Cannot repeat your own notice" msgstr "알림을 켤 수 없습니다." -#: lib/command.php:418 +#: lib/command.php:495 #, fuzzy msgid "Already repeated that notice" msgstr "이 게시글 삭제하기" -#: lib/command.php:426 +#: lib/command.php:503 #, fuzzy, php-format msgid "Notice from %s repeated" msgstr "게시글이 등록되었습니다." -#: lib/command.php:428 +#: lib/command.php:505 #, fuzzy msgid "Error repeating notice." msgstr "통지를 저장하는데 문제가 발생했습니다." -#: lib/command.php:482 +#: lib/command.php:536 #, fuzzy, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "당신이 보낸 메시지가 너무 길어요. 최대 140글자까지입니다." -#: lib/command.php:491 +#: lib/command.php:545 #, fuzzy, php-format msgid "Reply to %s sent" msgstr "이 게시글에 대해 답장하기" -#: lib/command.php:493 +#: lib/command.php:547 #, fuzzy msgid "Error saving notice." msgstr "통지를 저장하는데 문제가 발생했습니다." -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "구독하려는 사용자의 이름을 지정하십시오." -#: lib/command.php:554 lib/command.php:589 -msgid "No such user" -msgstr "그러한 사용자는 없습니다." +#: lib/command.php:602 +#, fuzzy +msgid "Can't subscribe to OMB profiles by command." +msgstr "당신은 이 프로필에 구독되지 않고있습니다." -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "%s에게 구독되었습니다." -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "구독을 해제하려는 사용자의 이름을 지정하십시오." -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "%s에서 구독을 해제했습니다." -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "명령이 아직 실행되지 않았습니다." -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "알림끄기." -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "알림을 끌 수 없습니다." -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "알림이 켜졌습니다." -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "알림을 켤 수 없습니다." -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" -#: lib/command.php:692 +#: lib/command.php:735 #, fuzzy, php-format msgid "Unsubscribed %s" msgstr "%s에서 구독을 해제했습니다." -#: lib/command.php:709 +#: lib/command.php:752 #, fuzzy msgid "You are not subscribed to anyone." msgstr "당신은 이 프로필에 구독되지 않고있습니다." -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "당신은 다음 사용자를 이미 구독하고 있습니다." -#: lib/command.php:731 +#: lib/command.php:774 #, fuzzy msgid "No one is subscribed to you." msgstr "다른 사람을 구독 하실 수 없습니다." -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "다른 사람을 구독 하실 수 없습니다." -#: lib/command.php:753 +#: lib/command.php:796 #, fuzzy msgid "You are not a member of any groups." msgstr "당신은 해당 그룹의 멤버가 아닙니다." -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "당신은 해당 그룹의 멤버가 아닙니다." -#: lib/command.php:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5678,49 +5688,49 @@ msgstr "%s 그룹 게시글의 태그" msgid "This page is not available in a media type you accept" msgstr "이 페이지는 귀하가 승인한 미디어 타입에서는 이용할 수 없습니다." -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "지원하지 않는 그림 파일 형식입니다." + +#: lib/imagefile.php:90 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "당신그룹의 로고 이미지를 업로드할 수 있습니다." -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "불완전한 업로드." -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "파일을 올리는데 시스템 오류 발생" -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "그림 파일이 아니거나 손상된 파일 입니다." -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "지원하지 않는 그림 파일 형식입니다." - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 msgid "Lost our file." msgstr "파일을 잃어버렸습니다." -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "알 수 없는 종류의 파일입니다" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, php-format msgid "Unknown inbox source %d." msgstr "" @@ -5923,7 +5933,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 #, fuzzy msgid "from" msgstr "다음에서:" @@ -6079,25 +6089,25 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 #, fuzzy msgid "in context" msgstr "내용이 없습니다!" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 #, fuzzy msgid "Repeated by" msgstr "생성" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "이 게시글에 대해 답장하기" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 msgid "Reply" msgstr "답장하기" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 #, fuzzy msgid "Notice repeated" msgstr "게시글이 등록되었습니다." @@ -6426,47 +6436,47 @@ msgctxt "role" msgid "Moderator" msgstr "" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "몇 초 전" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "1분 전" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "%d분 전" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "1시간 전" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "%d시간 전" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "하루 전" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "%d일 전" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "1달 전" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "%d달 전" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "1년 전" @@ -6480,7 +6490,7 @@ msgstr "홈페이지 주소형식이 올바르지 않습니다." msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "" -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, fuzzy, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "당신이 보낸 메시지가 너무 길어요. 최대 140글자까지입니다." diff --git a/locale/mk/LC_MESSAGES/statusnet.po b/locale/mk/LC_MESSAGES/statusnet.po index 74b9cb228..7b85fa9bb 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-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:50:24+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:43:36+0000\n" "Language-Team: Macedonian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: out-statusnet\n" @@ -95,7 +95,7 @@ msgstr "Нема таква страница" #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -104,10 +104,8 @@ msgstr "Нема таква страница" #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Нема таков корисник." @@ -209,12 +207,12 @@ msgstr "Подновувања од %1$s и пријатели на %2$s!" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 msgid "API method not found." msgstr "API методот не е пронајден." @@ -346,7 +344,7 @@ msgstr "Нема пронајдено статус со таков ID." msgid "This status is already a favorite." msgstr "Овој статус веќе Ви е омилен." -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "Не можам да создадам омилина забелешка." @@ -465,7 +463,7 @@ msgstr "Групата не е пронајдена!" msgid "You are already a member of that group." msgstr "Веќе членувате во таа група." -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "Блокирани сте од таа група од администраторот." @@ -515,7 +513,7 @@ msgstr "Погрешен жетон." #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -657,12 +655,12 @@ msgstr "" msgid "Unsupported format." msgstr "Неподдржан формат." -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / Омилени од %2$s" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "Подновувања на %1$s омилени на %2$s / %2$s." @@ -672,7 +670,7 @@ msgstr "Подновувања на %1$s омилени на %2$s / %2$s." msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Подновувања кои споменуваат %2$s" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s подновувања коишто се одговор на подновувањата од %2$s / %3$s." @@ -682,7 +680,7 @@ msgstr "%1$s подновувања коишто се одговор на под msgid "%s public timeline" msgstr "Јавна историја на %s" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s подновуввања од сите!" @@ -697,12 +695,12 @@ msgstr "Повторено за %s" msgid "Repeats of %s" msgstr "Повторувања на %s" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Забелешки означени со %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Подновувањата се означени со %1$s на %2$s!" @@ -764,7 +762,7 @@ msgid "Preview" msgstr "Преглед" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "Бриши" @@ -848,8 +846,8 @@ msgstr "Не можев да ги снимам инофрмациите за б #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 msgid "No such group." msgstr "Нема таква група." @@ -950,7 +948,7 @@ msgstr "Не сте сопственик на овој програм." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "Се појави проблем со Вашиот сесиски жетон." @@ -1011,7 +1009,7 @@ msgstr "Дали сте сигурни дека сакате да ја избр msgid "Do not delete this notice" msgstr "Не ја бриши оваа забелешка" -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "Бриши ја оваа забелешка" @@ -1264,7 +1262,7 @@ msgstr "описот е предолг (максимум %d знаци)" msgid "Could not update group." msgstr "Не можев да ја подновам групата." -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 msgid "Could not create aliases." msgstr "Не можеше да се создадат алијаси." @@ -1973,7 +1971,7 @@ msgstr "Покани нови корисници" msgid "You are already subscribed to these users:" msgstr "Веќе сте претплатени на овие корисници:" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" @@ -2104,7 +2102,7 @@ msgstr "%1$s се зачлени во групата %2$s" msgid "You must be logged in to leave a group." msgstr "Мора да сте најавени за да можете да ја напуштите групата." -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 msgid "You are not a member of that group." msgstr "Не членувате во таа група." @@ -2219,12 +2217,12 @@ msgstr "Овој образец служи за создавање нова гр msgid "New message" msgstr "Нова порака" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "Не можете да испратите порака до овојо корисник." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "Нема содржина!" @@ -2232,7 +2230,7 @@ msgstr "Нема содржина!" msgid "No recipient specified." msgstr "Нема назначено примач." -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" @@ -2248,7 +2246,7 @@ msgstr "Пораката е испратена" msgid "Direct message to %s sent." msgstr "Директната порака до %s е испратена." -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "Ajax-грешка" @@ -2382,8 +2380,8 @@ msgstr "тип на содржини " msgid "Only " msgstr "Само " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "Ова не е поддржан формат на податотека." @@ -2516,7 +2514,7 @@ msgstr "Неточна стара лозинка" msgid "Error saving user; invalid." msgstr "Грешка во зачувувањето на корисникот; неправилен." -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "Не можам да ја зачувам новата лозинка." @@ -3021,7 +3019,7 @@ msgstr "Рестетирај ја лозинката" msgid "Recover password" msgstr "Пронаоѓање на лозинка" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "Побарано е пронаоѓање на лозинката" @@ -3041,19 +3039,19 @@ msgstr "Врати одново" msgid "Enter a nickname or email address." msgstr "Внесете прекар или е-пошта" -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "Нема корисник со таа е-поштенска адреса или корисничко име." -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "Нема регистрирана адреса за е-пошта за тој корисник." -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "Грешка при зачувувањето на потврдата за адреса." -#: actions/recoverpassword.php:325 +#: actions/recoverpassword.php:338 msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." @@ -3061,23 +3059,23 @@ msgstr "" "Упатството за пронаоѓање на Вашата лозинка е испратено до адресата за е-" "пошта што е регистрирана со Вашата сметка." -#: actions/recoverpassword.php:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "Неочекувано подновување на лозинката." -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "Лозинката мора да биде од најмалку 6 знаци." -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Двете лозинки не се совпаѓаат." -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "Грешка во поставувањето на корисникот." -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "Новата лозинка е успешно зачувана. Сега сте најавени." @@ -3281,7 +3279,7 @@ msgstr "Не можете да повторувате сопствена заб msgid "You already repeated that notice." msgstr "Веќе ја имате повторено таа забелешка." -#: actions/repeat.php:114 lib/noticelist.php:674 +#: actions/repeat.php:114 lib/noticelist.php:676 msgid "Repeated" msgstr "Повторено" @@ -4538,7 +4536,7 @@ msgstr "Верзија" msgid "Author(s)" msgstr "Автор(и)" -#: classes/File.php:144 +#: classes/File.php:169 #, php-format msgid "" "No file may be larger than %d bytes and the file you sent was %d bytes. Try " @@ -4547,13 +4545,13 @@ msgstr "" "Ниедна податотека не смее да биде поголема од %d бајти, а подаотеката што ја " "испративте содржи %d бајти. Подигнете помала верзија." -#: classes/File.php:154 +#: classes/File.php:179 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" "Волку голема податотека ќе ја надмине Вашата корисничка квота од %d бајти." -#: classes/File.php:161 +#: classes/File.php:186 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "ВОлку голема податотека ќе ја надмине Вашата месечна квота од %d бајти" @@ -4631,7 +4629,7 @@ msgstr "Проблем во зачувувањето на белешката." msgid "Problem saving group inbox." msgstr "Проблем при зачувувањето на групното приемно сандаче." -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4661,28 +4659,28 @@ msgstr "Не можам да ја избришам самопретплатат msgid "Couldn't delete subscription OMB token." msgstr "Не можете да го избришете OMB-жетонот за претплата." -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "Претплата не може да се избрише." -#: classes/User.php:373 +#: classes/User.php:378 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Добредојдовте на %1$s, @%2$s!" -#: classes/User_group.php:477 +#: classes/User_group.php:480 msgid "Could not create group." msgstr "Не можев да ја создадам групата." -#: classes/User_group.php:486 +#: classes/User_group.php:489 msgid "Could not set group URI." msgstr "Не можев да поставам URI на групата." -#: classes/User_group.php:507 +#: classes/User_group.php:510 msgid "Could not set group membership." msgstr "Не можев да назначам членство во групата." -#: classes/User_group.php:521 +#: classes/User_group.php:524 msgid "Could not save local group info." msgstr "Не можев да ги зачувам информациите за локалните групи." @@ -4886,7 +4884,7 @@ msgstr "Значка" msgid "StatusNet software license" msgstr "Лиценца на програмот StatusNet" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4895,12 +4893,12 @@ msgstr "" "**%%site.name%%** е сервис за микроблогирање што ви го овозможува [%%site." "broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** е сервис за микроблогирање." -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4911,45 +4909,45 @@ msgstr "" "верзија %s, достапен пд [GNU Affero General Public License](http://www.fsf." "org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:821 +#: lib/action.php:824 msgid "Site content license" msgstr "Лиценца на содржините на веб-страницата" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Содржината и податоците на %1$s се лични и доверливи." -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" "Авторските права на содржината и податоците се во сопственост на %1$s. Сите " "права задржани." -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Авторските права на содржината и податоците им припаѓаат на учесниците. Сите " "права задржани." -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "Сите " -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "лиценца." -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "Прелом на страници" -#: lib/action.php:1161 +#: lib/action.php:1164 msgid "After" msgstr "По" -#: lib/action.php:1169 +#: lib/action.php:1172 msgid "Before" msgstr "Пред" @@ -5053,7 +5051,7 @@ msgstr "" "API-ресурсот бара да може и да чита и да запишува, а вие можете само да " "читате." -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "Неуспешен обид за API-заверка, прекар = %1$s, прокси = %2$s, IP = %3$s" @@ -5152,37 +5150,50 @@ msgstr "Менувањето на лозинката не успеа" msgid "Password changing is not allowed" msgstr "Менувањето на лозинка не е дозволено" -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "Резултати од наредбата" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "Наредбата е завршена" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "Наредбата не успеа" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." -msgstr "Жалиме, оваа наредба сè уште не е имплементирана." +#: lib/command.php:83 lib/command.php:105 +msgid "Notice with that id does not exist" +msgstr "Не постои забелешка со таков id" -#: lib/command.php:88 +#: lib/command.php:99 lib/command.php:570 +msgid "User has no last notice" +msgstr "Корисникот нема последна забелешка" + +#: lib/command.php:125 #, php-format msgid "Could not find a user with nickname %s" msgstr "Не можев да пронајдам корисник со прекар %s" -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "Не можев да пронајдам корисник со прекар %s" + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "Жалиме, оваа наредба сè уште не е имплементирана." + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "Нема баш логика да се подбуцнувате сами себеси." -#: lib/command.php:99 +#: lib/command.php:228 #, php-format msgid "Nudge sent to %s" msgstr "Испратено подбуцнување на %s" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5193,198 +5204,197 @@ msgstr "" "Претплатници: %2$s\n" "Забелешки: %3$s" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -msgid "Notice with that id does not exist" -msgstr "Не постои забелешка со таков id" - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -msgid "User has no last notice" -msgstr "Корисникот нема последна забелешка" - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "Забелешката е обележана како омилена." -#: lib/command.php:217 +#: lib/command.php:317 msgid "You are already a member of that group" msgstr "Веќе членувате во таа група" -#: lib/command.php:231 +#: lib/command.php:331 #, php-format msgid "Could not join user %s to group %s" msgstr "Не можев да го зачленам корисникот %s во групата %s" -#: lib/command.php:236 +#: lib/command.php:336 #, php-format msgid "%s joined group %s" msgstr "%s се зачлени во групата %s" -#: lib/command.php:275 +#: lib/command.php:373 #, php-format msgid "Could not remove user %s to group %s" msgstr "Не можев да го отстранам корисникот %s од групата %s" -#: lib/command.php:280 +#: lib/command.php:378 #, php-format msgid "%s left group %s" msgstr "%s ја напушти групата %s" -#: lib/command.php:309 +#: lib/command.php:401 #, php-format msgid "Fullname: %s" msgstr "Име и презиме: %s" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Локација: %s" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Домашна страница: %s" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "За: %s" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "" "Пораката е предолга - дозволени се највеќе %d знаци, а вие испративте %d" -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "Директната порака до %s е испратена" -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "Грашка при испаќањето на директната порака." -#: lib/command.php:413 +#: lib/command.php:490 msgid "Cannot repeat your own notice" msgstr "Не можете да повторувате сопствени забалешки" -#: lib/command.php:418 +#: lib/command.php:495 msgid "Already repeated that notice" msgstr "Оваа забелешка е веќе повторена" -#: lib/command.php:426 +#: lib/command.php:503 #, php-format msgid "Notice from %s repeated" msgstr "Забелешката од %s е повторена" -#: lib/command.php:428 +#: lib/command.php:505 msgid "Error repeating notice." msgstr "Грешка при повторувањето на белешката." -#: lib/command.php:482 +#: lib/command.php:536 #, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "" "Забелешката е предолга - треба да нема повеќе од %d знаци, а Вие испративте %" "d" -#: lib/command.php:491 +#: lib/command.php:545 #, php-format msgid "Reply to %s sent" msgstr "Одговорот на %s е испратен" -#: lib/command.php:493 +#: lib/command.php:547 msgid "Error saving notice." msgstr "Грешка при зачувувањето на белешката." -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "Назначете го името на корисникот на којшто сакате да се претплатите" -#: lib/command.php:554 lib/command.php:589 -msgid "No such user" -msgstr "Нема таков корисник" +#: lib/command.php:602 +#, fuzzy +msgid "Can't subscribe to OMB profiles by command." +msgstr "Не сте претплатени на тој профил." -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "Претплатено на %s" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "Назначете го името на корисникот од кого откажувате претплата." -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "Претплатата на %s е откажана" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "Наредбата сè уште не е имплементирана." -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "Известувањето е исклучено." -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "Не можам да исклучам известување." -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "Известувањето е вклучено." -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "Не можам да вклучам известување." -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "Наредбата за најава е оневозможена" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "Оваа врска може да се употреби само еднаш, и трае само 2 минути: %s" -#: lib/command.php:692 +#: lib/command.php:735 #, php-format msgid "Unsubscribed %s" msgstr "Откажана претплата на %s" -#: lib/command.php:709 +#: lib/command.php:752 msgid "You are not subscribed to anyone." msgstr "Не сте претплатени никому." -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Не ни го испративте тој профил." msgstr[1] "Не ни го испративте тој профил." -#: lib/command.php:731 +#: lib/command.php:774 msgid "No one is subscribed to you." msgstr "Никој не е претплатен на Вас." -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Оддалечена претплата" msgstr[1] "Оддалечена претплата" -#: lib/command.php:753 +#: lib/command.php:796 msgid "You are not a member of any groups." msgstr "Не членувате во ниедна група." -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Не ни го испративте тој профил." msgstr[1] "Не ни го испративте тој профил." -#: lib/command.php:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5653,49 +5663,49 @@ msgstr "Ознаки во забелешките на групата %s" msgid "This page is not available in a media type you accept" msgstr "Оваа страница не е достапна во форматот кој Вие го прифаќате." -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "Неподдржан фомрат на слики." + +#: lib/imagefile.php:90 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Ова е предолго. Максималната должина е 140 знаци." -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Делумно подигање." -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Системска грешка при подигањето на податотеката." -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Не е слика или податотеката е пореметена." -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "Неподдржан фомрат на слики." - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 msgid "Lost our file." msgstr "Податотеката е изгубена." -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "Непознат тип на податотека" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "МБ" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "кб" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "[%s]" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, php-format msgid "Unknown inbox source %d." msgstr "Непознат извор на приемна пошта %d." @@ -5978,7 +5988,7 @@ msgstr "" "впуштите во разговор со други корисници. Луѓето можат да ви испраќаат пораки " "што ќе можете да ги видите само Вие." -#: lib/mailbox.php:227 lib/noticelist.php:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 msgid "from" msgstr "од" @@ -6136,23 +6146,23 @@ msgstr "З" msgid "at" msgstr "во" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 msgid "in context" msgstr "во контекст" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 msgid "Repeated by" msgstr "Повторено од" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "Одговори на забелешкава" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 msgid "Reply" msgstr "Одговор" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 msgid "Notice repeated" msgstr "Забелешката е повторена" @@ -6462,47 +6472,47 @@ msgctxt "role" msgid "Moderator" msgstr "Модератор" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "пред неколку секунди" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "пред една минута" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "пред %d минути" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "пред еден час" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "пред %d часа" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "пред еден ден" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "пред %d денови" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "пред еден месец" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "пред %d месеца" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "пред една година" @@ -6516,7 +6526,7 @@ msgstr "%s не е важечка боја!" msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "%s не е важечка боја! Користете 3 или 6 шеснаесетни (hex) знаци." -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "" diff --git a/locale/nb/LC_MESSAGES/statusnet.po b/locale/nb/LC_MESSAGES/statusnet.po index b687e445e..3845dca75 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-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-08 21:11:29+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:43:40+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 (r63415); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: out-statusnet\n" @@ -93,7 +93,7 @@ msgstr "Ingen slik side" #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -102,10 +102,8 @@ msgstr "Ingen slik side" #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Ingen slik bruker" @@ -205,12 +203,12 @@ msgstr "Oppdateringer fra %1$s og venner på %2$s!" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "API-metode ikke funnet!" @@ -343,7 +341,7 @@ msgstr "Fant ingen status med den ID-en." msgid "This status is already a favorite." msgstr "Denne statusen er allerede en favoritt." -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "Kunne ikke opprette favoritt." @@ -460,7 +458,7 @@ msgstr "Gruppe ikke funnet!" msgid "You are already a member of that group." msgstr "Du er allerede medlem av den gruppen." -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "Du har blitt blokkert fra den gruppen av administratoren." @@ -510,7 +508,7 @@ msgstr "Ugyldig symbol." #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -648,12 +646,12 @@ msgstr "Maks notisstørrelse er %d tegn, inklusive vedleggs-URL." msgid "Unsupported format." msgstr "Formatet støttes ikke." -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / Favoritter fra %2$s" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s oppdateringer markert som favoritt av %2$s / %2$s." @@ -663,7 +661,7 @@ msgstr "%1$s oppdateringer markert som favoritt av %2$s / %2$s." msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Oppdateringer som nevner %2$s" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s oppdateringer som svarer på oppdateringer fra %2$s / %3$s." @@ -673,7 +671,7 @@ msgstr "%1$s oppdateringer som svarer på oppdateringer fra %2$s / %3$s." msgid "%s public timeline" msgstr "%s offentlig tidslinje" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s oppdateringer fra alle sammen!" @@ -688,12 +686,12 @@ msgstr "Gjentatt til %s" msgid "Repeats of %s" msgstr "Repetisjoner av %s" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Notiser merket med %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Oppdateringer merket med %1$s på %2$s!" @@ -753,7 +751,7 @@ msgid "Preview" msgstr "Forhåndsvis" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "Slett" @@ -836,8 +834,8 @@ msgstr "Kunne ikke lagre blokkeringsinformasjon." #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 msgid "No such group." msgstr "Ingen slik gruppe." @@ -938,7 +936,7 @@ msgstr "Du er ikke eieren av dette programmet." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "" @@ -999,7 +997,7 @@ msgstr "Er du sikker på at du vil slette denne notisen?" msgid "Do not delete this notice" msgstr "Ikke slett denne notisen" -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "Slett denne notisen" @@ -1252,7 +1250,7 @@ msgstr "beskrivelse er for lang (maks %d tegn)" msgid "Could not update group." msgstr "Kunne ikke oppdatere gruppe." -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 msgid "Could not create aliases." msgstr "Kunne ikke opprette alias." @@ -1482,7 +1480,7 @@ msgstr "" #: lib/personalgroupnav.php:115 #, php-format msgid "%s's favorite notices" -msgstr "" +msgstr "%s sine favorittnotiser" #: actions/favoritesrss.php:115 #, php-format @@ -1502,7 +1500,7 @@ msgstr "" #: actions/featured.php:99 #, php-format msgid "A selection of some great users on %s" -msgstr "" +msgstr "Et utvalg av noen store brukere på %s" #: actions/file.php:34 msgid "No notice ID." @@ -1598,9 +1596,8 @@ msgid "Only an admin can block group members." msgstr "" #: actions/groupblock.php:95 -#, fuzzy msgid "User is already blocked from group." -msgstr "Du er allerede logget inn!" +msgstr "Bruker er allerede blokkert fra gruppe." #: actions/groupblock.php:100 msgid "User is not a member of group." @@ -1624,7 +1621,7 @@ msgstr "Ikke blokker denne brukeren fra denne gruppa" #: actions/groupblock.php:179 msgid "Block this user from this group" -msgstr "" +msgstr "Blokker denne brukeren fra denne gruppen" #: actions/groupblock.php:196 msgid "Database error blocking user from group." @@ -1797,9 +1794,8 @@ msgid "Error removing the block." msgstr "Feil under oppheving av blokkering." #: actions/imsettings.php:59 -#, fuzzy msgid "IM settings" -msgstr "Innstillinger for IM" +msgstr "Innstillinger for direktemeldinger" #: actions/imsettings.php:70 #, php-format @@ -1826,9 +1822,8 @@ msgstr "" "instruksjoner (la du %s til vennelisten din?)" #: actions/imsettings.php:124 -#, fuzzy msgid "IM address" -msgstr "IM-adresse" +msgstr "Direktemeldingsadresse" #: actions/imsettings.php:126 #, php-format @@ -1926,7 +1921,7 @@ msgstr "Inviter nye brukere" msgid "You are already subscribed to these users:" msgstr "" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" @@ -2047,9 +2042,9 @@ msgstr "" msgid "You must be logged in to leave a group." msgstr "" -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 msgid "You are not a member of that group." -msgstr "" +msgstr "Du er ikke et medlem av den gruppen." #: actions/leavegroup.php:137 #, php-format @@ -2075,7 +2070,7 @@ msgstr "Logg inn" #: actions/login.php:227 msgid "Login to site" -msgstr "" +msgstr "Logg inn på nettstedet" #: actions/login.php:236 actions/register.php:478 msgid "Remember me" @@ -2118,18 +2113,17 @@ msgid "Can't get membership record for %1$s in group %2$s." msgstr "Klarte ikke å oppdatere bruker." #: actions/makeadmin.php:146 -#, fuzzy, php-format +#, php-format msgid "Can't make %1$s an admin for group %2$s." -msgstr "Gjør brukeren til en administrator for gruppen" +msgstr "Kan ikke gjøre %1$s til administrator for gruppen %2$s." #: actions/microsummary.php:69 msgid "No current status" msgstr "Ingen nåværende status" #: actions/newapplication.php:52 -#, fuzzy msgid "New Application" -msgstr "Ingen slik side" +msgstr "Nytt program" #: actions/newapplication.php:64 msgid "You must be logged in to register an application." @@ -2160,12 +2154,12 @@ msgstr "Bruk dette skjemaet for å opprette en ny gruppe." msgid "New message" msgstr "Ny melding" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "Du kan ikke sende en melding til denne brukeren." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "Inget innhold." @@ -2173,7 +2167,7 @@ msgstr "Inget innhold." msgid "No recipient specified." msgstr "Ingen mottaker oppgitt." -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" @@ -2183,11 +2177,11 @@ msgid "Message sent" msgstr "Melding sendt" #: actions/newmessage.php:185 -#, fuzzy, php-format +#, php-format msgid "Direct message to %s sent." -msgstr "Direktemeldinger til %s" +msgstr "Direktemelding til %s sendt." -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "Ajax-feil" @@ -2211,9 +2205,9 @@ msgid "Text search" msgstr "Tekst-søk" #: actions/noticesearch.php:91 -#, fuzzy, php-format +#, php-format msgid "Search results for \"%1$s\" on %2$s" -msgstr "Søkestrøm for «%s»" +msgstr "Søkeresultat for «%1$s» på %2$s" #: actions/noticesearch.php:121 #, php-format @@ -2232,12 +2226,12 @@ msgstr "" #: actions/noticesearchrss.php:96 #, php-format msgid "Updates with \"%s\"" -msgstr "" +msgstr "Oppdateringer med «%s»" #: actions/noticesearchrss.php:98 -#, fuzzy, php-format +#, php-format msgid "Updates matching search term \"%1$s\" on %2$s!" -msgstr "Alle oppdateringer for søket: «%s»" +msgstr "Oppdateringer som samsvarer søkestrengen «%1$s» på %2$s." #: actions/nudge.php:85 msgid "" @@ -2258,7 +2252,7 @@ msgstr "" #: actions/oauthappssettings.php:74 msgid "OAuth applications" -msgstr "" +msgstr "OAuth-program" #: actions/oauthappssettings.php:85 msgid "Applications you have registered" @@ -2275,21 +2269,20 @@ msgstr "" #: actions/oauthconnectionssettings.php:83 msgid "You have allowed the following applications to access you account." -msgstr "" +msgstr "Du har tillatt følgende programmer å få tilgang til den konto." #: actions/oauthconnectionssettings.php:175 -#, fuzzy msgid "You are not a user of that application." -msgstr "Du er allerede logget inn!" +msgstr "Du er ikke bruker av dette programmet." #: actions/oauthconnectionssettings.php:186 msgid "Unable to revoke access for app: " -msgstr "" +msgstr "Kunne ikke tilbakekalle tilgang for programmet: " #: actions/oauthconnectionssettings.php:198 #, php-format msgid "You have not authorized any applications to use your account." -msgstr "" +msgstr "Du har ikke tillatt noen programmer å bruke din konto." #: actions/oauthconnectionssettings.php:211 msgid "Developers can edit the registration settings for their applications " @@ -2312,8 +2305,8 @@ msgstr "innholdstype " msgid "Only " msgstr "Bare " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "" @@ -2448,7 +2441,7 @@ msgstr "Feil gammelt passord" msgid "Error saving user; invalid." msgstr "" -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "Klarer ikke å lagre nytt passord." @@ -2935,7 +2928,7 @@ msgstr "" msgid "Recover password" msgstr "" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "" @@ -2955,19 +2948,19 @@ msgstr "Nullstill" msgid "Enter a nickname or email address." msgstr "" -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "" -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "" -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "" -#: actions/recoverpassword.php:325 +#: actions/recoverpassword.php:338 msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." @@ -2975,23 +2968,23 @@ msgstr "" "Instruksjoner om hvordan du kan gjenopprette ditt passord har blitt sendt " "til din registrerte e-postadresse." -#: actions/recoverpassword.php:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "" -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "Passordet må bestå av 6 eller flere tegn." -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "" -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "" -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "" @@ -3187,7 +3180,7 @@ msgstr "" msgid "You already repeated that notice." msgstr "Du er allerede logget inn!" -#: actions/repeat.php:114 lib/noticelist.php:674 +#: actions/repeat.php:114 lib/noticelist.php:676 msgid "Repeated" msgstr "Gjentatt" @@ -3386,28 +3379,28 @@ msgid "Are you sure you want to reset your consumer key and secret?" msgstr "Er du sikker på at du vil slette denne notisen?" #: actions/showfavorites.php:79 -#, fuzzy, php-format +#, php-format msgid "%1$s's favorite notices, page %2$d" -msgstr "%s og venner" +msgstr "%1$s sine favorittnotiser, side %2$d" #: actions/showfavorites.php:132 msgid "Could not retrieve favorite notices." -msgstr "" +msgstr "Kunne ikke hente favorittnotiser." #: actions/showfavorites.php:171 -#, fuzzy, php-format +#, php-format msgid "Feed for favorites of %s (RSS 1.0)" -msgstr "Feed for %s sine venner" +msgstr "Mating for favoritter av %s (RSS 1.0)" #: actions/showfavorites.php:178 -#, fuzzy, php-format +#, php-format msgid "Feed for favorites of %s (RSS 2.0)" -msgstr "Feed for %s sine venner" +msgstr "Mating for favoritter av %s (RSS 2.0)" #: actions/showfavorites.php:185 -#, fuzzy, php-format +#, php-format msgid "Feed for favorites of %s (Atom)" -msgstr "Feed for %s sine venner" +msgstr "Mating for favoritter av %s (Atom)" #: actions/showfavorites.php:206 msgid "" @@ -3437,22 +3430,21 @@ msgstr "" #: actions/showgroup.php:82 lib/groupnav.php:86 #, php-format msgid "%s group" -msgstr "" +msgstr "%s gruppe" #: actions/showgroup.php:84 -#, fuzzy, php-format +#, php-format msgid "%1$s group, page %2$d" -msgstr "Alle abonnementer" +msgstr "%1$s gruppe, side %2$d" #: actions/showgroup.php:226 -#, fuzzy msgid "Group profile" -msgstr "Klarte ikke å lagre profil." +msgstr "Gruppeprofil" #: actions/showgroup.php:271 actions/tagother.php:118 #: actions/userauthorization.php:175 lib/userprofile.php:177 msgid "URL" -msgstr "" +msgstr "Nettadresse" #: actions/showgroup.php:282 actions/tagother.php:128 #: actions/userauthorization.php:187 lib/userprofile.php:194 @@ -3470,17 +3462,17 @@ msgstr "" #: actions/showgroup.php:337 #, php-format msgid "Notice feed for %s group (RSS 1.0)" -msgstr "" +msgstr "Notismating for %s gruppe (RSS 1.0)" #: actions/showgroup.php:343 #, php-format msgid "Notice feed for %s group (RSS 2.0)" -msgstr "" +msgstr "Notismating for %s gruppe (RSS 2.0)" #: actions/showgroup.php:349 #, php-format msgid "Notice feed for %s group (Atom)" -msgstr "" +msgstr "Notismating for %s gruppe (Atom)" #: actions/showgroup.php:354 #, fuzzy, php-format @@ -3488,24 +3480,22 @@ msgid "FOAF for %s group" msgstr "Klarte ikke å lagre profil." #: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 -#, fuzzy msgid "Members" -msgstr "Medlem siden" +msgstr "Medlemmer" #: actions/showgroup.php:395 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" -msgstr "" +msgstr "(Ingen)" #: actions/showgroup.php:401 msgid "All members" -msgstr "" +msgstr "Alle medlemmer" #: actions/showgroup.php:441 -#, fuzzy msgid "Created" -msgstr "Opprett" +msgstr "Opprettet" #: actions/showgroup.php:457 #, php-format @@ -3516,6 +3506,12 @@ msgid "" "their life and interests. [Join now](%%%%action.register%%%%) to become part " "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" +"**%s** er en brukergruppe på %%%%site.name%%%%, en [mikrobloggingstjeneste]" +"(http://no.wikipedia.org/wiki/Mikroblogg) basert på det frie " +"programvareverktøyet [StatusNet](http://status.net/). Dets medlemmer deler " +"korte meldinger om deres liv og interesser. [Bli med nå](%%%%action.register%" +"%%%) for å bli medlem av denne gruppen og mange fler. ([Les mer](%%%%doc.help" +"%%%%))" #: actions/showgroup.php:463 #, php-format @@ -3525,14 +3521,18 @@ msgid "" "[StatusNet](http://status.net/) tool. Its members share short messages about " "their life and interests. " msgstr "" +"**%s** er en brukergruppe på %%%%site.name%%%%, en [mikrobloggingstjeneste]" +"(http://no.wikipedia.org/wiki/Mikroblogg) basert på det frie " +"programvareverktøyet [StatusNet](http://status.net/). Dets medlemmer deler " +"korte meldinger om deres liv og interesser. " #: actions/showgroup.php:491 msgid "Admins" -msgstr "" +msgstr "Administratorer" #: actions/showmessage.php:81 msgid "No such message." -msgstr "" +msgstr "Ingen slik melding." #: actions/showmessage.php:98 msgid "Only the sender and recipient may read this message." @@ -3541,16 +3541,16 @@ msgstr "" #: actions/showmessage.php:108 #, php-format msgid "Message to %1$s on %2$s" -msgstr "" +msgstr "Melding til %1$s på %2$s" #: actions/showmessage.php:113 #, php-format msgid "Message from %1$s on %2$s" -msgstr "" +msgstr "Melding fra %1$s på %2$s" #: actions/shownotice.php:90 msgid "Notice deleted." -msgstr "" +msgstr "Notis slettet." #: actions/showstream.php:73 #, fuzzy, php-format @@ -3558,29 +3558,29 @@ msgid " tagged %s" msgstr "Tagger" #: actions/showstream.php:79 -#, fuzzy, php-format +#, php-format msgid "%1$s, page %2$d" -msgstr "%s og venner" +msgstr "%1$s, side %2$d" #: actions/showstream.php:122 -#, fuzzy, php-format +#, php-format msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)" -msgstr "Feed for taggen %s" +msgstr "Notismating for %1$s merket %2$s (RSS 1.0)" #: actions/showstream.php:129 #, php-format msgid "Notice feed for %s (RSS 1.0)" -msgstr "" +msgstr "Notismating for %s (RSS 1.0)" #: actions/showstream.php:136 #, php-format msgid "Notice feed for %s (RSS 2.0)" -msgstr "" +msgstr "Notismating for %s (RSS 2.0)" #: actions/showstream.php:143 #, php-format msgid "Notice feed for %s (Atom)" -msgstr "" +msgstr "Notismating for %s (Atom)" #: actions/showstream.php:148 #, fuzzy, php-format @@ -3616,6 +3616,11 @@ msgid "" "[StatusNet](http://status.net/) tool. [Join now](%%%%action.register%%%%) to " "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" +"**%s** har en konto på %%%%site.name%%%%, en [mikrobloggingstjeneste] " +"(http://no.wikipedia.org/wiki/Mikroblogg) basert på det frie " +"programvareverktøyet [StatusNet](http://status.net/). [Bli med nå](%%%%" +"action.register%%%%) for å følge **%s** og mange flere sine notiser. ([Les " +"mer](%%%%doc.help%%%%))" #: actions/showstream.php:248 #, php-format @@ -3624,11 +3629,14 @@ msgid "" "wikipedia.org/wiki/Micro-blogging) service based on the Free Software " "[StatusNet](http://status.net/) tool. " msgstr "" +"**%s** har en konto på %%%%site.name%%%%, en [mikrobloggingstjeneste] " +"(http://no.wikipedia.org/wiki/Mikroblogg) basert på det frie " +"programvareverktøyet [StatusNet](http://status.net/). " #: actions/showstream.php:305 -#, fuzzy, php-format +#, php-format msgid "Repeat of %s" -msgstr "Svar til %s" +msgstr "Repetisjon av %s" #: actions/silence.php:65 actions/unsilence.php:65 msgid "You cannot silence users on this site." @@ -3648,14 +3656,13 @@ msgid "Site name must have non-zero length." msgstr "" #: actions/siteadminpanel.php:141 -#, fuzzy msgid "You must have a valid contact email address." -msgstr "Ugyldig e-postadresse" +msgstr "Du må ha en gyldig e-postadresse." #: actions/siteadminpanel.php:159 #, php-format msgid "Unknown language \"%s\"." -msgstr "" +msgstr "Ukjent språk «%s»." #: actions/siteadminpanel.php:165 msgid "Minimum text limit is 140 characters." @@ -3667,11 +3674,11 @@ msgstr "" #: actions/siteadminpanel.php:221 msgid "General" -msgstr "" +msgstr "Generell" #: actions/siteadminpanel.php:224 msgid "Site name" -msgstr "" +msgstr "Nettstedsnavn" #: actions/siteadminpanel.php:225 msgid "The name of your site, like \"Yourcompany Microblog\"" @@ -3703,16 +3710,15 @@ msgstr "" #: actions/siteadminpanel.php:256 msgid "Default timezone" -msgstr "" +msgstr "Standard tidssone" #: actions/siteadminpanel.php:257 msgid "Default timezone for the site; usually UTC." -msgstr "" +msgstr "Standard tidssone for nettstedet; vanligvis UTC." #: actions/siteadminpanel.php:262 -#, fuzzy msgid "Default language" -msgstr "Foretrukket språk" +msgstr "Standardspråk" #: actions/siteadminpanel.php:263 msgid "Site language when autodetection from browser settings is not available" @@ -4106,9 +4112,8 @@ msgid "API method under construction." msgstr "API-metode under utvikling." #: actions/unblock.php:59 -#, fuzzy msgid "You haven't blocked that user." -msgstr "Du er allerede logget inn!" +msgstr "Du har ikke blokkert den brukeren." #: actions/unsandbox.php:72 msgid "User is not sandboxed." @@ -4136,24 +4141,24 @@ msgstr "" #: actions/useradminpanel.php:59 msgctxt "TITLE" msgid "User" -msgstr "" +msgstr "Bruker" #: actions/useradminpanel.php:70 msgid "User settings for this StatusNet site." -msgstr "" +msgstr "Brukerinnstillinger for dette StatusNet-nettstedet." #: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." -msgstr "" +msgstr "Ugyldig biografigrense. Må være numerisk." #: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." -msgstr "" +msgstr "Ugyldig velkomsttekst. Maks lengde er 255 tegn." #: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." -msgstr "" +msgstr "Ugyldig standardabonnement: '%1$s' er ikke bruker." #: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 @@ -4162,48 +4167,43 @@ msgstr "Profil" #: actions/useradminpanel.php:222 msgid "Bio Limit" -msgstr "" +msgstr "Biografigrense" #: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." -msgstr "" +msgstr "Maks lengde på en profilbiografi i tegn." #: actions/useradminpanel.php:231 -#, fuzzy msgid "New users" -msgstr "slett" +msgstr "Nye brukere" #: actions/useradminpanel.php:235 msgid "New user welcome" -msgstr "" +msgstr "Velkomst av ny bruker" #: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." -msgstr "" +msgstr "Velkomsttekst for nye brukere (Maks 255 tegn)." #: actions/useradminpanel.php:241 -#, fuzzy msgid "Default subscription" -msgstr "Alle abonnementer" +msgstr "Standardabonnement" #: actions/useradminpanel.php:242 -#, fuzzy msgid "Automatically subscribe new users to this user." -msgstr "" -"Abonner automatisk på de som abonnerer på meg (best for ikke-mennesker)" +msgstr "Legger automatisk til et abonnement på denne brukeren til nye brukere." #: actions/useradminpanel.php:251 -#, fuzzy msgid "Invitations" -msgstr "Bekreftelseskode" +msgstr "Invitasjoner" #: actions/useradminpanel.php:256 msgid "Invitations enabled" -msgstr "" +msgstr "Invitasjoner aktivert" #: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." -msgstr "" +msgstr "Hvorvidt brukere tillates å invitere nye brukere." #: actions/userauthorization.php:105 msgid "Authorize subscription" @@ -4218,7 +4218,7 @@ msgstr "" #: actions/userauthorization.php:196 actions/version.php:165 msgid "License" -msgstr "" +msgstr "Lisens" #: actions/userauthorization.php:217 msgid "Accept" @@ -4227,16 +4227,15 @@ msgstr "Godta" #: actions/userauthorization.php:218 lib/subscribeform.php:115 #: lib/subscribeform.php:139 msgid "Subscribe to this user" -msgstr "" +msgstr "Abonner på denne brukeren" #: actions/userauthorization.php:219 msgid "Reject" -msgstr "" +msgstr "Avvis" #: actions/userauthorization.php:220 -#, fuzzy msgid "Reject this subscription" -msgstr "Alle abonnementer" +msgstr "Avvis dette abonnementet" #: actions/userauthorization.php:232 msgid "No authorization request!" @@ -4312,7 +4311,7 @@ msgstr "" #: actions/userdesignsettings.php:282 msgid "Enjoy your hotdog!" -msgstr "" +msgstr "Bon appétit." #: actions/usergroups.php:64 #, fuzzy, php-format @@ -4321,17 +4320,17 @@ msgstr "Alle abonnementer" #: actions/usergroups.php:130 msgid "Search for more groups" -msgstr "" +msgstr "Søk etter flere grupper" #: actions/usergroups.php:157 -#, fuzzy, php-format +#, php-format msgid "%s is not a member of any group." -msgstr "Du er allerede logget inn!" +msgstr "%s er ikke medlem av noen gruppe." #: actions/usergroups.php:162 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." -msgstr "" +msgstr "Prøv å [søke etter grupper](%%action.groupsearch%%) og bli med i dem." #: actions/userrss.php:95 lib/atomgroupnoticefeed.php:66 #: lib/atomusernoticefeed.php:72 @@ -4340,9 +4339,9 @@ msgid "Updates from %1$s on %2$s!" msgstr "Oppdateringar fra %1$s på %2$s!" #: actions/version.php:73 -#, fuzzy, php-format +#, php-format msgid "StatusNet %s" -msgstr "Statistikk" +msgstr "StatusNet %s" #: actions/version.php:153 #, php-format @@ -4350,10 +4349,12 @@ msgid "" "This site is powered by %1$s version %2$s, Copyright 2008-2010 StatusNet, " "Inc. and contributors." msgstr "" +"Dette nettstedet drives av %1$s versjon %2$s, Copyright 2008-2010 StatusNet, " +"Inc. og andre bidragsytere." #: actions/version.php:161 msgid "Contributors" -msgstr "" +msgstr "Bidragsytere" #: actions/version.php:168 msgid "" @@ -4380,30 +4381,29 @@ msgstr "" #: actions/version.php:189 msgid "Plugins" -msgstr "" +msgstr "Programtillegg" #: actions/version.php:196 lib/action.php:767 -#, fuzzy msgid "Version" -msgstr "Personlig" +msgstr "Versjon" #: actions/version.php:197 msgid "Author(s)" -msgstr "" +msgstr "Forfatter(e)" -#: classes/File.php:144 +#: classes/File.php:169 #, 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." msgstr "" -#: classes/File.php:154 +#: classes/File.php:179 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:161 +#: classes/File.php:186 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" @@ -4481,10 +4481,10 @@ msgstr "" msgid "Problem saving group inbox." msgstr "" -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, php-format msgid "RT @%1$s %2$s" -msgstr "" +msgstr "RT @%1$s %2$s" #: classes/Subscription.php:66 lib/oauthstore.php:465 msgid "You have been banned from subscribing." @@ -4496,7 +4496,7 @@ msgstr "" #: classes/Subscription.php:74 msgid "User has blocked you." -msgstr "" +msgstr "Bruker har blokkert deg." #: classes/Subscription.php:157 #, fuzzy @@ -4513,34 +4513,30 @@ msgstr "Klarte ikke å lagre avatar-informasjonen" msgid "Couldn't delete subscription OMB token." msgstr "Klarte ikke å lagre avatar-informasjonen" -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "" -#: classes/User.php:373 +#: classes/User.php:378 #, php-format msgid "Welcome to %1$s, @%2$s!" -msgstr "" +msgstr "Velkommen til %1$s, @%2$s." -#: classes/User_group.php:477 -#, fuzzy +#: classes/User_group.php:480 msgid "Could not create group." -msgstr "Klarte ikke å lagre avatar-informasjonen" +msgstr "Kunne ikke opprette gruppe." -#: classes/User_group.php:486 -#, fuzzy +#: classes/User_group.php:489 msgid "Could not set group URI." -msgstr "Klarte ikke å lagre avatar-informasjonen" +msgstr "Kunne ikke stille inn gruppe-URI." -#: classes/User_group.php:507 -#, fuzzy +#: classes/User_group.php:510 msgid "Could not set group membership." -msgstr "Klarte ikke å lagre avatar-informasjonen" +msgstr "Kunne ikke stille inn gruppemedlemskap." -#: classes/User_group.php:521 -#, fuzzy +#: classes/User_group.php:524 msgid "Could not save local group info." -msgstr "Klarte ikke å lagre avatar-informasjonen" +msgstr "Kunne ikke lagre lokal gruppeinformasjon." #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" @@ -4565,20 +4561,20 @@ msgstr "Klarte ikke å lagre profil." #: lib/accountsettingsaction.php:128 msgid "Other" -msgstr "" +msgstr "Andre" #: lib/accountsettingsaction.php:128 msgid "Other options" -msgstr "" +msgstr "Andre valg" #: lib/action.php:144 -#, fuzzy, php-format +#, php-format msgid "%1$s - %2$s" -msgstr "%1$s sin status på %2$s" +msgstr "%1$s - %2$s" #: lib/action.php:159 msgid "Untitled page" -msgstr "" +msgstr "Side uten tittel" #: lib/action.php:424 msgid "Primary site navigation" @@ -4591,7 +4587,6 @@ msgid "Personal profile and friends timeline" msgstr "" #: lib/action.php:433 -#, fuzzy msgctxt "MENU" msgid "Personal" msgstr "Personlig" @@ -4605,10 +4600,9 @@ msgstr "Endre passordet ditt" #. TRANS: Tooltip for main menu option "Services" #: lib/action.php:440 -#, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" -msgstr "Koble til" +msgstr "Koble til tjenester" #: lib/action.php:443 msgid "Connect" @@ -4618,10 +4612,9 @@ msgstr "Koble til" #: lib/action.php:446 msgctxt "TOOLTIP" msgid "Change site configuration" -msgstr "" +msgstr "Endre nettstedskonfigurasjon" #: lib/action.php:449 -#, fuzzy msgctxt "MENU" msgid "Admin" msgstr "Administrator" @@ -4747,7 +4740,7 @@ msgstr "" msgid "StatusNet software license" msgstr "" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4756,12 +4749,12 @@ msgstr "" "**%%site.name%%** er en mikrobloggingtjeneste av [%%site.broughtby%%](%%site." "broughtbyurl%%). " -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** er en mikrobloggingtjeneste. " -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4769,41 +4762,41 @@ msgid "" "org/licensing/licenses/agpl-3.0.html)." msgstr "" -#: lib/action.php:821 +#: lib/action.php:824 msgid "Site content license" msgstr "" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "Alle " -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "lisens." -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "" -#: lib/action.php:1161 +#: lib/action.php:1164 msgid "After" msgstr "Etter" -#: lib/action.php:1169 +#: lib/action.php:1172 msgid "Before" msgstr "Før" @@ -4832,12 +4825,12 @@ msgstr "" #. TRANS: Client error message #: lib/adminpanelaction.php:229 msgid "showForm() not implemented." -msgstr "" +msgstr "showForm() ikke implementert." #. TRANS: Client error message #: lib/adminpanelaction.php:259 msgid "saveSettings() not implemented." -msgstr "" +msgstr "saveSettings() ikke implementert." #. TRANS: Client error message #: lib/adminpanelaction.php:283 @@ -4851,10 +4844,9 @@ msgstr "" #. TRANS: Menu item for site administration #: lib/adminpanelaction.php:350 -#, fuzzy msgctxt "MENU" msgid "Site" -msgstr "Nettstedslogo" +msgstr "Nettsted" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:356 @@ -4871,22 +4863,22 @@ msgstr "Personlig" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:364 msgid "User configuration" -msgstr "" +msgstr "Brukerkonfigurasjon" #. TRANS: Menu item for site administration #: lib/adminpanelaction.php:366 lib/personalgroupnav.php:115 msgid "User" -msgstr "" +msgstr "Bruker" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:372 msgid "Access configuration" -msgstr "" +msgstr "Tilgangskonfigurasjon" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:380 msgid "Paths configuration" -msgstr "" +msgstr "Stikonfigurasjon" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:388 @@ -4908,38 +4900,35 @@ msgstr "" msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" #: lib/applicationeditform.php:136 msgid "Edit application" -msgstr "" +msgstr "Rediger program" #: lib/applicationeditform.php:184 msgid "Icon for this application" -msgstr "" +msgstr "Ikon for dette programmet" #: lib/applicationeditform.php:204 -#, fuzzy, php-format +#, php-format msgid "Describe your application in %d characters" -msgstr "Beskriv degselv og dine interesser med 140 tegn" +msgstr "Beskriv programmet ditt med %d tegn" #: lib/applicationeditform.php:207 -#, fuzzy msgid "Describe your application" -msgstr "Beskriv degselv og dine interesser med 140 tegn" +msgstr "Beskriv programmet ditt" #: lib/applicationeditform.php:216 -#, fuzzy msgid "Source URL" -msgstr "Kilde" +msgstr "Nettadresse til kilde" #: lib/applicationeditform.php:218 -#, fuzzy msgid "URL of the homepage of this application" -msgstr "URL til din hjemmeside, blogg, eller profil på annen nettside." +msgstr "Nettadresse til hjemmesiden for dette programmet" #: lib/applicationeditform.php:224 msgid "Organization responsible for this application" @@ -4956,298 +4945,306 @@ msgstr "" #: lib/applicationeditform.php:258 msgid "Browser" -msgstr "" +msgstr "Nettleser" #: lib/applicationeditform.php:274 msgid "Desktop" -msgstr "" +msgstr "Skrivebord" #: lib/applicationeditform.php:275 msgid "Type of application, browser or desktop" -msgstr "" +msgstr "Type program, nettleser eller skrivebord" #: lib/applicationeditform.php:297 msgid "Read-only" -msgstr "" +msgstr "Skrivebeskyttet" #: lib/applicationeditform.php:315 msgid "Read-write" -msgstr "" +msgstr "Les og skriv" #: lib/applicationeditform.php:316 msgid "Default access for this application: read-only, or read-write" msgstr "" +"Standardtilgang for dette programmet: skrivebeskyttet eller lese- og " +"skrivetilgang" #: lib/applicationlist.php:154 -#, fuzzy msgid "Revoke" -msgstr "Fjern" +msgstr "Tilbakekall" #: lib/attachmentlist.php:87 msgid "Attachments" -msgstr "" +msgstr "Vedlegg" #: lib/attachmentlist.php:265 msgid "Author" -msgstr "" +msgstr "Forfatter" #: lib/attachmentlist.php:278 -#, fuzzy msgid "Provider" -msgstr "Profil" +msgstr "Leverandør" #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" -msgstr "" +msgstr "Notiser hvor dette vedlegget forekommer" #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" msgstr "" #: lib/authenticationplugin.php:220 lib/authenticationplugin.php:225 -#, fuzzy msgid "Password changing failed" -msgstr "Passordet ble lagret" +msgstr "Endring av passord mislyktes" #: lib/authenticationplugin.php:235 -#, fuzzy msgid "Password changing is not allowed" -msgstr "Passordet ble lagret" +msgstr "Endring av passord er ikke tillatt" -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." -msgstr "" +#: lib/command.php:83 lib/command.php:105 +msgid "Notice with that id does not exist" +msgstr "Notis med den id'en finnes ikke" -#: lib/command.php:88 -#, fuzzy, php-format +#: lib/command.php:99 lib/command.php:570 +msgid "User has no last notice" +msgstr "Bruker har ingen siste notis" + +#: lib/command.php:125 +#, php-format msgid "Could not find a user with nickname %s" -msgstr "Klarte ikke å oppdatere bruker med bekreftet e-post." +msgstr "Fant ingen bruker med kallenavn %s" -#: lib/command.php:92 -msgid "It does not make a lot of sense to nudge yourself!" +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "Fant ingen bruker med kallenavn %s" + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." msgstr "" -#: lib/command.php:99 +#: lib/command.php:221 +msgid "It does not make a lot of sense to nudge yourself!" +msgstr "Det gir ikke så mye mening å knuffe seg selv." + +#: lib/command.php:228 #, fuzzy, php-format msgid "Nudge sent to %s" msgstr "Svar til %s" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" "Subscribers: %2$s\n" "Notices: %3$s" msgstr "" +"Abonnement: %1$s\n" +"Abonnenter: %2$s\n" +"Notiser: %3$s" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -msgid "Notice with that id does not exist" -msgstr "" - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -#, fuzzy -msgid "User has no last notice" -msgstr "Brukeren har ingen profil." - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." -msgstr "" +msgstr "Notis markert som favoritt." -#: lib/command.php:217 +#: lib/command.php:317 msgid "You are already a member of that group" msgstr "Du er allerede medlem av den gruppen." -#: lib/command.php:231 +#: lib/command.php:331 #, fuzzy, php-format msgid "Could not join user %s to group %s" msgstr "Klarte ikke å oppdatere bruker." -#: lib/command.php:236 +#: lib/command.php:336 #, fuzzy, php-format msgid "%s joined group %s" msgstr "%1$s sin status på %2$s" -#: lib/command.php:275 +#: lib/command.php:373 #, fuzzy, php-format msgid "Could not remove user %s to group %s" msgstr "Klarte ikke å oppdatere bruker." -#: lib/command.php:280 -#, fuzzy, php-format +#: lib/command.php:378 +#, php-format msgid "%s left group %s" -msgstr "%1$s sin status på %2$s" +msgstr "%s forlot gruppen %s" -#: lib/command.php:309 -#, fuzzy, php-format +#: lib/command.php:401 +#, php-format msgid "Fullname: %s" -msgstr "Fullt navn" +msgstr "Fullt navn: %s" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" -msgstr "" +msgstr "Posisjon: %s" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" -msgstr "" +msgstr "Hjemmeside: %s" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" +msgstr "Om: %s" + +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." msgstr "" -#: lib/command.php:349 +#: lib/command.php:450 #, php-format msgid "Message too long - maximum is %d characters, you sent %d" -msgstr "" +msgstr "Melding for lang - maks er %d tegn, du sendte %d" -#: lib/command.php:367 -#, fuzzy, php-format +#: lib/command.php:468 +#, php-format msgid "Direct message to %s sent" -msgstr "Direktemeldinger til %s" +msgstr "Direktemelding til %s sendt" -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." -msgstr "" +msgstr "Feil ved sending av direktemelding." -#: lib/command.php:413 -#, fuzzy +#: lib/command.php:490 msgid "Cannot repeat your own notice" -msgstr "Kan ikke slette notisen." +msgstr "Kan ikke repetere din egen notis" -#: lib/command.php:418 -#, fuzzy +#: lib/command.php:495 msgid "Already repeated that notice" -msgstr "Kan ikke slette notisen." +msgstr "Allerede repetert den notisen" -#: lib/command.php:426 -#, fuzzy, php-format +#: lib/command.php:503 +#, php-format msgid "Notice from %s repeated" -msgstr "Nytt nick" +msgstr "Notis fra %s repetert" -#: lib/command.php:428 +#: lib/command.php:505 msgid "Error repeating notice." -msgstr "" +msgstr "Feil ved repetering av notis." -#: lib/command.php:482 +#: lib/command.php:536 #, php-format msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "" +msgstr "Notis for lang - maks er %d tegn, du sendte %d" -#: lib/command.php:491 -#, fuzzy, php-format +#: lib/command.php:545 +#, php-format msgid "Reply to %s sent" -msgstr "Svar til %s" +msgstr "Svar til %s sendt" -#: lib/command.php:493 +#: lib/command.php:547 msgid "Error saving notice." -msgstr "" +msgstr "Feil ved lagring av notis." -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "" -#: lib/command.php:554 lib/command.php:589 -#, fuzzy -msgid "No such user" -msgstr "Ingen slik bruker" +#: lib/command.php:602 +msgid "Can't subscribe to OMB profiles by command." +msgstr "" -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "" -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "" -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "" -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "" -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "" -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "" -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" -#: lib/command.php:692 +#: lib/command.php:735 #, fuzzy, php-format msgid "Unsubscribed %s" msgstr "Svar til %s" -#: lib/command.php:709 +#: lib/command.php:752 #, fuzzy msgid "You are not subscribed to anyone." msgstr "Ikke autorisert." -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Ikke autorisert." msgstr[1] "Ikke autorisert." -#: lib/command.php:731 +#: lib/command.php:774 #, fuzzy msgid "No one is subscribed to you." msgstr "Svar til %s" -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Svar til %s" msgstr[1] "Svar til %s" -#: lib/command.php:753 +#: lib/command.php:796 #, fuzzy msgid "You are not a member of any groups." msgstr "Du er allerede logget inn!" -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Du er allerede logget inn!" msgstr[1] "Du er allerede logget inn!" -#: lib/command.php:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5482,49 +5479,49 @@ msgstr "" msgid "This page is not available in a media type you accept" msgstr "Denne siden er ikke tilgjengelig i en mediatype du aksepterer" -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "Bildefilformatet støttes ikke." + +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Filen er for stor. Maks filstørrelse er %s." -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Delvis opplasting." -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Systemfeil ved opplasting av fil." -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Ikke et bilde eller en korrupt fil." -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "Bildefilformatet støttes ikke." - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 msgid "Lost our file." msgstr "Mistet filen vår." -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "Ukjent filtype" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "MB" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "kB" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "[%s]" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, php-format msgid "Unknown inbox source %d." msgstr "Ukjent innbokskilde %d." @@ -5804,7 +5801,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:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 msgid "from" msgstr "fra" @@ -5956,23 +5953,23 @@ msgstr "V" msgid "at" msgstr "" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 msgid "in context" msgstr "" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 msgid "Repeated by" msgstr "Repetert av" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "Svar på denne notisen" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 msgid "Reply" msgstr "Svar" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 msgid "Notice repeated" msgstr "Notis repetert" @@ -6288,47 +6285,47 @@ msgctxt "role" msgid "Moderator" msgstr "Moderator" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "noen få sekunder siden" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "omtrent ett minutt siden" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "omtrent %d minutter siden" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "omtrent én time siden" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "omtrent %d timer siden" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "omtrent én dag siden" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "omtrent %d dager siden" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "omtrent én måned siden" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "omtrent %d måneder siden" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "omtrent ett år siden" @@ -6342,7 +6339,7 @@ msgstr "%s er ikke en gyldig farge." msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "%s er ikke en gyldig farge. Bruk 3 eller 6 heksadesimale tegn." -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "Melding for lang - maks er %1$d tegn, du sendte %2$d." diff --git a/locale/nl/LC_MESSAGES/statusnet.po b/locale/nl/LC_MESSAGES/statusnet.po index c73771f84..09e782be1 100644 --- a/locale/nl/LC_MESSAGES/statusnet.po +++ b/locale/nl/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:50:33+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:43:46+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: out-statusnet\n" @@ -94,7 +94,7 @@ msgstr "Deze pagina bestaat niet" #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -103,10 +103,8 @@ msgstr "Deze pagina bestaat niet" #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Onbekende gebruiker." @@ -208,12 +206,12 @@ msgstr "Updates van %1$s en vrienden op %2$s." #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 msgid "API method not found." msgstr "De API-functie is niet aangetroffen." @@ -346,7 +344,7 @@ msgstr "Er is geen status gevonden met dit ID." msgid "This status is already a favorite." msgstr "Deze mededeling staat al in uw favorietenlijst." -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "Het was niet mogelijk een favoriet aan te maken." @@ -469,7 +467,7 @@ msgstr "De groep is niet aangetroffen!" msgid "You are already a member of that group." msgstr "U bent al lid van die groep." -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "Een beheerder heeft ingesteld dat u geen lid mag worden van die groep." @@ -519,7 +517,7 @@ msgstr "Ongeldig token." #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -667,12 +665,12 @@ msgstr "" msgid "Unsupported format." msgstr "Niet-ondersteund bestandsformaat." -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / Favorieten van %2$s" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s updates op de favorietenlijst geplaatst door %2$s / %3$s" @@ -682,7 +680,7 @@ msgstr "%1$s updates op de favorietenlijst geplaatst door %2$s / %3$s" msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Updates over %2$s" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s updates die een reactie zijn op updates van %2$s / %3$s." @@ -692,7 +690,7 @@ msgstr "%1$s updates die een reactie zijn op updates van %2$s / %3$s." msgid "%s public timeline" msgstr "%s publieke tijdlijn" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s updates van iedereen" @@ -707,12 +705,12 @@ msgstr "Herhaald naar %s" msgid "Repeats of %s" msgstr "Herhaald van %s" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Mededelingen met het label %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Updates met het label %1$s op %2$s!" @@ -773,7 +771,7 @@ msgid "Preview" msgstr "Voorvertoning" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "Verwijderen" @@ -857,8 +855,8 @@ msgstr "Het was niet mogelijk om de blokkadeinformatie op te slaan." #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 msgid "No such group." msgstr "De opgegeven groep bestaat niet." @@ -959,7 +957,7 @@ msgstr "U bent niet de eigenaar van deze applicatie." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "Er is een probleem met uw sessietoken." @@ -1020,7 +1018,7 @@ msgstr "Weet u zeker dat u deze aankondiging wilt verwijderen?" msgid "Do not delete this notice" msgstr "Deze mededeling niet verwijderen" -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "Deze mededeling verwijderen" @@ -1274,7 +1272,7 @@ msgstr "de beschrijving is te lang (maximaal %d tekens)" msgid "Could not update group." msgstr "Het was niet mogelijk de groep bij te werken." -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 msgid "Could not create aliases." msgstr "Het was niet mogelijk de aliassen aan te maken." @@ -1987,7 +1985,7 @@ msgstr "Nieuwe gebruikers uitnodigen" msgid "You are already subscribed to these users:" msgstr "U bent als geabonneerd op deze gebruikers:" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" @@ -2120,7 +2118,7 @@ msgstr "%1$s is lid geworden van de groep %2$s" msgid "You must be logged in to leave a group." msgstr "U moet aangemeld zijn om een groep te kunnen verlaten." -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 msgid "You are not a member of that group." msgstr "U bent geen lid van deze groep" @@ -2235,12 +2233,12 @@ msgstr "Gebruik dit formulier om een nieuwe groep aan te maken." msgid "New message" msgstr "Nieuw bericht" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "U kunt geen bericht naar deze gebruiker zenden." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "Geen inhoud!" @@ -2248,7 +2246,7 @@ msgstr "Geen inhoud!" msgid "No recipient specified." msgstr "Er is geen ontvanger aangegeven." -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "Stuur geen berichten naar uzelf. Zeg het gewoon in uw hoofd." @@ -2262,7 +2260,7 @@ msgstr "Bericht verzonden." msgid "Direct message to %s sent." msgstr "Het directe bericht aan %s is verzonden." -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "Er is een Ajax-fout opgetreden" @@ -2401,8 +2399,8 @@ msgstr "inhoudstype " msgid "Only " msgstr "Alleen " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "Geen ondersteund gegevensformaat." @@ -2533,7 +2531,7 @@ msgstr "Het oude wachtwoord is onjuist" msgid "Error saving user; invalid." msgstr "Fout bij opslaan gebruiker; ongeldig." -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "Het was niet mogelijk het nieuwe wachtwoord op te slaan." @@ -3042,7 +3040,7 @@ msgstr "Wachtwoord herstellen" msgid "Recover password" msgstr "Wachtwoord herstellen" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "Wachtwoordherstel aangevraagd" @@ -3062,21 +3060,21 @@ msgstr "Herstellen" msgid "Enter a nickname or email address." msgstr "Voer een gebruikersnaam of e-mailadres in." -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "" "Er bestaat geen gebruiker met het opgegeven e-mailadres of de opgegeven " "gebruikersnaam." -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "Die gebruiker heeft geen e-mailadres geregistreerd." -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "Er is een fout opgetreden bij het opslaan van de adresbevestiging." -#: actions/recoverpassword.php:325 +#: actions/recoverpassword.php:338 msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." @@ -3084,23 +3082,23 @@ msgstr "" "De instructies om uw wachtwoord te herstellen zijn verstuurd naar het e-" "mailadres dat voor uw gebruiker is geregistreerd." -#: actions/recoverpassword.php:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "Het wachtwoord is onverwacht opnieuw ingesteld." -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "Het wachtwoord moet uit zes of meer tekens bestaan." -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Het wachtwoord en de bevestiging komen niet overeen." -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "Er is een fout opgetreden tijdens het instellen van de gebruiker." -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "Het nieuwe wachtwoord is opgeslagen. U bent nu aangemeld." @@ -3302,7 +3300,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:674 +#: actions/repeat.php:114 lib/noticelist.php:676 msgid "Repeated" msgstr "Herhaald" @@ -4568,7 +4566,7 @@ msgstr "Versie" msgid "Author(s)" msgstr "Auteur(s)" -#: classes/File.php:144 +#: classes/File.php:169 #, php-format msgid "" "No file may be larger than %d bytes and the file you sent was %d bytes. Try " @@ -4577,13 +4575,13 @@ msgstr "" "Bestanden mogen niet groter zijn dan %d bytes, en uw bestand was %d bytes. " "Probeer een kleinere versie te uploaden." -#: classes/File.php:154 +#: classes/File.php:179 #, 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:161 +#: classes/File.php:186 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" @@ -4669,7 +4667,7 @@ msgstr "" "Er is een probleem opgetreden bij het opslaan van het Postvak IN van de " "groep." -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4699,28 +4697,28 @@ msgid "Couldn't delete subscription OMB token." msgstr "" "Het was niet mogelijk om het OMB-token voor het abonnement te verwijderen." -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "Kon abonnement niet verwijderen." -#: classes/User.php:373 +#: classes/User.php:378 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Welkom bij %1$s, @%2$s!" -#: classes/User_group.php:477 +#: classes/User_group.php:480 msgid "Could not create group." msgstr "Het was niet mogelijk de groep aan te maken." -#: classes/User_group.php:486 +#: classes/User_group.php:489 msgid "Could not set group URI." msgstr "Het was niet mogelijk de groeps-URI in te stellen." -#: classes/User_group.php:507 +#: classes/User_group.php:510 msgid "Could not set group membership." msgstr "Het was niet mogelijk het groepslidmaatschap in te stellen." -#: classes/User_group.php:521 +#: classes/User_group.php:524 msgid "Could not save local group info." msgstr "Het was niet mogelijk de lokale groepsinformatie op te slaan." @@ -4924,7 +4922,7 @@ msgstr "Widget" msgid "StatusNet software license" msgstr "Licentie van de StatusNet-software" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4933,12 +4931,12 @@ msgstr "" "**%%site.name%%** is een microblogdienst van [%%site.broughtby%%](%%site." "broughtbyurl%%). " -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** is een microblogdienst. " -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4949,45 +4947,45 @@ msgstr "" "versie %s, beschikbaar onder de [GNU Affero General Public License](http://" "www.fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:821 +#: lib/action.php:824 msgid "Site content license" msgstr "Licentie voor siteinhoud" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Inhoud en gegevens van %1$s zijn persoonlijk en vertrouwelijk." -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" "Auteursrechten op inhoud en gegevens rusten bij %1$s. Alle rechten " "voorbehouden." -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Auteursrechten op inhoud en gegevens rusten bij de respectievelijke " "gebruikers. Alle rechten voorbehouden." -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "Alle " -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "licentie." -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "Paginering" -#: lib/action.php:1161 +#: lib/action.php:1164 msgid "After" msgstr "Later" -#: lib/action.php:1169 +#: lib/action.php:1172 msgid "Before" msgstr "Eerder" @@ -5091,7 +5089,7 @@ msgstr "" "Het API-programma heeft lezen-en-schrijventoegang nodig, maar u hebt alleen " "maar leestoegang." -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5191,37 +5189,50 @@ msgstr "Wachtwoord wijzigen is mislukt" msgid "Password changing is not allowed" msgstr "Wachtwoord wijzigen is niet toegestaan" -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "Commandoresultaten" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "Het commando is uitgevoerd" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "Het uitvoeren van het commando is mislukt" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." -msgstr "Dit commando is nog niet geïmplementeerd." +#: lib/command.php:83 lib/command.php:105 +msgid "Notice with that id does not exist" +msgstr "Er bestaat geen mededeling met dat ID" -#: lib/command.php:88 +#: lib/command.php:99 lib/command.php:570 +msgid "User has no last notice" +msgstr "Deze gebruiker heeft geen laatste mededeling" + +#: lib/command.php:125 #, php-format msgid "Could not find a user with nickname %s" msgstr "De gebruiker %s is niet aangetroffen" -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "De gebruiker %s is niet aangetroffen" + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "Dit commando is nog niet geïmplementeerd." + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "Het heeft niet zoveel zin om uzelf te porren..." -#: lib/command.php:99 +#: lib/command.php:228 #, php-format msgid "Nudge sent to %s" msgstr "De por naar %s is verzonden" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5232,202 +5243,201 @@ msgstr "" "Abonnees: %2$s\n" "Mededelingen: %3$s" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -msgid "Notice with that id does not exist" -msgstr "Er bestaat geen mededeling met dat ID" - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -msgid "User has no last notice" -msgstr "Deze gebruiker heeft geen laatste mededeling" - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "De mededeling is op de favorietenlijst geplaatst." -#: lib/command.php:217 +#: lib/command.php:317 msgid "You are already a member of that group" msgstr "U bent al lid van deze groep" -#: lib/command.php:231 +#: lib/command.php:331 #, php-format msgid "Could not join user %s to group %s" msgstr "Het was niet mogelijk om de gebruiker %s toe te voegen aan de groep %s" -#: lib/command.php:236 +#: lib/command.php:336 #, php-format msgid "%s joined group %s" msgstr "%s is lid geworden van de groep %s" -#: lib/command.php:275 +#: lib/command.php:373 #, php-format msgid "Could not remove user %s to group %s" msgstr "De gebruiker %s kon niet uit de groep %s verwijderd worden" -#: lib/command.php:280 +#: lib/command.php:378 #, php-format msgid "%s left group %s" msgstr "%s heeft de groep %s verlaten" -#: lib/command.php:309 +#: lib/command.php:401 #, php-format msgid "Fullname: %s" msgstr "Volledige naam: %s" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Locatie: %s" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Thuispagina: %s" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "Over: %s" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "" "Het bericht te is lang. De maximale lengte is %d tekens. De lengte van uw " "bericht was %d" -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "Het directe bericht aan %s is verzonden" -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "Er is een fout opgetreden bij het verzonden van het directe bericht." -#: lib/command.php:413 +#: lib/command.php:490 msgid "Cannot repeat your own notice" msgstr "U kunt uw eigen mededelingen niet herhalen." -#: lib/command.php:418 +#: lib/command.php:495 msgid "Already repeated that notice" msgstr "U hebt die mededeling al herhaald." -#: lib/command.php:426 +#: lib/command.php:503 #, php-format msgid "Notice from %s repeated" msgstr "De mededeling van %s is herhaald" -#: lib/command.php:428 +#: lib/command.php:505 msgid "Error repeating notice." msgstr "Er is een fout opgetreden bij het herhalen van de mededeling." -#: lib/command.php:482 +#: lib/command.php:536 #, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "" "De mededeling is te lang. De maximale lengte is %d tekens. Uw mededeling " "bevatte %d tekens" -#: lib/command.php:491 +#: lib/command.php:545 #, php-format msgid "Reply to %s sent" msgstr "Het antwoord aan %s is verzonden" -#: lib/command.php:493 +#: lib/command.php:547 msgid "Error saving notice." msgstr "Er is een fout opgetreden bij het opslaan van de mededeling." -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "Geef de naam op van de gebruiker waarop u wilt abonneren" -#: lib/command.php:554 lib/command.php:589 -msgid "No such user" -msgstr "De opgegeven gebruiker bestaat niet" +#: lib/command.php:602 +#, fuzzy +msgid "Can't subscribe to OMB profiles by command." +msgstr "U bent niet geabonneerd op dat profiel." -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "Geabonneerd op %s" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "" "Geef de naam op van de gebruiker waarvoor u het abonnement wilt opzeggen" -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "Uw abonnement op %s is opgezegd" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "Dit commando is nog niet geïmplementeerd." -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "Notificaties uitgeschakeld." -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "Het is niet mogelijk de mededelingen uit te schakelen." -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "Notificaties ingeschakeld." -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "Het is niet mogelijk de notificatie uit te schakelen." -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "Het aanmeldcommando is uitgeschakeld" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" "Deze verwijzing kan slechts één keer gebruikt worden en is twee minuten " "geldig: %s" -#: lib/command.php:692 +#: lib/command.php:735 #, php-format msgid "Unsubscribed %s" msgstr "Het abonnement van %s is opgeheven" -#: lib/command.php:709 +#: lib/command.php:752 msgid "You are not subscribed to anyone." msgstr "U bent op geen enkele gebruiker geabonneerd." -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "U bent geabonneerd op deze gebruiker:" msgstr[1] "U bent geabonneerd op deze gebruikers:" -#: lib/command.php:731 +#: lib/command.php:774 msgid "No one is subscribed to you." msgstr "Niemand heeft een abonnenment op u." -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Deze gebruiker is op u geabonneerd:" msgstr[1] "Deze gebruikers zijn op u geabonneerd:" -#: lib/command.php:753 +#: lib/command.php:796 msgid "You are not a member of any groups." msgstr "U bent lid van geen enkele groep." -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "U bent lid van deze groep:" msgstr[1] "U bent lid van deze groepen:" -#: lib/command.php:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5700,49 +5710,49 @@ msgstr "Labels in de groepsmededelingen van %s" msgid "This page is not available in a media type you accept" msgstr "Deze pagina is niet beschikbaar in een mediatype dat u accepteert" -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "Niet ondersteund beeldbestandsformaat." + +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Dat bestand is te groot. De maximale bestandsgrootte is %s." -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Gedeeltelijke upload." -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Er is een systeemfout opgetreden tijdens het uploaden van het bestand." -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Het bestand is geen afbeelding of het bestand is beschadigd." -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "Niet ondersteund beeldbestandsformaat." - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 msgid "Lost our file." msgstr "Het bestand is zoekgeraakt." -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "Onbekend bestandstype" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "MB" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "kB" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "[%s]" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, php-format msgid "Unknown inbox source %d." msgstr "Onbekende bron Postvak IN %d." @@ -6024,7 +6034,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:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 msgid "from" msgstr "van" @@ -6182,23 +6192,23 @@ msgstr "W" msgid "at" msgstr "op" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 msgid "in context" msgstr "in context" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 msgid "Repeated by" msgstr "Herhaald door" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "Op deze mededeling antwoorden" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 msgid "Reply" msgstr "Antwoorden" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 msgid "Notice repeated" msgstr "Mededeling herhaald" @@ -6509,47 +6519,47 @@ msgctxt "role" msgid "Moderator" msgstr "Moderator" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "een paar seconden geleden" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "ongeveer een minuut geleden" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "ongeveer %d minuten geleden" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "ongeveer een uur geleden" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "ongeveer %d uur geleden" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "ongeveer een dag geleden" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "ongeveer %d dagen geleden" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "ongeveer een maand geleden" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "ongeveer %d maanden geleden" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "ongeveer een jaar geleden" @@ -6563,7 +6573,7 @@ msgstr "%s is geen geldige kleur." msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "%s is geen geldige kleur. Gebruik drie of zes hexadecimale tekens." -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "" diff --git a/locale/nn/LC_MESSAGES/statusnet.po b/locale/nn/LC_MESSAGES/statusnet.po index a16e15649..900e9fa19 100644 --- a/locale/nn/LC_MESSAGES/statusnet.po +++ b/locale/nn/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:50:30+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:43:43+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 (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nn\n" "X-Message-Group: out-statusnet\n" @@ -100,7 +100,7 @@ msgstr "Dette emneord finst ikkje." #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -109,10 +109,8 @@ msgstr "Dette emneord finst ikkje." #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Brukaren finst ikkje." @@ -206,12 +204,12 @@ msgstr "Oppdateringar frå %1$s og vener på %2$s!" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "Fann ikkje API-metode." @@ -345,7 +343,7 @@ msgstr "Fann ingen status med den ID-en." msgid "This status is already a favorite." msgstr "Denne notisen er alt ein favoritt!" -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "Kunne ikkje lagre favoritt." @@ -469,7 +467,7 @@ msgstr "Fann ikkje API-metode." msgid "You are already a member of that group." msgstr "Du er allereie medlem av den gruppa" -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "" @@ -521,7 +519,7 @@ msgstr "Ugyldig storleik." #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -664,12 +662,12 @@ msgstr "" msgid "Unsupported format." msgstr "Støttar ikkje bileteformatet." -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, fuzzy, php-format msgid "%1$s / Favorites from %2$s" msgstr "%s / Favorittar frå %s" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, fuzzy, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%s oppdateringar favorisert av %s / %s." @@ -679,7 +677,7 @@ msgstr "%s oppdateringar favorisert av %s / %s." msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Oppdateringar som svarar til %2$s" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s oppdateringar som svarar på oppdateringar frå %2$s / %3$s." @@ -689,7 +687,7 @@ msgstr "%1$s oppdateringar som svarar på oppdateringar frå %2$s / %3$s." msgid "%s public timeline" msgstr "%s offentleg tidsline" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s oppdateringar frå alle saman!" @@ -704,12 +702,12 @@ msgstr "Svar til %s" msgid "Repeats of %s" msgstr "Svar til %s" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Notisar merka med %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Oppdateringar frå %1$s på %2$s!" @@ -770,7 +768,7 @@ msgid "Preview" msgstr "Forhandsvis" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "Slett" @@ -853,8 +851,8 @@ msgstr "Lagring av informasjon feila." #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 msgid "No such group." msgstr "Denne gruppa finst ikkje." @@ -963,7 +961,7 @@ msgstr "Du er ikkje medlem av den gruppa." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "Det var eit problem med sesjons billetten din." @@ -1026,7 +1024,7 @@ msgstr "Sikker på at du vil sletta notisen?" msgid "Do not delete this notice" msgstr "Kan ikkje sletta notisen." -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "Slett denne notisen" @@ -1301,7 +1299,7 @@ msgstr "skildringa er for lang (maks 140 teikn)." msgid "Could not update group." msgstr "Kann ikkje oppdatera gruppa." -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 #, fuzzy msgid "Could not create aliases." msgstr "Kunne ikkje lagre favoritt." @@ -2014,7 +2012,7 @@ msgstr "Invitér nye brukarar" msgid "You are already subscribed to these users:" msgstr "Du tingar allereie oppdatering frå desse brukarane:" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" @@ -2142,7 +2140,7 @@ msgstr "%s blei medlem av gruppe %s" msgid "You must be logged in to leave a group." msgstr "Du må være innlogga for å melde deg ut av ei gruppe." -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 msgid "You are not a member of that group." msgstr "Du er ikkje medlem av den gruppa." @@ -2261,12 +2259,12 @@ msgstr "Bruk dette skjemaet for å lage ein ny gruppe." msgid "New message" msgstr "Ny melding" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "Du kan ikkje sende melding til denne brukaren." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "Ingen innhald." @@ -2274,7 +2272,7 @@ msgstr "Ingen innhald." msgid "No recipient specified." msgstr "Ingen mottakar spesifisert." -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" @@ -2291,7 +2289,7 @@ msgstr "Melding" msgid "Direct message to %s sent." msgstr "Direkte melding til %s sendt" -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "Ajax feil" @@ -2423,8 +2421,8 @@ msgstr "Kopla til" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "Ikkje eit støtta dataformat." @@ -2562,7 +2560,7 @@ msgstr "Det gamle passordet stemmer ikkje" msgid "Error saving user; invalid." msgstr "Feil ved lagring av brukar; fungerer ikkje." -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "Klarar ikkje lagra nytt passord." @@ -3066,7 +3064,7 @@ msgstr "Tilbakestill passord" msgid "Recover password" msgstr "Hent fram passord" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "Passord opphenting etterspurt" @@ -3086,19 +3084,19 @@ msgstr "Avbryt" msgid "Enter a nickname or email address." msgstr "Skriv inn kallenamn eller epostadresse." -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "Ingen brukar med den epostadressa eller det brukarnamnet." -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "Ingen registrert epostadresse for den brukaren." -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "Feil med lagring av adressestadfesting." -#: actions/recoverpassword.php:325 +#: actions/recoverpassword.php:338 msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." @@ -3106,23 +3104,23 @@ msgstr "" "Instruksjonar for å få att passordet ditt er send til epostadressa som er " "lagra i kontoen din." -#: actions/recoverpassword.php:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "Uventa passordnullstilling." -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "Passord må vera 6 tekn eller meir." -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Passord og stadfesting stemmer ikkje." -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "Feil ved å setja brukar." -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "Lagra det nye passordet. Du er logga inn." @@ -3331,7 +3329,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:674 +#: actions/repeat.php:114 lib/noticelist.php:676 #, fuzzy msgid "Repeated" msgstr "Lag" @@ -4570,19 +4568,19 @@ msgstr "Personleg" msgid "Author(s)" msgstr "" -#: classes/File.php:144 +#: classes/File.php:169 #, 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." msgstr "" -#: classes/File.php:154 +#: classes/File.php:179 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:161 +#: classes/File.php:186 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" @@ -4666,7 +4664,7 @@ msgstr "Eit problem oppstod ved lagring av notis." msgid "Problem saving group inbox." msgstr "Eit problem oppstod ved lagring av notis." -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4699,29 +4697,29 @@ msgstr "Kan ikkje sletta tinging." msgid "Couldn't delete subscription OMB token." msgstr "Kan ikkje sletta tinging." -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "Kan ikkje sletta tinging." -#: classes/User.php:373 +#: classes/User.php:378 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Melding til %1$s på %2$s" -#: classes/User_group.php:477 +#: classes/User_group.php:480 msgid "Could not create group." msgstr "Kunne ikkje laga gruppa." -#: classes/User_group.php:486 +#: classes/User_group.php:489 #, fuzzy msgid "Could not set group URI." msgstr "Kunne ikkje bli med i gruppa." -#: classes/User_group.php:507 +#: classes/User_group.php:510 msgid "Could not set group membership." msgstr "Kunne ikkje bli med i gruppa." -#: classes/User_group.php:521 +#: classes/User_group.php:524 #, fuzzy msgid "Could not save local group info." msgstr "Kunne ikkje lagra abonnement." @@ -4945,7 +4943,7 @@ msgstr "Dult" msgid "StatusNet software license" msgstr "StatusNets programvarelisens" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4954,12 +4952,12 @@ msgstr "" "**%%site.name%%** er ei mikrobloggingteneste av [%%site.broughtby%%](%%site." "broughtbyurl%%). " -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** er ei mikrobloggingteneste. " -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4970,42 +4968,42 @@ msgstr "" "%s, tilgjengeleg under [GNU Affero General Public License](http://www.fsf." "org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:821 +#: lib/action.php:824 #, fuzzy msgid "Site content license" msgstr "StatusNets programvarelisens" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "Alle" -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "lisens." -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "Paginering" -#: lib/action.php:1161 +#: lib/action.php:1164 msgid "After" msgstr "« Etter" -#: lib/action.php:1169 +#: lib/action.php:1172 msgid "Before" msgstr "Før »" @@ -5122,7 +5120,7 @@ msgstr "SMS bekreftelse" msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5228,37 +5226,51 @@ msgstr "Endra passord" msgid "Password changing is not allowed" msgstr "Endra passord" -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "Resultat frå kommandoen" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "Kommandoen utførd" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "Kommandoen feila" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." -msgstr "Orsak, men kommandoen er ikkje laga enno." +#: lib/command.php:83 lib/command.php:105 +#, fuzzy +msgid "Notice with that id does not exist" +msgstr "Fann ingen profil med den IDen." -#: lib/command.php:88 +#: lib/command.php:99 lib/command.php:570 +msgid "User has no last notice" +msgstr "Brukaren har ikkje siste notis" + +#: lib/command.php:125 #, fuzzy, php-format msgid "Could not find a user with nickname %s" msgstr "Kan ikkje oppdatera brukar med stadfesta e-postadresse." -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "Kan ikkje oppdatera brukar med stadfesta e-postadresse." + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "Orsak, men kommandoen er ikkje laga enno." + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" -#: lib/command.php:99 +#: lib/command.php:228 #, fuzzy, php-format msgid "Nudge sent to %s" msgstr "Dytta!" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5266,203 +5278,201 @@ msgid "" "Notices: %3$s" msgstr "" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -#, fuzzy -msgid "Notice with that id does not exist" -msgstr "Fann ingen profil med den IDen." - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -msgid "User has no last notice" -msgstr "Brukaren har ikkje siste notis" - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "Notis markert som favoritt." -#: lib/command.php:217 +#: lib/command.php:317 msgid "You are already a member of that group" msgstr "Du er allereie medlem av den gruppa" -#: lib/command.php:231 +#: lib/command.php:331 #, php-format msgid "Could not join user %s to group %s" msgstr "Kunne ikkje melde brukaren %s inn i gruppa %s" -#: lib/command.php:236 +#: lib/command.php:336 #, php-format msgid "%s joined group %s" msgstr "%s blei medlem av gruppe %s" -#: lib/command.php:275 +#: lib/command.php:373 #, php-format msgid "Could not remove user %s to group %s" msgstr "Kunne ikkje fjerne %s fra %s gruppa " -#: lib/command.php:280 +#: lib/command.php:378 #, php-format msgid "%s left group %s" msgstr "%s forlot %s gruppa" -#: lib/command.php:309 +#: lib/command.php:401 #, php-format msgid "Fullname: %s" msgstr "Fullt namn: %s" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Stad: %s" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Heimeside: %s" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "Om: %s" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, fuzzy, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "Melding for lang - maksimum 140 teikn, du skreiv %d" -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "Direkte melding til %s sendt" -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "Ein feil oppstod ved sending av direkte melding." -#: lib/command.php:413 +#: lib/command.php:490 #, fuzzy msgid "Cannot repeat your own notice" msgstr "Kan ikkje slå på notifikasjon." -#: lib/command.php:418 +#: lib/command.php:495 #, fuzzy msgid "Already repeated that notice" msgstr "Slett denne notisen" -#: lib/command.php:426 +#: lib/command.php:503 #, fuzzy, php-format msgid "Notice from %s repeated" msgstr "Melding lagra" -#: lib/command.php:428 +#: lib/command.php:505 #, fuzzy msgid "Error repeating notice." msgstr "Eit problem oppstod ved lagring av notis." -#: lib/command.php:482 +#: lib/command.php:536 #, fuzzy, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "Melding for lang - maksimum 140 teikn, du skreiv %d" -#: lib/command.php:491 +#: lib/command.php:545 #, fuzzy, php-format msgid "Reply to %s sent" msgstr "Svar på denne notisen" -#: lib/command.php:493 +#: lib/command.php:547 #, fuzzy msgid "Error saving notice." msgstr "Eit problem oppstod ved lagring av notis." -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "Spesifer namnet til brukaren du vil tinge" -#: lib/command.php:554 lib/command.php:589 -msgid "No such user" -msgstr "Brukaren finst ikkje." +#: lib/command.php:602 +#, fuzzy +msgid "Can't subscribe to OMB profiles by command." +msgstr "Du tingar ikkje oppdateringar til den profilen." -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "Tingar %s" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "Spesifer namnet til brukar du vil fjerne tinging på" -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "Tingar ikkje %s lengre" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "Kommando ikkje implementert." -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "Notifikasjon av." -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "Kan ikkje skru av notifikasjon." -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "Notifikasjon på." -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "Kan ikkje slå på notifikasjon." -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" -#: lib/command.php:692 +#: lib/command.php:735 #, fuzzy, php-format msgid "Unsubscribed %s" msgstr "Tingar ikkje %s lengre" -#: lib/command.php:709 +#: lib/command.php:752 #, fuzzy msgid "You are not subscribed to anyone." msgstr "Du tingar ikkje oppdateringar til den profilen." -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Du tingar allereie oppdatering frå desse brukarane:" msgstr[1] "Du tingar allereie oppdatering frå desse brukarane:" -#: lib/command.php:731 +#: lib/command.php:774 #, fuzzy msgid "No one is subscribed to you." msgstr "Kan ikkje tinga andre til deg." -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Kan ikkje tinga andre til deg." msgstr[1] "Kan ikkje tinga andre til deg." -#: lib/command.php:753 +#: lib/command.php:796 #, fuzzy msgid "You are not a member of any groups." msgstr "Du er ikkje medlem av den gruppa." -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Du er ikkje medlem av den gruppa." msgstr[1] "Du er ikkje medlem av den gruppa." -#: lib/command.php:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5698,49 +5708,49 @@ msgstr "Merkelappar i %s gruppa sine notisar" msgid "This page is not available in a media type you accept" msgstr "Denne sida er ikkje tilgjengeleg i nokon mediatype du aksepterer." -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "Støttar ikkje bileteformatet." + +#: lib/imagefile.php:90 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Du kan lasta opp ein logo for gruppa." -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Hallvegs opplasta." -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Systemfeil ved opplasting av fil." -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Korrupt bilete." -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "Støttar ikkje bileteformatet." - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 msgid "Lost our file." msgstr "Mista fila vår." -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "Ukjend fil type" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, php-format msgid "Unknown inbox source %d." msgstr "" @@ -5950,7 +5960,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 #, fuzzy msgid "from" msgstr " frå " @@ -6106,25 +6116,25 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 #, fuzzy msgid "in context" msgstr "Ingen innhald." -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 #, fuzzy msgid "Repeated by" msgstr "Lag" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "Svar på denne notisen" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 msgid "Reply" msgstr "Svar" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 #, fuzzy msgid "Notice repeated" msgstr "Melding lagra" @@ -6453,47 +6463,47 @@ msgctxt "role" msgid "Moderator" msgstr "" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "eit par sekund sidan" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "omtrent eitt minutt sidan" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "~%d minutt sidan" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "omtrent ein time sidan" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "~%d timar sidan" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "omtrent ein dag sidan" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "~%d dagar sidan" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "omtrent ein månad sidan" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "~%d månadar sidan" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "omtrent eitt år sidan" @@ -6507,7 +6517,7 @@ msgstr "Heimesida er ikkje ei gyldig internettadresse." msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "" -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, fuzzy, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "Melding for lang - maksimum 140 teikn, du skreiv %d" diff --git a/locale/pl/LC_MESSAGES/statusnet.po b/locale/pl/LC_MESSAGES/statusnet.po index 3a0bd39c3..d7120fab9 100644 --- a/locale/pl/LC_MESSAGES/statusnet.po +++ b/locale/pl/LC_MESSAGES/statusnet.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:50:36+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:43:49+0000\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" @@ -19,7 +19,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pl\n" "X-Message-Group: out-statusnet\n" @@ -97,7 +97,7 @@ msgstr "Nie ma takiej strony" #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -106,10 +106,8 @@ msgstr "Nie ma takiej strony" #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Brak takiego użytkownika." @@ -211,12 +209,12 @@ msgstr "Aktualizacje z %1$s i przyjaciół na %2$s." #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 msgid "API method not found." msgstr "Nie odnaleziono metody API." @@ -348,7 +346,7 @@ msgstr "Nie odnaleziono stanów z tym identyfikatorem." msgid "This status is already a favorite." msgstr "Ten stan jest już ulubiony." -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "Nie można utworzyć ulubionego wpisu." @@ -466,7 +464,7 @@ msgstr "Nie odnaleziono grupy." msgid "You are already a member of that group." msgstr "Jesteś już członkiem tej grupy." -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "Zostałeś zablokowany w tej grupie przez administratora." @@ -516,7 +514,7 @@ msgstr "Nieprawidłowy token." #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -655,12 +653,12 @@ msgstr "Maksymalny rozmiar wpisu wynosi %d znaków, w tym adres URL załącznika msgid "Unsupported format." msgstr "Nieobsługiwany format." -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s/ulubione wpisy od %2$s" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "Użytkownik %1$s aktualizuje ulubione według %2$s/%2$s." @@ -670,7 +668,7 @@ msgstr "Użytkownik %1$s aktualizuje ulubione według %2$s/%2$s." msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s/aktualizacje wspominające %2$s" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s aktualizuje tę odpowiedź na aktualizacje od %2$s/%3$s." @@ -680,7 +678,7 @@ msgstr "%1$s aktualizuje tę odpowiedź na aktualizacje od %2$s/%3$s." msgid "%s public timeline" msgstr "Publiczna oś czasu użytkownika %s" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "Użytkownik %s aktualizuje od każdego." @@ -695,12 +693,12 @@ msgstr "Powtórzone dla %s" msgid "Repeats of %s" msgstr "Powtórzenia %s" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Wpisy ze znacznikiem %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Aktualizacje ze znacznikiem %1$s na %2$s." @@ -760,7 +758,7 @@ msgid "Preview" msgstr "Podgląd" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "Usuń" @@ -843,8 +841,8 @@ msgstr "Zapisanie informacji o blokadzie nie powiodło się." #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 msgid "No such group." msgstr "Nie ma takiej grupy." @@ -945,7 +943,7 @@ msgstr "Nie jesteś właścicielem tej aplikacji." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "Wystąpił problem z tokenem sesji." @@ -1005,7 +1003,7 @@ msgstr "Jesteś pewien, że chcesz usunąć ten wpis?" msgid "Do not delete this notice" msgstr "Nie usuwaj tego wpisu" -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "Usuń ten wpis" @@ -1256,7 +1254,7 @@ msgstr "opis jest za długi (maksymalnie %d znaków)." msgid "Could not update group." msgstr "Nie można zaktualizować grupy." -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 msgid "Could not create aliases." msgstr "Nie można utworzyć aliasów." @@ -1955,7 +1953,7 @@ msgstr "Zaproś nowych użytkowników" msgid "You are already subscribed to these users:" msgstr "Jesteś już subskrybowany do tych użytkowników:" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" @@ -2086,7 +2084,7 @@ msgstr "Użytkownik %1$s dołączył do grupy %2$s" msgid "You must be logged in to leave a group." msgstr "Musisz być zalogowany, aby opuścić grupę." -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 msgid "You are not a member of that group." msgstr "Nie jesteś członkiem tej grupy." @@ -2201,12 +2199,12 @@ msgstr "Użyj tego formularza, aby utworzyć nową grupę." msgid "New message" msgstr "Nowa wiadomość" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "Nie można wysłać wiadomości do tego użytkownika." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "Brak treści." @@ -2214,7 +2212,7 @@ msgstr "Brak treści." msgid "No recipient specified." msgstr "Nie podano odbiorcy." -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "Nie wysyłaj wiadomości do siebie, po prostu powiedz to sobie po cichu." @@ -2228,7 +2226,7 @@ msgstr "Wysłano wiadomość" msgid "Direct message to %s sent." msgstr "Wysłano bezpośrednią wiadomość do użytkownika %s." -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "Błąd AJAX" @@ -2361,8 +2359,8 @@ msgstr "typ zawartości " msgid "Only " msgstr "Tylko " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "To nie jest obsługiwany format danych." @@ -2493,7 +2491,7 @@ msgstr "Niepoprawne poprzednie hasło" msgid "Error saving user; invalid." msgstr "Błąd podczas zapisywania użytkownika; nieprawidłowy." -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "Nie można zapisać nowego hasła." @@ -2995,7 +2993,7 @@ msgstr "Przywróć hasło" msgid "Recover password" msgstr "Przywróć hasło" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "Zażądano przywracania hasła" @@ -3015,19 +3013,19 @@ msgstr "Przywróć" msgid "Enter a nickname or email address." msgstr "Podaj pseudonim lub adres e-mail." -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "Brak użytkownika z tym adresem e-mail lub nazwą użytkownika." -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "Brak zarejestrowanych adresów e-mail dla tego użytkownika." -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "Błąd podczas zapisywania potwierdzenia adresu." -#: actions/recoverpassword.php:325 +#: actions/recoverpassword.php:338 msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." @@ -3035,23 +3033,23 @@ msgstr "" "Instrukcje przywracania hasła zostały wysłane na adres e-mail zarejestrowany " "z twoim kontem." -#: actions/recoverpassword.php:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "Nieoczekiwane przywrócenie hasła." -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "Hasło musi mieć sześć lub więcej znaków." -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Hasło i potwierdzenie nie pasują do siebie." -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "Błąd podczas ustawiania użytkownika." -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "Pomyślnie zapisano nowe hasło. Jesteś teraz zalogowany." @@ -3254,7 +3252,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:674 +#: actions/repeat.php:114 lib/noticelist.php:676 msgid "Repeated" msgstr "Powtórzono" @@ -4507,7 +4505,7 @@ msgstr "Wersja" msgid "Author(s)" msgstr "Autorzy" -#: classes/File.php:144 +#: classes/File.php:169 #, php-format msgid "" "No file may be larger than %d bytes and the file you sent was %d bytes. Try " @@ -4516,13 +4514,13 @@ 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ę." -#: classes/File.php:154 +#: classes/File.php:179 #, 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:161 +#: classes/File.php:186 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" @@ -4602,7 +4600,7 @@ msgstr "Problem podczas zapisywania wpisu." msgid "Problem saving group inbox." msgstr "Problem podczas zapisywania skrzynki odbiorczej grupy." -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4631,28 +4629,28 @@ msgstr "Nie można usunąć autosubskrypcji." msgid "Couldn't delete subscription OMB token." msgstr "Nie można usunąć tokenu subskrypcji OMB." -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "Nie można usunąć subskrypcji." -#: classes/User.php:373 +#: classes/User.php:378 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Witaj w %1$s, @%2$s." -#: classes/User_group.php:477 +#: classes/User_group.php:480 msgid "Could not create group." msgstr "Nie można utworzyć grupy." -#: classes/User_group.php:486 +#: classes/User_group.php:489 msgid "Could not set group URI." msgstr "Nie można ustawić adresu URI grupy." -#: classes/User_group.php:507 +#: classes/User_group.php:510 msgid "Could not set group membership." msgstr "Nie można ustawić członkostwa w grupie." -#: classes/User_group.php:521 +#: classes/User_group.php:524 msgid "Could not save local group info." msgstr "Nie można zapisać informacji o lokalnej grupie." @@ -4856,7 +4854,7 @@ msgstr "Odznaka" msgid "StatusNet software license" msgstr "Licencja oprogramowania StatusNet" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4865,12 +4863,12 @@ msgstr "" "**%%site.name%%** jest usługą mikroblogowania prowadzoną przez [%%site." "broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** jest usługą mikroblogowania. " -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4881,45 +4879,45 @@ msgstr "" "status.net/) w wersji %s, dostępnego na [Powszechnej Licencji Publicznej GNU " "Affero](http://www.fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:821 +#: lib/action.php:824 msgid "Site content license" msgstr "Licencja zawartości witryny" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Treść i dane %1$s są prywatne i poufne." -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" "Prawa autorskie do treści i danych są własnością %1$s. Wszystkie prawa " "zastrzeżone." -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Prawa autorskie do treści i danych są własnością współtwórców. Wszystkie " "prawa zastrzeżone." -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "Wszystko " -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "licencja." -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "Paginacja" -#: lib/action.php:1161 +#: lib/action.php:1164 msgid "After" msgstr "Później" -#: lib/action.php:1169 +#: lib/action.php:1172 msgid "Before" msgstr "Wcześniej" @@ -5023,7 +5021,7 @@ msgstr "" "Zasób API wymaga dostępu do zapisu i do odczytu, ale powiadasz dostęp tylko " "do odczytu." -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5124,37 +5122,50 @@ msgstr "Zmiana hasła nie powiodła się" msgid "Password changing is not allowed" msgstr "Zmiana hasła nie jest dozwolona" -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "Wyniki polecenia" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "Zakończono polecenie" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "Polecenie nie powiodło się" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." -msgstr "Te polecenie nie zostało jeszcze zaimplementowane." +#: lib/command.php:83 lib/command.php:105 +msgid "Notice with that id does not exist" +msgstr "Wpis z tym identyfikatorem nie istnieje." -#: lib/command.php:88 +#: lib/command.php:99 lib/command.php:570 +msgid "User has no last notice" +msgstr "Użytkownik nie posiada ostatniego wpisu." + +#: lib/command.php:125 #, php-format msgid "Could not find a user with nickname %s" msgstr "Nie można odnaleźć użytkownika z pseudonimem %s." -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "Nie można odnaleźć użytkownika z pseudonimem %s." + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "Te polecenie nie zostało jeszcze zaimplementowane." + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "Szturchanie samego siebie nie ma zbyt wiele sensu." -#: lib/command.php:99 +#: lib/command.php:228 #, php-format msgid "Nudge sent to %s" msgstr "Wysłano szturchnięcie do użytkownika %s." -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5165,200 +5176,199 @@ msgstr "" "Subskrybenci: %2$s\n" "Wpisy: %3$s" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -msgid "Notice with that id does not exist" -msgstr "Wpis z tym identyfikatorem nie istnieje." - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -msgid "User has no last notice" -msgstr "Użytkownik nie posiada ostatniego wpisu." - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "Zaznaczono wpis jako ulubiony." -#: lib/command.php:217 +#: lib/command.php:317 msgid "You are already a member of that group" msgstr "Jesteś już członkiem tej grupy." -#: lib/command.php:231 +#: lib/command.php:331 #, php-format msgid "Could not join user %s to group %s" msgstr "Nie można dołączyć użytkownika %1$s do grupy %2$s." -#: lib/command.php:236 +#: lib/command.php:336 #, php-format msgid "%s joined group %s" msgstr "Użytkownik %1$s dołączył do grupy %2$s" -#: lib/command.php:275 +#: lib/command.php:373 #, php-format msgid "Could not remove user %s to group %s" msgstr "Nie można usunąć użytkownika %1$s z grupy %2$s." -#: lib/command.php:280 +#: lib/command.php:378 #, php-format msgid "%s left group %s" msgstr "Użytkownik %1$s opuścił grupę %2$s" -#: lib/command.php:309 +#: lib/command.php:401 #, php-format msgid "Fullname: %s" msgstr "Imię i nazwisko: %s" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Położenie: %s" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Strona domowa: %s" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "O mnie: %s" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "Wiadomość jest za długa - maksymalnie %1$d znaków, wysłano %2$d." -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "Wysłano bezpośrednią wiadomość do użytkownika %s." -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "Błąd podczas wysyłania bezpośredniej wiadomości." -#: lib/command.php:413 +#: lib/command.php:490 msgid "Cannot repeat your own notice" msgstr "Nie można powtórzyć własnego wpisu" -#: lib/command.php:418 +#: lib/command.php:495 msgid "Already repeated that notice" msgstr "Już powtórzono ten wpis" -#: lib/command.php:426 +#: lib/command.php:503 #, php-format msgid "Notice from %s repeated" msgstr "Powtórzono wpis od użytkownika %s" -#: lib/command.php:428 +#: lib/command.php:505 msgid "Error repeating notice." msgstr "Błąd podczas powtarzania wpisu." -#: lib/command.php:482 +#: lib/command.php:536 #, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "Wpis jest za długi - maksymalnie %1$d znaków, wysłano %2$d." -#: lib/command.php:491 +#: lib/command.php:545 #, php-format msgid "Reply to %s sent" msgstr "Wysłano odpowiedź do %s." -#: lib/command.php:493 +#: lib/command.php:547 msgid "Error saving notice." msgstr "Błąd podczas zapisywania wpisu." -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "Podaj nazwę użytkownika do subskrybowania." -#: lib/command.php:554 lib/command.php:589 -msgid "No such user" -msgstr "Brak takiego użytkownika." +#: lib/command.php:602 +#, fuzzy +msgid "Can't subscribe to OMB profiles by command." +msgstr "Nie jesteś subskrybowany do tego profilu." -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "Subskrybowano użytkownika %s" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "Podaj nazwę użytkownika do usunięcia subskrypcji." -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "Usunięto subskrypcję użytkownika %s" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "Nie zaimplementowano polecenia." -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "Wyłączono powiadomienia." -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "Nie można wyłączyć powiadomień." -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "Włączono powiadomienia." -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "Nie można włączyć powiadomień." -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "Polecenie logowania jest wyłączone" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" "Tego odnośnika można użyć tylko raz i będzie prawidłowy tylko przez dwie " "minuty: %s." -#: lib/command.php:692 +#: lib/command.php:735 #, php-format msgid "Unsubscribed %s" msgstr "Usunięto subskrypcję użytkownika %s" -#: lib/command.php:709 +#: lib/command.php:752 msgid "You are not subscribed to anyone." msgstr "Nie subskrybujesz nikogo." -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Subskrybujesz tę osobę:" msgstr[1] "Subskrybujesz te osoby:" msgstr[2] "Subskrybujesz te osoby:" -#: lib/command.php:731 +#: lib/command.php:774 msgid "No one is subscribed to you." msgstr "Nikt cię nie subskrybuje." -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Ta osoba cię subskrybuje:" msgstr[1] "Te osoby cię subskrybują:" msgstr[2] "Te osoby cię subskrybują:" -#: lib/command.php:753 +#: lib/command.php:796 msgid "You are not a member of any groups." msgstr "Nie jesteś członkiem żadnej grupy." -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Jesteś członkiem tej grupy:" msgstr[1] "Jesteś członkiem tych grup:" msgstr[2] "Jesteś członkiem tych grup:" -#: lib/command.php:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5630,49 +5640,49 @@ msgstr "Znaczniki we wpisach grupy %s" msgid "This page is not available in a media type you accept" msgstr "Ta strona jest niedostępna dla akceptowanego typu medium" -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "Nieobsługiwany format pliku obrazu." + +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Ten plik jest za duży. Maksymalny rozmiar pliku to %s." -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Częściowo wysłano." -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Błąd systemu podczas wysyłania pliku." -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "To nie jest obraz lub lub plik jest uszkodzony." -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "Nieobsługiwany format pliku obrazu." - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 msgid "Lost our file." msgstr "Utracono plik." -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "Nieznany typ pliku" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "MB" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "KB" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "[%s]" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, php-format msgid "Unknown inbox source %d." msgstr "Nieznane źródło skrzynki odbiorczej %d." @@ -5954,7 +5964,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:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 msgid "from" msgstr "z" @@ -6107,23 +6117,23 @@ msgstr "Zachód" msgid "at" msgstr "w" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 msgid "in context" msgstr "w rozmowie" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 msgid "Repeated by" msgstr "Powtórzone przez" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "Odpowiedz na ten wpis" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 msgid "Reply" msgstr "Odpowiedz" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 msgid "Notice repeated" msgstr "Powtórzono wpis" @@ -6434,47 +6444,47 @@ msgctxt "role" msgid "Moderator" msgstr "Moderator" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "kilka sekund temu" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "około minutę temu" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "około %d minut temu" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "około godzinę temu" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "około %d godzin temu" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "blisko dzień temu" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "około %d dni temu" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "około miesiąc temu" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "około %d miesięcy temu" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "około rok temu" @@ -6490,7 +6500,7 @@ msgstr "" "%s nie jest prawidłowym kolorem. Użyj trzech lub sześciu znaków " "szesnastkowych." -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "Wiadomość jest za długa - maksymalnie %1$d znaków, wysłano %2$d." diff --git a/locale/pt/LC_MESSAGES/statusnet.po b/locale/pt/LC_MESSAGES/statusnet.po index 7041bea81..368e38c69 100644 --- a/locale/pt/LC_MESSAGES/statusnet.po +++ b/locale/pt/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:50:48+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:43:52+0000\n" "Language-Team: Portuguese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: out-statusnet\n" @@ -98,7 +98,7 @@ msgstr "Página não encontrada." #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -107,10 +107,8 @@ msgstr "Página não encontrada." #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Utilizador não encontrado." @@ -210,12 +208,12 @@ msgstr "Actualizações de %1$s e amigos no %2$s!" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 msgid "API method not found." msgstr "Método da API não encontrado." @@ -346,7 +344,7 @@ msgstr "Nenhum estado encontrado com esse ID." msgid "This status is already a favorite." msgstr "Este estado já é um favorito." -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "Não foi possível criar o favorito." @@ -464,7 +462,7 @@ msgstr "Grupo não foi encontrado!" msgid "You are already a member of that group." msgstr "Já é membro desse grupo." -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "Foi bloqueado desse grupo pelo gestor." @@ -515,7 +513,7 @@ msgstr "Tamanho inválido." #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -655,12 +653,12 @@ msgstr "Tamanho máx. das notas é %d caracteres, incluíndo a URL do anexo." msgid "Unsupported format." msgstr "Formato não suportado." -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / Favoritas de %2$s" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s actualizações preferidas por %2$s / %2$s." @@ -670,7 +668,7 @@ msgstr "%1$s actualizações preferidas por %2$s / %2$s." msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Actualizações que mencionam %2$s" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s actualizações em resposta a actualizações de %2$s / %3$s." @@ -680,7 +678,7 @@ msgstr "%1$s actualizações em resposta a actualizações de %2$s / %3$s." msgid "%s public timeline" msgstr "Notas públicas de %s" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s actualizações de todos!" @@ -695,12 +693,12 @@ msgstr "Repetida para %s" msgid "Repeats of %s" msgstr "Repetências de %s" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Notas categorizadas com %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Actualizações categorizadas com %1$s em %2$s!" @@ -760,7 +758,7 @@ msgid "Preview" msgstr "Antevisão" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "Apagar" @@ -843,8 +841,8 @@ msgstr "Não foi possível gravar informação do bloqueio." #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 msgid "No such group." msgstr "Grupo não foi encontrado." @@ -949,7 +947,7 @@ msgstr "Não é membro deste grupo." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "Ocorreu um problema com a sua sessão." @@ -1013,7 +1011,7 @@ msgstr "Tem a certeza de que quer apagar esta nota?" msgid "Do not delete this notice" msgstr "Não apagar esta nota" -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "Apagar esta nota" @@ -1278,7 +1276,7 @@ msgstr "descrição é demasiada extensa (máx. %d caracteres)." msgid "Could not update group." msgstr "Não foi possível actualizar o grupo." -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 msgid "Could not create aliases." msgstr "Não foi possível criar sinónimos." @@ -1989,7 +1987,7 @@ msgstr "Convidar novos utilizadores" msgid "You are already subscribed to these users:" msgstr "Já subscreveu estes utilizadores:" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" @@ -2120,7 +2118,7 @@ msgstr "%1$s juntou-se ao grupo %2$s" msgid "You must be logged in to leave a group." msgstr "Precisa de iniciar uma sessão para deixar um grupo." -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 msgid "You are not a member of that group." msgstr "Não é um membro desse grupo." @@ -2239,12 +2237,12 @@ msgstr "Use este formulário para criar um grupo novo." msgid "New message" msgstr "Mensagem nova" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "Não pode enviar uma mensagem a este utilizador." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "Sem conteúdo!" @@ -2252,7 +2250,7 @@ msgstr "Sem conteúdo!" msgid "No recipient specified." msgstr "Não especificou um destinatário." -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "Não auto-envie uma mensagem; basta lê-la baixinho a si próprio." @@ -2266,7 +2264,7 @@ msgstr "Mensagem enviada" msgid "Direct message to %s sent." msgstr "Mensagem directa para %s foi enviada." -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "Erro do Ajax" @@ -2401,8 +2399,8 @@ msgstr "tipo de conteúdo " msgid "Only " msgstr "Apenas " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "Formato de dados não suportado." @@ -2540,7 +2538,7 @@ msgstr "Senha antiga incorrecta." msgid "Error saving user; invalid." msgstr "Erro ao guardar utilizador; inválido." -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "Não é possível guardar a nova senha." @@ -3043,7 +3041,7 @@ msgstr "Reiniciar senha" msgid "Recover password" msgstr "Recuperar senha" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "Solicitada recuperação da senha" @@ -3063,20 +3061,20 @@ msgstr "Reiniciar" msgid "Enter a nickname or email address." msgstr "Introduza uma utilizador ou um endereço de correio electrónico." -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "" "Não existe nenhum utilizador com esse correio electrónico nem com esse nome." -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "Nenhum endereço de email registado para esse utilizador." -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "Erro ao guardar confirmação do endereço." -#: actions/recoverpassword.php:325 +#: actions/recoverpassword.php:338 msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." @@ -3084,23 +3082,23 @@ msgstr "" "Instruções para recuperação da sua senha foram enviadas para o correio " "electrónico registado na sua conta." -#: actions/recoverpassword.php:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "Reinício inesperado da senha." -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "Senha tem de ter 6 ou mais caracteres." -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "A senha e a confirmação não coincidem." -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "Erro ao configurar utilizador." -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "A senha nova foi gravada com sucesso. Iniciou uma sessão." @@ -3302,7 +3300,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:674 +#: actions/repeat.php:114 lib/noticelist.php:676 msgid "Repeated" msgstr "Repetida" @@ -4567,7 +4565,7 @@ msgstr "Versão" msgid "Author(s)" msgstr "Autores" -#: classes/File.php:144 +#: classes/File.php:169 #, php-format msgid "" "No file may be larger than %d bytes and the file you sent was %d bytes. Try " @@ -4576,13 +4574,13 @@ msgstr "" "Nenhum ficheiro pode ter mais de %d bytes e o que enviou tinha %d bytes. " "Tente carregar uma versão menor." -#: classes/File.php:154 +#: classes/File.php:179 #, 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:161 +#: classes/File.php:186 #, 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." @@ -4665,7 +4663,7 @@ msgstr "Problema na gravação da nota." msgid "Problem saving group inbox." msgstr "Problema na gravação da nota." -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4695,29 +4693,29 @@ msgstr "Não foi possível apagar a auto-subscrição." msgid "Couldn't delete subscription OMB token." msgstr "Não foi possível apagar a subscrição." -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "Não foi possível apagar a subscrição." -#: classes/User.php:373 +#: classes/User.php:378 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "%1$s dá-lhe as boas-vindas, @%2$s!" -#: classes/User_group.php:477 +#: classes/User_group.php:480 msgid "Could not create group." msgstr "Não foi possível criar o grupo." -#: classes/User_group.php:486 +#: classes/User_group.php:489 #, fuzzy msgid "Could not set group URI." msgstr "Não foi possível configurar membros do grupo." -#: classes/User_group.php:507 +#: classes/User_group.php:510 msgid "Could not set group membership." msgstr "Não foi possível configurar membros do grupo." -#: classes/User_group.php:521 +#: classes/User_group.php:524 #, fuzzy msgid "Could not save local group info." msgstr "Não foi possível gravar a subscrição." @@ -4939,7 +4937,7 @@ msgstr "Emblema" msgid "StatusNet software license" msgstr "Licença de software do StatusNet" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4948,12 +4946,12 @@ msgstr "" "**%%site.name%%** é um serviço de microblogues disponibilizado por [%%site." "broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** é um serviço de microblogues. " -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4964,41 +4962,41 @@ msgstr "" "disponibilizado nos termos da [GNU Affero General Public License](http://www." "fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:821 +#: lib/action.php:824 msgid "Site content license" msgstr "Licença de conteúdos do site" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "Tudo " -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "licença." -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "Paginação" -#: lib/action.php:1161 +#: lib/action.php:1164 msgid "After" msgstr "Posteriores" -#: lib/action.php:1169 +#: lib/action.php:1172 msgid "Before" msgstr "Anteriores" @@ -5107,7 +5105,7 @@ msgstr "Configuração das localizações" msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5210,37 +5208,50 @@ msgstr "Não foi possível mudar a palavra-chave" msgid "Password changing is not allowed" msgstr "Não é permitido mudar a palavra-chave" -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "Resultados do comando" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "Comando terminado" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "Comando falhou" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." -msgstr "Desculpe, este comando ainda não foi implementado." +#: lib/command.php:83 lib/command.php:105 +msgid "Notice with that id does not exist" +msgstr "Não existe nenhuma nota com essa identificação" -#: lib/command.php:88 +#: lib/command.php:99 lib/command.php:570 +msgid "User has no last notice" +msgstr "Utilizador não tem nenhuma última nota" + +#: lib/command.php:125 #, php-format msgid "Could not find a user with nickname %s" msgstr "Não foi encontrado um utilizador com a alcunha %s" -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "Não foi encontrado um utilizador com a alcunha %s" + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "Desculpe, este comando ainda não foi implementado." + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "Não faz muito sentido tocar-nos a nós mesmos!" -#: lib/command.php:99 +#: lib/command.php:228 #, php-format msgid "Nudge sent to %s" msgstr "Cotovelada enviada a %s" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5251,198 +5262,196 @@ msgstr "" "Subscritores: %2$s\n" "Notas: %3$s" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -msgid "Notice with that id does not exist" -msgstr "Não existe nenhuma nota com essa identificação" - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -msgid "User has no last notice" -msgstr "Utilizador não tem nenhuma última nota" - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "Nota marcada como favorita." -#: lib/command.php:217 +#: lib/command.php:317 msgid "You are already a member of that group" msgstr "Já é membro desse grupo" -#: lib/command.php:231 +#: lib/command.php:331 #, php-format msgid "Could not join user %s to group %s" msgstr "Não foi possível juntar o utilizador %s ao grupo %s" -#: lib/command.php:236 +#: lib/command.php:336 #, php-format msgid "%s joined group %s" msgstr "%s juntou-se ao grupo %s" -#: lib/command.php:275 +#: lib/command.php:373 #, php-format msgid "Could not remove user %s to group %s" msgstr "Não foi possível remover o utilizador %s do grupo %s" -#: lib/command.php:280 +#: lib/command.php:378 #, php-format msgid "%s left group %s" msgstr "%s deixou o grupo %s" -#: lib/command.php:309 +#: lib/command.php:401 #, php-format msgid "Fullname: %s" msgstr "Nome completo: %s" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Localidade: %s" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Página pessoal: %s" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "Sobre: %s" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "Mensagem demasiado extensa - máx. %d caracteres, enviou %d" -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "Mensagem directa para %s enviada" -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "Erro no envio da mensagem directa." -#: lib/command.php:413 +#: lib/command.php:490 msgid "Cannot repeat your own notice" msgstr "Não pode repetir a sua própria nota" -#: lib/command.php:418 +#: lib/command.php:495 msgid "Already repeated that notice" msgstr "Já repetiu essa nota" -#: lib/command.php:426 +#: lib/command.php:503 #, php-format msgid "Notice from %s repeated" msgstr "Nota de %s repetida" -#: lib/command.php:428 +#: lib/command.php:505 msgid "Error repeating notice." msgstr "Erro ao repetir nota." -#: lib/command.php:482 +#: lib/command.php:536 #, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "Nota demasiado extensa - máx. %d caracteres, enviou %d" -#: lib/command.php:491 +#: lib/command.php:545 #, php-format msgid "Reply to %s sent" msgstr "Resposta a %s enviada" -#: lib/command.php:493 +#: lib/command.php:547 msgid "Error saving notice." msgstr "Erro ao gravar nota." -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "Introduza o nome do utilizador para subscrever" -#: lib/command.php:554 lib/command.php:589 +#: lib/command.php:602 #, fuzzy -msgid "No such user" -msgstr "Utilizador não encontrado." +msgid "Can't subscribe to OMB profiles by command." +msgstr "Não subscreveu esse perfil." -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "Subscreveu %s" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "Introduza o nome do utilizador para deixar de subscrever" -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "Deixou de subscrever %s" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "Comando ainda não implementado." -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "Notificação desligada." -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "Não foi possível desligar a notificação." -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "Notificação ligada." -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "Não foi possível ligar a notificação." -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "Comando para iniciar sessão foi desactivado" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" "Esta ligação é utilizável uma única vez e só durante os próximos 2 minutos: %" "s" -#: lib/command.php:692 +#: lib/command.php:735 #, fuzzy, php-format msgid "Unsubscribed %s" msgstr "Deixou de subscrever %s" -#: lib/command.php:709 +#: lib/command.php:752 msgid "You are not subscribed to anyone." msgstr "Não subscreveu ninguém." -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Subscreveu esta pessoa:" msgstr[1] "Subscreveu estas pessoas:" -#: lib/command.php:731 +#: lib/command.php:774 msgid "No one is subscribed to you." msgstr "Ninguém subscreve as suas notas." -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Esta pessoa subscreve as suas notas:" msgstr[1] "Estas pessoas subscrevem as suas notas:" -#: lib/command.php:753 +#: lib/command.php:796 msgid "You are not a member of any groups." msgstr "Não está em nenhum grupo." -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Está no grupo:" msgstr[1] "Está nos grupos:" -#: lib/command.php:769 +#: lib/command.php:812 #, fuzzy msgid "" "Commands:\n" @@ -5712,49 +5721,49 @@ msgstr "Categorias nas notas do grupo %s" msgid "This page is not available in a media type you accept" msgstr "Esta página não está disponível num formato que você aceite" -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "Formato do ficheiro da imagem não é suportado." + +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Esse ficheiro é demasiado grande. O tamanho máximo de ficheiro é %s." -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Transferência parcial." -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Ocorreu um erro de sistema ao transferir o ficheiro." -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Ficheiro não é uma imagem ou está corrompido." -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "Formato do ficheiro da imagem não é suportado." - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 msgid "Lost our file." msgstr "Perdi o nosso ficheiro." -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "Tipo do ficheiro é desconhecido" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "MB" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "kB" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "[%s]" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, fuzzy, php-format msgid "Unknown inbox source %d." msgstr "Língua desconhecida \"%s\"." @@ -6035,7 +6044,7 @@ msgstr "" "conversa com outros utilizadores. Outros podem enviar-lhe mensagens, a que " "só você terá acesso." -#: lib/mailbox.php:227 lib/noticelist.php:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 msgid "from" msgstr "de" @@ -6191,23 +6200,23 @@ msgstr "O" msgid "at" msgstr "coords." -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 msgid "in context" msgstr "no contexto" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 msgid "Repeated by" msgstr "Repetida por" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "Responder a esta nota" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 msgid "Reply" msgstr "Responder" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 msgid "Notice repeated" msgstr "Nota repetida" @@ -6520,47 +6529,47 @@ msgctxt "role" msgid "Moderator" msgstr "Moderar" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "há alguns segundos" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "há cerca de um minuto" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "há cerca de %d minutos" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "há cerca de uma hora" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "há cerca de %d horas" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "há cerca de um dia" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "há cerca de %d dias" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "há cerca de um mês" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "há cerca de %d meses" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "há cerca de um ano" @@ -6574,7 +6583,7 @@ msgstr "%s não é uma cor válida!" msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "%s não é uma cor válida! Use 3 ou 6 caracteres hexadecimais." -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "Mensagem demasiado extensa - máx. %1$d caracteres, enviou %2$d." diff --git a/locale/pt_BR/LC_MESSAGES/statusnet.po b/locale/pt_BR/LC_MESSAGES/statusnet.po index 51d926eba..5bf084134 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: Luckas Blade # Author@translatewiki.net: McDutchie # Author@translatewiki.net: Vuln # -- @@ -11,12 +12,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:50:51+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:43:55+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 (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt-br\n" "X-Message-Group: out-statusnet\n" @@ -76,7 +77,6 @@ msgid "Save access settings" msgstr "Salvar as configurações de acesso" #: actions/accessadminpanel.php:203 -#, fuzzy msgctxt "BUTTON" msgid "Save" msgstr "Salvar" @@ -97,7 +97,7 @@ msgstr "Esta página não existe." #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -106,10 +106,8 @@ msgstr "Esta página não existe." #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Este usuário não existe." @@ -211,12 +209,12 @@ msgstr "Atualizações de %1$s e amigos no %2$s!" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 msgid "API method not found." msgstr "O método da API não foi encontrado!" @@ -349,7 +347,7 @@ msgstr "Não foi encontrado nenhum status com esse ID." msgid "This status is already a favorite." msgstr "Esta mensagem já é favorita!" -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "Não foi possível criar a favorita." @@ -468,7 +466,7 @@ msgstr "O grupo não foi encontrado!" msgid "You are already a member of that group." msgstr "Você já é membro desse grupo." -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "O administrador desse grupo bloqueou sua inscrição." @@ -518,7 +516,7 @@ msgstr "Token inválido." #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -662,12 +660,12 @@ msgstr "O tamanho máximo da mensagem é de %s caracteres" msgid "Unsupported format." msgstr "Formato não suportado." -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / Favoritas de %2$s" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s marcadas como favoritas por %2$s / %2$s." @@ -677,7 +675,7 @@ msgstr "%1$s marcadas como favoritas por %2$s / %2$s." msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Mensagens mencionando %2$s" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s mensagens em resposta a mensagens de %2$s / %3$s." @@ -687,7 +685,7 @@ msgstr "%1$s mensagens em resposta a mensagens de %2$s / %3$s." msgid "%s public timeline" msgstr "Mensagens públicas de %s" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s mensagens de todo mundo!" @@ -702,12 +700,12 @@ msgstr "Repetida para %s" msgid "Repeats of %s" msgstr "Repetições de %s" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Mensagens etiquetadas como %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Mensagens etiquetadas como %1$s no %2$s!" @@ -768,7 +766,7 @@ msgid "Preview" msgstr "Visualização" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "Excluir" @@ -852,8 +850,8 @@ msgstr "Não foi possível salvar a informação de bloqueio." #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 msgid "No such group." msgstr "Esse grupo não existe." @@ -954,7 +952,7 @@ msgstr "Você não é o dono desta aplicação." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "Ocorreu um problema com o seu token de sessão." @@ -1015,7 +1013,7 @@ msgstr "Tem certeza que deseja excluir esta mensagem?" msgid "Do not delete this notice" msgstr "Não excluir esta mensagem." -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "Excluir esta mensagem" @@ -1268,7 +1266,7 @@ msgstr "descrição muito extensa (máximo %d caracteres)." msgid "Could not update group." msgstr "Não foi possível atualizar o grupo." -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 msgid "Could not create aliases." msgstr "Não foi possível criar os apelidos." @@ -1982,7 +1980,7 @@ msgstr "Convidar novos usuários" msgid "You are already subscribed to these users:" msgstr "Você já está assinando esses usuários:" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" @@ -2029,7 +2027,6 @@ msgstr "Você pode, opcionalmente, adicionar uma mensagem pessoal ao convite." #. TRANS: Send button for inviting friends #: actions/invite.php:198 -#, fuzzy msgctxt "BUTTON" msgid "Send" msgstr "Enviar" @@ -2114,7 +2111,7 @@ msgstr "%1$s associou-se ao grupo %2$s" msgid "You must be logged in to leave a group." msgstr "Você deve estar autenticado para sair de um grupo." -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 msgid "You are not a member of that group." msgstr "Você não é um membro desse grupo." @@ -2232,12 +2229,12 @@ msgstr "Utilize este formulário para criar um novo grupo." msgid "New message" msgstr "Nova mensagem" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "Você não pode enviar mensagens para este usuário." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "Nenhum conteúdo!" @@ -2245,7 +2242,7 @@ msgstr "Nenhum conteúdo!" msgid "No recipient specified." msgstr "Não foi especificado nenhum destinatário." -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" @@ -2261,7 +2258,7 @@ msgstr "A mensagem foi enviada" msgid "Direct message to %s sent." msgstr "A mensagem direta para %s foi enviada." -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "Erro no Ajax" @@ -2396,8 +2393,8 @@ msgstr "tipo de conteúdo " msgid "Only " msgstr "Apenas " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "Não é um formato de dados suportado." @@ -2530,7 +2527,7 @@ msgstr "A senha anterior está errada" msgid "Error saving user; invalid." msgstr "Erro ao salvar usuário; inválido." -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "Não é possível salvar a nova senha." @@ -3032,7 +3029,7 @@ msgstr "Restaurar a senha" msgid "Recover password" msgstr "Recuperar a senha" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "Foi solicitada a recuperação da senha" @@ -3052,21 +3049,21 @@ msgstr "Restaurar" msgid "Enter a nickname or email address." msgstr "Digite a identificação ou endereço de e-mail." -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "" "Não foi encontrado nenhum usuário com essa identificação ou endereço de " "email." -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "Nenhum endereço de e-mail registrado para esse usuário." -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "Erro ao salvar o endereço de confirmação." -#: actions/recoverpassword.php:325 +#: actions/recoverpassword.php:338 msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." @@ -3074,23 +3071,23 @@ msgstr "" "As instruções para recuperar a sua senha foram enviadas para o endereço de e-" "mail informado no seu cadastro." -#: actions/recoverpassword.php:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "Restauração inesperada da senha." -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "A senha deve ter 6 ou mais caracteres." -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "A senha e a confirmação não coincidem." -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "Erro na configuração do usuário." -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "" "A nova senha foi salva com sucesso. A partir de agora você já está " @@ -3293,7 +3290,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:674 +#: actions/repeat.php:114 lib/noticelist.php:676 msgid "Repeated" msgstr "Repetida" @@ -3843,9 +3840,8 @@ msgid "Default timezone for the site; usually UTC." msgstr "Fuso horário padrão para o seu site; geralmente UTC." #: actions/siteadminpanel.php:262 -#, fuzzy msgid "Default language" -msgstr "Idioma padrão do site" +msgstr "Idioma padrão" #: actions/siteadminpanel.php:263 msgid "Site language when autodetection from browser settings is not available" @@ -4283,7 +4279,6 @@ msgstr "" #. TRANS: User admin panel title #: actions/useradminpanel.php:59 -#, fuzzy msgctxt "TITLE" msgid "User" msgstr "Usuário" @@ -4559,7 +4554,7 @@ msgstr "Versão" msgid "Author(s)" msgstr "Autor(es)" -#: classes/File.php:144 +#: classes/File.php:169 #, php-format msgid "" "No file may be larger than %d bytes and the file you sent was %d bytes. Try " @@ -4568,12 +4563,12 @@ 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:154 +#: classes/File.php:179 #, 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:161 +#: classes/File.php:186 #, 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." @@ -4652,7 +4647,7 @@ msgstr "Problema no salvamento da mensagem." msgid "Problem saving group inbox." msgstr "Problema no salvamento das mensagens recebidas do grupo." -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4682,29 +4677,29 @@ msgstr "Não foi possível excluir a auto-assinatura." msgid "Couldn't delete subscription OMB token." msgstr "Não foi possível excluir a assinatura." -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "Não foi possível excluir a assinatura." -#: classes/User.php:373 +#: classes/User.php:378 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Bem vindo(a) a %1$s, @%2$s!" -#: classes/User_group.php:477 +#: classes/User_group.php:480 msgid "Could not create group." msgstr "Não foi possível criar o grupo." -#: classes/User_group.php:486 +#: classes/User_group.php:489 #, fuzzy msgid "Could not set group URI." msgstr "Não foi possível configurar a associação ao grupo." -#: classes/User_group.php:507 +#: classes/User_group.php:510 msgid "Could not set group membership." msgstr "Não foi possível configurar a associação ao grupo." -#: classes/User_group.php:521 +#: classes/User_group.php:524 #, fuzzy msgid "Could not save local group info." msgstr "Não foi possível salvar a assinatura." @@ -4802,33 +4797,28 @@ msgid "Invite friends and colleagues to join you on %s" msgstr "Convide seus amigos e colegas para unir-se a você no %s" #: lib/action.php:456 -#, fuzzy msgctxt "MENU" msgid "Invite" msgstr "Convidar" #. TRANS: Tooltip for main menu option "Logout" #: lib/action.php:462 -#, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" -msgstr "Sai do site" +msgstr "Sair do site" #: lib/action.php:465 -#, fuzzy msgctxt "MENU" msgid "Logout" msgstr "Sair" #. TRANS: Tooltip for main menu option "Register" #: lib/action.php:470 -#, fuzzy msgctxt "TOOLTIP" msgid "Create an account" -msgstr "Cria uma conta" +msgstr "Criar uma conta" #: lib/action.php:473 -#, fuzzy msgctxt "MENU" msgid "Register" msgstr "Registrar-se" @@ -4854,7 +4844,6 @@ msgid "Help me!" msgstr "Ajudem-me!" #: lib/action.php:485 -#, fuzzy msgctxt "MENU" msgid "Help" msgstr "Ajuda" @@ -4867,10 +4856,9 @@ msgid "Search for people or text" msgstr "Procura por pessoas ou textos" #: lib/action.php:491 -#, fuzzy msgctxt "MENU" msgid "Search" -msgstr "Procurar" +msgstr "Pesquisar" #. TRANS: DT element for site notice. String is hidden in default CSS. #. TRANS: Menu item for site administration @@ -4926,7 +4914,7 @@ msgstr "Mini-aplicativo" msgid "StatusNet software license" msgstr "Licença do software StatusNet" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4935,12 +4923,12 @@ msgstr "" "**%%site.name%%** é um serviço de microblog disponibilizado por [%%site." "broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** é um serviço de microblog. " -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4951,43 +4939,43 @@ msgstr "" "versão %s, disponível sob a [GNU Affero General Public License] (http://www." "fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:821 +#: lib/action.php:824 msgid "Site content license" msgstr "Licença do conteúdo do site" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "O conteúdo e os dados de %1$s são privados e confidenciais." -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "Conteúdo e dados licenciados sob %1$s. Todos os direitos reservados." -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Conteúdo e dados licenciados pelos colaboradores. Todos os direitos " "reservados." -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "Todas " -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "licença." -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "Paginação" -#: lib/action.php:1161 +#: lib/action.php:1164 msgid "After" msgstr "Próximo" -#: lib/action.php:1169 +#: lib/action.php:1172 msgid "Before" msgstr "Anterior" @@ -5095,7 +5083,7 @@ msgstr "" "Os recursos de API exigem acesso de leitura e escrita, mas você possui " "somente acesso de leitura." -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5196,37 +5184,50 @@ msgstr "Não foi possível alterar a senha" msgid "Password changing is not allowed" msgstr "Não é permitido alterar a senha" -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "Resultados do comando" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "O comando foi completado" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "O comando falhou" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." -msgstr "Desculpe, mas esse comando ainda não foi implementado." +#: lib/command.php:83 lib/command.php:105 +msgid "Notice with that id does not exist" +msgstr "Não existe uma mensagem com essa id" -#: lib/command.php:88 +#: lib/command.php:99 lib/command.php:570 +msgid "User has no last notice" +msgstr "O usuário não tem uma \"última mensagem\"" + +#: lib/command.php:125 #, php-format msgid "Could not find a user with nickname %s" msgstr "Não foi possível encontrar um usuário com a identificação %s" -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "Não foi possível encontrar um usuário com a identificação %s" + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "Desculpe, mas esse comando ainda não foi implementado." + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "Não faz muito sentido chamar a sua própria atenção!" -#: lib/command.php:99 +#: lib/command.php:228 #, php-format msgid "Nudge sent to %s" msgstr "Foi enviada a chamada de atenção para %s" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5237,199 +5238,198 @@ msgstr "" "Assinantes: %2$s\n" "Mensagens: %3$s" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -msgid "Notice with that id does not exist" -msgstr "Não existe uma mensagem com essa id" - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -msgid "User has no last notice" -msgstr "O usuário não tem uma \"última mensagem\"" - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "Mensagem marcada como favorita." -#: lib/command.php:217 +#: lib/command.php:317 msgid "You are already a member of that group" msgstr "Você já é um membro desse grupo." -#: lib/command.php:231 +#: lib/command.php:331 #, php-format msgid "Could not join user %s to group %s" msgstr "Não foi possível associar o usuário %s ao grupo %s" -#: lib/command.php:236 +#: lib/command.php:336 #, php-format msgid "%s joined group %s" msgstr "%s associou-se ao grupo %s" -#: lib/command.php:275 +#: lib/command.php:373 #, php-format msgid "Could not remove user %s to group %s" msgstr "Não foi possível remover o usuário %s do grupo %s" -#: lib/command.php:280 +#: lib/command.php:378 #, php-format msgid "%s left group %s" msgstr "%s deixou o grupo %s" -#: lib/command.php:309 +#: lib/command.php:401 #, php-format msgid "Fullname: %s" msgstr "Nome completo: %s" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Localização: %s" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Site: %s" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "Sobre: %s" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "" "A mensagem é muito extensa - o máximo são %d caracteres e você enviou %d" -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "A mensagem direta para %s foi enviada" -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "Ocorreu um erro durante o envio da mensagem direta." -#: lib/command.php:413 +#: lib/command.php:490 msgid "Cannot repeat your own notice" msgstr "Você não pode repetir sua própria mensagem" -#: lib/command.php:418 +#: lib/command.php:495 msgid "Already repeated that notice" msgstr "Você já repetiu essa mensagem" -#: lib/command.php:426 +#: lib/command.php:503 #, php-format msgid "Notice from %s repeated" msgstr "Mensagem de %s repetida" -#: lib/command.php:428 +#: lib/command.php:505 msgid "Error repeating notice." msgstr "Erro na repetição da mensagem." -#: lib/command.php:482 +#: lib/command.php:536 #, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "" "A mensagem é muito extensa - o máximo são %d caracteres e você enviou %d" -#: lib/command.php:491 +#: lib/command.php:545 #, php-format msgid "Reply to %s sent" msgstr "A resposta a %s foi enviada" -#: lib/command.php:493 +#: lib/command.php:547 msgid "Error saving notice." msgstr "Erro no salvamento da mensagem." -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "Especifique o nome do usuário que será assinado" -#: lib/command.php:554 lib/command.php:589 -msgid "No such user" -msgstr "Este usuário não existe." +#: lib/command.php:602 +#, fuzzy +msgid "Can't subscribe to OMB profiles by command." +msgstr "Você não está assinando esse perfil." -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "Efetuada a assinatura de %s" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "Especifique o nome do usuário cuja assinatura será cancelada" -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "Cancelada a assinatura de %s" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "O comando não foi implementado ainda." -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "Notificação desligada." -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "Não é possível desligar a notificação." -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "Notificação ligada." -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "Não é possível ligar a notificação." -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "O comando para autenticação está desabilitado" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" "Este link é utilizável somente uma vez e é válido somente por dois minutos: %" "s" -#: lib/command.php:692 +#: lib/command.php:735 #, fuzzy, php-format msgid "Unsubscribed %s" msgstr "Cancelada a assinatura de %s" -#: lib/command.php:709 +#: lib/command.php:752 msgid "You are not subscribed to anyone." msgstr "Você não está assinando ninguém." -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Você já está assinando esta pessoa:" msgstr[1] "Você já está assinando estas pessoas:" -#: lib/command.php:731 +#: lib/command.php:774 msgid "No one is subscribed to you." msgstr "Ninguém o assinou ainda." -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Esta pessoa está assinando você:" msgstr[1] "Estas pessoas estão assinando você:" -#: lib/command.php:753 +#: lib/command.php:796 msgid "You are not a member of any groups." msgstr "Você não é membro de nenhum grupo." -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Você é membro deste grupo:" msgstr[1] "Você é membro destes grupos:" -#: lib/command.php:769 +#: lib/command.php:812 #, fuzzy msgid "" "Commands:\n" @@ -5700,49 +5700,49 @@ msgstr "Etiquetas nas mensagens do grupo %s" msgid "This page is not available in a media type you accept" msgstr "Esta página não está disponível em um tipo de mídia que você aceita" -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "Formato de imagem não suportado." + +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "O arquivo é muito grande. O tamanho máximo é de %s." -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Envio parcial." -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Erro no sistema durante o envio do arquivo." -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Imagem inválida ou arquivo corrompido." -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "Formato de imagem não suportado." - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 msgid "Lost our file." msgstr "Nosso arquivo foi perdido." -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "Tipo de arquivo desconhecido" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "Mb" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "Kb" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "[%s]" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, php-format msgid "Unknown inbox source %d." msgstr "Fonte da caixa de entrada desconhecida %d." @@ -6022,7 +6022,7 @@ msgstr "" "privadas para envolver outras pessoas em uma conversa. Você também pode " "receber mensagens privadas." -#: lib/mailbox.php:227 lib/noticelist.php:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 msgid "from" msgstr "de" @@ -6118,7 +6118,6 @@ msgid "Available characters" msgstr "Caracteres disponíveis" #: lib/messageform.php:178 lib/noticeform.php:236 -#, fuzzy msgctxt "Send button for sending notice" msgid "Send" msgstr "Enviar" @@ -6181,23 +6180,23 @@ msgstr "O" msgid "at" msgstr "em" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 msgid "in context" msgstr "no contexto" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 msgid "Repeated by" msgstr "Repetida por" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "Responder a esta mensagem" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 msgid "Reply" msgstr "Responder" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 msgid "Notice repeated" msgstr "Mensagem repetida" @@ -6499,10 +6498,9 @@ msgid "User role" msgstr "Perfil do usuário" #: lib/userprofile.php:354 -#, fuzzy msgctxt "role" msgid "Administrator" -msgstr "Administradores" +msgstr "Administrador" #: lib/userprofile.php:355 #, fuzzy @@ -6510,47 +6508,47 @@ msgctxt "role" msgid "Moderator" msgstr "Moderar" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "alguns segundos atrás" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "cerca de 1 minuto atrás" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "cerca de %d minutos atrás" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "cerca de 1 hora atrás" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "cerca de %d horas atrás" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "cerca de 1 dia atrás" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "cerca de %d dias atrás" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "cerca de 1 mês atrás" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "cerca de %d meses atrás" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "cerca de 1 ano atrás" @@ -6564,7 +6562,7 @@ msgstr "%s não é uma cor válida!" msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "%s não é uma cor válida! Utilize 3 ou 6 caracteres hexadecimais." -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "" diff --git a/locale/ru/LC_MESSAGES/statusnet.po b/locale/ru/LC_MESSAGES/statusnet.po index 03aaa074a..2f5df9f69 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-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:50:54+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:43:59+0000\n" "Language-Team: Russian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: out-statusnet\n" @@ -98,7 +98,7 @@ msgstr "Нет такой страницы" #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -107,10 +107,8 @@ msgstr "Нет такой страницы" #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Нет такого пользователя." @@ -210,12 +208,12 @@ msgstr "Обновлено от %1$s и его друзей на %2$s!" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 msgid "API method not found." msgstr "Метод API не найден." @@ -346,7 +344,7 @@ msgstr "Нет статуса с таким ID." msgid "This status is already a favorite." msgstr "Этот статус уже входит в число любимых." -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "Не удаётся создать любимую запись." @@ -468,7 +466,7 @@ msgstr "Группа не найдена!" msgid "You are already a member of that group." msgstr "Вы уже являетесь членом этой группы." -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "Вы заблокированы из этой группы администратором." @@ -518,7 +516,7 @@ msgstr "Неправильный токен" #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -658,12 +656,12 @@ msgstr "Максимальная длина записи — %d символов msgid "Unsupported format." msgstr "Неподдерживаемый формат." -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / Любимое от %2$s" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "Обновления %1$s, отмеченные как любимые %2$s / %2$s." @@ -673,7 +671,7 @@ msgstr "Обновления %1$s, отмеченные как любимые %2 msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Обновления, упоминающие %2$s" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s обновил этот ответ на сообщение: %2$s / %3$s." @@ -683,7 +681,7 @@ msgstr "%1$s обновил этот ответ на сообщение: %2$s / msgid "%s public timeline" msgstr "Общая лента %s" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "Обновления %s от всех!" @@ -698,12 +696,12 @@ msgstr "Повторено для %s" msgid "Repeats of %s" msgstr "Повторы за %s" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Записи с тегом %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Обновления с тегом %1$s на %2$s!" @@ -764,7 +762,7 @@ msgid "Preview" msgstr "Просмотр" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "Удалить" @@ -847,8 +845,8 @@ msgstr "Не удаётся сохранить информацию о блок #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 msgid "No such group." msgstr "Нет такой группы." @@ -949,7 +947,7 @@ msgstr "Вы не являетесь владельцем этого прило #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "Проблема с Вашей сессией. Попробуйте ещё раз, пожалуйста." @@ -1010,7 +1008,7 @@ msgstr "Вы уверены, что хотите удалить эту запи msgid "Do not delete this notice" msgstr "Не удалять эту запись" -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "Удалить эту запись" @@ -1263,7 +1261,7 @@ msgstr "Слишком длинное описание (максимум %d си msgid "Could not update group." msgstr "Не удаётся обновить информацию о группе." -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 msgid "Could not create aliases." msgstr "Не удаётся создать алиасы." @@ -1978,7 +1976,7 @@ msgstr "Пригласить новых пользователей" msgid "You are already subscribed to these users:" msgstr "Вы уже подписаны на пользователя:" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" @@ -2108,7 +2106,7 @@ msgstr "%1$s вступил в группу %2$s" msgid "You must be logged in to leave a group." msgstr "Вы должны авторизоваться, чтобы покинуть группу." -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 msgid "You are not a member of that group." msgstr "Вы не являетесь членом этой группы." @@ -2222,12 +2220,12 @@ msgstr "Используйте эту форму для создания нов msgid "New message" msgstr "Новое сообщение" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "Вы не можете послать сообщение этому пользователю." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "Нет контента!" @@ -2235,7 +2233,7 @@ msgstr "Нет контента!" msgid "No recipient specified." msgstr "Нет адресата." -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "Не посылайте сообщения сами себе; просто потихоньку скажите это себе." @@ -2249,7 +2247,7 @@ msgstr "Сообщение отправлено" msgid "Direct message to %s sent." msgstr "Прямое сообщение для %s послано." -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "Ошибка AJAX" @@ -2381,8 +2379,8 @@ msgstr "тип содержимого " msgid "Only " msgstr "Только " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "Неподдерживаемый формат данных." @@ -2515,7 +2513,7 @@ msgstr "Некорректный старый пароль" msgid "Error saving user; invalid." msgstr "Ошибка сохранения пользователя; неверное имя." -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "Не удаётся сохранить новый пароль." @@ -3012,7 +3010,7 @@ msgstr "Переустановить пароль" msgid "Recover password" msgstr "Восстановление пароля" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "Запрошено восстановление пароля" @@ -3032,19 +3030,19 @@ msgstr "Сбросить" msgid "Enter a nickname or email address." msgstr "Введите имя или электронный адрес." -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "Нет пользователя с таким электронным адресом или именем." -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "Нет зарегистрированных электронных адресов для этого пользователя." -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "Ошибка сохранения подтверждённого адреса." -#: actions/recoverpassword.php:325 +#: actions/recoverpassword.php:338 msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." @@ -3052,23 +3050,23 @@ msgstr "" "Инструкции по восстановлению пароля посланы на электронный адрес, который Вы " "указали при регистрации вашего аккаунта." -#: actions/recoverpassword.php:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "Нетиповая переустановка пароля." -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "Пароль должен быть длиной не менее 6 символов." -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Пароль и его подтверждение не совпадают." -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "Ошибка в установках пользователя." -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "Новый пароль успешно сохранён. Вы авторизовались." @@ -3271,7 +3269,7 @@ msgstr "Вы не можете повторить собственную зап msgid "You already repeated that notice." msgstr "Вы уже повторили эту запись." -#: actions/repeat.php:114 lib/noticelist.php:674 +#: actions/repeat.php:114 lib/noticelist.php:676 msgid "Repeated" msgstr "Повторено" @@ -4528,7 +4526,7 @@ msgstr "Версия" msgid "Author(s)" msgstr "Автор(ы)" -#: classes/File.php:144 +#: classes/File.php:169 #, php-format msgid "" "No file may be larger than %d bytes and the file you sent was %d bytes. Try " @@ -4537,12 +4535,12 @@ msgstr "" "Файл не может быть больше %d байт, тогда как отправленный вами файл содержал " "%d байт. Попробуйте загрузить меньшую версию." -#: classes/File.php:154 +#: classes/File.php:179 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "Файл такого размера превысит вашу пользовательскую квоту в %d байта." -#: classes/File.php:161 +#: classes/File.php:186 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "Файл такого размера превысит вашу месячную квоту в %d байта." @@ -4620,7 +4618,7 @@ msgstr "Проблемы с сохранением записи." msgid "Problem saving group inbox." msgstr "Проблемы с сохранением входящих сообщений группы." -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4649,28 +4647,28 @@ msgstr "Невозможно удалить самоподписку." msgid "Couldn't delete subscription OMB token." msgstr "Не удаётся удалить подписочный жетон OMB." -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "Не удаётся удалить подписку." -#: classes/User.php:373 +#: classes/User.php:378 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Добро пожаловать на %1$s, @%2$s!" -#: classes/User_group.php:477 +#: classes/User_group.php:480 msgid "Could not create group." msgstr "Не удаётся создать группу." -#: classes/User_group.php:486 +#: classes/User_group.php:489 msgid "Could not set group URI." msgstr "Не удаётся назначить URI группы." -#: classes/User_group.php:507 +#: classes/User_group.php:510 msgid "Could not set group membership." msgstr "Не удаётся назначить членство в группе." -#: classes/User_group.php:521 +#: classes/User_group.php:524 msgid "Could not save local group info." msgstr "Не удаётся сохранить информацию о локальной группе." @@ -4874,7 +4872,7 @@ msgstr "Бедж" msgid "StatusNet software license" msgstr "StatusNet лицензия" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4883,12 +4881,12 @@ msgstr "" "**%%site.name%%** — это сервис микроблогинга, созданный для вас при помощи [%" "%site.broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** — сервис микроблогинга. " -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4900,44 +4898,44 @@ msgstr "" "лицензией [GNU Affero General Public License](http://www.fsf.org/licensing/" "licenses/agpl-3.0.html)." -#: lib/action.php:821 +#: lib/action.php:824 msgid "Site content license" msgstr "Лицензия содержимого сайта" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Содержание и данные %1$s являются личными и конфиденциальными." -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" "Авторские права на содержание и данные принадлежат %1$s. Все права защищены." -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Авторские права на содержание и данные принадлежат разработчикам. Все права " "защищены." -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "All " -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "license." -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "Разбиение на страницы" -#: lib/action.php:1161 +#: lib/action.php:1164 msgid "After" msgstr "Сюда" -#: lib/action.php:1169 +#: lib/action.php:1172 msgid "Before" msgstr "Туда" @@ -5041,7 +5039,7 @@ msgstr "" "API ресурса требует доступ для чтения и записи, но у вас есть только доступ " "для чтения." -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5142,37 +5140,50 @@ msgstr "Изменение пароля не удалось" msgid "Password changing is not allowed" msgstr "Смена пароля не разрешена" -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "Команда исполнена" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "Команда завершена" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "Команда неудачна" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." -msgstr "Простите, эта команда ещё не выполнена." +#: lib/command.php:83 lib/command.php:105 +msgid "Notice with that id does not exist" +msgstr "Записи с таким id не существует" -#: lib/command.php:88 +#: lib/command.php:99 lib/command.php:570 +msgid "User has no last notice" +msgstr "У пользователя нет последней записи." + +#: lib/command.php:125 #, php-format msgid "Could not find a user with nickname %s" msgstr "Не удаётся найти пользователя с именем %s" -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "Не удаётся найти пользователя с именем %s" + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "Простите, эта команда ещё не выполнена." + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "Нет смысла «подталкивать» самого себя!" -#: lib/command.php:99 +#: lib/command.php:228 #, php-format msgid "Nudge sent to %s" msgstr "«Подталкивание» послано %s" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5183,198 +5194,197 @@ msgstr "" "Подписчиков: %2$s\n" "Записей: %3$s" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -msgid "Notice with that id does not exist" -msgstr "Записи с таким id не существует" - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -msgid "User has no last notice" -msgstr "У пользователя нет последней записи." - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "Запись помечена как любимая." -#: lib/command.php:217 +#: lib/command.php:317 msgid "You are already a member of that group" msgstr "Вы уже являетесь членом этой группы." -#: lib/command.php:231 +#: lib/command.php:331 #, php-format msgid "Could not join user %s to group %s" msgstr "Не удаётся присоединить пользователя %s к группе %s" -#: lib/command.php:236 +#: lib/command.php:336 #, php-format msgid "%s joined group %s" msgstr "%1$s вступил в группу %2$s" -#: lib/command.php:275 +#: lib/command.php:373 #, php-format msgid "Could not remove user %s to group %s" msgstr "Не удаётся удалить пользователя %1$s из группы %2$s." -#: lib/command.php:280 +#: lib/command.php:378 #, php-format msgid "%s left group %s" msgstr "%1$s покинул группу %2$s" -#: lib/command.php:309 +#: lib/command.php:401 #, php-format msgid "Fullname: %s" msgstr "Полное имя: %s" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Месторасположение: %s" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Домашняя страница: %s" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "О пользователе: %s" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "Сообщение слишком длинное — не больше %d символов, вы посылаете %d" -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "Прямое сообщение для %s послано." -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "Ошибка при отправке прямого сообщения." -#: lib/command.php:413 +#: lib/command.php:490 msgid "Cannot repeat your own notice" msgstr "Невозможно повторить собственную запись." -#: lib/command.php:418 +#: lib/command.php:495 msgid "Already repeated that notice" msgstr "Эта запись уже повторена" -#: lib/command.php:426 +#: lib/command.php:503 #, php-format msgid "Notice from %s repeated" msgstr "Запись %s повторена" -#: lib/command.php:428 +#: lib/command.php:505 msgid "Error repeating notice." msgstr "Ошибка при повторении записи." -#: lib/command.php:482 +#: lib/command.php:536 #, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "Запись слишком длинная — не больше %d символов, вы посылаете %d" -#: lib/command.php:491 +#: lib/command.php:545 #, php-format msgid "Reply to %s sent" msgstr "Ответ %s отправлен" -#: lib/command.php:493 +#: lib/command.php:547 msgid "Error saving notice." msgstr "Проблемы с сохранением записи." -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "Укажите имя пользователя для подписки." -#: lib/command.php:554 lib/command.php:589 -msgid "No such user" -msgstr "Нет такого пользователя." +#: lib/command.php:602 +#, fuzzy +msgid "Can't subscribe to OMB profiles by command." +msgstr "Вы не подписаны на этот профиль." -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "Подписано на %s" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "Укажите имя пользователя для отмены подписки." -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "Отписано от %s" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "Команда ещё не выполнена." -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "Оповещение отсутствует." -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "Нет оповещения." -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "Есть оповещение." -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "Есть оповещение." -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "Команда входа отключена" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "Эта ссылка действительна только один раз в течение 2 минут: %s" -#: lib/command.php:692 +#: lib/command.php:735 #, php-format msgid "Unsubscribed %s" msgstr "Отписано %s" -#: lib/command.php:709 +#: lib/command.php:752 msgid "You are not subscribed to anyone." msgstr "Вы ни на кого не подписаны." -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Вы подписаны на этих людей:" msgstr[1] "Вы подписаны на этих людей:" msgstr[2] "Вы подписаны на этих людей:" -#: lib/command.php:731 +#: lib/command.php:774 msgid "No one is subscribed to you." msgstr "Никто не подписан на вас." -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Эти люди подписались на вас:" msgstr[1] "Эти люди подписались на вас:" msgstr[2] "Эти люди подписались на вас:" -#: lib/command.php:753 +#: lib/command.php:796 msgid "You are not a member of any groups." msgstr "Вы не состоите ни в одной группе." -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Вы являетесь участником следующих групп:" msgstr[1] "Вы являетесь участником следующих групп:" msgstr[2] "Вы являетесь участником следующих групп:" -#: lib/command.php:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5644,49 +5654,49 @@ msgstr "Теги записей группы %s" msgid "This page is not available in a media type you accept" msgstr "Страница недоступна для того типа, который Вы задействовали." -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "Неподдерживаемый формат файла изображения." + +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Этот файл слишком большой. Максимальный размер файла составляет %s." -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Частичная загрузка." -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Системная ошибка при загрузке файла." -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Не является изображением или повреждённый файл." -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "Неподдерживаемый формат файла изображения." - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 msgid "Lost our file." msgstr "Потерян файл." -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "Неподдерживаемый тип файла" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "МБ" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "КБ" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "[%s]" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, php-format msgid "Unknown inbox source %d." msgstr "Неизвестный источник входящих сообщений %d." @@ -5967,7 +5977,7 @@ msgstr "" "вовлечения других пользователей в разговор. Сообщения, получаемые от других " "людей, видите только вы." -#: lib/mailbox.php:227 lib/noticelist.php:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 msgid "from" msgstr "от " @@ -6122,23 +6132,23 @@ msgstr "з. д." msgid "at" msgstr "на" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 msgid "in context" msgstr "в контексте" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 msgid "Repeated by" msgstr "Повторено" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "Ответить на эту запись" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 msgid "Reply" msgstr "Ответить" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 msgid "Notice repeated" msgstr "Запись повторена" @@ -6448,47 +6458,47 @@ msgctxt "role" msgid "Moderator" msgstr "Модератор" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "пару секунд назад" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "около минуты назад" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "около %d минут(ы) назад" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "около часа назад" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "около %d часа(ов) назад" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "около дня назад" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "около %d дня(ей) назад" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "около месяца назад" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "около %d месяца(ев) назад" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "около года назад" @@ -6504,7 +6514,7 @@ msgstr "" "%s не является допустимым цветом! Используйте 3 или 6 шестнадцатеричных " "символов." -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "" diff --git a/locale/statusnet.po b/locale/statusnet.po index 61d902a1a..5e59df581 100644 --- a/locale/statusnet.po +++ b/locale/statusnet.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-08 21:09+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -90,7 +90,7 @@ msgstr "" #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -99,10 +99,8 @@ msgstr "" #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "" @@ -195,12 +193,12 @@ msgstr "" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 msgid "API method not found." msgstr "" @@ -327,7 +325,7 @@ msgstr "" msgid "This status is already a favorite." msgstr "" -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "" @@ -444,7 +442,7 @@ msgstr "" msgid "You are already a member of that group." msgstr "" -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "" @@ -494,7 +492,7 @@ msgstr "" #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -629,12 +627,12 @@ msgstr "" msgid "Unsupported format." msgstr "" -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "" @@ -644,7 +642,7 @@ msgstr "" msgid "%1$s / Updates mentioning %2$s" msgstr "" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" @@ -654,7 +652,7 @@ msgstr "" msgid "%s public timeline" msgstr "" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "" @@ -669,12 +667,12 @@ msgstr "" msgid "Repeats of %s" msgstr "" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "" @@ -734,7 +732,7 @@ msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "" @@ -814,8 +812,8 @@ msgstr "" #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 msgid "No such group." msgstr "" @@ -916,7 +914,7 @@ msgstr "" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "" @@ -972,7 +970,7 @@ msgstr "" msgid "Do not delete this notice" msgstr "" -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "" @@ -1221,7 +1219,7 @@ msgstr "" msgid "Could not update group." msgstr "" -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 msgid "Could not create aliases." msgstr "" @@ -1882,7 +1880,7 @@ msgstr "" msgid "You are already subscribed to these users:" msgstr "" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "" @@ -1982,7 +1980,7 @@ msgstr "" msgid "You must be logged in to leave a group." msgstr "" -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 msgid "You are not a member of that group." msgstr "" @@ -2091,12 +2089,12 @@ msgstr "" msgid "New message" msgstr "" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "" -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "" @@ -2104,7 +2102,7 @@ msgstr "" msgid "No recipient specified." msgstr "" -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" @@ -2118,7 +2116,7 @@ msgstr "" msgid "Direct message to %s sent." msgstr "" -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "" @@ -2242,8 +2240,8 @@ msgstr "" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "" @@ -2374,7 +2372,7 @@ msgstr "" msgid "Error saving user; invalid." msgstr "" -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "" @@ -2851,7 +2849,7 @@ msgstr "" msgid "Recover password" msgstr "" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "" @@ -2871,41 +2869,41 @@ msgstr "" msgid "Enter a nickname or email address." msgstr "" -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "" -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "" -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "" -#: actions/recoverpassword.php:325 +#: 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:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "" -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "" -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "" -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "" -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "" @@ -3080,7 +3078,7 @@ msgstr "" msgid "You already repeated that notice." msgstr "" -#: actions/repeat.php:114 lib/noticelist.php:674 +#: actions/repeat.php:114 lib/noticelist.php:676 msgid "Repeated" msgstr "" @@ -4241,19 +4239,19 @@ msgstr "" msgid "Author(s)" msgstr "" -#: classes/File.php:144 +#: classes/File.php:169 #, 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." msgstr "" -#: classes/File.php:154 +#: classes/File.php:179 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:161 +#: classes/File.php:186 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" @@ -4327,7 +4325,7 @@ msgstr "" msgid "Problem saving group inbox." msgstr "" -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4356,28 +4354,28 @@ msgstr "" msgid "Couldn't delete subscription OMB token." msgstr "" -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "" -#: classes/User.php:373 +#: classes/User.php:378 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:477 +#: classes/User_group.php:480 msgid "Could not create group." msgstr "" -#: classes/User_group.php:486 +#: classes/User_group.php:489 msgid "Could not set group URI." msgstr "" -#: classes/User_group.php:507 +#: classes/User_group.php:510 msgid "Could not set group membership." msgstr "" -#: classes/User_group.php:521 +#: classes/User_group.php:524 msgid "Could not save local group info." msgstr "" @@ -4581,19 +4579,19 @@ msgstr "" msgid "StatusNet software license" msgstr "" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%). " msgstr "" -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "" -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4601,41 +4599,41 @@ msgid "" "org/licensing/licenses/agpl-3.0.html)." msgstr "" -#: lib/action.php:821 +#: lib/action.php:824 msgid "Site content license" msgstr "" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "" -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "" -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "" -#: lib/action.php:1161 +#: lib/action.php:1164 msgid "After" msgstr "" -#: lib/action.php:1169 +#: lib/action.php:1172 msgid "Before" msgstr "" @@ -4737,7 +4735,7 @@ msgstr "" msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4835,37 +4833,50 @@ msgstr "" msgid "Password changing is not allowed" msgstr "" -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." +#: lib/command.php:83 lib/command.php:105 +msgid "Notice with that id does not exist" msgstr "" -#: lib/command.php:88 +#: lib/command.php:99 lib/command.php:570 +msgid "User has no last notice" +msgstr "" + +#: lib/command.php:125 #, php-format msgid "Could not find a user with nickname %s" msgstr "" -#: lib/command.php:92 +#: lib/command.php:143 +#, php-format +msgid "Could not find a local user with nickname %s" +msgstr "" + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "" + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" -#: lib/command.php:99 +#: lib/command.php:228 #, php-format msgid "Nudge sent to %s" msgstr "" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -4873,195 +4884,193 @@ msgid "" "Notices: %3$s" msgstr "" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -msgid "Notice with that id does not exist" -msgstr "" - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -msgid "User has no last notice" -msgstr "" - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "" -#: lib/command.php:217 +#: lib/command.php:317 msgid "You are already a member of that group" msgstr "" -#: lib/command.php:231 +#: lib/command.php:331 #, php-format msgid "Could not join user %s to group %s" msgstr "" -#: lib/command.php:236 +#: lib/command.php:336 #, php-format msgid "%s joined group %s" msgstr "" -#: lib/command.php:275 +#: lib/command.php:373 #, php-format msgid "Could not remove user %s to group %s" msgstr "" -#: lib/command.php:280 +#: lib/command.php:378 #, php-format msgid "%s left group %s" msgstr "" -#: lib/command.php:309 +#: lib/command.php:401 #, php-format msgid "Fullname: %s" msgstr "" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "" -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "" -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "" -#: lib/command.php:413 +#: lib/command.php:490 msgid "Cannot repeat your own notice" msgstr "" -#: lib/command.php:418 +#: lib/command.php:495 msgid "Already repeated that notice" msgstr "" -#: lib/command.php:426 +#: lib/command.php:503 #, php-format msgid "Notice from %s repeated" msgstr "" -#: lib/command.php:428 +#: lib/command.php:505 msgid "Error repeating notice." msgstr "" -#: lib/command.php:482 +#: lib/command.php:536 #, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "" -#: lib/command.php:491 +#: lib/command.php:545 #, php-format msgid "Reply to %s sent" msgstr "" -#: lib/command.php:493 +#: lib/command.php:547 msgid "Error saving notice." msgstr "" -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "" -#: lib/command.php:554 lib/command.php:589 -msgid "No such user" +#: lib/command.php:602 +msgid "Can't subscribe to OMB profiles by command." msgstr "" -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "" -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "" -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "" -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "" -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "" -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "" -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" -#: lib/command.php:692 +#: lib/command.php:735 #, php-format msgid "Unsubscribed %s" msgstr "" -#: lib/command.php:709 +#: lib/command.php:752 msgid "You are not subscribed to anyone." msgstr "" -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "" msgstr[1] "" -#: lib/command.php:731 +#: lib/command.php:774 msgid "No one is subscribed to you." msgstr "" -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "" msgstr[1] "" -#: lib/command.php:753 +#: lib/command.php:796 msgid "You are not a member of any groups." msgstr "" -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "" msgstr[1] "" -#: lib/command.php:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5289,49 +5298,49 @@ msgstr "" msgid "This page is not available in a media type you accept" msgstr "" -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "" + +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "" -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "" -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "" -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "" -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "" - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 msgid "Lost our file." msgstr "" -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, php-format msgid "Unknown inbox source %d." msgstr "" @@ -5526,7 +5535,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 msgid "from" msgstr "" @@ -5676,23 +5685,23 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 msgid "in context" msgstr "" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 msgid "Repeated by" msgstr "" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 msgid "Reply" msgstr "" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 msgid "Notice repeated" msgstr "" @@ -6002,47 +6011,47 @@ msgctxt "role" msgid "Moderator" msgstr "" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "" @@ -6056,7 +6065,7 @@ msgstr "" msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "" -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "" diff --git a/locale/sv/LC_MESSAGES/statusnet.po b/locale/sv/LC_MESSAGES/statusnet.po index 2a508849f..a1ca8cdf8 100644 --- a/locale/sv/LC_MESSAGES/statusnet.po +++ b/locale/sv/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:50:58+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:44:04+0000\n" "Language-Team: Swedish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: sv\n" "X-Message-Group: out-statusnet\n" @@ -94,7 +94,7 @@ msgstr "Ingen sådan sida" #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -103,10 +103,8 @@ msgstr "Ingen sådan sida" #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Ingen sådan användare." @@ -206,12 +204,12 @@ msgstr "Uppdateringar från %1$s och vänner på %2$s!" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 msgid "API method not found." msgstr "API-metod hittades inte." @@ -340,7 +338,7 @@ msgstr "Ingen status hittad med det ID:t." msgid "This status is already a favorite." msgstr "Denna status är redan en favorit." -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "Kunde inte skapa favorit." @@ -458,7 +456,7 @@ msgstr "Grupp hittades inte!" msgid "You are already a member of that group." msgstr "Du är redan en medlem i denna grupp." -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "Du har blivit blockerad från denna grupp av administratören." @@ -508,7 +506,7 @@ msgstr "Ogiltig token." #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -646,12 +644,12 @@ msgstr "Maximal notisstorlek är %d tecken, inklusive URL för bilaga." msgid "Unsupported format." msgstr "Format som inte stödjs." -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / Favoriter från %2$s" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s uppdateringar markerade som favorit av %2$s / %2$s." @@ -661,7 +659,7 @@ msgstr "%1$s uppdateringar markerade som favorit av %2$s / %2$s." msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Uppdateringar som nämner %2$s" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s uppdateringar med svar på uppdatering från %2$s / %3$s." @@ -671,7 +669,7 @@ msgstr "%1$s uppdateringar med svar på uppdatering från %2$s / %3$s." msgid "%s public timeline" msgstr "%s publika tidslinje" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s uppdateringar från alla!" @@ -686,12 +684,12 @@ msgstr "Upprepat till %s" msgid "Repeats of %s" msgstr "Upprepningar av %s" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Notiser taggade med %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Uppdateringar taggade med %1$s på %2$s!" @@ -752,7 +750,7 @@ msgid "Preview" msgstr "Förhandsgranska" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "Ta bort" @@ -835,8 +833,8 @@ msgstr "Misslyckades att spara blockeringsinformation." #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 msgid "No such group." msgstr "Ingen sådan grupp." @@ -938,7 +936,7 @@ msgstr "Du är inte ägaren av denna applikation." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "Det var ett problem med din sessions-token." @@ -999,7 +997,7 @@ msgstr "Är du säker på att du vill ta bort denna notis?" msgid "Do not delete this notice" msgstr "Ta inte bort denna notis" -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "Ta bort denna notis" @@ -1252,7 +1250,7 @@ msgstr "beskrivning är för lång (max %d tecken)." msgid "Could not update group." msgstr "Kunde inte uppdatera grupp." -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 msgid "Could not create aliases." msgstr "Kunde inte skapa alias." @@ -1954,7 +1952,7 @@ msgstr "Bjud in nya användare" msgid "You are already subscribed to these users:" msgstr "Du prenumererar redan på dessa användare:" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" @@ -2086,7 +2084,7 @@ msgstr "%1$s gick med i grupp %2$s" msgid "You must be logged in to leave a group." msgstr "Du måste vara inloggad för att lämna en grupp." -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 msgid "You are not a member of that group." msgstr "Du är inte en medlem i den gruppen." @@ -2199,12 +2197,12 @@ msgstr "Använd detta formulär för att skapa en ny grupp." msgid "New message" msgstr "Nytt meddelande" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "Du kan inte skicka ett meddelande till den användaren." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "Inget innehåll!" @@ -2212,7 +2210,7 @@ msgstr "Inget innehåll!" msgid "No recipient specified." msgstr "Ingen mottagare angiven." -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" @@ -2228,7 +2226,7 @@ msgstr "Meddelande skickat" msgid "Direct message to %s sent." msgstr "Direktmeddelande till %s skickat." -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "AJAX-fel" @@ -2361,8 +2359,8 @@ msgstr "innehållstyp " msgid "Only " msgstr "Bara " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "Ett dataformat som inte stödjs" @@ -2493,7 +2491,7 @@ msgstr "Felaktigt gammalt lösenord" msgid "Error saving user; invalid." msgstr "Fel vid sparande av användare; ogiltig." -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "Kan inte spara nytt lösenord." @@ -2995,7 +2993,7 @@ msgstr "Återställ lösenord" msgid "Recover password" msgstr "Återskapa lösenord" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "Återskapande av lösenord begärd" @@ -3015,19 +3013,19 @@ msgstr "Återställ" msgid "Enter a nickname or email address." msgstr "Skriv in ett smeknamn eller en e-postadress." -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "Ingen användare med den e-postadressen eller användarnamn." -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "Ingen registrerad e-postadress för den användaren." -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "Fel vid sparande av adressbekräftelse." -#: actions/recoverpassword.php:325 +#: actions/recoverpassword.php:338 msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." @@ -3035,23 +3033,23 @@ msgstr "" "Instruktioner för att återställa ditt lösenord har skickats till e-" "postadressen som är registrerat till ditt konto " -#: actions/recoverpassword.php:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "Oväntad återställning av lösenord." -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "Lösenordet måste vara minst 6 tecken." -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Lösenord och bekräftelse matchar inte." -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "Fel uppstog i användarens inställning" -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "Nya lösenordet sparat. Du är nu inloggad." @@ -3256,7 +3254,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:674 +#: actions/repeat.php:114 lib/noticelist.php:676 msgid "Repeated" msgstr "Upprepad" @@ -4514,7 +4512,7 @@ msgstr "Version" msgid "Author(s)" msgstr "Författare" -#: classes/File.php:144 +#: classes/File.php:169 #, php-format msgid "" "No file may be larger than %d bytes and the file you sent was %d bytes. Try " @@ -4523,12 +4521,12 @@ 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:154 +#: classes/File.php:179 #, 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:161 +#: classes/File.php:186 #, 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." @@ -4606,7 +4604,7 @@ msgstr "Problem med att spara notis." msgid "Problem saving group inbox." msgstr "Problem med att spara gruppinkorg." -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4636,28 +4634,28 @@ msgstr "Kunde inte ta bort själv-prenumeration." msgid "Couldn't delete subscription OMB token." msgstr "Kunde inte ta bort prenumeration." -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "Kunde inte ta bort prenumeration." -#: classes/User.php:373 +#: classes/User.php:378 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Välkommen till %1$s, @%2$s!" -#: classes/User_group.php:477 +#: classes/User_group.php:480 msgid "Could not create group." msgstr "Kunde inte skapa grupp." -#: classes/User_group.php:486 +#: classes/User_group.php:489 msgid "Could not set group URI." msgstr "Kunde inte ställa in grupp-URI." -#: classes/User_group.php:507 +#: classes/User_group.php:510 msgid "Could not set group membership." msgstr "Kunde inte ställa in gruppmedlemskap." -#: classes/User_group.php:521 +#: classes/User_group.php:524 msgid "Could not save local group info." msgstr "Kunde inte spara lokal gruppinformation." @@ -4861,7 +4859,7 @@ msgstr "Emblem" msgid "StatusNet software license" msgstr "Programvarulicens för StatusNet" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4870,12 +4868,12 @@ msgstr "" "**%%site.name%%** är en mikrobloggtjänst tillhandahållen av [%%site.broughtby" "%%](%%site.broughtbyurl%%). " -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** är en mikrobloggtjänst. " -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4886,42 +4884,42 @@ msgstr "" "version %s, tillgänglig under [GNU Affero General Public License](http://www." "fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:821 +#: lib/action.php:824 msgid "Site content license" msgstr "Licens för webbplatsinnehåll" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Innehåll och data av %1$s är privat och konfidensiell." -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "Innehåll och data copyright av %1$s. Alla rättigheter reserverade." -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Innehåll och data copyright av medarbetare. Alla rättigheter reserverade." -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "Alla " -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "licens." -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "Numrering av sidor" -#: lib/action.php:1161 +#: lib/action.php:1164 msgid "After" msgstr "Senare" -#: lib/action.php:1169 +#: lib/action.php:1172 msgid "Before" msgstr "Tidigare" @@ -5026,7 +5024,7 @@ msgid "API resource requires read-write access, but you only have read access." msgstr "" "API-resursen kräver läs- och skrivrättigheter, men du har bara läsrättighet." -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5127,37 +5125,50 @@ msgstr "Byte av lösenord misslyckades" msgid "Password changing is not allowed" msgstr "Byte av lösenord är inte tillåtet" -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "Resultat av kommando" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "Kommando komplett" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "Kommando misslyckades" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." -msgstr "Tyvärr, detta kommando är inte implementerat än." +#: lib/command.php:83 lib/command.php:105 +msgid "Notice with that id does not exist" +msgstr "Notis med den ID:n finns inte" -#: lib/command.php:88 +#: lib/command.php:99 lib/command.php:570 +msgid "User has no last notice" +msgstr "Användare har ingen sista notis" + +#: lib/command.php:125 #, php-format msgid "Could not find a user with nickname %s" msgstr "Kunde inte hitta en användare med smeknamnet %s" -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "Kunde inte hitta en användare med smeknamnet %s" + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "Tyvärr, detta kommando är inte implementerat än." + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "Det verkar inte vara särskilt meningsfullt att knuffa dig själv!" -#: lib/command.php:99 +#: lib/command.php:228 #, php-format msgid "Nudge sent to %s" msgstr "Knuff skickad till %s" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5168,196 +5179,195 @@ msgstr "" "Prenumeranter: %2$s\n" "Notiser: %3$s" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -msgid "Notice with that id does not exist" -msgstr "Notis med den ID:n finns inte" - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -msgid "User has no last notice" -msgstr "Användare har ingen sista notis" - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "Notis markerad som favorit." -#: lib/command.php:217 +#: lib/command.php:317 msgid "You are already a member of that group" msgstr "Du är redan en medlem i denna grupp" -#: lib/command.php:231 +#: lib/command.php:331 #, php-format msgid "Could not join user %s to group %s" msgstr "Kunde inte ansluta användare %s till groupp %s" -#: lib/command.php:236 +#: lib/command.php:336 #, php-format msgid "%s joined group %s" msgstr "%s gick med i grupp %s" -#: lib/command.php:275 +#: lib/command.php:373 #, php-format msgid "Could not remove user %s to group %s" msgstr "Kunde inte ta bort användare %s från grupp %s" -#: lib/command.php:280 +#: lib/command.php:378 #, php-format msgid "%s left group %s" msgstr "%s lämnade grupp %s" -#: lib/command.php:309 +#: lib/command.php:401 #, php-format msgid "Fullname: %s" msgstr "Fullständigt namn: %s" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Plats: %s" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Hemsida: %s" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "Om: %s" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "Meddelande för långt - maximum är %d tecken, du skickade %d" -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "Direktmeddelande till %s skickat" -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "Fel vid sändning av direktmeddelande." -#: lib/command.php:413 +#: lib/command.php:490 msgid "Cannot repeat your own notice" msgstr "Kan inte upprepa din egen notis" -#: lib/command.php:418 +#: lib/command.php:495 msgid "Already repeated that notice" msgstr "Redan upprepat denna notis" -#: lib/command.php:426 +#: lib/command.php:503 #, php-format msgid "Notice from %s repeated" msgstr "Notis fron %s upprepad" -#: lib/command.php:428 +#: lib/command.php:505 msgid "Error repeating notice." msgstr "Fel vid upprepning av notis." -#: lib/command.php:482 +#: lib/command.php:536 #, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "Notis för långt - maximum är %d tecken, du skickade %d" -#: lib/command.php:491 +#: lib/command.php:545 #, php-format msgid "Reply to %s sent" msgstr "Svar på %s skickat" -#: lib/command.php:493 +#: lib/command.php:547 msgid "Error saving notice." msgstr "Fel vid sparande av notis." -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "Ange namnet på användaren att prenumerara på" -#: lib/command.php:554 lib/command.php:589 -msgid "No such user" -msgstr "Ingen sådan användare." +#: lib/command.php:602 +#, fuzzy +msgid "Can't subscribe to OMB profiles by command." +msgstr "Du är inte prenumerat hos den profilen." -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "Prenumerar på %s" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "Ange namnet på användaren att avsluta prenumeration på" -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "Prenumeration hos %s avslutad" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "Kommando inte implementerat än." -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "Notifikation av." -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "Kan inte sätta på notifikation." -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "Notifikation på." -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "Kan inte stänga av notifikation." -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "Inloggningskommando är inaktiverat" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" "Denna länk är endast användbar en gång, och gäller bara i 2 minuter: %s" -#: lib/command.php:692 +#: lib/command.php:735 #, php-format msgid "Unsubscribed %s" msgstr "Prenumeration avslutad %s" -#: lib/command.php:709 +#: lib/command.php:752 msgid "You are not subscribed to anyone." msgstr "Du prenumererar inte på någon." -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Du prenumererar på denna person:" msgstr[1] "Du prenumererar på dessa personer:" -#: lib/command.php:731 +#: lib/command.php:774 msgid "No one is subscribed to you." msgstr "Ingen prenumerar på dig." -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Denna person prenumererar på dig:" msgstr[1] "Dessa personer prenumererar på dig:" -#: lib/command.php:753 +#: lib/command.php:796 msgid "You are not a member of any groups." msgstr "Du är inte medlem i några grupper." -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Du är en medlem i denna grupp:" msgstr[1] "Du är en medlem i dessa grupper:" -#: lib/command.php:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5625,49 +5635,49 @@ msgstr "Taggar i %s grupps notiser" msgid "This page is not available in a media type you accept" msgstr "Denna sida är inte tillgänglig i den mediatyp du accepterat" -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "Bildfilens format stödjs inte." + +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Denna fil är för stor. Den maximala filstorleken är %s." -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Bitvis uppladdad." -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Systemfel vid uppladdning av fil." -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Inte en bildfil eller så är filen korrupt." -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "Bildfilens format stödjs inte." - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 msgid "Lost our file." msgstr "Förlorade vår fil." -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "Okänd filtyp" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "MB" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "kB" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "[%s]" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, php-format msgid "Unknown inbox source %d." msgstr "Okänd källa för inkorg %d." @@ -5947,7 +5957,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:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 msgid "from" msgstr "från" @@ -6103,23 +6113,23 @@ msgstr "V" msgid "at" msgstr "på" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 msgid "in context" msgstr "i sammanhang" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 msgid "Repeated by" msgstr "Upprepad av" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "Svara på denna notis" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 msgid "Reply" msgstr "Svara" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 msgid "Notice repeated" msgstr "Notis upprepad" @@ -6432,47 +6442,47 @@ msgctxt "role" msgid "Moderator" msgstr "Moderera" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "ett par sekunder sedan" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "för nån minut sedan" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "för %d minuter sedan" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "för en timma sedan" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "för %d timmar sedan" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "för en dag sedan" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "för %d dagar sedan" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "för en månad sedan" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "för %d månader sedan" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "för ett år sedan" @@ -6486,7 +6496,7 @@ msgstr "%s är inte en giltig färg!" msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "%s är inte en giltig färg! Använd 3 eller 6 hexadecimala tecken." -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "Meddelande för långt - maximum är %1$d tecken, du skickade %2$d." diff --git a/locale/te/LC_MESSAGES/statusnet.po b/locale/te/LC_MESSAGES/statusnet.po index c8a2f5c1a..1449adf15 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-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:51:01+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:44:07+0000\n" "Language-Team: Telugu\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: te\n" "X-Message-Group: out-statusnet\n" @@ -23,9 +23,8 @@ msgstr "" #. TRANS: Page title #. TRANS: Menu item for site administration #: actions/accessadminpanel.php:55 lib/adminpanelaction.php:374 -#, fuzzy msgid "Access" -msgstr "అంగీకరించు" +msgstr "అందుబాటు" #. TRANS: Page notice #: actions/accessadminpanel.php:67 @@ -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 "అంతరంగికం" @@ -66,18 +64,15 @@ msgstr "కొత్త నమోదులను అచేతనంచేయి. #. TRANS: Checkbox label for disabling new user registrations. #: actions/accessadminpanel.php:185 -#, fuzzy msgid "Closed" -msgstr "అటువంటి వాడుకరి లేరు." +msgstr "మూసివేయబడింది" #. TRANS: Title / tooltip for button to save access settings in site admin panel #: actions/accessadminpanel.php:202 -#, fuzzy msgid "Save access settings" -msgstr "సైటు అమరికలను భద్రపరచు" +msgstr "అందుబాటు అమరికలను భద్రపరచు" #: actions/accessadminpanel.php:203 -#, fuzzy msgctxt "BUTTON" msgid "Save" msgstr "భద్రపరచు" @@ -98,7 +93,7 @@ msgstr "అటువంటి పేజీ లేదు" #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -107,10 +102,8 @@ msgstr "అటువంటి పేజీ లేదు" #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "అటువంటి వాడుకరి లేరు." @@ -203,12 +196,12 @@ msgstr "" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "నిర్ధారణ సంకేతం కనబడలేదు." @@ -273,7 +266,7 @@ msgstr "" #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings." -msgstr "" +msgstr "మీ రూపురేఖల అమరికలని భద్రపరచలేకున్నాం." #: actions/apiaccountupdateprofilebackgroundimage.php:187 #: actions/apiaccountupdateprofilecolors.php:142 @@ -339,7 +332,7 @@ msgstr "" msgid "This status is already a favorite." msgstr "ఈ నోటీసు ఇప్పటికే మీ ఇష్టాంశం." -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "ఇష్టాంశాన్ని సృష్టించలేకపోయాం." @@ -459,7 +452,7 @@ msgstr "గుంపు దొరకలేదు!" msgid "You are already a member of that group." msgstr "మీరు ఇప్పటికే ఆ గుంపులో సభ్యులు." -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "నిర్వాహకులు ఆ గుంపు నుండి మిమ్మల్ని నిరోధించారు." @@ -510,7 +503,7 @@ msgstr "తప్పుడు పరిమాణం." #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -556,11 +549,11 @@ msgstr "" #: actions/apioauthauthorize.php:259 msgid "An application would like to connect to your account" -msgstr "" +msgstr "ఒక ఉపకరణం మీ ఖాతాకి అనుసంధానమవ్వాలనుకుంటూంది." #: actions/apioauthauthorize.php:276 msgid "Allow or deny access" -msgstr "" +msgstr "అనుమతిని ఇవ్వండి లేదా తిరస్కరించండి" #: actions/apioauthauthorize.php:292 #, php-format @@ -597,7 +590,7 @@ msgstr "అనుమతించు" #: actions/apioauthauthorize.php:351 msgid "Allow or deny access to your account information." -msgstr "" +msgstr "మీ ఖాతా సమాచారాన్ని సంప్రాపించడానికి అనుమతించండి లేదా నిరాకరించండి." #: actions/apistatusesdestroy.php:107 msgid "This method requires a POST or DELETE." @@ -626,7 +619,7 @@ msgstr "స్థితిని తొలగించాం." #: actions/apistatusesshow.php:144 msgid "No status with that ID found." -msgstr "" +msgstr "ఆ IDతో ఏ నోటీసు కనబడలేదు." #: actions/apistatusesupdate.php:161 actions/newnotice.php:155 #: lib/mailhandler.php:60 @@ -647,12 +640,12 @@ msgstr "గరిష్ఠ నోటీసు పొడవు %d అక్షర msgid "Unsupported format." msgstr "" -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, fuzzy, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%s యొక్క మైక్రోబ్లాగు" @@ -662,7 +655,7 @@ msgstr "%s యొక్క మైక్రోబ్లాగు" msgid "%1$s / Updates mentioning %2$s" msgstr "" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" @@ -672,7 +665,7 @@ msgstr "" msgid "%s public timeline" msgstr "%s బహిరంగ కాలరేఖ" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "అందరి నుండి %s తాజాకరణలు!" @@ -687,12 +680,12 @@ msgstr "%sకి స్పందనలు" msgid "Repeats of %s" msgstr "%s యొక్క పునరావృతాలు" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "%s యొక్క మైక్రోబ్లాగు" @@ -753,7 +746,7 @@ msgid "Preview" msgstr "మునుజూపు" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "తొలగించు" @@ -799,6 +792,8 @@ msgid "" "unsubscribed from you, unable to subscribe to you in the future, and you " "will not be notified of any @-replies from them." msgstr "" +"మీరు ఈ వాడుకరిని నిజంగానే నిరోధించాలనుకుంటున్నారా? ఆ తర్వాత, వారు మీ నుండి చందా విరమింపబడతారు, " +"భవిష్యత్తులో మీకు చందా చేరలేరు, మరియు వారి నుండి @-స్పందనలని మీకు తెలియజేయము." #: actions/block.php:143 actions/deleteapplication.php:153 #: actions/deletenotice.php:145 actions/deleteuser.php:150 @@ -833,8 +828,8 @@ msgstr "నిరోధపు సమాచారాన్ని భద్రప #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 msgid "No such group." msgstr "అటువంటి గుంపు లేదు." @@ -937,7 +932,7 @@ msgstr "మీరు ఈ ఉపకరణం యొక్క యజమాని #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "" @@ -995,7 +990,7 @@ msgstr "మీరు నిజంగానే ఈ నోటీసుని త msgid "Do not delete this notice" msgstr "ఈ నోటీసుని తొలగించకు" -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "ఈ నోటీసుని తొలగించు" @@ -1115,7 +1110,7 @@ msgstr "లంకెలు" #: actions/designadminpanel.php:577 lib/designsettings.php:247 msgid "Use defaults" -msgstr "" +msgstr "అప్రమేయాలని ఉపయోగించు" #: actions/designadminpanel.php:578 lib/designsettings.php:248 msgid "Restore default designs" @@ -1155,7 +1150,6 @@ msgid "No such document \"%s\"" msgstr "అటువంటి పత్రమేమీ లేదు." #: actions/editapplication.php:54 -#, fuzzy msgid "Edit Application" msgstr "ఉపకరణాన్ని మార్చు" @@ -1181,7 +1175,6 @@ msgid "Name is too long (max 255 chars)." msgstr "పేరు చాలా పెద్దగా ఉంది (గరిష్ఠంగా 255 అక్షరాలు)." #: actions/editapplication.php:183 actions/newapplication.php:162 -#, fuzzy msgid "Name already in use. Try another one." msgstr "ఆ పేరుని ఇప్పటికే వాడుతున్నారు. మరోటి ప్రయత్నించండి." @@ -1250,7 +1243,7 @@ msgstr "వివరణ చాలా పెద్దదిగా ఉంది (1 msgid "Could not update group." msgstr "గుంపుని తాజాకరించలేకున్నాం." -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 msgid "Could not create aliases." msgstr "మారుపేర్లని సృష్టించలేకపోయాం." @@ -1265,7 +1258,7 @@ msgstr "ఈమెయిల్ అమరికలు" #: actions/emailsettings.php:71 #, php-format msgid "Manage how you get email from %%site.name%%." -msgstr "" +msgstr "%%site.name%% నుండి మీకు ఎలా మెయిల్ వస్తూంతో సంభాళించుకోండి." #: actions/emailsettings.php:100 actions/imsettings.php:100 #: actions/smssettings.php:104 @@ -1287,6 +1280,8 @@ msgid "" "Awaiting confirmation on this address. Check your inbox (and spam box!) for " "a message with further instructions." msgstr "" +"ఈ చిరునామా నిర్ధారణకై వేచివున్నాం. తదుపరి సూచనలతో ఉన్న సందేశానికై మీ ఇన్‌బాక్స్‌లో (స్పామ్ బాక్సులో కూడా!) " +"చూడండి." #: actions/emailsettings.php:117 actions/imsettings.php:120 #: actions/smssettings.php:126 lib/applicationeditform.php:331 @@ -1556,23 +1551,20 @@ msgid "Cannot read file." msgstr "ఫైలుని చదవలేకపోతున్నాం." #: actions/grantrole.php:62 actions/revokerole.php:62 -#, fuzzy msgid "Invalid role." -msgstr "తప్పుడు పరిమాణం." +msgstr "తప్పుడు పాత్ర." #: actions/grantrole.php:66 actions/revokerole.php:66 msgid "This role is reserved and cannot be set." msgstr "" #: actions/grantrole.php:75 -#, fuzzy msgid "You cannot grant user roles on this site." -msgstr "మీరు ఇప్పటికే లోనికి ప్రవేశించారు!" +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 @@ -1646,7 +1638,7 @@ msgstr "గుంపు అలంకారం" msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." -msgstr "" +msgstr "నేపథ్య చిత్రం మరియు రంగుల ఎంపికతో మీ గుంపు ఎలా కనిపించాలో మలచుకోండి." #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 @@ -1701,7 +1693,7 @@ msgstr "ఈ గుంపులో వాడుకరులు జాబితా #: actions/groupmembers.php:182 lib/groupnav.php:107 msgid "Admin" -msgstr "" +msgstr "నిర్వాహకులు" #: actions/groupmembers.php:355 lib/blockform.php:69 msgid "Block" @@ -1890,9 +1882,9 @@ msgid "That is not your Jabber ID." msgstr "ఇది మీ Jabber ID కాదు" #: actions/inbox.php:59 -#, fuzzy, php-format +#, php-format msgid "Inbox for %1$s - page %2$d" -msgstr "%sకి వచ్చినవి" +msgstr "%1$sకి వచ్చినవి - %2$dవ పేజీ" #: actions/inbox.php:62 #, php-format @@ -1929,7 +1921,7 @@ msgstr "కొత్త వాడుకరులని ఆహ్వానిం msgid "You are already subscribed to these users:" msgstr "మీరు ఇప్పటికే ఈ వాడుకరులకు చందాచేరి ఉన్నారు:" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" @@ -1972,7 +1964,6 @@ msgstr "ఐచ్ఛికంగా ఆహ్వానానికి వ్య #. TRANS: Send button for inviting friends #: actions/invite.php:198 -#, fuzzy msgctxt "BUTTON" msgid "Send" msgstr "పంపించు" @@ -2031,7 +2022,7 @@ msgstr "%1$s %2$s గుంపులో చేరారు" msgid "You must be logged in to leave a group." msgstr "గుంపుని వదిలివెళ్ళడానికి మీరు ప్రవేశించి ఉండాలి." -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 msgid "You are not a member of that group." msgstr "మీరు ఆ గుంపులో సభ్యులు కాదు." @@ -2050,7 +2041,7 @@ msgstr "వాడుకరిపేరు లేదా సంకేతపదం #: actions/login.php:132 actions/otp.php:120 msgid "Error setting user. You are probably not authorized." -msgstr "" +msgstr "వాడుకరిని అమర్చడంలో పొరపాటు. బహుశా మీకు అధీకరణ లేకపోవచ్చు." #: actions/login.php:188 actions/login.php:241 lib/logingroupnav.php:79 msgid "Login" @@ -2144,12 +2135,12 @@ msgstr "కొత్త గుంపుని సృష్టిండాని msgid "New message" msgstr "కొత్త సందేశం" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "ఈ వాడుకరికి మీరు సందేశాన్ని పంపించలేరు." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "విషయం లేదు!" @@ -2157,7 +2148,7 @@ msgstr "విషయం లేదు!" msgid "No recipient specified." msgstr "" -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "మీకు మీరే సందేశాన్ని పంపుకోకండి; దాని బదులు మీలో మీరే మెల్లగా చెప్పుకోండి." @@ -2171,7 +2162,7 @@ msgstr "సందేశాన్ని పంపించాం" msgid "Direct message to %s sent." msgstr "%sకి నేరు సందేశాన్ని పంపించాం" -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "అజాక్స్ పొరపాటు" @@ -2290,7 +2281,7 @@ msgstr "" #: actions/oembed.php:86 actions/shownotice.php:180 #, php-format msgid "%1$s's status on %2$s" -msgstr "" +msgstr "%2$sలో %1$s యొక్క స్థితి" #: actions/oembed.php:157 msgid "content type " @@ -2300,8 +2291,8 @@ msgstr "విషయ రకం " msgid "Only " msgstr "మాత్రమే " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "" @@ -2437,7 +2428,7 @@ msgstr "పాత సంకేతపదం తప్పు" msgid "Error saving user; invalid." msgstr "వాడుకరిని భద్రపరచడంలో పొరపాటు: సరికాదు." -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "కొత్త సంకేతపదాన్ని భద్రపరచలేము." @@ -2448,7 +2439,7 @@ msgstr "సంకేతపదం భద్రమయ్యింది." #. TRANS: Menu item for site administration #: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:382 msgid "Paths" -msgstr "" +msgstr "త్రోవలు" #: actions/pathsadminpanel.php:70 msgid "Path and server settings for this StatusNet site." @@ -2789,19 +2780,16 @@ msgid "Public timeline" msgstr "ప్రజా కాలరేఖ" #: actions/public.php:160 -#, fuzzy msgid "Public Stream Feed (RSS 1.0)" -msgstr "ప్రజా వాహిని ఫీడు" +msgstr "ప్రజా వాహిని ఫీడు (RSS 1.0)" #: actions/public.php:164 -#, fuzzy msgid "Public Stream Feed (RSS 2.0)" -msgstr "ప్రజా వాహిని ఫీడు" +msgstr "ప్రజా వాహిని ఫీడు (RSS 2.0)" #: actions/public.php:168 -#, fuzzy msgid "Public Stream Feed (Atom)" -msgstr "ప్రజా వాహిని ఫీడు" +msgstr "ప్రజా వాహిని ఫీడు (ఆటమ్)" #: actions/public.php:188 #, php-format @@ -2818,7 +2806,7 @@ msgstr "" #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" -msgstr "" +msgstr "[ఖాతా నమోదు చేసుకుని](%%action.register%%) మొదటగా వ్రాసేది మీరే ఎందుకు కాకూడదు!" #: actions/public.php:242 #, php-format @@ -2895,7 +2883,7 @@ msgstr "ఈ నిర్ధారణ సంకేతం చాలా పాత #: actions/recoverpassword.php:111 msgid "Could not update user with confirmed email address." -msgstr "" +msgstr "నిర్ధారిత ఈమెయిలు చిరునామాతో వాడుకరిని తాజాకరించలేకపోయాం." #: actions/recoverpassword.php:152 msgid "" @@ -2932,7 +2920,7 @@ msgstr "" msgid "Recover password" msgstr "" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "" @@ -2952,41 +2940,41 @@ msgstr "" msgid "Enter a nickname or email address." msgstr "పేరు లేదా ఈమెయిల్ చిరునామా ఇవ్వండి." -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "ఆ ఈమెయిలు చిరునామా లేదా వాడుకరిపేరుతో వాడుకరులెవరూ లేరు." -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "ఈ వాడుకరికై నమోదైన ఈమెయిల్ చిరునామాలు ఏమీ లేవు." -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "చిరునామా నిర్ధారణని భద్రపరచడంలో పొరపాటు." -#: actions/recoverpassword.php:325 +#: 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:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "" -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "సంకేతపదం 6 లేదా అంతకంటే ఎక్కవ అక్షరాలుండాలి." -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "సంకేతపదం మరియు నిర్ధారణ సరిపోలేదు." -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "" -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "మీ కొత్త సంకేతపదం భద్రమైంది. మీరు ఇప్పుడు లోనికి ప్రవేశించారు." @@ -3103,6 +3091,8 @@ 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 @@ -3111,6 +3101,9 @@ msgid "" "register%%) a new account. If you already have an account on a [compatible " "microblogging site](%%doc.openmublog%%), enter your profile URL below." msgstr "" +"చందా చేరడానికి, మీరు [ప్రవేశించవచ్చు](%%action.login%%), లేదా కొత్త ఖాతాని [నమోదుచేసుకోవచ్చు](%%" +"action.register%%). ఒకవేళ మీకు ఇప్పటికే ఏదైనా [పొసగే మైక్రోబ్లాగింగు సైటులో](%%doc.openmublog%" +"%) ఖాతా ఉంటే, మీ ప్రొఫైలు చిరునామాని క్రింద ఇవ్వండి." #: actions/remotesubscribe.php:112 msgid "Remote subscribe" @@ -3160,7 +3153,7 @@ msgstr "" #: actions/repeat.php:57 msgid "Only logged-in users can repeat notices." -msgstr "" +msgstr "కేవలం ప్రవేశించిన వాడుకరులు మాత్రమే నోటీసులని పునరావృతించగలరు." #: actions/repeat.php:64 actions/repeat.php:71 #, fuzzy @@ -3168,16 +3161,14 @@ msgid "No notice specified." msgstr "కొత్త సందేశం" #: actions/repeat.php:76 -#, fuzzy msgid "You can't repeat your own notice." -msgstr "ఈ లైసెన్సుకి అంగీకరించకపోతే మీరు నమోదుచేసుకోలేరు." +msgstr "మీ నోటీసుని మీరే పునరావృతించలేరు." #: actions/repeat.php:90 -#, fuzzy msgid "You already repeated that notice." -msgstr "మీరు ఇప్పటికే ఆ వాడుకరిని నిరోధించారు." +msgstr "మీరు ఇప్పటికే ఆ నోటీసుని పునరావృతించారు." -#: actions/repeat.php:114 lib/noticelist.php:674 +#: actions/repeat.php:114 lib/noticelist.php:676 #, fuzzy msgid "Repeated" msgstr "సృష్టితం" @@ -3194,24 +3185,24 @@ msgid "Replies to %s" msgstr "%sకి స్పందనలు" #: actions/replies.php:128 -#, fuzzy, php-format +#, php-format msgid "Replies to %1$s, page %2$d" -msgstr "%sకి స్పందనలు" +msgstr "%1$sకి స్పందనలు, %2$dవ పేజీ" #: actions/replies.php:145 -#, fuzzy, php-format +#, php-format msgid "Replies feed for %s (RSS 1.0)" -msgstr "%s యొక్క సందేశముల ఫీడు" +msgstr "%s కొరకు స్పందనల ఫీడు (RSS 1.0)" #: actions/replies.php:152 -#, fuzzy, php-format +#, php-format msgid "Replies feed for %s (RSS 2.0)" -msgstr "%s యొక్క సందేశముల ఫీడు" +msgstr "%s కొరకు స్పందనల ఫీడు (RSS 2.0)" #: actions/replies.php:159 -#, fuzzy, php-format +#, php-format msgid "Replies feed for %s (Atom)" -msgstr "%s యొక్క సందేశముల ఫీడు" +msgstr "%s కొరకు స్పందనల ఫీడు (ఆటమ్)" #: actions/replies.php:199 #, fuzzy, php-format @@ -3237,9 +3228,9 @@ msgid "" msgstr "" #: actions/repliesrss.php:72 -#, fuzzy, php-format +#, php-format msgid "Replies to %1$s on %2$s!" -msgstr "%sకి స్పందనలు" +msgstr "%2$sలో %1$sకి స్పందనలు!" #: actions/revokerole.php:75 #, fuzzy @@ -3304,7 +3295,7 @@ msgstr "గుంపుని వదిలివెళ్ళడానికి #: actions/showapplication.php:157 msgid "Application profile" -msgstr "" +msgstr "ఉపకరణ ప్రవర" #: actions/showapplication.php:159 lib/applicationeditform.php:180 msgid "Icon" @@ -3433,9 +3424,9 @@ msgid "%s group" msgstr "%s గుంపు" #: actions/showgroup.php:84 -#, fuzzy, php-format +#, php-format msgid "%1$s group, page %2$d" -msgstr "%1$s గుంపు సభ్యులు, పేజీ %2$d" +msgstr "%1$s గుంపు , %2$dవ పేజీ" #: actions/showgroup.php:226 msgid "Group profile" @@ -3548,9 +3539,9 @@ msgid " tagged %s" msgstr "" #: actions/showstream.php:79 -#, fuzzy, php-format +#, php-format msgid "%1$s, page %2$d" -msgstr "%1$s మరియు మిత్రులు, పేజీ %2$d" +msgstr "%1$s, %2$dవ పేజీ" #: actions/showstream.php:122 #, fuzzy, php-format @@ -3699,9 +3690,8 @@ msgid "Default timezone for the site; usually UTC." msgstr "" #: actions/siteadminpanel.php:262 -#, fuzzy msgid "Default language" -msgstr "అప్రమేయ సైటు భాష" +msgstr "అప్రమేయ భాష" #: actions/siteadminpanel.php:263 msgid "Site language when autodetection from browser settings is not available" @@ -3744,7 +3734,7 @@ msgstr "సందేశాన్ని భద్రపరచడంలో పొ #: actions/sitenoticeadminpanel.php:113 msgid "Max length for the site-wide notice is 255 chars" -msgstr "" +msgstr "సైటు-వారీ నోటీసుకి గరిష్ఠ పొడవు 255 అక్షరాలు" #: actions/sitenoticeadminpanel.php:176 #, fuzzy @@ -3753,7 +3743,7 @@ msgstr "సైటు గమనిక" #: actions/sitenoticeadminpanel.php:178 msgid "Site-wide notice text (255 chars max; HTML okay)" -msgstr "" +msgstr "సైటు-వారీ నోటీసు పాఠ్యం (255 అక్షరాలు గరిష్ఠం; HTML పర్లేదు)" #: actions/sitenoticeadminpanel.php:198 #, fuzzy @@ -4012,7 +4002,7 @@ msgstr "" #: actions/subscriptions.php:128 actions/subscriptions.php:132 #, php-format msgid "%s is not listening to anyone." -msgstr "" +msgstr "%s ప్రస్తుతం ఎవరినీ వినడంలేదు." #: actions/subscriptions.php:199 msgid "Jabber" @@ -4123,7 +4113,6 @@ msgstr "" #. TRANS: User admin panel title #: actions/useradminpanel.php:59 -#, fuzzy msgctxt "TITLE" msgid "User" msgstr "వాడుకరి" @@ -4225,11 +4214,11 @@ msgstr "ఈ చందాని తిరస్కరించు" #: actions/userauthorization.php:232 msgid "No authorization request!" -msgstr "" +msgstr "అధీకరణ అభ్యర్థన లేదు!" #: actions/userauthorization.php:254 msgid "Subscription authorized" -msgstr "" +msgstr "చందాని అధీకరించారు" #: actions/userauthorization.php:256 msgid "" @@ -4299,9 +4288,9 @@ msgid "Enjoy your hotdog!" msgstr "" #: actions/usergroups.php:64 -#, fuzzy, php-format +#, php-format msgid "%1$s groups, page %2$d" -msgstr "%1$s గుంపు సభ్యులు, పేజీ %2$d" +msgstr "%1$s గుంపులు, %2$dవ పేజీ" #: actions/usergroups.php:130 msgid "Search for more groups" @@ -4374,19 +4363,19 @@ msgstr "సంచిక" msgid "Author(s)" msgstr "రచయిత(లు)" -#: classes/File.php:144 +#: classes/File.php:169 #, 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." msgstr "" -#: classes/File.php:154 +#: classes/File.php:179 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:161 +#: classes/File.php:186 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" @@ -4404,9 +4393,8 @@ msgid "Group leave failed." msgstr "గుంపు నుండి వైదొలగడం విఫలమైంది." #: classes/Local_group.php:41 -#, fuzzy msgid "Could not update local group." -msgstr "గుంపుని తాజాకరించలేకున్నాం." +msgstr "స్థానిక గుంపుని తాజాకరించలేకున్నాం." #: classes/Login_token.php:76 #, fuzzy, php-format @@ -4464,7 +4452,7 @@ msgstr "సందేశాన్ని భద్రపరచడంలో పొ msgid "Problem saving group inbox." msgstr "సందేశాన్ని భద్రపరచడంలో పొరపాటు." -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4496,29 +4484,29 @@ msgstr "చందాని తొలగించలేకపోయాం." msgid "Couldn't delete subscription OMB token." msgstr "చందాని తొలగించలేకపోయాం." -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "చందాని తొలగించలేకపోయాం." -#: classes/User.php:373 +#: classes/User.php:378 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "@%2$s, %1$sకి స్వాగతం!" -#: classes/User_group.php:477 +#: classes/User_group.php:480 msgid "Could not create group." msgstr "గుంపుని సృష్టించలేకపోయాం." -#: classes/User_group.php:486 +#: classes/User_group.php:489 #, fuzzy msgid "Could not set group URI." msgstr "గుంపు సభ్యత్వాన్ని అమర్చలేకపోయాం." -#: classes/User_group.php:507 +#: classes/User_group.php:510 msgid "Could not set group membership." msgstr "గుంపు సభ్యత్వాన్ని అమర్చలేకపోయాం." -#: classes/User_group.php:521 +#: classes/User_group.php:524 #, fuzzy msgid "Could not save local group info." msgstr "చందాని సృష్టించలేకపోయాం." @@ -4559,7 +4547,7 @@ msgstr "%1$s - %2$s" #: lib/action.php:159 msgid "Untitled page" -msgstr "" +msgstr "శీర్షికలేని పేజీ" #: lib/action.php:424 msgid "Primary site navigation" @@ -4572,7 +4560,6 @@ msgid "Personal profile and friends timeline" msgstr "" #: lib/action.php:433 -#, fuzzy msgctxt "MENU" msgid "Personal" msgstr "వ్యక్తిగత" @@ -4597,13 +4584,11 @@ msgstr "అనుసంధానించు" #. TRANS: Tooltip for menu option "Admin" #: lib/action.php:446 -#, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" -msgstr "చందాలు" +msgstr "సైటు స్వరూపణాన్ని మార్చండి" #: lib/action.php:449 -#, fuzzy msgctxt "MENU" msgid "Admin" msgstr "నిర్వాహకులు" @@ -4616,72 +4601,61 @@ msgid "Invite friends and colleagues to join you on %s" msgstr "ఈ ఫారాన్ని ఉపయోగించి మీ స్నేహితులను మరియు సహోద్యోగులను ఈ సేవను వినియోగించుకోమని ఆహ్వానించండి." #: lib/action.php:456 -#, fuzzy msgctxt "MENU" msgid "Invite" msgstr "ఆహ్వానించు" #. TRANS: Tooltip for main menu option "Logout" #: lib/action.php:462 -#, fuzzy msgctxt "TOOLTIP" msgid "Logout from the site" msgstr "సైటు నుండి నిష్క్రమించు" #: lib/action.php:465 -#, fuzzy msgctxt "MENU" msgid "Logout" msgstr "నిష్క్రమించు" #. TRANS: Tooltip for main menu option "Register" #: lib/action.php:470 -#, fuzzy msgctxt "TOOLTIP" msgid "Create an account" -msgstr "కొత్త ఖాతా సృష్టించు" +msgstr "ఖాతాని సృష్టించుకోండి" #: lib/action.php:473 -#, fuzzy msgctxt "MENU" msgid "Register" msgstr "నమోదు" #. TRANS: Tooltip for main menu option "Login" #: lib/action.php:476 -#, fuzzy msgctxt "TOOLTIP" msgid "Login to the site" -msgstr "సైటులోని ప్రవేశించు" +msgstr "సైటు లోనికి ప్రవేశించండి" #: lib/action.php:479 -#, fuzzy msgctxt "MENU" msgid "Login" -msgstr "ప్రవేశించండి" +msgstr "ప్రవేశించు" #. TRANS: Tooltip for main menu option "Help" #: lib/action.php:482 -#, fuzzy msgctxt "TOOLTIP" msgid "Help me!" msgstr "సహాయం కావాలి!" #: lib/action.php:485 -#, fuzzy msgctxt "MENU" msgid "Help" msgstr "సహాయం" #. TRANS: Tooltip for main menu option "Search" #: lib/action.php:488 -#, fuzzy msgctxt "TOOLTIP" msgid "Search for people or text" -msgstr "మరిన్ని గుంపులకై వెతుకు" +msgstr "ప్రజలు లేదా పాఠ్యం కొరకు వెతకండి" #: lib/action.php:491 -#, fuzzy msgctxt "MENU" msgid "Search" msgstr "వెతుకు" @@ -4741,7 +4715,7 @@ msgstr "బాడ్జి" msgid "StatusNet software license" msgstr "స్టేటస్‌నెట్ మృదూపకరణ లైసెన్సు" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4750,12 +4724,12 @@ msgstr "" "**%%site.name%%** అనేది [%%site.broughtby%%](%%site.broughtbyurl%%) వారు " "అందిస్తున్న మైక్రో బ్లాగింగు సదుపాయం. " -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** అనేది మైక్రో బ్లాగింగు సదుపాయం." -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4766,42 +4740,42 @@ msgstr "" "html) కింద లభ్యమయ్యే [స్టేటస్‌నెట్](http://status.net/) మైక్రోబ్లాగింగ్ ఉపకరణం సంచిక %s " "పై నడుస్తుంది." -#: lib/action.php:821 +#: lib/action.php:824 #, fuzzy msgid "Site content license" msgstr "కొత్త సందేశం" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "అన్నీ " -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." -msgstr "" +msgstr "లైసెన్సు." -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "పేజీకరణ" -#: lib/action.php:1161 +#: lib/action.php:1164 msgid "After" msgstr "తర్వాత" -#: lib/action.php:1169 +#: lib/action.php:1172 msgid "Before" msgstr "ఇంతక్రితం" @@ -4849,7 +4823,6 @@ msgstr "ప్రాథమిక సైటు స్వరూపణం" #. TRANS: Menu item for site administration #: lib/adminpanelaction.php:350 -#, fuzzy msgctxt "MENU" msgid "Site" msgstr "సైటు" @@ -4861,7 +4834,6 @@ msgstr "రూపకల్పన స్వరూపణం" #. TRANS: Menu item for site administration #: lib/adminpanelaction.php:358 -#, fuzzy msgctxt "MENU" msgid "Design" msgstr "రూపురేఖలు" @@ -4910,7 +4882,7 @@ msgstr "SMS నిర్ధారణ" msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -4960,11 +4932,11 @@ msgstr "విహారిణి" #: lib/applicationeditform.php:274 msgid "Desktop" -msgstr "" +msgstr "మేజోపరి" #: lib/applicationeditform.php:275 msgid "Type of application, browser or desktop" -msgstr "" +msgstr "ఉపకరణ రకం, విహారిణి లేదా మేజోపరి" #: lib/applicationeditform.php:297 msgid "Read-only" @@ -5014,37 +4986,52 @@ msgstr "సంకేతపదం మార్పు" msgid "Password changing is not allowed" msgstr "సంకేతపదం మార్పు" -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "ఆదేశ ఫలితాలు" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "ఆదేశం పూర్తయ్యింది" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "ఆదేశం విఫలమైంది" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." -msgstr "" +#: lib/command.php:83 lib/command.php:105 +#, fuzzy +msgid "Notice with that id does not exist" +msgstr "ఆ ఈమెయిలు చిరునామా లేదా వాడుకరిపేరుతో వాడుకరులెవరూ లేరు." + +#: lib/command.php:99 lib/command.php:570 +#, fuzzy +msgid "User has no last notice" +msgstr "వాడుకరికి ప్రొఫైలు లేదు." -#: lib/command.php:88 +#: lib/command.php:125 #, php-format msgid "Could not find a user with nickname %s" msgstr "వాడుకరిని తాజాకరించలేకున్నాం." -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "వాడుకరిని తాజాకరించలేకున్నాం." + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "క్షమించండి, ఈ ఆదేశం ఇంకా అమలుపరచబడలేదు." + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" -#: lib/command.php:99 +#: lib/command.php:228 #, fuzzy, php-format msgid "Nudge sent to %s" msgstr "%sకి స్పందనలు" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5055,199 +5042,195 @@ msgstr "" "చందాదార్లు: %2$s\n" "నోటీసులు: %3$s" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -#, fuzzy -msgid "Notice with that id does not exist" -msgstr "ఆ ఈమెయిలు చిరునామా లేదా వాడుకరిపేరుతో వాడుకరులెవరూ లేరు." - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -#, fuzzy -msgid "User has no last notice" -msgstr "వాడుకరికి ప్రొఫైలు లేదు." - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "" -#: lib/command.php:217 +#: lib/command.php:317 msgid "You are already a member of that group" msgstr "మీరు ఇప్పటికే ఆ గుంపులో సభ్యులు" -#: lib/command.php:231 +#: lib/command.php:331 #, php-format msgid "Could not join user %s to group %s" msgstr "వాడుకరి %sని %s గుంపులో చేర్చలేకపోయాం" -#: lib/command.php:236 +#: lib/command.php:336 #, php-format msgid "%s joined group %s" msgstr "%s %s గుంపులో చేరారు" -#: lib/command.php:275 +#: lib/command.php:373 #, php-format msgid "Could not remove user %s to group %s" msgstr "వాడుకరి %sని %s గుంపు నుండి తొలగించలేకపోయాం" -#: lib/command.php:280 +#: lib/command.php:378 #, php-format msgid "%s left group %s" msgstr "%2$s గుంపు నుండి %1$s వైదొలిగారు" -#: lib/command.php:309 +#: lib/command.php:401 #, php-format msgid "Fullname: %s" msgstr "పూర్తిపేరు: %s" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "ప్రాంతం: %s" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "హోంపేజీ: %s" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "గురించి: %s" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, fuzzy, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "నోటిసు చాలా పొడవుగా ఉంది - %d అక్షరాలు గరిష్ఠం, మీరు %d పంపించారు" -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "%sకి నేరు సందేశాన్ని పంపించాం" -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "" -#: lib/command.php:413 +#: lib/command.php:490 msgid "Cannot repeat your own notice" msgstr "మీ నోటిసుని మీరే పునరావృతించలేరు" -#: lib/command.php:418 +#: lib/command.php:495 msgid "Already repeated that notice" msgstr "ఇప్పటికే ఈ నోటీసుని పునరావృతించారు" -#: lib/command.php:426 +#: lib/command.php:503 #, fuzzy, php-format msgid "Notice from %s repeated" msgstr "సందేశాలు" -#: lib/command.php:428 +#: lib/command.php:505 #, fuzzy msgid "Error repeating notice." msgstr "సందేశాన్ని భద్రపరచడంలో పొరపాటు." -#: lib/command.php:482 +#: lib/command.php:536 #, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "నోటిసు చాలా పొడవుగా ఉంది - %d అక్షరాలు గరిష్ఠం, మీరు %d పంపించారు" -#: lib/command.php:491 +#: lib/command.php:545 #, fuzzy, php-format msgid "Reply to %s sent" msgstr "%sకి స్పందనలు" -#: lib/command.php:493 +#: lib/command.php:547 #, fuzzy msgid "Error saving notice." msgstr "సందేశాన్ని భద్రపరచడంలో పొరపాటు." -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "ఏవరికి చందా చేరాలనుకుంటున్నారో ఆ వాడుకరి పేరు తెలియజేయండి" -#: lib/command.php:554 lib/command.php:589 -msgid "No such user" -msgstr "అటువంటి వాడుకరి లేరు" +#: lib/command.php:602 +msgid "Can't subscribe to OMB profiles by command." +msgstr "" -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "%sకి చందా చేరారు" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "ఎవరి నుండి చందా విరమించాలనుకుంటున్నారో ఆ వాడుకరి పేరు తెలియజేయండి" -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "%s నుండి చందా విరమించారు" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "" -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "" -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "" -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "" -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "" -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "ఈ లంకెని ఒకే సారి ఉపయోగించగలరు, మరియు అది పనిచేసేది 2 నిమిషాలు మాత్రమే: %s" -#: lib/command.php:692 -#, fuzzy, php-format +#: lib/command.php:735 +#, php-format msgid "Unsubscribed %s" msgstr "%s నుండి చందా విరమించారు" -#: lib/command.php:709 +#: lib/command.php:752 msgid "You are not subscribed to anyone." msgstr "మీరు ఎవరికీ చందాచేరలేదు." -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "%sకి స్పందనలు" msgstr[1] "%sకి స్పందనలు" -#: lib/command.php:731 +#: lib/command.php:774 msgid "No one is subscribed to you." msgstr "మీకు చందాదార్లు ఎవరూ లేరు." -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "%sకి స్పందనలు" msgstr[1] "%sకి స్పందనలు" -#: lib/command.php:753 +#: lib/command.php:796 msgid "You are not a member of any groups." msgstr "మీరు ఏ గుంపులోనూ సభ్యులు కాదు." -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "మీరు ఇప్పటికే లోనికి ప్రవేశించారు!" msgstr[1] "మీరు ఇప్పటికే లోనికి ప్రవేశించారు!" -#: lib/command.php:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5324,7 +5307,7 @@ msgstr "అనుసంధానాలు" #: lib/connectsettingsaction.php:121 msgid "Authorized connected applications" -msgstr "" +msgstr "అధీకృత అనుసంధాన ఉపకరణాలు" #: lib/dberroraction.php:60 msgid "Database error" @@ -5480,50 +5463,50 @@ msgstr "" msgid "This page is not available in a media type you accept" msgstr "" -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "" + +#: lib/imagefile.php:90 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "ఇది చాలా పొడవుంది. గరిష్ఠ సందేశ పరిమాణం 140 అక్షరాలు." -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "పాక్షిక ఎగుమతి." -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "" -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "బొమ్మ కాదు లేదా పాడైపోయిన ఫైలు." -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "" - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 #, fuzzy msgid "Lost our file." msgstr "అటువంటి సందేశమేమీ లేదు." -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "తెలియని ఫైలు రకం" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "మెబై" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "కిబై" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "[%s]" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, fuzzy, php-format msgid "Unknown inbox source %d." msgstr "గుర్తు తెలియని భాష \"%s\"" @@ -5672,6 +5655,20 @@ msgid "" "With kind regards,\n" "%5$s\n" msgstr "" +"%1$s (%2$s) మీకు ఒక అంతరంగిక సందేశాన్ని పంపించారు:\n" +"\n" +"------------------------------------------------------\n" +"%3$s\n" +"------------------------------------------------------\n" +"\n" +"వారి సందేశానికి మీరు ఇక్కడ జవాబివ్వవచ్చు:\n" +"\n" +"%4$s\n" +"\n" +"ఈ ఈమెయిలుకి స్పందించకండి; ఇది వారికి వెళ్ళదు.\n" +"\n" +"శుభాకాంక్షలతో,\n" +"%5$s\n" #: lib/mail.php:568 #, php-format @@ -5739,7 +5736,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 msgid "from" msgstr "నుండి" @@ -5780,11 +5777,11 @@ msgstr "" #: lib/mediafile.php:152 msgid "The uploaded file was only partially uploaded." -msgstr "" +msgstr "ఎక్కించిన ఫైలు కేవలం పాక్షికంగా మాత్రమే ఎక్కింది." #: lib/mediafile.php:159 msgid "Missing a temporary folder." -msgstr "" +msgstr "తాత్కాలిక సంచయం కనబడటంలేదు." #: lib/mediafile.php:162 msgid "Failed to write file to disk." @@ -5830,7 +5827,6 @@ msgid "Available characters" msgstr "అందుబాటులో ఉన్న అక్షరాలు" #: lib/messageform.php:178 lib/noticeform.php:236 -#, fuzzy msgctxt "Send button for sending notice" msgid "Send" msgstr "పంపించు" @@ -5868,6 +5864,8 @@ msgid "" "Sorry, retrieving your geo location is taking longer than expected, please " "try again later" msgstr "" +"క్షమించండి, మీ భౌగోళిక ప్రాంతాన్ని తెలుసుకోవడం అనుకున్నదానికంటే ఎక్కవ సమయం తీసుకుంటూంది, దయచేసి " +"కాసేపాగి ప్రయత్నించండి" #: lib/noticelist.php:429 #, php-format @@ -5894,24 +5892,24 @@ msgstr "ప" msgid "at" msgstr "" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 msgid "in context" msgstr "సందర్భంలో" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 #, fuzzy msgid "Repeated by" msgstr "సృష్టితం" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "ఈ నోటీసుపై స్పందించండి" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 msgid "Reply" msgstr "స్పందించండి" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 #, fuzzy msgid "Notice repeated" msgstr "నోటీసుని తొలగించాం." @@ -5948,7 +5946,7 @@ msgstr "కొత్త సందేశం" #: lib/oauthstore.php:490 msgid "Couldn't insert new subscription." -msgstr "" +msgstr "కొత్త చందాని చేర్చలేకపోయాం." #: lib/personalgroupnav.php:99 msgid "Personal" @@ -6092,7 +6090,7 @@ msgstr "ప్రజలు" #: lib/searchgroupnav.php:81 msgid "Find people on this site" -msgstr "" +msgstr "ఈ సైటులోని వ్యక్తులని కనుగొనండి" #: lib/searchgroupnav.php:83 msgid "Find content of notices" @@ -6100,11 +6098,11 @@ msgstr "" #: lib/searchgroupnav.php:85 msgid "Find groups on this site" -msgstr "" +msgstr "ఈ సైటులోని గుంపులని కనుగొనండి" #: lib/section.php:89 msgid "Untitled section" -msgstr "" +msgstr "శీర్షికలేని విభాగం" #: lib/section.php:106 msgid "More..." @@ -6142,7 +6140,7 @@ msgstr "ఆహ్వానించు" #: lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" -msgstr "" +msgstr "%sలో తోడుకై మీ స్నేహితులని మరియు సహోద్యోగులని ఆహ్వానించండి" #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 @@ -6218,12 +6216,10 @@ msgid "Moderate" msgstr "" #: lib/userprofile.php:352 -#, fuzzy msgid "User role" -msgstr "వాడుకరి ప్రొఫైలు" +msgstr "వాడుకరి పాత్ర" #: lib/userprofile.php:354 -#, fuzzy msgctxt "role" msgid "Administrator" msgstr "నిర్వాహకులు" @@ -6231,49 +6227,49 @@ msgstr "నిర్వాహకులు" #: lib/userprofile.php:355 msgctxt "role" msgid "Moderator" -msgstr "" +msgstr "సమన్వయకర్త" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "కొన్ని క్షణాల క్రితం" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "ఓ నిమిషం క్రితం" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "%d నిమిషాల క్రితం" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "ఒక గంట క్రితం" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "%d గంటల క్రితం" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "ఓ రోజు క్రితం" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "%d రోజుల క్రితం" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "ఓ నెల క్రితం" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "%d నెలల క్రితం" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "ఒక సంవత్సరం క్రితం" @@ -6287,7 +6283,7 @@ msgstr "%s అనేది సరైన రంగు కాదు!" msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "%s అనేది సరైన రంగు కాదు! 3 లేదా 6 హెక్స్ అక్షరాలను వాడండి." -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "నోటిసు చాలా పొడవుగా ఉంది - %1$d అక్షరాలు గరిష్ఠం, మీరు %2$d పంపించారు." diff --git a/locale/tr/LC_MESSAGES/statusnet.po b/locale/tr/LC_MESSAGES/statusnet.po index 805e55268..07b518790 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-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:51:04+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:44:10+0000\n" "Language-Team: Turkish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tr\n" "X-Message-Group: out-statusnet\n" @@ -101,7 +101,7 @@ msgstr "Böyle bir durum mesajı yok." #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -110,10 +110,8 @@ msgstr "Böyle bir durum mesajı yok." #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Böyle bir kullanıcı yok." @@ -207,12 +205,12 @@ msgstr "" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "Onay kodu bulunamadı." @@ -346,7 +344,7 @@ msgstr "" msgid "This status is already a favorite." msgstr "Bu zaten sizin Jabber ID'niz." -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "" @@ -471,7 +469,7 @@ msgstr "İstek bulunamadı!" msgid "You are already a member of that group." msgstr "Zaten giriş yapmış durumdasıznız!" -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "" @@ -523,7 +521,7 @@ msgstr "Geçersiz büyüklük." #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -667,12 +665,12 @@ msgstr "" msgid "Unsupported format." msgstr "Desteklenmeyen görüntü dosyası biçemi." -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, fuzzy, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s'in %2$s'deki durum mesajları " -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, fuzzy, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%s adli kullanicinin durum mesajlari" @@ -682,7 +680,7 @@ msgstr "%s adli kullanicinin durum mesajlari" msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s'in %2$s'deki durum mesajları " -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" @@ -692,7 +690,7 @@ msgstr "" msgid "%s public timeline" msgstr "" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "" @@ -707,12 +705,12 @@ msgstr "%s için cevaplar" msgid "Repeats of %s" msgstr "%s için cevaplar" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "%s adli kullanicinin durum mesajlari" @@ -775,7 +773,7 @@ msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "" @@ -860,8 +858,8 @@ msgstr "" #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 #, fuzzy msgid "No such group." msgstr "Böyle bir durum mesajı yok." @@ -970,7 +968,7 @@ msgstr "Bize o profili yollamadınız" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "" @@ -1030,7 +1028,7 @@ msgstr "" msgid "Do not delete this notice" msgstr "Böyle bir durum mesajı yok." -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "" @@ -1301,7 +1299,7 @@ msgstr "Hakkında bölümü çok uzun (azm 140 karakter)." msgid "Could not update group." msgstr "Kullanıcı güncellenemedi." -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 #, fuzzy msgid "Could not create aliases." msgstr "Avatar bilgisi kaydedilemedi" @@ -2009,7 +2007,7 @@ msgstr "" msgid "You are already subscribed to these users:" msgstr "" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "" @@ -2111,7 +2109,7 @@ msgstr "" msgid "You must be logged in to leave a group." msgstr "" -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 #, fuzzy msgid "You are not a member of that group." msgstr "Bize o profili yollamadınız" @@ -2230,12 +2228,12 @@ msgstr "" msgid "New message" msgstr "" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "" -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "İçerik yok!" @@ -2243,7 +2241,7 @@ msgstr "İçerik yok!" msgid "No recipient specified." msgstr "" -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" @@ -2257,7 +2255,7 @@ msgstr "" msgid "Direct message to %s sent." msgstr "" -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "" @@ -2386,8 +2384,8 @@ msgstr "Bağlan" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "" @@ -2527,7 +2525,7 @@ msgstr "Eski parola yanlış" msgid "Error saving user; invalid." msgstr "Kullanıcıyı kaydetmede hata oluştu; geçersiz." -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "Yeni parola kaydedilemedi." @@ -3029,7 +3027,7 @@ msgstr "Parolayı sıfırla" msgid "Recover password" msgstr "Parolanı geri al" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "Parola geri alma isteği" @@ -3049,19 +3047,19 @@ msgstr "Sıfırla" msgid "Enter a nickname or email address." msgstr "Bir takma ad veya eposta adresi girin." -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "" -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "Kullanıcı için kaydedilmiş eposta adresi yok." -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "Adres onayını kaydetmede hata." -#: actions/recoverpassword.php:325 +#: actions/recoverpassword.php:338 msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." @@ -3069,23 +3067,23 @@ msgstr "" "Hesabınıza eklemiş olduğunuz eposta adresine parolanızı geri getirmek için " "gerekli olan talimatlar yollanmıştır." -#: actions/recoverpassword.php:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "Beklemeğen parola sıfırlaması." -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "Parola 6 veya daha fazla karakterden oluşmalıdır." -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Parola ve onaylaması birbirini tutmuyor." -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "Kullanıcı ayarlamada hata oluştu." -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "Yeni parola başarıyla kaydedildi. Şimdi giriş yaptınız." @@ -3270,7 +3268,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:674 +#: actions/repeat.php:114 lib/noticelist.php:676 #, fuzzy msgid "Repeated" msgstr "Yarat" @@ -4488,19 +4486,19 @@ msgstr "Kişisel" msgid "Author(s)" msgstr "" -#: classes/File.php:144 +#: classes/File.php:169 #, 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." msgstr "" -#: classes/File.php:154 +#: classes/File.php:179 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:161 +#: classes/File.php:186 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" @@ -4581,7 +4579,7 @@ msgstr "Durum mesajını kaydederken hata oluştu." msgid "Problem saving group inbox." msgstr "Durum mesajını kaydederken hata oluştu." -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4614,31 +4612,31 @@ msgstr "Abonelik silinemedi." msgid "Couldn't delete subscription OMB token." msgstr "Abonelik silinemedi." -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "Abonelik silinemedi." -#: classes/User.php:373 +#: classes/User.php:378 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:477 +#: classes/User_group.php:480 #, fuzzy msgid "Could not create group." msgstr "Avatar bilgisi kaydedilemedi" -#: classes/User_group.php:486 +#: classes/User_group.php:489 #, fuzzy msgid "Could not set group URI." msgstr "Abonelik oluşturulamadı." -#: classes/User_group.php:507 +#: classes/User_group.php:510 #, fuzzy msgid "Could not set group membership." msgstr "Abonelik oluşturulamadı." -#: classes/User_group.php:521 +#: classes/User_group.php:524 #, fuzzy msgid "Could not save local group info." msgstr "Abonelik oluşturulamadı." @@ -4860,7 +4858,7 @@ msgstr "" msgid "StatusNet software license" msgstr "" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4869,12 +4867,12 @@ msgstr "" "**%%site.name%%** [%%site.broughtby%%](%%site.broughtbyurl%%)\" tarafından " "hazırlanan anında mesajlaşma ağıdır. " -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** bir aninda mesajlaşma sosyal ağıdır." -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4885,43 +4883,43 @@ msgstr "" "licenses/agpl-3.0.html) lisansı ile korunan [StatusNet](http://status.net/) " "microbloglama yazılımının %s. versiyonunu kullanmaktadır." -#: lib/action.php:821 +#: lib/action.php:824 #, fuzzy msgid "Site content license" msgstr "Yeni durum mesajı" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "" -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "" -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "" -#: lib/action.php:1161 +#: lib/action.php:1164 #, fuzzy msgid "After" msgstr "« Sonra" -#: lib/action.php:1169 +#: lib/action.php:1172 #, fuzzy msgid "Before" msgstr "Önce »" @@ -5034,7 +5032,7 @@ msgstr "Eposta adresi onayı" msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5142,37 +5140,51 @@ msgstr "Parola kaydedildi." msgid "Password changing is not allowed" msgstr "Parola kaydedildi." -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." +#: lib/command.php:83 lib/command.php:105 +msgid "Notice with that id does not exist" msgstr "" -#: lib/command.php:88 +#: lib/command.php:99 lib/command.php:570 +#, fuzzy +msgid "User has no last notice" +msgstr "Kullanıcının profili yok." + +#: lib/command.php:125 #, php-format msgid "Could not find a user with nickname %s" msgstr "Kullanıcı güncellenemedi." -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "Kullanıcı güncellenemedi." + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "" + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" -#: lib/command.php:99 +#: lib/command.php:228 #, fuzzy, php-format msgid "Nudge sent to %s" msgstr "%s için cevaplar" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5180,202 +5192,199 @@ msgid "" "Notices: %3$s" msgstr "" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -msgid "Notice with that id does not exist" -msgstr "" - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -#, fuzzy -msgid "User has no last notice" -msgstr "Kullanıcının profili yok." - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "" -#: lib/command.php:217 +#: lib/command.php:317 #, fuzzy msgid "You are already a member of that group" msgstr "Zaten giriş yapmış durumdasıznız!" -#: lib/command.php:231 +#: lib/command.php:331 #, fuzzy, php-format msgid "Could not join user %s to group %s" msgstr "Sunucuya yönlendirme yapılamadı: %s" -#: lib/command.php:236 +#: lib/command.php:336 #, fuzzy, php-format msgid "%s joined group %s" msgstr "%1$s'in %2$s'deki durum mesajları " -#: lib/command.php:275 +#: lib/command.php:373 #, fuzzy, php-format msgid "Could not remove user %s to group %s" msgstr "OpenID formu yaratılamadı: %s" -#: lib/command.php:280 +#: lib/command.php:378 #, fuzzy, php-format msgid "%s left group %s" msgstr "%1$s'in %2$s'deki durum mesajları " -#: lib/command.php:309 +#: lib/command.php:401 #, fuzzy, php-format msgid "Fullname: %s" msgstr "Tam İsim" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "" -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "" -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "" -#: lib/command.php:413 +#: lib/command.php:490 #, fuzzy msgid "Cannot repeat your own notice" msgstr "Eğer lisansı kabul etmezseniz kayıt olamazsınız." -#: lib/command.php:418 +#: lib/command.php:495 #, fuzzy msgid "Already repeated that notice" msgstr "Zaten giriş yapmış durumdasıznız!" -#: lib/command.php:426 +#: lib/command.php:503 #, fuzzy, php-format msgid "Notice from %s repeated" msgstr "Durum mesajları" -#: lib/command.php:428 +#: lib/command.php:505 #, fuzzy msgid "Error repeating notice." msgstr "Durum mesajını kaydederken hata oluştu." -#: lib/command.php:482 +#: lib/command.php:536 #, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "" -#: lib/command.php:491 +#: lib/command.php:545 #, fuzzy, php-format msgid "Reply to %s sent" msgstr "%s için cevaplar" -#: lib/command.php:493 +#: lib/command.php:547 #, fuzzy msgid "Error saving notice." msgstr "Durum mesajını kaydederken hata oluştu." -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "" -#: lib/command.php:554 lib/command.php:589 +#: lib/command.php:602 #, fuzzy -msgid "No such user" -msgstr "Böyle bir kullanıcı yok." +msgid "Can't subscribe to OMB profiles by command." +msgstr "Bize o profili yollamadınız" -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "" -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "" -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "" -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "" -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "" -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "" -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" -#: lib/command.php:692 +#: lib/command.php:735 #, fuzzy, php-format msgid "Unsubscribed %s" msgstr "Aboneliği sonlandır" -#: lib/command.php:709 +#: lib/command.php:752 #, fuzzy msgid "You are not subscribed to anyone." msgstr "Bize o profili yollamadınız" -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Bize o profili yollamadınız" -#: lib/command.php:731 +#: lib/command.php:774 #, fuzzy msgid "No one is subscribed to you." msgstr "Uzaktan abonelik" -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Uzaktan abonelik" -#: lib/command.php:753 +#: lib/command.php:796 #, fuzzy msgid "You are not a member of any groups." msgstr "Bize o profili yollamadınız" -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Bize o profili yollamadınız" -#: lib/command.php:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5615,51 +5624,51 @@ msgstr "" msgid "This page is not available in a media type you accept" msgstr "Bu sayfa kabul ettiğiniz ortam türünde kullanılabilir değil" -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "Desteklenmeyen görüntü dosyası biçemi." + +#: lib/imagefile.php:90 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "" "Ah, durumunuz biraz uzun kaçtı. Azami 180 karaktere sığdırmaya ne dersiniz?" -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Kısmi yükleme." -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Dosya yüklemede sistem hatası." -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Bu bir resim dosyası değil ya da dosyada hata var" -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "Desteklenmeyen görüntü dosyası biçemi." - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 #, fuzzy msgid "Lost our file." msgstr "Böyle bir durum mesajı yok." -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, php-format msgid "Unknown inbox source %d." msgstr "" @@ -5864,7 +5873,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 msgid "from" msgstr "" @@ -6020,26 +6029,26 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 #, fuzzy msgid "in context" msgstr "İçerik yok!" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 #, fuzzy msgid "Repeated by" msgstr "Yarat" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 #, fuzzy msgid "Reply" msgstr "cevapla" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 #, fuzzy msgid "Notice repeated" msgstr "Durum mesajları" @@ -6366,47 +6375,47 @@ msgctxt "role" msgid "Moderator" msgstr "" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "birkaç saniye önce" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "yaklaşık bir dakika önce" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "yaklaşık %d dakika önce" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "yaklaşık bir saat önce" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "yaklaşık %d saat önce" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "yaklaşık bir gün önce" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "yaklaşık %d gün önce" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "yaklaşık bir ay önce" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "yaklaşık %d ay önce" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "yaklaşık bir yıl önce" @@ -6420,7 +6429,7 @@ msgstr "Başlangıç sayfası adresi geçerli bir URL değil." msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "" -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "" diff --git a/locale/uk/LC_MESSAGES/statusnet.po b/locale/uk/LC_MESSAGES/statusnet.po index 78aa5dc23..ab9a9bad1 100644 --- a/locale/uk/LC_MESSAGES/statusnet.po +++ b/locale/uk/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:51:07+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:44:13+0000\n" "Language-Team: Ukrainian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: out-statusnet\n" @@ -97,7 +97,7 @@ msgstr "Немає такої сторінки" #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -106,10 +106,8 @@ msgstr "Немає такої сторінки" #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Такого користувача немає." @@ -208,12 +206,12 @@ msgstr "Оновлення від %1$s та друзів на %2$s!" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 msgid "API method not found." msgstr "API метод не знайдено." @@ -344,7 +342,7 @@ msgstr "Жодних статусів з таким ID." msgid "This status is already a favorite." msgstr "Цей статус вже є обраним." -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "Не можна позначити як обране." @@ -463,7 +461,7 @@ msgstr "Групу не знайдено!" msgid "You are already a member of that group." msgstr "Ви вже є учасником цієї групи." -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "Адмін цієї групи заблокував Вашу присутність в ній." @@ -513,7 +511,7 @@ msgstr "Невірний токен." #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -657,12 +655,12 @@ msgstr "" msgid "Unsupported format." msgstr "Формат не підтримується." -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s / Обрані від %2$s" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%1$s оновлення обраних від %2$s / %2$s." @@ -672,7 +670,7 @@ msgstr "%1$s оновлення обраних від %2$s / %2$s." msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Оновленні відповіді %2$s" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "%1$s оновив цю відповідь на допис від %2$s / %3$s." @@ -682,7 +680,7 @@ msgstr "%1$s оновив цю відповідь на допис від %2$s / msgid "%s public timeline" msgstr "%s загальна стрічка" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s оновлення від усіх!" @@ -697,12 +695,12 @@ msgstr "Повторено для %s" msgid "Repeats of %s" msgstr "Повторення %s" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Дописи позначені з %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Оновлення позначені з %1$s на %2$s!" @@ -762,7 +760,7 @@ msgid "Preview" msgstr "Перегляд" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "Видалити" @@ -845,8 +843,8 @@ msgstr "Збереження інформації про блокування з #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 msgid "No such group." msgstr "Такої групи немає." @@ -947,7 +945,7 @@ msgstr "Ви не є власником цього додатку." #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "Виникли певні проблеми з токеном поточної сесії." @@ -1006,7 +1004,7 @@ msgstr "Ви впевненні, що бажаєте видалити цей д msgid "Do not delete this notice" msgstr "Не видаляти цей допис" -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "Видалити допис" @@ -1259,7 +1257,7 @@ msgstr "опис надто довгий (%d знаків максимум)." msgid "Could not update group." msgstr "Не вдалося оновити групу." -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 msgid "Could not create aliases." msgstr "Неможна призначити додаткові імена." @@ -1961,7 +1959,7 @@ msgstr "Запросити нових користувачів" msgid "You are already subscribed to these users:" msgstr "Ви вже підписані до цих користувачів:" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" @@ -2093,7 +2091,7 @@ msgstr "%1$s приєднався до групи %2$s" msgid "You must be logged in to leave a group." msgstr "Ви повинні спочатку увійти на сайт, аби залишити групу." -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 msgid "You are not a member of that group." msgstr "Ви не є учасником цієї групи." @@ -2209,12 +2207,12 @@ msgstr "Скористайтесь цією формою для створенн msgid "New message" msgstr "Нове повідомлення" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "Ви не можете надіслати повідомлення цьому користувачеві." -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "Немає змісту!" @@ -2222,7 +2220,7 @@ msgstr "Немає змісту!" msgid "No recipient specified." msgstr "Жодного отримувача не визначено." -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" @@ -2237,7 +2235,7 @@ msgstr "Повідомлення надіслано" msgid "Direct message to %s sent." msgstr "Пряме повідомлення для %s надіслано." -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "Помилка в Ajax" @@ -2370,8 +2368,8 @@ msgstr "тип змісту " msgid "Only " msgstr "Лише " -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "Такий формат даних не підтримується." @@ -2504,7 +2502,7 @@ msgstr "Старий пароль є неточним" msgid "Error saving user; invalid." msgstr "Помилка при збереженні користувача; недійсний." -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "Неможна зберегти новий пароль." @@ -2846,7 +2844,7 @@ msgstr "Не вдається відновити загальну стрічку #: actions/public.php:130 #, php-format msgid "Public timeline, page %d" -msgstr "Загальний стрічка, сторінка %d" +msgstr "Загальна стрічка, сторінка %d" #: actions/public.php:132 lib/publicgroupnav.php:79 msgid "Public timeline" @@ -3005,7 +3003,7 @@ msgstr "Скинути пароль" msgid "Recover password" msgstr "Відновити пароль" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "Запит на відновлення паролю відправлено" @@ -3025,19 +3023,19 @@ msgstr "Скинути" msgid "Enter a nickname or email address." msgstr "Введіть ім’я або електронну адресу." -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "Користувача з такою електронною адресою або ім’ям немає." -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "Для цього користувача немає зареєстрованої електронної адреси." -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "Помилка при збереженні підтвердження адреси." -#: actions/recoverpassword.php:325 +#: actions/recoverpassword.php:338 msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." @@ -3045,23 +3043,23 @@ msgstr "" "Інструкції з відновлення паролю було надіслано на електронну адресу, яку Ви " "вказали у налаштуваннях Вашого профілю." -#: actions/recoverpassword.php:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "Несподіване скидання паролю." -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "Пароль має складатись з 6-ти або більше знаків." -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Пароль та підтвердження не співпадають." -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "Помилка в налаштуваннях користувача." -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "Новий пароль успішно збережено. Тепер Ви увійшли." @@ -3263,7 +3261,7 @@ msgstr "Ви не можете повторювати свої власні до msgid "You already repeated that notice." msgstr "Ви вже повторили цей допис." -#: actions/repeat.php:114 lib/noticelist.php:674 +#: actions/repeat.php:114 lib/noticelist.php:676 msgid "Repeated" msgstr "Повторено" @@ -4513,7 +4511,7 @@ msgstr "Версія" msgid "Author(s)" msgstr "Автор(и)" -#: classes/File.php:144 +#: classes/File.php:169 #, php-format msgid "" "No file may be larger than %d bytes and the file you sent was %d bytes. Try " @@ -4522,12 +4520,12 @@ msgstr "" "Ні, файл не може бути більшим за %d байтів, а те, що Ви хочете надіслати, " "важить %d байтів. Спробуйте меншу версію." -#: classes/File.php:154 +#: classes/File.php:179 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "Розміри цього файлу перевищують Вашу квоту на %d байтів." -#: classes/File.php:161 +#: classes/File.php:186 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "Розміри цього файлу перевищують Вашу місячну квоту на %d байтів." @@ -4605,7 +4603,7 @@ msgstr "Проблема при збереженні допису." msgid "Problem saving group inbox." msgstr "Проблема при збереженні вхідних дописів для групи." -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4634,28 +4632,28 @@ msgstr "Не можу видалити самопідписку." msgid "Couldn't delete subscription OMB token." msgstr "Не вдається видалити токен підписки OMB." -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "Не вдалося видалити підписку." -#: classes/User.php:373 +#: classes/User.php:378 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Вітаємо на %1$s, @%2$s!" -#: classes/User_group.php:477 +#: classes/User_group.php:480 msgid "Could not create group." msgstr "Не вдалося створити нову групу." -#: classes/User_group.php:486 +#: classes/User_group.php:489 msgid "Could not set group URI." msgstr "Не вдалося встановити URI групи." -#: classes/User_group.php:507 +#: classes/User_group.php:510 msgid "Could not set group membership." msgstr "Не вдалося встановити членство." -#: classes/User_group.php:521 +#: classes/User_group.php:524 msgid "Could not save local group info." msgstr "Не вдалося зберегти інформацію про локальну групу." @@ -4859,7 +4857,7 @@ msgstr "Бедж" msgid "StatusNet software license" msgstr "Ліцензія програмного забезпечення StatusNet" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4868,12 +4866,12 @@ msgstr "" "**%%site.name%%** — це сервіс мікроблоґів наданий вам [%%site.broughtby%%](%%" "site.broughtbyurl%%). " -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** — це сервіс мікроблоґів. " -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4884,42 +4882,42 @@ msgstr "" "для мікроблоґів, версія %s, доступному під [GNU Affero General Public " "License](http://www.fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:821 +#: lib/action.php:824 msgid "Site content license" msgstr "Ліцензія змісту сайту" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "Зміст і дані %1$s є приватними і конфіденційними." -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "Авторські права на зміст і дані належать %1$s. Всі права захищено." -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" "Авторські права на зміст і дані належать розробникам. Всі права захищено." -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "Всі " -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "ліцензія." -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "Нумерація сторінок" -#: lib/action.php:1161 +#: lib/action.php:1164 msgid "After" msgstr "Вперед" -#: lib/action.php:1169 +#: lib/action.php:1172 msgid "Before" msgstr "Назад" @@ -5023,7 +5021,7 @@ msgstr "" "API-ресурс вимагає дозвіл типу «читання-запис», але у вас є лише доступ для " "читання." -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5123,37 +5121,50 @@ msgstr "Не вдалося змінити пароль" msgid "Password changing is not allowed" msgstr "Змінювати пароль не дозволено" -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "Результати команди" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "Команду виконано" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "Команду не виконано" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." -msgstr "Даруйте, але виконання команди ще не завершено." +#: lib/command.php:83 lib/command.php:105 +msgid "Notice with that id does not exist" +msgstr "Такого допису не існує" -#: lib/command.php:88 +#: lib/command.php:99 lib/command.php:570 +msgid "User has no last notice" +msgstr "Користувач не має останнього допису" + +#: lib/command.php:125 #, php-format msgid "Could not find a user with nickname %s" msgstr "Не вдалося знайти користувача з іменем %s" -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "Не вдалося знайти користувача з іменем %s" + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "Даруйте, але виконання команди ще не завершено." + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "Гадаємо, користі від «розштовхування» самого себе небагато, чи не так?!" -#: lib/command.php:99 +#: lib/command.php:228 #, php-format msgid "Nudge sent to %s" msgstr "Спробу «розштовхати» %s зараховано" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5164,199 +5175,198 @@ msgstr "" "Підписчики: %2$s\n" "Дописи: %3$s" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -msgid "Notice with that id does not exist" -msgstr "Такого допису не існує" - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -msgid "User has no last notice" -msgstr "Користувач не має останнього допису" - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "Допис позначено як обраний." -#: lib/command.php:217 +#: lib/command.php:317 msgid "You are already a member of that group" msgstr "Ви вже є учасником цієї групи." -#: lib/command.php:231 +#: lib/command.php:331 #, php-format msgid "Could not join user %s to group %s" msgstr "Не вдалось долучити користувача %1$s до групи %2$s." -#: lib/command.php:236 +#: lib/command.php:336 #, php-format msgid "%s joined group %s" msgstr "%1$s приєднався до групи %2$s" -#: lib/command.php:275 +#: lib/command.php:373 #, php-format msgid "Could not remove user %s to group %s" msgstr "Не вдалося видалити користувача %1$s з групи %2$s." -#: lib/command.php:280 +#: lib/command.php:378 #, php-format msgid "%s left group %s" msgstr "%1$s залишив групу %2$s" -#: lib/command.php:309 +#: lib/command.php:401 #, php-format msgid "Fullname: %s" msgstr "Повне ім’я: %s" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "Локація: %s" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "Веб-сторінка: %s" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "Про мене: %s" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "Повідомлення надто довге — максимум %d знаків, а ви надсилаєте %d" -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "Пряме повідомлення для %s надіслано." -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "Помилка при відправці прямого повідомлення." -#: lib/command.php:413 +#: lib/command.php:490 msgid "Cannot repeat your own notice" msgstr "Не можу повторити Ваш власний допис" -#: lib/command.php:418 +#: lib/command.php:495 msgid "Already repeated that notice" msgstr "Цей допис вже повторили" -#: lib/command.php:426 +#: lib/command.php:503 #, php-format msgid "Notice from %s repeated" msgstr "Допис %s повторили" -#: lib/command.php:428 +#: lib/command.php:505 msgid "Error repeating notice." msgstr "Помилка при повторенні допису." -#: lib/command.php:482 +#: lib/command.php:536 #, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "Допис надто довгий — максимум %d знаків, а ви надсилаєте %d" -#: lib/command.php:491 +#: lib/command.php:545 #, php-format msgid "Reply to %s sent" msgstr "Відповідь до %s надіслано" -#: lib/command.php:493 +#: lib/command.php:547 msgid "Error saving notice." msgstr "Проблема при збереженні допису." -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "Зазначте ім’я користувача, до якого бажаєте підписатись" -#: lib/command.php:554 lib/command.php:589 -msgid "No such user" -msgstr "Такого користувача немає." +#: lib/command.php:602 +#, fuzzy +msgid "Can't subscribe to OMB profiles by command." +msgstr "Ви не підписані до цього профілю." -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "Підписано до %s" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "Зазначте ім’я користувача, від якого бажаєте відписатись" -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "Відписано від %s" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "Виконання команди ще не завершено." -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "Сповіщення вимкнуто." -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "Не можна вимкнути сповіщення." -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "Сповіщення увімкнуто." -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "Не можна увімкнути сповіщення." -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "Команду входу відключено" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" "Це посилання можна використати лише раз, воно дійсне протягом 2 хвилин: %s" -#: lib/command.php:692 +#: lib/command.php:735 #, php-format msgid "Unsubscribed %s" msgstr "Відписано %s" -#: lib/command.php:709 +#: lib/command.php:752 msgid "You are not subscribed to anyone." msgstr "Ви не маєте жодних підписок." -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Ви підписані до цієї особи:" msgstr[1] "Ви підписані до цих людей:" msgstr[2] "Ви підписані до цих людей:" -#: lib/command.php:731 +#: lib/command.php:774 msgid "No one is subscribed to you." msgstr "До Вас ніхто не підписаний." -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Ця особа є підписаною до Вас:" msgstr[1] "Ці люди підписані до Вас:" msgstr[2] "Ці люди підписані до Вас:" -#: lib/command.php:753 +#: lib/command.php:796 msgid "You are not a member of any groups." msgstr "Ви не є учасником жодної групи." -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Ви є учасником групи:" msgstr[1] "Ви є учасником таких груп:" msgstr[2] "Ви є учасником таких груп:" -#: lib/command.php:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5622,49 +5632,49 @@ msgstr "Теґи у дописах групи %s" msgid "This page is not available in a media type you accept" msgstr "Ця сторінка не доступна для того типу медіа, з яким ви погодились" -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "Формат зображення не підтримується." + +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Цей файл завеликий. Максимальний розмір %s." -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Часткове завантаження." -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Система відповіла помилкою при завантаженні цього файла." -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "Це не зображення, або файл зіпсовано." -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "Формат зображення не підтримується." - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 msgid "Lost our file." msgstr "Файл втрачено." -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "Тип файлу не підтримується" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "Мб" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "кб" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "[%s]" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, php-format msgid "Unknown inbox source %d." msgstr "Невідоме джерело вхідного повідомлення %d." @@ -5945,7 +5955,7 @@ msgstr "" "повідомлення аби долучити користувачів до розмови. Такі повідомлення бачите " "лише Ви." -#: lib/mailbox.php:227 lib/noticelist.php:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 msgid "from" msgstr "від" @@ -6100,23 +6110,23 @@ msgstr "Зах." msgid "at" msgstr "в" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 msgid "in context" msgstr "в контексті" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 msgid "Repeated by" msgstr "Повторено" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "Відповісти на цей допис" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 msgid "Reply" msgstr "Відповісти" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 msgid "Notice repeated" msgstr "Допис повторили" @@ -6426,47 +6436,47 @@ msgctxt "role" msgid "Moderator" msgstr "Модератор" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "мить тому" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "хвилину тому" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "близько %d хвилин тому" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "годину тому" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "близько %d годин тому" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "день тому" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "близько %d днів тому" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "місяць тому" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "близько %d місяців тому" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "рік тому" @@ -6480,7 +6490,7 @@ msgstr "%s є неприпустимим кольором!" msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "%s неприпустимий колір! Використайте 3 або 6 знаків (HEX-формат)" -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "" diff --git a/locale/vi/LC_MESSAGES/statusnet.po b/locale/vi/LC_MESSAGES/statusnet.po index 59751aa5d..3848e101c 100644 --- a/locale/vi/LC_MESSAGES/statusnet.po +++ b/locale/vi/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:51:10+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:44:16+0000\n" "Language-Team: Vietnamese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: vi\n" "X-Message-Group: out-statusnet\n" @@ -100,7 +100,7 @@ msgstr "Không có tin nhắn nào." #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -109,10 +109,8 @@ msgstr "Không có tin nhắn nào." #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "Không có user nào." @@ -206,12 +204,12 @@ msgstr "" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "Phương thức API không tìm thấy!" @@ -347,7 +345,7 @@ msgstr "Không tìm thấy trạng thái nào tương ứng với ID đó." msgid "This status is already a favorite." msgstr "Tin nhắn này đã có trong danh sách tin nhắn ưa thích của bạn rồi!" -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "Không thể tạo favorite." @@ -473,7 +471,7 @@ msgstr "Phương thức API không tìm thấy!" msgid "You are already a member of that group." msgstr "Bạn đã theo những người này:" -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "" @@ -525,7 +523,7 @@ msgstr "Kích thước không hợp lệ." #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -668,12 +666,12 @@ msgstr "" msgid "Unsupported format." msgstr "Không hỗ trợ kiểu file ảnh này." -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, fuzzy, php-format msgid "%1$s / Favorites from %2$s" msgstr "Tìm kiếm các tin nhắn ưa thích của %s" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, fuzzy, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "Tất cả các cập nhật của %s" @@ -683,7 +681,7 @@ msgstr "Tất cả các cập nhật của %s" msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / Các cập nhật đang trả lời tới %2$s" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" @@ -693,7 +691,7 @@ msgstr "" msgid "%s public timeline" msgstr "Dòng tin công cộng" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "%s cập nhật từ tất cả mọi người!" @@ -708,12 +706,12 @@ msgstr "Trả lời cho %s" msgid "Repeats of %s" msgstr "Trả lời cho %s" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "Thông báo được gắn thẻ %s" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "Dòng tin nhắn cho %s" @@ -778,7 +776,7 @@ msgid "Preview" msgstr "Xem trước" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 #, fuzzy msgid "Delete" msgstr "Xóa tin nhắn" @@ -865,8 +863,8 @@ msgstr "" #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 #, fuzzy msgid "No such group." msgstr "Không có tin nhắn nào." @@ -974,7 +972,7 @@ msgstr "Bạn chưa cập nhật thông tin riêng" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 #, fuzzy msgid "There was a problem with your session token." msgstr "Có lỗi xảy ra khi thao tác. Hãy thử lại lần nữa." @@ -1036,7 +1034,7 @@ msgstr "Bạn có chắc chắn là muốn xóa tin nhắn này không?" msgid "Do not delete this notice" msgstr "Không thể xóa tin nhắn này." -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 #, fuzzy msgid "Delete this notice" msgstr "Xóa tin nhắn" @@ -1320,7 +1318,7 @@ msgstr "Lý lịch quá dài (không quá 140 ký tự)" 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:493 +#: actions/editgroup.php:264 classes/User_group.php:496 #, fuzzy msgid "Could not create aliases." msgstr "Không thể tạo favorite." @@ -2055,7 +2053,7 @@ msgstr "Gửi thư mời đến những người chưa có tài khoản" msgid "You are already subscribed to these users:" msgstr "Bạn đã theo những người này:" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, fuzzy, php-format msgid "%1$s (%2$s)" msgstr "%s (%s)" @@ -2192,7 +2190,7 @@ msgstr "%s và nhóm" msgid "You must be logged in to leave a group." msgstr "Bạn phải đăng nhập vào mới có thể gửi thư mời những " -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 #, fuzzy msgid "You are not a member of that group." msgstr "Bạn chưa cập nhật thông tin riêng" @@ -2313,13 +2311,13 @@ msgstr "" msgid "New message" msgstr "Tin mới nhất" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 #, fuzzy msgid "You can't send a message to this user." msgstr "Bạn đã theo những người này:" -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "Không có nội dung!" @@ -2327,7 +2325,7 @@ msgstr "Không có nội dung!" msgid "No recipient specified." msgstr "" -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" @@ -2342,7 +2340,7 @@ msgstr "Tin mới nhất" msgid "Direct message to %s sent." msgstr "Tin nhắn riêng" -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 #, fuzzy msgid "Ajax Error" msgstr "Lỗi" @@ -2475,8 +2473,8 @@ msgstr "Kết nối" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "Không hỗ trợ định dạng dữ liệu này." @@ -2620,7 +2618,7 @@ msgstr "Mật khẩu cũ sai" msgid "Error saving user; invalid." msgstr "Lỗi xảy ra khi lưu thành viên; không hợp lệ." -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "Không thể lưu mật khẩu mới" @@ -3128,7 +3126,7 @@ msgstr "Khởi tạo lại mật khẩu" msgid "Recover password" msgstr "Khôi phục mật khẩu" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "Yêu cầu khôi phục lại mật khẩu đã được gửi" @@ -3148,20 +3146,20 @@ msgstr "Khởi tạo" msgid "Enter a nickname or email address." msgstr "Nhập biệt hiệu hoặc email." -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "" "Không tìm thấy người dùng nào tương ứng với địa chỉ email hoặc username đó." -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "Thành viên này đã không đăng ký địa chỉ email." -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "Lỗi xảy ra khi lưu địa chỉ đã được xác nhận." -#: actions/recoverpassword.php:325 +#: actions/recoverpassword.php:338 msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." @@ -3169,23 +3167,23 @@ msgstr "" "Hướng dẫn cách khôi phục mật khẩu đã được gửi đến địa chỉ email đăng ký " "trong tài khoản của bạn." -#: actions/recoverpassword.php:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "Bất ngờ reset mật khẩu." -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "Mật khẩu phải nhiều hơn 6 ký tự." -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "Mật khẩu và mật khẩu xác nhận không khớp nhau." -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "Lỗi xảy ra khi tạo thành viên." -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "Mật khẩu mới đã được lưu. Bạn có thể đăng nhập ngay bây giờ." @@ -3389,7 +3387,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:674 +#: actions/repeat.php:114 lib/noticelist.php:676 #, fuzzy msgid "Repeated" msgstr "Tạo" @@ -4638,19 +4636,19 @@ msgstr "Cá nhân" msgid "Author(s)" msgstr "" -#: classes/File.php:144 +#: classes/File.php:169 #, 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." msgstr "" -#: classes/File.php:154 +#: classes/File.php:179 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:161 +#: classes/File.php:186 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" @@ -4734,7 +4732,7 @@ msgstr "Có lỗi xảy ra khi lưu tin nhắn." msgid "Problem saving group inbox." msgstr "Có lỗi xảy ra khi lưu tin nhắn." -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%s (%s)" @@ -4767,31 +4765,31 @@ msgstr "Không thể xóa đăng nhận." msgid "Couldn't delete subscription OMB token." msgstr "Không thể xóa đăng nhận." -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "Không thể xóa đăng nhận." -#: classes/User.php:373 +#: classes/User.php:378 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "%s chào mừng bạn " -#: classes/User_group.php:477 +#: classes/User_group.php:480 #, fuzzy msgid "Could not create group." msgstr "Không thể tạo favorite." -#: classes/User_group.php:486 +#: classes/User_group.php:489 #, fuzzy msgid "Could not set group URI." msgstr "Không thể tạo đăng nhận." -#: classes/User_group.php:507 +#: classes/User_group.php:510 #, fuzzy msgid "Could not set group membership." msgstr "Không thể tạo đăng nhận." -#: classes/User_group.php:521 +#: classes/User_group.php:524 #, fuzzy msgid "Could not save local group info." msgstr "Không thể tạo đăng nhận." @@ -5017,7 +5015,7 @@ msgstr "Tin đã gửi" msgid "StatusNet software license" msgstr "" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -5026,12 +5024,12 @@ msgstr "" "**%%site.name%%** là dịch vụ gửi tin nhắn được cung cấp từ [%%site.broughtby%" "%](%%site.broughtbyurl%%). " -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** là dịch vụ gửi tin nhắn. " -#: lib/action.php:806 +#: lib/action.php:809 #, fuzzy, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -5042,43 +5040,43 @@ msgstr "" "quyền [GNU Affero General Public License](http://www.fsf.org/licensing/" "licenses/agpl-3.0.html)." -#: lib/action.php:821 +#: lib/action.php:824 #, fuzzy msgid "Site content license" msgstr "Tìm theo nội dung của tin nhắn" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "" -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "" -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "" -#: lib/action.php:1161 +#: lib/action.php:1164 #, fuzzy msgid "After" msgstr "Sau" -#: lib/action.php:1169 +#: lib/action.php:1172 #, fuzzy msgid "Before" msgstr "Trước" @@ -5194,7 +5192,7 @@ msgstr "Xác nhận SMS" msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5300,39 +5298,54 @@ msgstr "Đã lưu mật khẩu." msgid "Password changing is not allowed" msgstr "Đã lưu mật khẩu." -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 #, fuzzy msgid "Command results" msgstr "Không có kết quả nào" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "" -#: lib/channel.php:221 +#: lib/channel.php:240 #, fuzzy msgid "Command failed" msgstr " và bạn bè" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." -msgstr "" +#: lib/command.php:83 lib/command.php:105 +#, fuzzy +msgid "Notice with that id does not exist" +msgstr "Không tìm thấy trạng thái nào tương ứng với ID đó." -#: lib/command.php:88 +#: lib/command.php:99 lib/command.php:570 +#, fuzzy +msgid "User has no last notice" +msgstr "Người dùng không có thông tin." + +#: lib/command.php:125 #, fuzzy, php-format msgid "Could not find a user with nickname %s" msgstr "Không thể cập nhật thông tin user với địa chỉ email đã được xác nhận." -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "Không thể cập nhật thông tin user với địa chỉ email đã được xác nhận." + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "" + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" -#: lib/command.php:99 +#: lib/command.php:228 #, fuzzy, php-format msgid "Nudge sent to %s" msgstr "Tin đã gửi" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5340,207 +5353,203 @@ msgid "" "Notices: %3$s" msgstr "" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -#, fuzzy -msgid "Notice with that id does not exist" -msgstr "Không tìm thấy trạng thái nào tương ứng với ID đó." - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -#, fuzzy -msgid "User has no last notice" -msgstr "Người dùng không có thông tin." - -#: lib/command.php:190 +#: lib/command.php:296 #, fuzzy msgid "Notice marked as fave." msgstr "Tin nhắn này đã có trong danh sách tin nhắn ưa thích của bạn rồi!" -#: lib/command.php:217 +#: lib/command.php:317 #, fuzzy msgid "You are already a member of that group" msgstr "Bạn đã theo những người này:" -#: lib/command.php:231 +#: lib/command.php:331 #, fuzzy, php-format msgid "Could not join user %s to group %s" msgstr "Không thể theo bạn này: %s đã có trong danh sách bạn bè của bạn rồi." -#: lib/command.php:236 +#: lib/command.php:336 #, fuzzy, php-format msgid "%s joined group %s" msgstr "%s và nhóm" -#: lib/command.php:275 +#: lib/command.php:373 #, fuzzy, php-format msgid "Could not remove user %s to group %s" msgstr "Không thể theo bạn này: %s đã có trong danh sách bạn bè của bạn rồi." -#: lib/command.php:280 +#: lib/command.php:378 #, fuzzy, php-format msgid "%s left group %s" msgstr "%s và nhóm" -#: lib/command.php:309 +#: lib/command.php:401 #, fuzzy, php-format msgid "Fullname: %s" msgstr "Tên đầy đủ" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, fuzzy, php-format msgid "Location: %s" msgstr "Thành phố: %s" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, fuzzy, php-format msgid "Homepage: %s" msgstr "Trang chủ hoặc Blog: %s" -#: lib/command.php:318 +#: lib/command.php:410 #, fuzzy, php-format msgid "About: %s" msgstr "Giới thiệu" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "" -#: lib/command.php:367 +#: lib/command.php:468 #, fuzzy, php-format msgid "Direct message to %s sent" msgstr "Tin nhắn riêng" -#: lib/command.php:369 +#: lib/command.php:470 #, fuzzy msgid "Error sending direct message." msgstr "Thư bạn đã gửi" -#: lib/command.php:413 +#: lib/command.php:490 #, fuzzy msgid "Cannot repeat your own notice" msgstr "Bạn không thể đăng ký nếu không đồng ý các điều khoản." -#: lib/command.php:418 +#: lib/command.php:495 #, fuzzy msgid "Already repeated that notice" msgstr "Xóa tin nhắn" -#: lib/command.php:426 +#: lib/command.php:503 #, fuzzy, php-format msgid "Notice from %s repeated" msgstr "Tin đã gửi" -#: lib/command.php:428 +#: lib/command.php:505 #, fuzzy msgid "Error repeating notice." msgstr "Có lỗi xảy ra khi lưu tin nhắn." -#: lib/command.php:482 +#: lib/command.php:536 #, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "" -#: lib/command.php:491 +#: lib/command.php:545 #, fuzzy, php-format msgid "Reply to %s sent" msgstr "Trả lời tin nhắn này" -#: lib/command.php:493 +#: lib/command.php:547 #, fuzzy msgid "Error saving notice." msgstr "Có lỗi xảy ra khi lưu tin nhắn." -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "" -#: lib/command.php:554 lib/command.php:589 +#: lib/command.php:602 #, fuzzy -msgid "No such user" -msgstr "Không có user nào." +msgid "Can't subscribe to OMB profiles by command." +msgstr "Bạn chưa cập nhật thông tin riêng" -#: lib/command.php:561 +#: lib/command.php:608 #, fuzzy, php-format msgid "Subscribed to %s" msgstr "Theo nhóm này" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "" -#: lib/command.php:595 +#: lib/command.php:638 #, fuzzy, php-format msgid "Unsubscribed from %s" msgstr "Hết theo" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "" -#: lib/command.php:616 +#: lib/command.php:659 #, fuzzy msgid "Notification off." msgstr "Không có mã số xác nhận." -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "" -#: lib/command.php:639 +#: lib/command.php:682 #, fuzzy msgid "Notification on." msgstr "Không có mã số xác nhận." -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "" -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" -#: lib/command.php:692 +#: lib/command.php:735 #, fuzzy, php-format msgid "Unsubscribed %s" msgstr "Hết theo" -#: lib/command.php:709 +#: lib/command.php:752 #, fuzzy msgid "You are not subscribed to anyone." msgstr "Bạn chưa cập nhật thông tin riêng" -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "Bạn đã theo những người này:" -#: lib/command.php:731 +#: lib/command.php:774 #, fuzzy msgid "No one is subscribed to you." msgstr "Không thể tạo favorite." -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "Không thể tạo favorite." -#: lib/command.php:753 +#: lib/command.php:796 #, fuzzy msgid "You are not a member of any groups." msgstr "Bạn chưa cập nhật thông tin riêng" -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "Bạn chưa cập nhật thông tin riêng" -#: lib/command.php:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5785,53 +5794,53 @@ msgstr "" msgid "This page is not available in a media type you accept" msgstr "Trang này không phải là phương tiện truyền thông mà bạn chấp nhận." -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "Không hỗ trợ kiểu file ảnh này." + +#: lib/imagefile.php:90 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "" "Bạn có thể cập nhật hồ sơ cá nhân tại đây để mọi người có thể biết thông tin " "về bạn." -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "Upload từng phần." -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Hệ thống xảy ra lỗi trong khi tải file." -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "File hỏng hoặc không phải là file ảnh." -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "Không hỗ trợ kiểu file ảnh này." - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 #, fuzzy msgid "Lost our file." msgstr "Không có tin nhắn nào." -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 #, fuzzy msgid "Unknown file type" msgstr "Không hỗ trợ kiểu file ảnh này." -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, php-format msgid "Unknown inbox source %d." msgstr "" @@ -6086,7 +6095,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 #, fuzzy msgid "from" msgstr " từ " @@ -6246,26 +6255,26 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 #, fuzzy msgid "in context" msgstr "Không có nội dung!" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 #, fuzzy msgid "Repeated by" msgstr "Tạo" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 #, fuzzy msgid "Reply to this notice" msgstr "Trả lời tin nhắn này" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 msgid "Reply" msgstr "Trả lời" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 #, fuzzy msgid "Notice repeated" msgstr "Tin đã gửi" @@ -6608,47 +6617,47 @@ msgctxt "role" msgid "Moderator" msgstr "" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "vài giây trước" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "1 phút trước" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "%d phút trước" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "1 giờ trước" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "%d giờ trước" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "1 ngày trước" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "%d ngày trước" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "1 tháng trước" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "%d tháng trước" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "1 năm trước" @@ -6662,7 +6671,7 @@ msgstr "Trang chủ không phải là URL" msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "" -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "" diff --git a/locale/zh_CN/LC_MESSAGES/statusnet.po b/locale/zh_CN/LC_MESSAGES/statusnet.po index cc1761616..e6542c3a7 100644 --- a/locale/zh_CN/LC_MESSAGES/statusnet.po +++ b/locale/zh_CN/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:51:13+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:44:18+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 (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hans\n" "X-Message-Group: out-statusnet\n" @@ -102,7 +102,7 @@ msgstr "没有该页面" #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -111,10 +111,8 @@ msgstr "没有该页面" #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "没有这个用户。" @@ -208,12 +206,12 @@ msgstr "来自%2$s 上 %1$s 和好友的更新!" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "API 方法未实现!" @@ -347,7 +345,7 @@ msgstr "没有找到此ID的信息。" msgid "This status is already a favorite." msgstr "已收藏此通告!" -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "无法创建收藏。" @@ -471,7 +469,7 @@ msgstr "API 方法未实现!" msgid "You are already a member of that group." msgstr "您已经是该组成员" -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "" @@ -523,7 +521,7 @@ msgstr "大小不正确。" #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -666,12 +664,12 @@ msgstr "" msgid "Unsupported format." msgstr "不支持这种图像格式。" -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, fuzzy, php-format msgid "%1$s / Favorites from %2$s" msgstr "%s 的收藏 / %s" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, fuzzy, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "%s 收藏了 %s 的 %s 通告。" @@ -681,7 +679,7 @@ msgstr "%s 收藏了 %s 的 %s 通告。" msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s / 回复 %2$s 的消息" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "回复 %2$s / %3$s 的 %1$s 更新。" @@ -691,7 +689,7 @@ msgstr "回复 %2$s / %3$s 的 %1$s 更新。" msgid "%s public timeline" msgstr "%s 公众时间表" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "来自所有人的 %s 消息!" @@ -706,12 +704,12 @@ msgstr "%s 的回复" msgid "Repeats of %s" msgstr "%s 的回复" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "带 %s 标签的通告" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "%2$s 上 %1$s 的更新!" @@ -773,7 +771,7 @@ msgid "Preview" msgstr "预览" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 #, fuzzy msgid "Delete" msgstr "删除" @@ -859,8 +857,8 @@ msgstr "保存阻止信息失败。" #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 msgid "No such group." msgstr "没有这个组。" @@ -970,7 +968,7 @@ msgstr "您未告知此个人信息" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 #, fuzzy msgid "There was a problem with your session token." msgstr "会话标识有问题,请重试。" @@ -1032,7 +1030,7 @@ msgstr "确定要删除这条消息吗?" msgid "Do not delete this notice" msgstr "无法删除通告。" -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 #, fuzzy msgid "Delete this notice" msgstr "删除通告" @@ -1308,7 +1306,7 @@ msgstr "描述过长(不能超过140字符)。" msgid "Could not update group." msgstr "无法更新组" -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 #, fuzzy msgid "Could not create aliases." msgstr "无法创建收藏。" @@ -2026,7 +2024,7 @@ msgstr "邀请新用户" msgid "You are already subscribed to these users:" msgstr "您已订阅这些用户:" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" @@ -2150,7 +2148,7 @@ msgstr "%s 加入 %s 组" msgid "You must be logged in to leave a group." msgstr "您必须登录才能邀请其他人使用 %s" -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 #, fuzzy msgid "You are not a member of that group." msgstr "您未告知此个人信息" @@ -2267,12 +2265,12 @@ msgstr "使用此表格创建组。" msgid "New message" msgstr "新消息" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "无法向此用户发送消息。" -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "没有内容!" @@ -2280,7 +2278,7 @@ msgstr "没有内容!" msgid "No recipient specified." msgstr "没有收件人。" -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "不要向自己发送消息;跟自己悄悄说就得了。" @@ -2295,7 +2293,7 @@ msgstr "新消息" msgid "Direct message to %s sent." msgstr "已向 %s 发送消息" -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "Ajax错误" @@ -2425,8 +2423,8 @@ msgstr "连接" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "不支持的数据格式。" @@ -2567,7 +2565,7 @@ msgstr "旧密码不正确" msgid "Error saving user; invalid." msgstr "保存用户时出错;不正确。" -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "无法保存新密码。" @@ -3069,7 +3067,7 @@ msgstr "重置密码" msgid "Recover password" msgstr "恢复密码" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "请求恢复密码" @@ -3089,41 +3087,41 @@ msgstr "重置" msgid "Enter a nickname or email address." msgstr "输入昵称或电子邮件。" -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "没有拥有这个用户名或电子邮件的用户。" -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "用户没有注册电子邮件。" -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "保存地址确认时出错。" -#: actions/recoverpassword.php:325 +#: 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:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "未预料的密码重置。" -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "密码必须是 6 个字符或更多。" -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "密码和确认不匹配。" -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "保存用户设置时出错。" -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "新密码已保存,您现在已登录。" @@ -3323,7 +3321,7 @@ msgstr "您必须同意此授权方可注册。" msgid "You already repeated that notice." msgstr "您已成功阻止该用户:" -#: actions/repeat.php:114 lib/noticelist.php:674 +#: actions/repeat.php:114 lib/noticelist.php:676 #, fuzzy msgid "Repeated" msgstr "创建" @@ -4566,19 +4564,19 @@ msgstr "个人" msgid "Author(s)" msgstr "" -#: classes/File.php:144 +#: classes/File.php:169 #, 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." msgstr "" -#: classes/File.php:154 +#: classes/File.php:179 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:161 +#: classes/File.php:186 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" @@ -4661,7 +4659,7 @@ msgstr "保存通告时出错。" msgid "Problem saving group inbox." msgstr "保存通告时出错。" -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4695,30 +4693,30 @@ msgstr "无法删除订阅。" msgid "Couldn't delete subscription OMB token." msgstr "无法删除订阅。" -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "无法删除订阅。" -#: classes/User.php:373 +#: classes/User.php:378 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "发送给 %1$s 的 %2$s 消息" -#: classes/User_group.php:477 +#: classes/User_group.php:480 msgid "Could not create group." msgstr "无法创建组。" -#: classes/User_group.php:486 +#: classes/User_group.php:489 #, fuzzy msgid "Could not set group URI." msgstr "无法删除订阅。" -#: classes/User_group.php:507 +#: classes/User_group.php:510 #, fuzzy msgid "Could not set group membership." msgstr "无法删除订阅。" -#: classes/User_group.php:521 +#: classes/User_group.php:524 #, fuzzy msgid "Could not save local group info." msgstr "无法删除订阅。" @@ -4945,7 +4943,7 @@ msgstr "呼叫" msgid "StatusNet software license" msgstr "StatusNet软件注册证" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4954,12 +4952,12 @@ msgstr "" "**%%site.name%%** 是一个微博客服务,提供者为 [%%site.broughtby%%](%%site." "broughtbyurl%%)。" -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** 是一个微博客服务。" -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4970,43 +4968,43 @@ msgstr "" "General Public License](http://www.fsf.org/licensing/licenses/agpl-3.0.html)" "授权。" -#: lib/action.php:821 +#: lib/action.php:824 #, fuzzy msgid "Site content license" msgstr "StatusNet软件注册证" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "全部" -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "注册证" -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "分页" -#: lib/action.php:1161 +#: lib/action.php:1164 #, fuzzy msgid "After" msgstr "« 之后" -#: lib/action.php:1169 +#: lib/action.php:1172 #, fuzzy msgid "Before" msgstr "之前 »" @@ -5124,7 +5122,7 @@ msgstr "SMS短信确认" msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5230,37 +5228,51 @@ msgstr "密码已保存。" msgid "Password changing is not allowed" msgstr "密码已保存。" -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "执行结果" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "执行完毕" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "执行失败" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." -msgstr "对不起,这个命令还没有实现。" +#: lib/command.php:83 lib/command.php:105 +#, fuzzy +msgid "Notice with that id does not exist" +msgstr "没有找到此ID的信息。" -#: lib/command.php:88 +#: lib/command.php:99 lib/command.php:570 +msgid "User has no last notice" +msgstr "用户没有通告。" + +#: lib/command.php:125 #, fuzzy, php-format msgid "Could not find a user with nickname %s" msgstr "无法更新已确认的电子邮件。" -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "无法更新已确认的电子邮件。" + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "对不起,这个命令还没有实现。" + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" -#: lib/command.php:99 +#: lib/command.php:228 #, fuzzy, php-format msgid "Nudge sent to %s" msgstr "振铃呼叫发出。" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5268,200 +5280,198 @@ msgid "" "Notices: %3$s" msgstr "" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -#, fuzzy -msgid "Notice with that id does not exist" -msgstr "没有找到此ID的信息。" - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -msgid "User has no last notice" -msgstr "用户没有通告。" - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "通告被标记为收藏。" -#: lib/command.php:217 +#: lib/command.php:317 msgid "You are already a member of that group" msgstr "您已经是该组成员" -#: lib/command.php:231 +#: lib/command.php:331 #, fuzzy, php-format msgid "Could not join user %s to group %s" msgstr "无法把 %s 用户添加到 %s 组" -#: lib/command.php:236 +#: lib/command.php:336 #, fuzzy, php-format msgid "%s joined group %s" msgstr "%s 加入 %s 组" -#: lib/command.php:275 +#: lib/command.php:373 #, fuzzy, php-format msgid "Could not remove user %s to group %s" msgstr "无法订阅用户:未找到。" -#: lib/command.php:280 +#: lib/command.php:378 #, php-format msgid "%s left group %s" msgstr "%s 离开群 %s" -#: lib/command.php:309 +#: lib/command.php:401 #, php-format msgid "Fullname: %s" msgstr "全名:%s" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "位置:%s" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "主页:%s" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "关于:%s" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, fuzzy, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "您的消息包含 %d 个字符,超出长度限制 - 不能超过 140 个字符。" -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "已向 %s 发送消息" -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "发送消息出错。" -#: lib/command.php:413 +#: lib/command.php:490 #, fuzzy msgid "Cannot repeat your own notice" msgstr "无法开启通告。" -#: lib/command.php:418 +#: lib/command.php:495 #, fuzzy msgid "Already repeated that notice" msgstr "删除通告" -#: lib/command.php:426 +#: lib/command.php:503 #, fuzzy, php-format msgid "Notice from %s repeated" msgstr "消息已发布。" -#: lib/command.php:428 +#: lib/command.php:505 #, fuzzy msgid "Error repeating notice." msgstr "保存通告时出错。" -#: lib/command.php:482 +#: lib/command.php:536 #, fuzzy, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "您的消息包含 %d 个字符,超出长度限制 - 不能超过 140 个字符。" -#: lib/command.php:491 +#: lib/command.php:545 #, fuzzy, php-format msgid "Reply to %s sent" msgstr "无法删除通告。" -#: lib/command.php:493 +#: lib/command.php:547 #, fuzzy msgid "Error saving notice." msgstr "保存通告时出错。" -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "指定要订阅的用户名" -#: lib/command.php:554 lib/command.php:589 -msgid "No such user" -msgstr "没有这个用户。" +#: lib/command.php:602 +#, fuzzy +msgid "Can't subscribe to OMB profiles by command." +msgstr "您未告知此个人信息" -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "订阅 %s" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "指定要取消订阅的用户名" -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "取消订阅 %s" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "命令尚未实现。" -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "通告关闭。" -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "无法关闭通告。" -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "通告开启。" -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "无法开启通告。" -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" -#: lib/command.php:692 +#: lib/command.php:735 #, fuzzy, php-format msgid "Unsubscribed %s" msgstr "取消订阅 %s" -#: lib/command.php:709 +#: lib/command.php:752 #, fuzzy msgid "You are not subscribed to anyone." msgstr "您未告知此个人信息" -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "您已订阅这些用户:" -#: lib/command.php:731 +#: lib/command.php:774 #, fuzzy msgid "No one is subscribed to you." msgstr "无法订阅他人更新。" -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "无法订阅他人更新。" -#: lib/command.php:753 +#: lib/command.php:796 #, fuzzy msgid "You are not a member of any groups." msgstr "您未告知此个人信息" -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "您未告知此个人信息" -#: lib/command.php:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5704,50 +5714,50 @@ msgstr "这个组所发布的消息的标签" msgid "This page is not available in a media type you accept" msgstr "这个页面不提供您想要的媒体类型" -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "不支持这种图像格式。" + +#: lib/imagefile.php:90 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "你可以给你的组上载一个logo图。" -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "部分上传。" -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "上传文件时出错。" -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "不是图片文件或文件已损坏。" -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "不支持这种图像格式。" - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 #, fuzzy msgid "Lost our file." msgstr "没有这份通告。" -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "未知文件类型" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, php-format msgid "Unknown inbox source %d." msgstr "" @@ -5960,7 +5970,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 #, fuzzy msgid "from" msgstr " 从 " @@ -6119,27 +6129,27 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 #, fuzzy msgid "in context" msgstr "没有内容!" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 #, fuzzy msgid "Repeated by" msgstr "创建" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 #, fuzzy msgid "Reply to this notice" msgstr "无法删除通告。" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 #, fuzzy msgid "Reply" msgstr "回复" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 #, fuzzy msgid "Notice repeated" msgstr "消息已发布。" @@ -6479,47 +6489,47 @@ msgctxt "role" msgid "Moderator" msgstr "" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "几秒前" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "一分钟前" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "%d 分钟前" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "一小时前" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "%d 小时前" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "一天前" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "%d 天前" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "一个月前" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "%d 个月前" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "一年前" @@ -6533,7 +6543,7 @@ msgstr "主页的URL不正确。" msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "" -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, fuzzy, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "您的消息包含 %d 个字符,超出长度限制 - 不能超过 140 个字符。" diff --git a/locale/zh_TW/LC_MESSAGES/statusnet.po b/locale/zh_TW/LC_MESSAGES/statusnet.po index 3ea887beb..ae1cd9546 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-03-06 23:49+0000\n" -"PO-Revision-Date: 2010-03-06 23:51:15+0000\n" +"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"PO-Revision-Date: 2010-03-12 23:44:21+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 (r63350); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hant\n" "X-Message-Group: out-statusnet\n" @@ -97,7 +97,7 @@ msgstr "無此通知" #: actions/apigroupismember.php:90 actions/apigroupjoin.php:99 #: actions/apigroupleave.php:99 actions/apigrouplist.php:90 #: actions/apistatusesupdate.php:148 actions/apisubscriptions.php:87 -#: actions/apitimelinefavorites.php:70 actions/apitimelinefriends.php:78 +#: actions/apitimelinefavorites.php:71 actions/apitimelinefriends.php:78 #: actions/apitimelinehome.php:79 actions/apitimelinementions.php:79 #: actions/apitimelineuser.php:81 actions/avatarbynickname.php:75 #: actions/favoritesrss.php:74 actions/foaf.php:40 actions/foaf.php:58 @@ -106,10 +106,8 @@ msgstr "無此通知" #: 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:91 actions/userrss.php:40 -#: actions/xrds.php:71 lib/command.php:163 lib/command.php:302 -#: lib/command.php:355 lib/command.php:401 lib/command.php:462 -#: lib/command.php:518 lib/galleryaction.php:59 lib/mailbox.php:82 -#: lib/profileaction.php:77 +#: actions/xrds.php:71 lib/command.php:456 lib/galleryaction.php:59 +#: lib/mailbox.php:82 lib/profileaction.php:77 msgid "No such user." msgstr "無此使用者" @@ -203,12 +201,12 @@ msgstr "" #: actions/apistatusesdestroy.php:102 actions/apistatusesretweets.php:112 #: actions/apistatusesshow.php:108 actions/apistatusnetconfig.php:135 #: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111 -#: actions/apitimelinefavorites.php:183 actions/apitimelinefriends.php:187 -#: actions/apitimelinegroup.php:160 actions/apitimelinehome.php:184 -#: actions/apitimelinementions.php:175 actions/apitimelinepublic.php:148 +#: actions/apitimelinefavorites.php:173 actions/apitimelinefriends.php:174 +#: actions/apitimelinegroup.php:151 actions/apitimelinehome.php:173 +#: actions/apitimelinementions.php:173 actions/apitimelinepublic.php:151 #: actions/apitimelineretweetedtome.php:121 -#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:166 -#: actions/apitimelineuser.php:165 actions/apiusershow.php:101 +#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:160 +#: actions/apitimelineuser.php:162 actions/apiusershow.php:101 #, fuzzy msgid "API method not found." msgstr "確認碼遺失" @@ -340,7 +338,7 @@ msgstr "" msgid "This status is already a favorite." msgstr "" -#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 +#: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:279 msgid "Could not create favorite." msgstr "" @@ -462,7 +460,7 @@ msgstr "目前無請求" msgid "You are already a member of that group." msgstr "" -#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:221 +#: actions/apigroupjoin.php:119 actions/joingroup.php:105 lib/command.php:321 msgid "You have been blocked from that group by the admin." msgstr "" @@ -514,7 +512,7 @@ msgstr "尺寸錯誤" #: 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:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:350 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:86 actions/tagother.php:166 @@ -656,12 +654,12 @@ msgstr "" msgid "Unsupported format." msgstr "" -#: actions/apitimelinefavorites.php:108 +#: actions/apitimelinefavorites.php:109 #, fuzzy, php-format msgid "%1$s / Favorites from %2$s" msgstr "%1$s的狀態是%2$s" -#: actions/apitimelinefavorites.php:117 +#: actions/apitimelinefavorites.php:118 #, fuzzy, php-format msgid "%1$s updates favorited by %2$s / %2$s." msgstr "&s的微型部落格" @@ -671,7 +669,7 @@ msgstr "&s的微型部落格" msgid "%1$s / Updates mentioning %2$s" msgstr "%1$s的狀態是%2$s" -#: actions/apitimelinementions.php:127 +#: actions/apitimelinementions.php:130 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." msgstr "" @@ -681,7 +679,7 @@ msgstr "" msgid "%s public timeline" msgstr "" -#: actions/apitimelinepublic.php:111 actions/publicrss.php:105 +#: actions/apitimelinepublic.php:112 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" msgstr "" @@ -696,12 +694,12 @@ msgstr "" msgid "Repeats of %s" msgstr "" -#: actions/apitimelinetag.php:102 actions/tag.php:67 +#: actions/apitimelinetag.php:104 actions/tag.php:67 #, php-format msgid "Notices tagged with %s" msgstr "" -#: actions/apitimelinetag.php:104 actions/tagrss.php:65 +#: actions/apitimelinetag.php:106 actions/tagrss.php:65 #, fuzzy, php-format msgid "Updates tagged with %1$s on %2$s!" msgstr "&s的微型部落格" @@ -764,7 +762,7 @@ msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:655 +#: lib/deleteuserform.php:66 lib/noticelist.php:657 msgid "Delete" msgstr "" @@ -849,8 +847,8 @@ msgstr "" #: 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:212 -#: lib/command.php:260 +#: actions/showgroup.php:138 actions/showgroup.php:146 lib/command.php:162 +#: lib/command.php:358 #, fuzzy msgid "No such group." msgstr "無此通知" @@ -959,7 +957,7 @@ msgstr "無法連結到伺服器:%s" #: actions/deleteapplication.php:102 actions/editapplication.php:127 #: actions/newapplication.php:110 actions/showapplication.php:118 -#: lib/action.php:1217 +#: lib/action.php:1220 msgid "There was a problem with your session token." msgstr "" @@ -1019,7 +1017,7 @@ msgstr "" msgid "Do not delete this notice" msgstr "無此通知" -#: actions/deletenotice.php:146 lib/noticelist.php:655 +#: actions/deletenotice.php:146 lib/noticelist.php:657 msgid "Delete this notice" msgstr "" @@ -1288,7 +1286,7 @@ msgstr "自我介紹過長(共140個字元)" msgid "Could not update group." msgstr "無法更新使用者" -#: actions/editgroup.php:264 classes/User_group.php:493 +#: actions/editgroup.php:264 classes/User_group.php:496 #, fuzzy msgid "Could not create aliases." msgstr "無法存取個人圖像資料" @@ -1977,7 +1975,7 @@ msgstr "" msgid "You are already subscribed to these users:" msgstr "" -#: actions/invite.php:131 actions/invite.php:139 lib/command.php:306 +#: actions/invite.php:131 actions/invite.php:139 lib/command.php:398 #, php-format msgid "%1$s (%2$s)" msgstr "" @@ -2078,7 +2076,7 @@ msgstr "" msgid "You must be logged in to leave a group." msgstr "" -#: actions/leavegroup.php:100 lib/command.php:265 +#: actions/leavegroup.php:100 lib/command.php:363 msgid "You are not a member of that group." msgstr "" @@ -2189,12 +2187,12 @@ msgstr "" msgid "New message" msgstr "" -#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:358 +#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:459 msgid "You can't send a message to this user." msgstr "" -#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:342 -#: lib/command.php:475 +#: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:443 +#: lib/command.php:529 msgid "No content!" msgstr "無內容" @@ -2202,7 +2200,7 @@ msgstr "無內容" msgid "No recipient specified." msgstr "" -#: actions/newmessage.php:164 lib/command.php:361 +#: actions/newmessage.php:164 lib/command.php:462 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" @@ -2216,7 +2214,7 @@ msgstr "" msgid "Direct message to %s sent." msgstr "" -#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:189 msgid "Ajax Error" msgstr "" @@ -2342,8 +2340,8 @@ msgstr "連結" msgid "Only " msgstr "" -#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1042 -#: lib/apiaction.php:1070 lib/apiaction.php:1179 +#: actions/oembed.php:181 actions/oembed.php:200 lib/apiaction.php:1069 +#: lib/apiaction.php:1097 lib/apiaction.php:1213 msgid "Not a supported data format." msgstr "" @@ -2481,7 +2479,7 @@ msgstr "舊密碼錯誤" msgid "Error saving user; invalid." msgstr "儲存使用者發生錯誤;使用者名稱無效" -#: actions/passwordsettings.php:186 actions/recoverpassword.php:368 +#: actions/passwordsettings.php:186 actions/recoverpassword.php:381 msgid "Can't save new password." msgstr "無法存取新密碼" @@ -2969,7 +2967,7 @@ msgstr "" msgid "Recover password" msgstr "" -#: actions/recoverpassword.php:210 actions/recoverpassword.php:322 +#: actions/recoverpassword.php:210 actions/recoverpassword.php:335 msgid "Password recovery requested" msgstr "" @@ -2989,41 +2987,41 @@ msgstr "" msgid "Enter a nickname or email address." msgstr "請輸入暱稱或電子信箱" -#: actions/recoverpassword.php:272 +#: actions/recoverpassword.php:282 msgid "No user with that email address or username." msgstr "" -#: actions/recoverpassword.php:287 +#: actions/recoverpassword.php:299 msgid "No registered email address for that user." msgstr "查無此使用者所註冊的信箱" -#: actions/recoverpassword.php:301 +#: actions/recoverpassword.php:313 msgid "Error saving address confirmation." msgstr "儲存信箱確認發生錯誤" -#: actions/recoverpassword.php:325 +#: 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:344 +#: actions/recoverpassword.php:357 msgid "Unexpected password reset." msgstr "" -#: actions/recoverpassword.php:352 +#: actions/recoverpassword.php:365 msgid "Password must be 6 chars or more." msgstr "" -#: actions/recoverpassword.php:356 +#: actions/recoverpassword.php:369 msgid "Password and confirmation do not match." msgstr "" -#: actions/recoverpassword.php:375 actions/register.php:248 +#: actions/recoverpassword.php:388 actions/register.php:248 msgid "Error setting user." msgstr "使用者設定發生錯誤" -#: actions/recoverpassword.php:382 +#: actions/recoverpassword.php:395 msgid "New password successfully saved. You are now logged in." msgstr "新密碼已儲存成功。你已登入。" @@ -3203,7 +3201,7 @@ msgstr "" msgid "You already repeated that notice." msgstr "無此使用者" -#: actions/repeat.php:114 lib/noticelist.php:674 +#: actions/repeat.php:114 lib/noticelist.php:676 #, fuzzy msgid "Repeated" msgstr "新增" @@ -4405,19 +4403,19 @@ msgstr "地點" msgid "Author(s)" msgstr "" -#: classes/File.php:144 +#: classes/File.php:169 #, 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." msgstr "" -#: classes/File.php:154 +#: classes/File.php:179 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" -#: classes/File.php:161 +#: classes/File.php:186 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" @@ -4498,7 +4496,7 @@ msgstr "" msgid "Problem saving group inbox." msgstr "儲存使用者發生錯誤" -#: classes/Notice.php:1459 +#: classes/Notice.php:1465 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4530,31 +4528,31 @@ msgstr "無法刪除帳號" msgid "Couldn't delete subscription OMB token." msgstr "無法刪除帳號" -#: classes/Subscription.php:201 lib/subs.php:69 +#: classes/Subscription.php:201 msgid "Couldn't delete subscription." msgstr "無法刪除帳號" -#: classes/User.php:373 +#: classes/User.php:378 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" -#: classes/User_group.php:477 +#: classes/User_group.php:480 #, fuzzy msgid "Could not create group." msgstr "無法存取個人圖像資料" -#: classes/User_group.php:486 +#: classes/User_group.php:489 #, fuzzy msgid "Could not set group URI." msgstr "註冊失敗" -#: classes/User_group.php:507 +#: classes/User_group.php:510 #, fuzzy msgid "Could not set group membership." msgstr "註冊失敗" -#: classes/User_group.php:521 +#: classes/User_group.php:524 #, fuzzy msgid "Could not save local group info." msgstr "註冊失敗" @@ -4774,7 +4772,7 @@ msgstr "" msgid "StatusNet software license" msgstr "" -#: lib/action.php:802 +#: lib/action.php:804 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4783,12 +4781,12 @@ msgstr "" "**%%site.name%%**是由[%%site.broughtby%%](%%site.broughtbyurl%%)所提供的微型" "部落格服務" -#: lib/action.php:804 +#: lib/action.php:806 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%**是個微型部落格" -#: lib/action.php:806 +#: lib/action.php:809 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4796,42 +4794,42 @@ msgid "" "org/licensing/licenses/agpl-3.0.html)." msgstr "" -#: lib/action.php:821 +#: lib/action.php:824 #, fuzzy msgid "Site content license" msgstr "新訊息" -#: lib/action.php:826 +#: lib/action.php:829 #, php-format msgid "Content and data of %1$s are private and confidential." msgstr "" -#: lib/action.php:831 +#: lib/action.php:834 #, php-format msgid "Content and data copyright by %1$s. All rights reserved." msgstr "" -#: lib/action.php:834 +#: lib/action.php:837 msgid "Content and data copyright by contributors. All rights reserved." msgstr "" -#: lib/action.php:847 +#: lib/action.php:850 msgid "All " msgstr "" -#: lib/action.php:853 +#: lib/action.php:856 msgid "license." msgstr "" -#: lib/action.php:1152 +#: lib/action.php:1155 msgid "Pagination" msgstr "" -#: lib/action.php:1161 +#: lib/action.php:1164 msgid "After" msgstr "" -#: lib/action.php:1169 +#: lib/action.php:1172 #, fuzzy msgid "Before" msgstr "之前的內容»" @@ -4944,7 +4942,7 @@ msgstr "確認信箱" msgid "API resource requires read-write access, but you only have read access." msgstr "" -#: lib/apiauth.php:272 +#: lib/apiauth.php:276 #, php-format msgid "Failed API auth attempt, nickname = %1$s, proxy = %2$s, ip = %3$s" msgstr "" @@ -5043,37 +5041,51 @@ msgstr "" msgid "Password changing is not allowed" msgstr "" -#: lib/channel.php:138 lib/channel.php:158 +#: lib/channel.php:157 lib/channel.php:177 msgid "Command results" msgstr "" -#: lib/channel.php:210 lib/mailhandler.php:142 +#: lib/channel.php:229 lib/mailhandler.php:142 msgid "Command complete" msgstr "" -#: lib/channel.php:221 +#: lib/channel.php:240 msgid "Command failed" msgstr "" -#: lib/command.php:44 -msgid "Sorry, this command is not yet implemented." +#: lib/command.php:83 lib/command.php:105 +msgid "Notice with that id does not exist" msgstr "" -#: lib/command.php:88 +#: lib/command.php:99 lib/command.php:570 +#, fuzzy +msgid "User has no last notice" +msgstr "新訊息" + +#: lib/command.php:125 #, php-format msgid "Could not find a user with nickname %s" msgstr "無法更新使用者" -#: lib/command.php:92 +#: lib/command.php:143 +#, fuzzy, php-format +msgid "Could not find a local user with nickname %s" +msgstr "無法更新使用者" + +#: lib/command.php:176 +msgid "Sorry, this command is not yet implemented." +msgstr "" + +#: lib/command.php:221 msgid "It does not make a lot of sense to nudge yourself!" msgstr "" -#: lib/command.php:99 +#: lib/command.php:228 #, php-format msgid "Nudge sent to %s" msgstr "" -#: lib/command.php:126 +#: lib/command.php:254 #, php-format msgid "" "Subscriptions: %1$s\n" @@ -5081,201 +5093,197 @@ msgid "" "Notices: %3$s" msgstr "" -#: lib/command.php:152 lib/command.php:390 lib/command.php:451 -msgid "Notice with that id does not exist" -msgstr "" - -#: lib/command.php:168 lib/command.php:406 lib/command.php:467 -#: lib/command.php:523 -#, fuzzy -msgid "User has no last notice" -msgstr "新訊息" - -#: lib/command.php:190 +#: lib/command.php:296 msgid "Notice marked as fave." msgstr "" -#: lib/command.php:217 +#: lib/command.php:317 #, fuzzy msgid "You are already a member of that group" msgstr "無法連結到伺服器:%s" -#: lib/command.php:231 +#: lib/command.php:331 #, fuzzy, php-format msgid "Could not join user %s to group %s" msgstr "無法連結到伺服器:%s" -#: lib/command.php:236 +#: lib/command.php:336 #, fuzzy, php-format msgid "%s joined group %s" msgstr "%1$s的狀態是%2$s" -#: lib/command.php:275 +#: lib/command.php:373 #, fuzzy, php-format msgid "Could not remove user %s to group %s" msgstr "無法從 %s 建立OpenID" -#: lib/command.php:280 +#: lib/command.php:378 #, fuzzy, php-format msgid "%s left group %s" msgstr "%1$s的狀態是%2$s" -#: lib/command.php:309 +#: lib/command.php:401 #, fuzzy, php-format msgid "Fullname: %s" msgstr "全名" -#: lib/command.php:312 lib/mail.php:258 +#: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" msgstr "" -#: lib/command.php:315 lib/mail.php:260 +#: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" msgstr "" -#: lib/command.php:318 +#: lib/command.php:410 #, php-format msgid "About: %s" msgstr "" -#: lib/command.php:349 +#: lib/command.php:437 +#, php-format +msgid "" +"%s is a remote profile; you can only send direct messages to users on the " +"same server." +msgstr "" + +#: lib/command.php:450 #, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "" -#: lib/command.php:367 +#: lib/command.php:468 #, php-format msgid "Direct message to %s sent" msgstr "" -#: lib/command.php:369 +#: lib/command.php:470 msgid "Error sending direct message." msgstr "" -#: lib/command.php:413 +#: lib/command.php:490 #, fuzzy msgid "Cannot repeat your own notice" msgstr "儲存使用者發生錯誤" -#: lib/command.php:418 +#: lib/command.php:495 #, fuzzy msgid "Already repeated that notice" msgstr "無此使用者" -#: lib/command.php:426 +#: lib/command.php:503 #, fuzzy, php-format msgid "Notice from %s repeated" msgstr "更新個人圖像" -#: lib/command.php:428 +#: lib/command.php:505 #, fuzzy msgid "Error repeating notice." msgstr "儲存使用者發生錯誤" -#: lib/command.php:482 +#: lib/command.php:536 #, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "" -#: lib/command.php:491 +#: lib/command.php:545 #, fuzzy, php-format msgid "Reply to %s sent" msgstr "&s的微型部落格" -#: lib/command.php:493 +#: lib/command.php:547 msgid "Error saving notice." msgstr "儲存使用者發生錯誤" -#: lib/command.php:547 +#: lib/command.php:594 msgid "Specify the name of the user to subscribe to" msgstr "" -#: lib/command.php:554 lib/command.php:589 -#, fuzzy -msgid "No such user" -msgstr "無此使用者" +#: lib/command.php:602 +msgid "Can't subscribe to OMB profiles by command." +msgstr "" -#: lib/command.php:561 +#: lib/command.php:608 #, php-format msgid "Subscribed to %s" msgstr "" -#: lib/command.php:582 lib/command.php:685 +#: lib/command.php:629 lib/command.php:728 msgid "Specify the name of the user to unsubscribe from" msgstr "" -#: lib/command.php:595 +#: lib/command.php:638 #, php-format msgid "Unsubscribed from %s" msgstr "" -#: lib/command.php:613 lib/command.php:636 +#: lib/command.php:656 lib/command.php:679 msgid "Command not yet implemented." msgstr "" -#: lib/command.php:616 +#: lib/command.php:659 msgid "Notification off." msgstr "" -#: lib/command.php:618 +#: lib/command.php:661 msgid "Can't turn off notification." msgstr "" -#: lib/command.php:639 +#: lib/command.php:682 msgid "Notification on." msgstr "" -#: lib/command.php:641 +#: lib/command.php:684 msgid "Can't turn on notification." msgstr "" -#: lib/command.php:654 +#: lib/command.php:697 msgid "Login command is disabled" msgstr "" -#: lib/command.php:665 +#: lib/command.php:708 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" -#: lib/command.php:692 +#: lib/command.php:735 #, fuzzy, php-format msgid "Unsubscribed %s" msgstr "此帳號已註冊" -#: lib/command.php:709 +#: lib/command.php:752 #, fuzzy msgid "You are not subscribed to anyone." msgstr "此帳號已註冊" -#: lib/command.php:711 +#: lib/command.php:754 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "此帳號已註冊" -#: lib/command.php:731 +#: lib/command.php:774 #, fuzzy msgid "No one is subscribed to you." msgstr "無此訂閱" -#: lib/command.php:733 +#: lib/command.php:776 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "無此訂閱" -#: lib/command.php:753 +#: lib/command.php:796 #, fuzzy msgid "You are not a member of any groups." msgstr "無法連結到伺服器:%s" -#: lib/command.php:755 +#: lib/command.php:798 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "無法連結到伺服器:%s" -#: lib/command.php:769 +#: lib/command.php:812 msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5510,50 +5518,50 @@ msgstr "" msgid "This page is not available in a media type you accept" msgstr "" -#: lib/imagefile.php:75 +#: lib/imagefile.php:74 +msgid "Unsupported image file format." +msgstr "" + +#: lib/imagefile.php:90 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "" -#: lib/imagefile.php:80 +#: lib/imagefile.php:95 msgid "Partial upload." msgstr "" -#: lib/imagefile.php:88 lib/mediafile.php:170 +#: lib/imagefile.php:103 lib/mediafile.php:170 msgid "System error uploading file." msgstr "" -#: lib/imagefile.php:96 +#: lib/imagefile.php:111 msgid "Not an image or corrupt file." msgstr "" -#: lib/imagefile.php:109 -msgid "Unsupported image file format." -msgstr "" - -#: lib/imagefile.php:122 +#: lib/imagefile.php:124 #, fuzzy msgid "Lost our file." msgstr "無此通知" -#: lib/imagefile.php:166 lib/imagefile.php:231 +#: lib/imagefile.php:168 lib/imagefile.php:233 msgid "Unknown file type" msgstr "" -#: lib/imagefile.php:251 +#: lib/imagefile.php:253 msgid "MB" msgstr "" -#: lib/imagefile.php:253 +#: lib/imagefile.php:255 msgid "kB" msgstr "" -#: lib/jabber.php:220 +#: lib/jabber.php:228 #, php-format msgid "[%s]" msgstr "" -#: lib/jabber.php:400 +#: lib/jabber.php:408 #, php-format msgid "Unknown inbox source %d." msgstr "" @@ -5758,7 +5766,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:482 +#: lib/mailbox.php:227 lib/noticelist.php:484 msgid "from" msgstr "" @@ -5913,25 +5921,25 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:566 +#: lib/noticelist.php:568 #, fuzzy msgid "in context" msgstr "無內容" -#: lib/noticelist.php:601 +#: lib/noticelist.php:603 #, fuzzy msgid "Repeated by" msgstr "新增" -#: lib/noticelist.php:628 +#: lib/noticelist.php:630 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:629 +#: lib/noticelist.php:631 msgid "Reply" msgstr "" -#: lib/noticelist.php:673 +#: lib/noticelist.php:675 #, fuzzy msgid "Notice repeated" msgstr "更新個人圖像" @@ -6255,47 +6263,47 @@ msgctxt "role" msgid "Moderator" msgstr "" -#: lib/util.php:1015 +#: lib/util.php:1046 msgid "a few seconds ago" msgstr "" -#: lib/util.php:1017 +#: lib/util.php:1048 msgid "about a minute ago" msgstr "" -#: lib/util.php:1019 +#: lib/util.php:1050 #, php-format msgid "about %d minutes ago" msgstr "" -#: lib/util.php:1021 +#: lib/util.php:1052 msgid "about an hour ago" msgstr "" -#: lib/util.php:1023 +#: lib/util.php:1054 #, php-format msgid "about %d hours ago" msgstr "" -#: lib/util.php:1025 +#: lib/util.php:1056 msgid "about a day ago" msgstr "" -#: lib/util.php:1027 +#: lib/util.php:1058 #, php-format msgid "about %d days ago" msgstr "" -#: lib/util.php:1029 +#: lib/util.php:1060 msgid "about a month ago" msgstr "" -#: lib/util.php:1031 +#: lib/util.php:1062 #, php-format msgid "about %d months ago" msgstr "" -#: lib/util.php:1033 +#: lib/util.php:1064 msgid "about a year ago" msgstr "" @@ -6309,7 +6317,7 @@ msgstr "個人首頁位址錯誤" msgid "%s is not a valid color! Use 3 or 6 hex chars." msgstr "" -#: lib/xmppmanager.php:402 +#: lib/xmppmanager.php:403 #, php-format msgid "Message too long - maximum is %1$d characters, you sent %2$d." msgstr "" -- cgit v1.2.3-54-g00ecf From 114f046691282ef96a7e5795082f97bd9c41ab97 Mon Sep 17 00:00:00 2001 From: James Walker Date: Fri, 12 Mar 2010 18:50:00 -0500 Subject: removing deprecated PEAR Crypt_RSA --- plugins/OStatus/extlib/Crypt/RSA.php | 524 -------------- plugins/OStatus/extlib/Crypt/RSA/ErrorHandler.php | 234 ------- plugins/OStatus/extlib/Crypt/RSA/Key.php | 315 --------- plugins/OStatus/extlib/Crypt/RSA/KeyPair.php | 804 ---------------------- plugins/OStatus/extlib/Crypt/RSA/Math/BCMath.php | 482 ------------- plugins/OStatus/extlib/Crypt/RSA/Math/BigInt.php | 313 --------- plugins/OStatus/extlib/Crypt/RSA/Math/GMP.php | 361 ---------- plugins/OStatus/extlib/Crypt/RSA/MathLoader.php | 135 ---- 8 files changed, 3168 deletions(-) delete mode 100644 plugins/OStatus/extlib/Crypt/RSA.php delete mode 100644 plugins/OStatus/extlib/Crypt/RSA/ErrorHandler.php delete mode 100644 plugins/OStatus/extlib/Crypt/RSA/Key.php delete mode 100644 plugins/OStatus/extlib/Crypt/RSA/KeyPair.php delete mode 100644 plugins/OStatus/extlib/Crypt/RSA/Math/BCMath.php delete mode 100644 plugins/OStatus/extlib/Crypt/RSA/Math/BigInt.php delete mode 100644 plugins/OStatus/extlib/Crypt/RSA/Math/GMP.php delete mode 100644 plugins/OStatus/extlib/Crypt/RSA/MathLoader.php diff --git a/plugins/OStatus/extlib/Crypt/RSA.php b/plugins/OStatus/extlib/Crypt/RSA.php deleted file mode 100644 index 16dfa54d4..000000000 --- a/plugins/OStatus/extlib/Crypt/RSA.php +++ /dev/null @@ -1,524 +0,0 @@ - - * @copyright 2005, 2006 Alexander Valyalkin - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version 1.2.0b - * @link http://pear.php.net/package/Crypt_RSA - */ - -/** - * RSA error handling facilities - */ -require_once 'Crypt/RSA/ErrorHandler.php'; - -/** - * loader for math wrappers - */ -require_once 'Crypt/RSA/MathLoader.php'; - -/** - * helper class for mange single key - */ -require_once 'Crypt/RSA/Key.php'; - -/** - * helper class for manage key pair - */ -require_once 'Crypt/RSA/KeyPair.php'; - -/** - * Crypt_RSA class, derived from Crypt_RSA_ErrorHandler - * - * Provides the following functions: - * - setParams($params) - sets parameters of current object - * - encrypt($plain_data, $key = null) - encrypts data - * - decrypt($enc_data, $key = null) - decrypts data - * - createSign($doc, $private_key = null) - signs document by private key - * - validateSign($doc, $signature, $public_key = null) - validates signature of document - * - * Example usage: - * // creating an error handler - * $error_handler = create_function('$obj', 'echo "error: ", $obj->getMessage(), "\n"'); - * - * // 1024-bit key pair generation - * $key_pair = new Crypt_RSA_KeyPair(1024); - * - * // check consistence of Crypt_RSA_KeyPair object - * $error_handler($key_pair); - * - * // creating Crypt_RSA object - * $rsa_obj = new Crypt_RSA; - * - * // check consistence of Crypt_RSA object - * $error_handler($rsa_obj); - * - * // set error handler on Crypt_RSA object ( see Crypt/RSA/ErrorHandler.php for details ) - * $rsa_obj->setErrorHandler($error_handler); - * - * // encryption (usually using public key) - * $enc_data = $rsa_obj->encrypt($plain_data, $key_pair->getPublicKey()); - * - * // decryption (usually using private key) - * $plain_data = $rsa_obj->decrypt($enc_data, $key_pair->getPrivateKey()); - * - * // signing - * $signature = $rsa_obj->createSign($document, $key_pair->getPrivateKey()); - * - * // signature checking - * $is_valid = $rsa_obj->validateSign($document, $signature, $key_pair->getPublicKey()); - * - * // signing many documents by one private key - * $rsa_obj = new Crypt_RSA(array('private_key' => $key_pair->getPrivateKey())); - * // check consistence of Crypt_RSA object - * $error_handler($rsa_obj); - * // set error handler ( see Crypt/RSA/ErrorHandler.php for details ) - * $rsa_obj->setErrorHandler($error_handler); - * // sign many documents - * $sign_1 = $rsa_obj->sign($doc_1); - * $sign_2 = $rsa_obj->sign($doc_2); - * //... - * $sign_n = $rsa_obj->sign($doc_n); - * - * // changing default hash function, which is used for sign - * // creating/validation - * $rsa_obj->setParams(array('hash_func' => 'md5')); - * - * // using factory() method instead of constructor (it returns PEAR_Error object on failure) - * $rsa_obj = &Crypt_RSA::factory(); - * if (PEAR::isError($rsa_obj)) { - * echo "error: ", $rsa_obj->getMessage(), "\n"; - * } - * - * @category Encryption - * @package Crypt_RSA - * @author Alexander Valyalkin - * @copyright 2005, 2006 Alexander Valyalkin - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @link http://pear.php.net/package/Crypt_RSA - * @version @package_version@ - * @access public - */ -class Crypt_RSA extends Crypt_RSA_ErrorHandler -{ - /** - * Reference to math wrapper, which is used to - * manipulate large integers in RSA algorithm. - * - * @var object of Crypt_RSA_Math_* class - * @access private - */ - var $_math_obj; - - /** - * key for encryption, which is used by encrypt() method - * - * @var object of Crypt_RSA_KEY class - * @access private - */ - var $_enc_key; - - /** - * key for decryption, which is used by decrypt() method - * - * @var object of Crypt_RSA_KEY class - * @access private - */ - var $_dec_key; - - /** - * public key, which is used by validateSign() method - * - * @var object of Crypt_RSA_KEY class - * @access private - */ - var $_public_key; - - /** - * private key, which is used by createSign() method - * - * @var object of Crypt_RSA_KEY class - * @access private - */ - var $_private_key; - - /** - * name of hash function, which is used by validateSign() - * and createSign() methods. Default hash function is SHA-1 - * - * @var string - * @access private - */ - var $_hash_func = 'sha1'; - - /** - * Crypt_RSA constructor. - * - * @param array $params - * Optional associative array of parameters, such as: - * enc_key, dec_key, private_key, public_key, hash_func. - * See setParams() method for more detailed description of - * these parameters. - * @param string $wrapper_name - * Name of math wrapper, which will be used to - * perform different operations with big integers. - * See contents of Crypt/RSA/Math folder for examples of wrappers. - * Read docs/Crypt_RSA/docs/math_wrappers.txt for details. - * @param string $error_handler name of error handler function - * - * @access public - */ - function Crypt_RSA($params = null, $wrapper_name = 'default', $error_handler = '') - { - // set error handler - $this->setErrorHandler($error_handler); - // try to load math wrapper - $obj = &Crypt_RSA_MathLoader::loadWrapper($wrapper_name); - if ($this->isError($obj)) { - // error during loading of math wrapper - // Crypt_RSA object is partially constructed. - $this->pushError($obj); - return; - } - $this->_math_obj = &$obj; - - if (!is_null($params)) { - if (!$this->setParams($params)) { - // error in Crypt_RSA::setParams() function - return; - } - } - } - - /** - * Crypt_RSA factory. - * - * @param array $params - * Optional associative array of parameters, such as: - * enc_key, dec_key, private_key, public_key, hash_func. - * See setParams() method for more detailed description of - * these parameters. - * @param string $wrapper_name - * Name of math wrapper, which will be used to - * perform different operations with big integers. - * See contents of Crypt/RSA/Math folder for examples of wrappers. - * Read docs/Crypt_RSA/docs/math_wrappers.txt for details. - * @param string $error_handler name of error handler function - * - * @return object new Crypt_RSA object on success or PEAR_Error object on failure - * @access public - */ - function &factory($params = null, $wrapper_name = 'default', $error_handler = '') - { - $obj = &new Crypt_RSA($params, $wrapper_name, $error_handler); - if ($obj->isError()) { - // error during creating a new object. Retrurn PEAR_Error object - return $obj->getLastError(); - } - // object created successfully. Return it - return $obj; - } - - /** - * Accepts any combination of available parameters as associative array: - * enc_key - encryption key for encrypt() method - * dec_key - decryption key for decrypt() method - * public_key - key for validateSign() method - * private_key - key for createSign() method - * hash_func - name of hash function, which will be used to create and validate sign - * - * @param array $params - * associative array of permitted parameters (see above) - * - * @return bool true on success or false on error - * @access public - */ - function setParams($params) - { - if (!is_array($params)) { - $this->pushError('parameters must be passed to function as associative array', CRYPT_RSA_ERROR_WRONG_PARAMS); - return false; - } - - if (isset($params['enc_key'])) { - if (Crypt_RSA_Key::isValid($params['enc_key'])) { - $this->_enc_key = $params['enc_key']; - } - else { - $this->pushError('wrong encryption key. It must be an object of Crypt_RSA_Key class', CRYPT_RSA_ERROR_WRONG_KEY); - return false; - } - } - if (isset($params['dec_key'])) { - if (Crypt_RSA_Key::isValid($params['dec_key'])) { - $this->_dec_key = $params['dec_key']; - } - else { - $this->pushError('wrong decryption key. It must be an object of Crypt_RSA_Key class', CRYPT_RSA_ERROR_WRONG_KEY); - return false; - } - } - if (isset($params['private_key'])) { - if (Crypt_RSA_Key::isValid($params['private_key'])) { - if ($params['private_key']->getKeyType() != 'private') { - $this->pushError('private key must have "private" attribute', CRYPT_RSA_ERROR_WRONG_KEY_TYPE); - return false; - } - $this->_private_key = $params['private_key']; - } - else { - $this->pushError('wrong private key. It must be an object of Crypt_RSA_Key class', CRYPT_RSA_ERROR_WRONG_KEY); - return false; - } - } - if (isset($params['public_key'])) { - if (Crypt_RSA_Key::isValid($params['public_key'])) { - if ($params['public_key']->getKeyType() != 'public') { - $this->pushError('public key must have "public" attribute', CRYPT_RSA_ERROR_WRONG_KEY_TYPE); - return false; - } - $this->_public_key = $params['public_key']; - } - else { - $this->pushError('wrong public key. It must be an object of Crypt_RSA_Key class', CRYPT_RSA_ERROR_WRONG_KEY); - return false; - } - } - if (isset($params['hash_func'])) { - if (!function_exists($params['hash_func'])) { - $this->pushError('cannot find hash function with name [' . $params['hash_func'] . ']', CRYPT_RSA_ERROR_WRONG_HASH_FUNC); - return false; - } - $this->_hash_func = $params['hash_func']; - } - return true; // all ok - } - - /** - * Ecnrypts $plain_data by the key $this->_enc_key or $key. - * - * @param string $plain_data data, which must be encrypted - * @param object $key encryption key (object of Crypt_RSA_Key class) - * @return mixed - * encrypted data as string on success or false on error - * - * @access public - */ - function encrypt($plain_data, $key = null) - { - $enc_data = $this->encryptBinary($plain_data, $key); - if ($enc_data !== false) { - return base64_encode($enc_data); - } - // error during encripting data - return false; - } - - /** - * Ecnrypts $plain_data by the key $this->_enc_key or $key. - * - * @param string $plain_data data, which must be encrypted - * @param object $key encryption key (object of Crypt_RSA_Key class) - * @return mixed - * encrypted data as binary string on success or false on error - * - * @access public - */ - function encryptBinary($plain_data, $key = null) - { - if (is_null($key)) { - // use current encryption key - $key = $this->_enc_key; - } - else if (!Crypt_RSA_Key::isValid($key)) { - $this->pushError('invalid encryption key. It must be an object of Crypt_RSA_Key class', CRYPT_RSA_ERROR_WRONG_KEY); - return false; - } - - // append tail \x01 to plain data. It needs for correctly decrypting of data - $plain_data .= "\x01"; - - $plain_data = $this->_math_obj->bin2int($plain_data); - $exp = $this->_math_obj->bin2int($key->getExponent()); - $modulus = $this->_math_obj->bin2int($key->getModulus()); - - // divide plain data into chunks - $data_len = $this->_math_obj->bitLen($plain_data); - $chunk_len = $key->getKeyLength() - 1; - $block_len = (int) ceil($chunk_len / 8); - $curr_pos = 0; - $enc_data = ''; - while ($curr_pos < $data_len) { - $tmp = $this->_math_obj->subint($plain_data, $curr_pos, $chunk_len); - $enc_data .= str_pad( - $this->_math_obj->int2bin($this->_math_obj->powmod($tmp, $exp, $modulus)), - $block_len, - "\0" - ); - $curr_pos += $chunk_len; - } - return $enc_data; - } - - /** - * Decrypts $enc_data by the key $this->_dec_key or $key. - * - * @param string $enc_data encrypted data as string - * @param object $key decryption key (object of RSA_Crypt_Key class) - * @return mixed - * decrypted data as string on success or false on error - * - * @access public - */ - function decrypt($enc_data, $key = null) - { - $enc_data = base64_decode($enc_data); - return $this->decryptBinary($enc_data, $key); - } - - /** - * Decrypts $enc_data by the key $this->_dec_key or $key. - * - * @param string $enc_data encrypted data as binary string - * @param object $key decryption key (object of RSA_Crypt_Key class) - * @return mixed - * decrypted data as string on success or false on error - * - * @access public - */ - function decryptBinary($enc_data, $key = null) - { - if (is_null($key)) { - // use current decryption key - $key = $this->_dec_key; - } - else if (!Crypt_RSA_Key::isValid($key)) { - $this->pushError('invalid decryption key. It must be an object of Crypt_RSA_Key class', CRYPT_RSA_ERROR_WRONG_KEY); - return false; - } - - $exp = $this->_math_obj->bin2int($key->getExponent()); - $modulus = $this->_math_obj->bin2int($key->getModulus()); - - $data_len = strlen($enc_data); - $chunk_len = $key->getKeyLength() - 1; - $block_len = (int) ceil($chunk_len / 8); - $curr_pos = 0; - $bit_pos = 0; - $plain_data = $this->_math_obj->bin2int("\0"); - while ($curr_pos < $data_len) { - $tmp = $this->_math_obj->bin2int(substr($enc_data, $curr_pos, $block_len)); - $tmp = $this->_math_obj->powmod($tmp, $exp, $modulus); - $plain_data = $this->_math_obj->bitOr($plain_data, $tmp, $bit_pos); - $bit_pos += $chunk_len; - $curr_pos += $block_len; - } - $result = $this->_math_obj->int2bin($plain_data); - - // delete tail, containing of \x01 - $tail = ord($result{strlen($result) - 1}); - if ($tail != 1) { - $this->pushError("Error tail of decrypted text = {$tail}. Expected 1", CRYPT_RSA_ERROR_WRONG_TAIL); - return false; - } - return substr($result, 0, -1); - } - - /** - * Creates sign for document $document, using $this->_private_key or $private_key - * as private key and $this->_hash_func or $hash_func as hash function. - * - * @param string $document document, which must be signed - * @param object $private_key private key (object of Crypt_RSA_Key type) - * @param string $hash_func name of hash function, which will be used during signing - * @return mixed - * signature of $document as string on success or false on error - * - * @access public - */ - function createSign($document, $private_key = null, $hash_func = null) - { - // check private key - if (is_null($private_key)) { - $private_key = $this->_private_key; - } - else if (!Crypt_RSA_Key::isValid($private_key)) { - $this->pushError('invalid private key. It must be an object of Crypt_RSA_Key class', CRYPT_RSA_ERROR_WRONG_KEY); - return false; - } - if ($private_key->getKeyType() != 'private') { - $this->pushError('signing key must be private', CRYPT_RSA_ERROR_NEED_PRV_KEY); - return false; - } - - // check hash_func - if (is_null($hash_func)) { - $hash_func = $this->_hash_func; - } - if (!function_exists($hash_func)) { - $this->pushError("cannot find hash function with name [$hash_func]", CRYPT_RSA_ERROR_WRONG_HASH_FUNC); - return false; - } - - return $this->encrypt($hash_func($document), $private_key); - } - - /** - * Validates $signature for document $document with public key $this->_public_key - * or $public_key and hash function $this->_hash_func or $hash_func. - * - * @param string $document document, signature of which must be validated - * @param string $signature signature, which must be validated - * @param object $public_key public key (object of Crypt_RSA_Key class) - * @param string $hash_func hash function, which will be used during validating signature - * @return mixed - * true, if signature of document is valid - * false, if signature of document is invalid - * null on error - * - * @access public - */ - function validateSign($document, $signature, $public_key = null, $hash_func = null) - { - // check public key - if (is_null($public_key)) { - $public_key = $this->_public_key; - } - else if (!Crypt_RSA_Key::isValid($public_key)) { - $this->pushError('invalid public key. It must be an object of Crypt_RSA_Key class', CRYPT_RSA_ERROR_WRONG_KEY); - return null; - } - if ($public_key->getKeyType() != 'public') { - $this->pushError('validating key must be public', CRYPT_RSA_ERROR_NEED_PUB_KEY); - return null; - } - - // check hash_func - if (is_null($hash_func)) { - $hash_func = $this->_hash_func; - } - if (!function_exists($hash_func)) { - $this->pushError("cannot find hash function with name [$hash_func]", CRYPT_RSA_ERROR_WRONG_HASH_FUNC); - return null; - } - - return $hash_func($document) == $this->decrypt($signature, $public_key); - } -} - -?> \ No newline at end of file diff --git a/plugins/OStatus/extlib/Crypt/RSA/ErrorHandler.php b/plugins/OStatus/extlib/Crypt/RSA/ErrorHandler.php deleted file mode 100644 index 8f39741e0..000000000 --- a/plugins/OStatus/extlib/Crypt/RSA/ErrorHandler.php +++ /dev/null @@ -1,234 +0,0 @@ - - * @copyright 2005 Alexander Valyalkin - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: ErrorHandler.php,v 1.4 2009/01/05 08:30:29 clockwerx Exp $ - * @link http://pear.php.net/package/Crypt_RSA - */ - -/** - * uses PEAR's error handling - */ -require_once 'PEAR.php'; - -/** - * cannot load required extension for math wrapper - */ -define('CRYPT_RSA_ERROR_NO_EXT', 1); - -/** - * cannot load any math wrappers. - * Possible reasons: - * - there is no any wrappers (they must exist in Crypt/RSA/Math folder ) - * - all available wrappers are incorrect (read docs/Crypt_RSA/docs/math_wrappers.txt ) - * - cannot load any extension, required by available wrappers - */ -define('CRYPT_RSA_ERROR_NO_WRAPPERS', 2); - -/** - * cannot find file, containing requested math wrapper - */ -define('CRYPT_RSA_ERROR_NO_FILE', 3); - -/** - * cannot find math wrapper class in the math wrapper file - */ -define('CRYPT_RSA_ERROR_NO_CLASS', 4); - -/** - * invalid key type passed to function (it must be 'public' or 'private') - */ -define('CRYPT_RSA_ERROR_WRONG_KEY_TYPE', 5); - -/** - * key modulus must be greater than key exponent - */ -define('CRYPT_RSA_ERROR_EXP_GE_MOD', 6); - -/** - * missing $key_len parameter in Crypt_RSA_KeyPair::generate($key_len) function - */ -define('CRYPT_RSA_ERROR_MISSING_KEY_LEN', 7); - -/** - * wrong key object passed to function (it must be an object of Crypt_RSA_Key class) - */ -define('CRYPT_RSA_ERROR_WRONG_KEY', 8); - -/** - * wrong name of hash function passed to Crypt_RSA::setParams() function - */ -define('CRYPT_RSA_ERROR_WRONG_HASH_FUNC', 9); - -/** - * key, used for signing, must be private - */ -define('CRYPT_RSA_ERROR_NEED_PRV_KEY', 10); - -/** - * key, used for sign validating, must be public - */ -define('CRYPT_RSA_ERROR_NEED_PUB_KEY', 11); - -/** - * parameters must be passed to function as associative array - */ -define('CRYPT_RSA_ERROR_WRONG_PARAMS', 12); - -/** - * error tail of decrypted text. Maybe, wrong decryption key? - */ -define('CRYPT_RSA_ERROR_WRONG_TAIL', 13); - -/** - * Crypt_RSA_ErrorHandler class. - * - * This class is used as base for Crypt_RSA, Crypt_RSA_Key - * and Crypt_RSA_KeyPair classes. - * - * It provides following functions: - * - isError() - returns true, if list contains errors, else returns false - * - getErrorList() - returns error list - * - getLastError() - returns last error from error list or false, if list is empty - * - pushError($errstr) - pushes $errstr into the error list - * - setErrorHandler($new_error_handler) - sets error handler function - * - getErrorHandler() - returns name of error handler function - * - * @category Encryption - * @package Crypt_RSA - * @author Alexander Valyalkin - * @copyright 2005 Alexander Valyalkin - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: @package_version@ - * @link http://pear.php.net/package/Crypt_RSA - * @access public - */ -class Crypt_RSA_ErrorHandler -{ - /** - * array of error objects, pushed by $this->pushError() - * - * @var array - * @access private - */ - var $_errors = array(); - - /** - * name of error handler - function, which calls on $this->pushError() call - * - * @var string - * @access private - */ - var $_error_handler = ''; - - /** - * Returns true if list of errors is not empty, else returns false - * - * @param mixed $err Check if the object is an error - * - * @return bool true, if list of errors is not empty or $err is PEAR_Error object, else false - * @access public - */ - function isError($err = null) - { - return is_null($err) ? (sizeof($this->_errors) > 0) : PEAR::isError($err); - } - - /** - * Returns list of all errors, pushed to error list by $this->pushError() - * - * @return array list of errors (usually it contains objects of PEAR_Error class) - * @access public - */ - function getErrorList() - { - return $this->_errors; - } - - /** - * Returns last error from errors list or false, if list is empty - * - * @return mixed - * last error from errors list (usually it is PEAR_Error object) - * or false, if list is empty. - * - * @access public - */ - function getLastError() - { - $len = sizeof($this->_errors); - return $len ? $this->_errors[$len - 1] : false; - } - - /** - * pushes error object $error to the error list - * - * @param string $errstr error string - * @param int $errno error number - * - * @return bool true on success, false on error - * @access public - */ - function pushError($errstr, $errno = 0) - { - $this->_errors[] = PEAR::raiseError($errstr, $errno); - - if ($this->_error_handler != '') { - // call user defined error handler - $func = $this->_error_handler; - $func($this); - } - return true; - } - - /** - * sets error handler to function with name $func_name. - * Function $func_name must accept one parameter - current - * object, which triggered error. - * - * @param string $func_name name of error handler function - * - * @return bool true on success, false on error - * @access public - */ - function setErrorHandler($func_name = '') - { - if ($func_name == '') { - $this->_error_handler = ''; - } - if (!function_exists($func_name)) { - return false; - } - $this->_error_handler = $func_name; - return true; - } - - /** - * returns name of current error handler, or null if there is no error handler - * - * @return mixed error handler name as string or null, if there is no error handler - * @access public - */ - function getErrorHandler() - { - return $this->_error_handler; - } -} - -?> diff --git a/plugins/OStatus/extlib/Crypt/RSA/Key.php b/plugins/OStatus/extlib/Crypt/RSA/Key.php deleted file mode 100644 index 659530229..000000000 --- a/plugins/OStatus/extlib/Crypt/RSA/Key.php +++ /dev/null @@ -1,315 +0,0 @@ - - * @copyright 2005 Alexander Valyalkin - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: Key.php,v 1.6 2009/01/05 08:30:29 clockwerx Exp $ - * @link http://pear.php.net/package/Crypt_RSA - */ - -/** - * RSA error handling facilities - */ -require_once 'Crypt/RSA/ErrorHandler.php'; - -/** - * loader for RSA math wrappers - */ -require_once 'Crypt/RSA/MathLoader.php'; - -/** - * Crypt_RSA_Key class, derived from Crypt_RSA_ErrorHandler - * - * Provides the following functions: - * - getKeyLength() - returns bit key length - * - getExponent() - returns key exponent as binary string - * - getModulus() - returns key modulus as binary string - * - getKeyType() - returns type of the key (public or private) - * - toString() - returns serialized key as string - * - fromString($key_str) - static function; returns key, unserialized from string - * - isValid($key) - static function for validating of $key - * - * Example usage: - * // create new 1024-bit key pair - * $key_pair = new Crypt_RSA_KeyPair(1024); - * - * // get public key (its class is Crypt_RSA_Key) - * $key = $key_pair->getPublicKey(); - * - * // get key length - * $len = $key->getKeyLength(); - * - * // get modulus as string - * $modulus = $key->getModulus(); - * - * // get exponent as string - * $exponent = $key->getExponent(); - * - * // get string represenation of key (use it instead of serialization of Crypt_RSA_Key object) - * $key_in_str = $key->toString(); - * - * // restore key object from string using 'BigInt' math wrapper - * $key = Crypt_RSA_Key::fromString($key_in_str, 'BigInt'); - * - * // error check - * if ($key->isError()) { - * echo "error while unserializing key object:\n"; - * $erorr = $key->getLastError(); - * echo $error->getMessage(), "\n"; - * } - * - * // validate key - * if (Crypt_RSA_Key::isValid($key)) echo 'valid key'; - * else echo 'invalid key'; - * - * // using factory() method instead of constructor (it returns PEAR_Error object on failure) - * $rsa_obj = &Crypt_RSA_Key::factory($modulus, $exp, $key_type); - * if (PEAR::isError($rsa_obj)) { - * echo "error: ", $rsa_obj->getMessage(), "\n"; - * } - * - * @category Encryption - * @package Crypt_RSA - * @author Alexander Valyalkin - * @copyright 2005 Alexander Valyalkin - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: @package_version@ - * @link http://pear.php.net/package/Crypt_RSA - * @access public - */ -class Crypt_RSA_Key extends Crypt_RSA_ErrorHandler -{ - /** - * Reference to math wrapper object, which is used to - * manipulate large integers in RSA algorithm. - * - * @var object of Crypt_RSA_Math_* class - * @access private - */ - var $_math_obj; - - /** - * shared modulus - * - * @var string - * @access private - */ - var $_modulus; - - /** - * exponent - * - * @var string - * @access private - */ - var $_exp; - - /** - * key type (private or public) - * - * @var string - * @access private - */ - var $_key_type; - - /** - * key length in bits - * - * @var int - * @access private - */ - var $_key_len; - - /** - * Crypt_RSA_Key constructor. - * - * You should pass in the name of math wrapper, which will be used to - * perform different operations with big integers. - * See contents of Crypt/RSA/Math folder for examples of wrappers. - * Read docs/Crypt_RSA/docs/math_wrappers.txt for details. - * - * @param string $modulus key modulus - * @param string $exp key exponent - * @param string $key_type type of the key (public or private) - * @param string $wrapper_name wrapper to use - * @param string $error_handler name of error handler function - * - * @access public - */ - function Crypt_RSA_Key($modulus, $exp, $key_type, $wrapper_name = 'default', $error_handler = '') - { - // set error handler - $this->setErrorHandler($error_handler); - // try to load math wrapper $wrapper_name - $obj = &Crypt_RSA_MathLoader::loadWrapper($wrapper_name); - if ($this->isError($obj)) { - // error during loading of math wrapper - $this->pushError($obj); // push error object into error list - return; - } - $this->_math_obj = &$obj; - - $this->_modulus = $modulus; - $this->_exp = $exp; - - if (!in_array($key_type, array('private', 'public'))) { - $this->pushError('invalid key type. It must be private or public', CRYPT_RSA_ERROR_WRONG_KEY_TYPE); - return; - } - $this->_key_type = $key_type; - - /* check length of modulus & exponent ( abs(modulus) > abs(exp) ) */ - $mod_num = $this->_math_obj->bin2int($this->_modulus); - $exp_num = $this->_math_obj->bin2int($this->_exp); - - if ($this->_math_obj->cmpAbs($mod_num, $exp_num) <= 0) { - $this->pushError('modulus must be greater than exponent', CRYPT_RSA_ERROR_EXP_GE_MOD); - return; - } - - // determine key length - $this->_key_len = $this->_math_obj->bitLen($mod_num); - } - - /** - * Crypt_RSA_Key factory. - * - * @param string $modulus key modulus - * @param string $exp key exponent - * @param string $key_type type of the key (public or private) - * @param string $wrapper_name wrapper to use - * @param string $error_handler name of error handler function - * - * @return object new Crypt_RSA_Key object on success or PEAR_Error object on failure - * @access public - */ - function factory($modulus, $exp, $key_type, $wrapper_name = 'default', $error_handler = '') - { - $obj = new Crypt_RSA_Key($modulus, $exp, $key_type, $wrapper_name, $error_handler); - if ($obj->isError()) { - // error during creating a new object. Retrurn PEAR_Error object - return $obj->getLastError(); - } - // object created successfully. Return it - return $obj; - } - - /** - * Calculates bit length of the key - * - * @return int bit length of key - * @access public - */ - function getKeyLength() - { - return $this->_key_len; - } - - /** - * Returns modulus part of the key as binary string, - * which can be used to construct new Crypt_RSA_Key object. - * - * @return string modulus as binary string - * @access public - */ - function getModulus() - { - return $this->_modulus; - } - - /** - * Returns exponent part of the key as binary string, - * which can be used to construct new Crypt_RSA_Key object. - * - * @return string exponent as binary string - * @access public - */ - function getExponent() - { - return $this->_exp; - } - - /** - * Returns key type (public, private) - * - * @return string key type (public, private) - * @access public - */ - function getKeyType() - { - return $this->_key_type; - } - - /** - * Returns string representation of key - * - * @return string key, serialized to string - * @access public - */ - function toString() - { - return base64_encode( - serialize( - array($this->_modulus, $this->_exp, $this->_key_type) - ) - ); - } - - /** - * Returns Crypt_RSA_Key object, unserialized from - * string representation of key. - * - * optional parameter $wrapper_name - is the name of math wrapper, - * which will be used during unserialization of this object. - * - * This function can be called statically: - * $key = Crypt_RSA_Key::fromString($key_in_string, 'BigInt'); - * - * @param string $key_str RSA key, serialized into string - * @param string $wrapper_name optional math wrapper name - * - * @return object key as Crypt_RSA_Key object - * @access public - * @static - */ - function fromString($key_str, $wrapper_name = 'default') - { - list($modulus, $exponent, $key_type) = unserialize(base64_decode($key_str)); - $obj = new Crypt_RSA_Key($modulus, $exponent, $key_type, $wrapper_name); - return $obj; - } - - /** - * Validates key - * This function can be called statically: - * $is_valid = Crypt_RSA_Key::isValid($key) - * - * Returns true, if $key is valid Crypt_RSA key, else returns false - * - * @param object $key Crypt_RSA_Key object for validating - * - * @return bool true if $key is valid, else false - * @access public - */ - function isValid($key) - { - return (is_object($key) && strtolower(get_class($key)) === strtolower(__CLASS__)); - } -} - -?> diff --git a/plugins/OStatus/extlib/Crypt/RSA/KeyPair.php b/plugins/OStatus/extlib/Crypt/RSA/KeyPair.php deleted file mode 100644 index ecc0b7dc7..000000000 --- a/plugins/OStatus/extlib/Crypt/RSA/KeyPair.php +++ /dev/null @@ -1,804 +0,0 @@ - - * @copyright 2005 Alexander Valyalkin - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: KeyPair.php,v 1.7 2009/01/05 08:30:29 clockwerx Exp $ - * @link http://pear.php.net/package/Crypt_RSA - */ - -/** - * RSA error handling facilities - */ -require_once 'Crypt/RSA/ErrorHandler.php'; - -/** - * loader for RSA math wrappers - */ -require_once 'Crypt/RSA/MathLoader.php'; - -/** - * helper class for single key managing - */ -require_once 'Crypt/RSA/Key.php'; - -/** - * Crypt_RSA_KeyPair class, derived from Crypt_RSA_ErrorHandler - * - * Provides the following functions: - * - generate($key) - generates new key pair - * - getPublicKey() - returns public key - * - getPrivateKey() - returns private key - * - getKeyLength() - returns bit key length - * - setRandomGenerator($func_name) - sets random generator to $func_name - * - fromPEMString($str) - retrieves keypair from PEM-encoded string - * - toPEMString() - stores keypair to PEM-encoded string - * - isEqual($keypair2) - compares current keypair to $keypair2 - * - * Example usage: - * // create new 1024-bit key pair - * $key_pair = new Crypt_RSA_KeyPair(1024); - * - * // error check - * if ($key_pair->isError()) { - * echo "error while initializing Crypt_RSA_KeyPair object:\n"; - * $erorr = $key_pair->getLastError(); - * echo $error->getMessage(), "\n"; - * } - * - * // get public key - * $public_key = $key_pair->getPublicKey(); - * - * // get private key - * $private_key = $key_pair->getPrivateKey(); - * - * // generate new 512-bit key pair - * $key_pair->generate(512); - * - * // error check - * if ($key_pair->isError()) { - * echo "error while generating key pair:\n"; - * $erorr = $key_pair->getLastError(); - * echo $error->getMessage(), "\n"; - * } - * - * // get key pair length - * $length = $key_pair->getKeyLength(); - * - * // set random generator to $func_name, where $func_name - * // consists name of random generator function. See comments - * // before setRandomGenerator() method for details - * $key_pair->setRandomGenerator($func_name); - * - * // error check - * if ($key_pair->isError()) { - * echo "error while changing random generator:\n"; - * $erorr = $key_pair->getLastError(); - * echo $error->getMessage(), "\n"; - * } - * - * // using factory() method instead of constructor (it returns PEAR_Error object on failure) - * $rsa_obj = &Crypt_RSA_KeyPair::factory($key_len); - * if (PEAR::isError($rsa_obj)) { - * echo "error: ", $rsa_obj->getMessage(), "\n"; - * } - * - * // read key pair from PEM-encoded string: - * $str = "-----BEGIN RSA PRIVATE KEY-----" - * . "MCsCAQACBHr5LDkCAwEAAQIEBc6jbQIDAOCfAgMAjCcCAk3pAgJMawIDAL41" - * . "-----END RSA PRIVATE KEY-----"; - * $keypair = Crypt_RSA_KeyPair::fromPEMString($str); - * - * // read key pair from .pem file 'private.pem': - * $str = file_get_contents('private.pem'); - * $keypair = Crypt_RSA_KeyPair::fromPEMString($str); - * - * // generate and write 1024-bit key pair to .pem file 'private_new.pem' - * $keypair = new Crypt_RSA_KeyPair(1024); - * $str = $keypair->toPEMString(); - * file_put_contents('private_new.pem', $str); - * - * // compare $keypair1 to $keypair2 - * if ($keypair1->isEqual($keypair2)) { - * echo "keypair1 = keypair2\n"; - * } - * else { - * echo "keypair1 != keypair2\n"; - * } - * - * @category Encryption - * @package Crypt_RSA - * @author Alexander Valyalkin - * @copyright 2005 Alexander Valyalkin - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: @package_version@ - * @link http://pear.php.net/package/Crypt_RSA - * @access public - */ -class Crypt_RSA_KeyPair extends Crypt_RSA_ErrorHandler -{ - /** - * Reference to math wrapper object, which is used to - * manipulate large integers in RSA algorithm. - * - * @var object of Crypt_RSA_Math_* class - * @access private - */ - var $_math_obj; - - /** - * length of each key in the key pair - * - * @var int - * @access private - */ - var $_key_len; - - /** - * public key - * - * @var object of Crypt_RSA_KEY class - * @access private - */ - var $_public_key; - - /** - * private key - * - * @var object of Crypt_RSA_KEY class - * @access private - */ - var $_private_key; - - /** - * name of function, which is used as random generator - * - * @var string - * @access private - */ - var $_random_generator; - - /** - * RSA keypair attributes [version, n, e, d, p, q, dmp1, dmq1, iqmp] as associative array - * - * @var array - * @access private - */ - var $_attrs; - - /** - * Returns names of keypair attributes from $this->_attrs array - * - * @return array Array of keypair attributes names - * @access private - */ - function _get_attr_names() - { - return array('version', 'n', 'e', 'd', 'p', 'q', 'dmp1', 'dmq1', 'iqmp'); - } - - /** - * Parses ASN.1 string [$str] starting form position [$pos]. - * Returns tag and string value of parsed object. - * - * @param string $str - * @param int &$pos - * @param Crypt_RSA_ErrorHandler &$err_handler - * - * @return mixed Array('tag' => ..., 'str' => ...) on success, false on error - * @access private - */ - function _ASN1Parse($str, &$pos, &$err_handler) - { - $max_pos = strlen($str); - if ($max_pos < 2) { - $err_handler->pushError("ASN.1 string too short"); - return false; - } - - // get ASN.1 tag value - $tag = ord($str[$pos++]) & 0x1f; - if ($tag == 0x1f) { - $tag = 0; - do { - $n = ord($str[$pos++]); - $tag <<= 7; - $tag |= $n & 0x7f; - } while (($n & 0x80) && $pos < $max_pos); - } - if ($pos >= $max_pos) { - $err_handler->pushError("ASN.1 string too short"); - return false; - } - - // get ASN.1 object length - $len = ord($str[$pos++]); - if ($len & 0x80) { - $n = $len & 0x1f; - $len = 0; - while ($n-- && $pos < $max_pos) { - $len <<= 8; - $len |= ord($str[$pos++]); - } - } - if ($pos >= $max_pos || $len > $max_pos - $pos) { - $err_handler->pushError("ASN.1 string too short"); - return false; - } - - // get string value of ASN.1 object - $str = substr($str, $pos, $len); - - return array( - 'tag' => $tag, - 'str' => $str, - ); - } - - /** - * Parses ASN.1 sting [$str] starting from position [$pos]. - * Returns string representation of number, which can be passed - * in bin2int() function of math wrapper. - * - * @param string $str - * @param int &$pos - * @param Crypt_RSA_ErrorHandler &$err_handler - * - * @return mixed string representation of parsed number on success, false on error - * @access private - */ - function _ASN1ParseInt($str, &$pos, &$err_handler) - { - $tmp = Crypt_RSA_KeyPair::_ASN1Parse($str, $pos, $err_handler); - if ($err_handler->isError()) { - return false; - } - if ($tmp['tag'] != 0x02) { - $errstr = sprintf("wrong ASN tag value: 0x%02x. Expected 0x02 (INTEGER)", $tmp['tag']); - $err_handler->pushError($errstr); - return false; - } - $pos += strlen($tmp['str']); - - return strrev($tmp['str']); - } - - /** - * Constructs ASN.1 string from tag $tag and object $str - * - * @param string $str ASN.1 object string - * @param int $tag ASN.1 tag value - * @param bool $is_constructed - * @param bool $is_private - * - * @return ASN.1-encoded string - * @access private - */ - function _ASN1Store($str, $tag, $is_constructed = false, $is_private = false) - { - $out = ''; - - // encode ASN.1 tag value - $tag_ext = ($is_constructed ? 0x20 : 0) | ($is_private ? 0xc0 : 0); - if ($tag < 0x1f) { - $out .= chr($tag | $tag_ext); - } else { - $out .= chr($tag_ext | 0x1f); - $tmp = chr($tag & 0x7f); - $tag >>= 7; - while ($tag) { - $tmp .= chr(($tag & 0x7f) | 0x80); - $tag >>= 7; - } - $out .= strrev($tmp); - } - - // encode ASN.1 object length - $len = strlen($str); - if ($len < 0x7f) { - $out .= chr($len); - } else { - $tmp = ''; - $n = 0; - while ($len) { - $tmp .= chr($len & 0xff); - $len >>= 8; - $n++; - } - $out .= chr($n | 0x80); - $out .= strrev($tmp); - } - - return $out . $str; - } - - /** - * Constructs ASN.1 string from binary representation of big integer - * - * @param string $str binary representation of big integer - * - * @return ASN.1-encoded string - * @access private - */ - function _ASN1StoreInt($str) - { - $str = strrev($str); - return Crypt_RSA_KeyPair::_ASN1Store($str, 0x02); - } - - /** - * Crypt_RSA_KeyPair constructor. - * - * Wrapper: name of math wrapper, which will be used to - * perform different operations with big integers. - * See contents of Crypt/RSA/Math folder for examples of wrappers. - * Read docs/Crypt_RSA/docs/math_wrappers.txt for details. - * - * @param int $key_len bit length of key pair, which will be generated in constructor - * @param string $wrapper_name wrapper name - * @param string $error_handler name of error handler function - * @param callback $random_generator function which will be used as random generator - * - * @access public - */ - function Crypt_RSA_KeyPair($key_len, $wrapper_name = 'default', $error_handler = '', $random_generator = null) - { - // set error handler - $this->setErrorHandler($error_handler); - // try to load math wrapper - $obj = &Crypt_RSA_MathLoader::loadWrapper($wrapper_name); - if ($this->isError($obj)) { - // error during loading of math wrapper - $this->pushError($obj); - return; - } - $this->_math_obj = &$obj; - - // set random generator - if (!$this->setRandomGenerator($random_generator)) { - // error in setRandomGenerator() function - return; - } - - if (is_array($key_len)) { - // ugly BC hack - it is possible to pass RSA private key attributes [version, n, e, d, p, q, dmp1, dmq1, iqmp] - // as associative array instead of key length to Crypt_RSA_KeyPair constructor - $rsa_attrs = $key_len; - - // convert attributes to big integers - $attr_names = $this->_get_attr_names(); - foreach ($attr_names as $attr) { - if (!isset($rsa_attrs[$attr])) { - $this->pushError("missing required RSA attribute [$attr]"); - return; - } - ${$attr} = $this->_math_obj->bin2int($rsa_attrs[$attr]); - } - - // check primality of p and q - if (!$this->_math_obj->isPrime($p)) { - $this->pushError("[p] must be prime"); - return; - } - if (!$this->_math_obj->isPrime($q)) { - $this->pushError("[q] must be prime"); - return; - } - - // check n = p * q - $n1 = $this->_math_obj->mul($p, $q); - if ($this->_math_obj->cmpAbs($n, $n1)) { - $this->pushError("n != p * q"); - return; - } - - // check e * d = 1 mod (p-1) * (q-1) - $p1 = $this->_math_obj->dec($p); - $q1 = $this->_math_obj->dec($q); - $p1q1 = $this->_math_obj->mul($p1, $q1); - $ed = $this->_math_obj->mul($e, $d); - $one = $this->_math_obj->mod($ed, $p1q1); - if (!$this->_math_obj->isOne($one)) { - $this->pushError("e * d != 1 mod (p-1)*(q-1)"); - return; - } - - // check dmp1 = d mod (p-1) - $dmp = $this->_math_obj->mod($d, $p1); - if ($this->_math_obj->cmpAbs($dmp, $dmp1)) { - $this->pushError("dmp1 != d mod (p-1)"); - return; - } - - // check dmq1 = d mod (q-1) - $dmq = $this->_math_obj->mod($d, $q1); - if ($this->_math_obj->cmpAbs($dmq, $dmq1)) { - $this->pushError("dmq1 != d mod (q-1)"); - return; - } - - // check iqmp = 1/q mod p - $q1 = $this->_math_obj->invmod($iqmp, $p); - if ($this->_math_obj->cmpAbs($q, $q1)) { - $this->pushError("iqmp != 1/q mod p"); - return; - } - - // try to create public key object - $public_key = &new Crypt_RSA_Key($rsa_attrs['n'], $rsa_attrs['e'], 'public', $wrapper_name, $error_handler); - if ($public_key->isError()) { - // error during creating public object - $this->pushError($public_key->getLastError()); - return; - } - - // try to create private key object - $private_key = &new Crypt_RSA_Key($rsa_attrs['n'], $rsa_attrs['d'], 'private', $wrapper_name, $error_handler); - if ($private_key->isError()) { - // error during creating private key object - $this->pushError($private_key->getLastError()); - return; - } - - $this->_public_key = $public_key; - $this->_private_key = $private_key; - $this->_key_len = $public_key->getKeyLength(); - $this->_attrs = $rsa_attrs; - } else { - // generate key pair - if (!$this->generate($key_len)) { - // error during generating key pair - return; - } - } - } - - /** - * Crypt_RSA_KeyPair factory. - * - * Wrapper - Name of math wrapper, which will be used to - * perform different operations with big integers. - * See contents of Crypt/RSA/Math folder for examples of wrappers. - * Read docs/Crypt_RSA/docs/math_wrappers.txt for details. - * - * @param int $key_len bit length of key pair, which will be generated in constructor - * @param string $wrapper_name wrapper name - * @param string $error_handler name of error handler function - * @param callback $random_generator function which will be used as random generator - * - * @return object new Crypt_RSA_KeyPair object on success or PEAR_Error object on failure - * @access public - */ - function &factory($key_len, $wrapper_name = 'default', $error_handler = '', $random_generator = null) - { - $obj = &new Crypt_RSA_KeyPair($key_len, $wrapper_name, $error_handler, $random_generator); - if ($obj->isError()) { - // error during creating a new object. Return PEAR_Error object - return $obj->getLastError(); - } - // object created successfully. Return it - return $obj; - } - - /** - * Generates new Crypt_RSA key pair with length $key_len. - * If $key_len is missed, use an old key length from $this->_key_len - * - * @param int $key_len bit length of key pair, which will be generated - * - * @return bool true on success or false on error - * @access public - */ - function generate($key_len = null) - { - if (is_null($key_len)) { - // use an old key length - $key_len = $this->_key_len; - if (is_null($key_len)) { - $this->pushError('missing key_len parameter', CRYPT_RSA_ERROR_MISSING_KEY_LEN); - return false; - } - } - - // minimal key length is 8 bit ;) - if ($key_len < 8) { - $key_len = 8; - } - // store key length in the _key_len property - $this->_key_len = $key_len; - - // set [e] to 0x10001 (65537) - $e = $this->_math_obj->bin2int("\x01\x00\x01"); - - // generate [p], [q] and [n] - $p_len = intval(($key_len + 1) / 2); - $q_len = $key_len - $p_len; - $p1 = $q1 = 0; - do { - // generate prime number [$p] with length [$p_len] with the following condition: - // GCD($e, $p - 1) = 1 - do { - $p = $this->_math_obj->getPrime($p_len, $this->_random_generator); - $p1 = $this->_math_obj->dec($p); - $tmp = $this->_math_obj->GCD($e, $p1); - } while (!$this->_math_obj->isOne($tmp)); - // generate prime number [$q] with length [$q_len] with the following conditions: - // GCD($e, $q - 1) = 1 - // $q != $p - do { - $q = $this->_math_obj->getPrime($q_len, $this->_random_generator); - $q1 = $this->_math_obj->dec($q); - $tmp = $this->_math_obj->GCD($e, $q1); - } while (!$this->_math_obj->isOne($tmp) && !$this->_math_obj->cmpAbs($q, $p)); - // if (p < q), then exchange them - if ($this->_math_obj->cmpAbs($p, $q) < 0) { - $tmp = $p; - $p = $q; - $q = $tmp; - $tmp = $p1; - $p1 = $q1; - $q1 = $tmp; - } - // calculate n = p * q - $n = $this->_math_obj->mul($p, $q); - } while ($this->_math_obj->bitLen($n) != $key_len); - - // calculate d = 1/e mod (p - 1) * (q - 1) - $pq = $this->_math_obj->mul($p1, $q1); - $d = $this->_math_obj->invmod($e, $pq); - - // calculate dmp1 = d mod (p - 1) - $dmp1 = $this->_math_obj->mod($d, $p1); - - // calculate dmq1 = d mod (q - 1) - $dmq1 = $this->_math_obj->mod($d, $q1); - - // calculate iqmp = 1/q mod p - $iqmp = $this->_math_obj->invmod($q, $p); - - // store RSA keypair attributes - $this->_attrs = array( - 'version' => "\x00", - 'n' => $this->_math_obj->int2bin($n), - 'e' => $this->_math_obj->int2bin($e), - 'd' => $this->_math_obj->int2bin($d), - 'p' => $this->_math_obj->int2bin($p), - 'q' => $this->_math_obj->int2bin($q), - 'dmp1' => $this->_math_obj->int2bin($dmp1), - 'dmq1' => $this->_math_obj->int2bin($dmq1), - 'iqmp' => $this->_math_obj->int2bin($iqmp), - ); - - $n = $this->_attrs['n']; - $e = $this->_attrs['e']; - $d = $this->_attrs['d']; - - // try to create public key object - $obj = &new Crypt_RSA_Key($n, $e, 'public', $this->_math_obj->getWrapperName(), $this->_error_handler); - if ($obj->isError()) { - // error during creating public object - $this->pushError($obj->getLastError()); - return false; - } - $this->_public_key = &$obj; - - // try to create private key object - $obj = &new Crypt_RSA_Key($n, $d, 'private', $this->_math_obj->getWrapperName(), $this->_error_handler); - if ($obj->isError()) { - // error during creating private key object - $this->pushError($obj->getLastError()); - return false; - } - $this->_private_key = &$obj; - - return true; // key pair successfully generated - } - - /** - * Returns public key from the pair - * - * @return object public key object of class Crypt_RSA_Key - * @access public - */ - function getPublicKey() - { - return $this->_public_key; - } - - /** - * Returns private key from the pair - * - * @return object private key object of class Crypt_RSA_Key - * @access public - */ - function getPrivateKey() - { - return $this->_private_key; - } - - /** - * Sets name of random generator function for key generation. - * If parameter is skipped, then sets to default random generator. - * - * Random generator function must return integer with at least 8 lower - * significant bits, which will be used as random values. - * - * @param string $random_generator name of random generator function - * - * @return bool true on success or false on error - * @access public - */ - function setRandomGenerator($random_generator = null) - { - static $default_random_generator = null; - - if (is_string($random_generator)) { - // set user's random generator - if (!function_exists($random_generator)) { - $this->pushError("can't find random generator function with name [{$random_generator}]"); - return false; - } - $this->_random_generator = $random_generator; - } else { - // set default random generator - $this->_random_generator = is_null($default_random_generator) ? - ($default_random_generator = create_function('', '$a=explode(" ",microtime());return(int)($a[0]*1000000);')) : - $default_random_generator; - } - return true; - } - - /** - * Returns length of each key in the key pair - * - * @return int bit length of each key in key pair - * @access public - */ - function getKeyLength() - { - return $this->_key_len; - } - - /** - * Retrieves RSA keypair from PEM-encoded string, containing RSA private key. - * Example of such string: - * -----BEGIN RSA PRIVATE KEY----- - * MCsCAQACBHtvbSECAwEAAQIEeYrk3QIDAOF3AgMAjCcCAmdnAgJMawIDALEk - * -----END RSA PRIVATE KEY----- - * - * Wrapper: Name of math wrapper, which will be used to - * perform different operations with big integers. - * See contents of Crypt/RSA/Math folder for examples of wrappers. - * Read docs/Crypt_RSA/docs/math_wrappers.txt for details. - * - * @param string $str PEM-encoded string - * @param string $wrapper_name Wrapper name - * @param string $error_handler name of error handler function - * - * @return Crypt_RSA_KeyPair object on success, PEAR_Error object on error - * @access public - * @static - */ - function &fromPEMString($str, $wrapper_name = 'default', $error_handler = '') - { - if (isset($this)) { - if ($wrapper_name == 'default') { - $wrapper_name = $this->_math_obj->getWrapperName(); - } - if ($error_handler == '') { - $error_handler = $this->_error_handler; - } - } - $err_handler = &new Crypt_RSA_ErrorHandler; - $err_handler->setErrorHandler($error_handler); - - // search for base64-encoded private key - if (!preg_match('/-----BEGIN RSA PRIVATE KEY-----([^-]+)-----END RSA PRIVATE KEY-----/', $str, $matches)) { - $err_handler->pushError("can't find RSA private key in the string [{$str}]"); - return $err_handler->getLastError(); - } - - // parse private key. It is ASN.1-encoded - $str = base64_decode($matches[1]); - $pos = 0; - $tmp = Crypt_RSA_KeyPair::_ASN1Parse($str, $pos, $err_handler); - if ($err_handler->isError()) { - return $err_handler->getLastError(); - } - if ($tmp['tag'] != 0x10) { - $errstr = sprintf("wrong ASN tag value: 0x%02x. Expected 0x10 (SEQUENCE)", $tmp['tag']); - $err_handler->pushError($errstr); - return $err_handler->getLastError(); - } - - // parse ASN.1 SEQUENCE for RSA private key - $attr_names = Crypt_RSA_KeyPair::_get_attr_names(); - $n = sizeof($attr_names); - $rsa_attrs = array(); - for ($i = 0; $i < $n; $i++) { - $tmp = Crypt_RSA_KeyPair::_ASN1ParseInt($str, $pos, $err_handler); - if ($err_handler->isError()) { - return $err_handler->getLastError(); - } - $attr = $attr_names[$i]; - $rsa_attrs[$attr] = $tmp; - } - - // create Crypt_RSA_KeyPair object. - $keypair = &new Crypt_RSA_KeyPair($rsa_attrs, $wrapper_name, $error_handler); - if ($keypair->isError()) { - return $keypair->getLastError(); - } - - return $keypair; - } - - /** - * converts keypair to PEM-encoded string, which can be stroed in - * .pem compatible files, contianing RSA private key. - * - * @return string PEM-encoded keypair on success, false on error - * @access public - */ - function toPEMString() - { - // store RSA private key attributes into ASN.1 string - $str = ''; - $attr_names = $this->_get_attr_names(); - $n = sizeof($attr_names); - $rsa_attrs = $this->_attrs; - for ($i = 0; $i < $n; $i++) { - $attr = $attr_names[$i]; - if (!isset($rsa_attrs[$attr])) { - $this->pushError("Cannot find value for ASN.1 attribute [$attr]"); - return false; - } - $tmp = $rsa_attrs[$attr]; - $str .= Crypt_RSA_KeyPair::_ASN1StoreInt($tmp); - } - - // prepend $str by ASN.1 SEQUENCE (0x10) header - $str = Crypt_RSA_KeyPair::_ASN1Store($str, 0x10, true); - - // encode and format PEM string - $str = base64_encode($str); - $str = chunk_split($str, 64, "\n"); - return "-----BEGIN RSA PRIVATE KEY-----\n$str-----END RSA PRIVATE KEY-----\n"; - } - - /** - * Compares keypairs in Crypt_RSA_KeyPair objects $this and $key_pair - * - * @param Crypt_RSA_KeyPair $key_pair keypair to compare - * - * @return bool true, if keypair stored in $this equal to keypair stored in $key_pair - * @access public - */ - function isEqual($key_pair) - { - $attr_names = $this->_get_attr_names(); - foreach ($attr_names as $attr) { - if ($this->_attrs[$attr] != $key_pair->_attrs[$attr]) { - return false; - } - } - return true; - } -} - -?> diff --git a/plugins/OStatus/extlib/Crypt/RSA/Math/BCMath.php b/plugins/OStatus/extlib/Crypt/RSA/Math/BCMath.php deleted file mode 100644 index 646ff6710..000000000 --- a/plugins/OStatus/extlib/Crypt/RSA/Math/BCMath.php +++ /dev/null @@ -1,482 +0,0 @@ - - * @copyright 2006 Alexander Valyalkin - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version 1.2.0b - * @link http://pear.php.net/package/Crypt_RSA - */ - -/** - * Crypt_RSA_Math_BCMath class. - * - * Provides set of math functions, which are used by Crypt_RSA package - * This class is a wrapper for PHP BCMath extension. - * See http://php.net/manual/en/ref.bc.php for details. - * - * @category Encryption - * @package Crypt_RSA - * @author Alexander Valyalkin - * @copyright 2005, 2006 Alexander Valyalkin - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @link http://pear.php.net/package/Crypt_RSA - * @version @package_version@ - * @access public - */ -class Crypt_RSA_Math_BCMath -{ - /** - * error description - * - * @var string - * @access public - */ - var $errstr = ''; - - /** - * Performs Miller-Rabin primality test for number $num - * with base $base. Returns true, if $num is strong pseudoprime - * by base $base. Else returns false. - * - * @param string $num - * @param string $base - * @return bool - * @access private - */ - function _millerTest($num, $base) - { - if (!bccomp($num, '1')) { - // 1 is not prime ;) - return false; - } - $tmp = bcsub($num, '1'); - - $zero_bits = 0; - while (!bccomp(bcmod($tmp, '2'), '0')) { - $zero_bits++; - $tmp = bcdiv($tmp, '2'); - } - - $tmp = $this->powmod($base, $tmp, $num); - if (!bccomp($tmp, '1')) { - // $num is probably prime - return true; - } - - while ($zero_bits--) { - if (!bccomp(bcadd($tmp, '1'), $num)) { - // $num is probably prime - return true; - } - $tmp = $this->powmod($tmp, '2', $num); - } - // $num is composite - return false; - } - - /** - * Crypt_RSA_Math_BCMath constructor. - * Checks an existance of PHP BCMath extension. - * On failure saves error description in $this->errstr - * - * @access public - */ - function Crypt_RSA_Math_BCMath() - { - if (!extension_loaded('bcmath')) { - if (!@dl('bcmath.' . PHP_SHLIB_SUFFIX) && !@dl('php_bcmath.' . PHP_SHLIB_SUFFIX)) { - // cannot load BCMath extension. Set error string - $this->errstr = 'Crypt_RSA package requires the BCMath extension. See http://php.net/manual/en/ref.bc.php for details'; - return; - } - } - } - - /** - * Transforms binary representation of large integer into its native form. - * - * Example of transformation: - * $str = "\x12\x34\x56\x78\x90"; - * $num = 0x9078563412; - * - * @param string $str - * @return string - * @access public - */ - function bin2int($str) - { - $result = '0'; - $n = strlen($str); - do { - $result = bcadd(bcmul($result, '256'), ord($str{--$n})); - } while ($n > 0); - return $result; - } - - /** - * Transforms large integer into binary representation. - * - * Example of transformation: - * $num = 0x9078563412; - * $str = "\x12\x34\x56\x78\x90"; - * - * @param string $num - * @return string - * @access public - */ - function int2bin($num) - { - $result = ''; - do { - $result .= chr(bcmod($num, '256')); - $num = bcdiv($num, '256'); - } while (bccomp($num, '0')); - return $result; - } - - /** - * Calculates pow($num, $pow) (mod $mod) - * - * @param string $num - * @param string $pow - * @param string $mod - * @return string - * @access public - */ - function powmod($num, $pow, $mod) - { - if (function_exists('bcpowmod')) { - // bcpowmod is only available under PHP5 - return bcpowmod($num, $pow, $mod); - } - - // emulate bcpowmod - $result = '1'; - do { - if (!bccomp(bcmod($pow, '2'), '1')) { - $result = bcmod(bcmul($result, $num), $mod); - } - $num = bcmod(bcpow($num, '2'), $mod); - $pow = bcdiv($pow, '2'); - } while (bccomp($pow, '0')); - return $result; - } - - /** - * Calculates $num1 * $num2 - * - * @param string $num1 - * @param string $num2 - * @return string - * @access public - */ - function mul($num1, $num2) - { - return bcmul($num1, $num2); - } - - /** - * Calculates $num1 % $num2 - * - * @param string $num1 - * @param string $num2 - * @return string - * @access public - */ - function mod($num1, $num2) - { - return bcmod($num1, $num2); - } - - /** - * Compares abs($num1) to abs($num2). - * Returns: - * -1, if abs($num1) < abs($num2) - * 0, if abs($num1) == abs($num2) - * 1, if abs($num1) > abs($num2) - * - * @param string $num1 - * @param string $num2 - * @return int - * @access public - */ - function cmpAbs($num1, $num2) - { - return bccomp($num1, $num2); - } - - /** - * Tests $num on primality. Returns true, if $num is strong pseudoprime. - * Else returns false. - * - * @param string $num - * @return bool - * @access private - */ - function isPrime($num) - { - static $primes = null; - static $primes_cnt = 0; - if (is_null($primes)) { - // generate all primes up to 10000 - $primes = array(); - for ($i = 0; $i < 10000; $i++) { - $primes[] = $i; - } - $primes[0] = $primes[1] = 0; - for ($i = 2; $i < 100; $i++) { - while (!$primes[$i]) { - $i++; - } - $j = $i; - for ($j += $i; $j < 10000; $j += $i) { - $primes[$j] = 0; - } - } - $j = 0; - for ($i = 0; $i < 10000; $i++) { - if ($primes[$i]) { - $primes[$j++] = $primes[$i]; - } - } - $primes_cnt = $j; - } - - // try to divide number by small primes - for ($i = 0; $i < $primes_cnt; $i++) { - if (bccomp($num, $primes[$i]) <= 0) { - // number is prime - return true; - } - if (!bccomp(bcmod($num, $primes[$i]), '0')) { - // number divides by $primes[$i] - return false; - } - } - - /* - try Miller-Rabin's probable-primality test for first - 7 primes as bases - */ - for ($i = 0; $i < 7; $i++) { - if (!$this->_millerTest($num, $primes[$i])) { - // $num is composite - return false; - } - } - // $num is strong pseudoprime - return true; - } - - /** - * Generates prime number with length $bits_cnt - * using $random_generator as random generator function. - * - * @param int $bits_cnt - * @param string $rnd_generator - * @access public - */ - function getPrime($bits_cnt, $random_generator) - { - $bytes_n = intval($bits_cnt / 8); - $bits_n = $bits_cnt % 8; - do { - $str = ''; - for ($i = 0; $i < $bytes_n; $i++) { - $str .= chr(call_user_func($random_generator) & 0xff); - } - $n = call_user_func($random_generator) & 0xff; - $n |= 0x80; - $n >>= 8 - $bits_n; - $str .= chr($n); - $num = $this->bin2int($str); - - // search for the next closest prime number after [$num] - if (!bccomp(bcmod($num, '2'), '0')) { - $num = bcadd($num, '1'); - } - while (!$this->isPrime($num)) { - $num = bcadd($num, '2'); - } - } while ($this->bitLen($num) != $bits_cnt); - return $num; - } - - /** - * Calculates $num - 1 - * - * @param string $num - * @return string - * @access public - */ - function dec($num) - { - return bcsub($num, '1'); - } - - /** - * Returns true, if $num is equal to one. Else returns false - * - * @param string $num - * @return bool - * @access public - */ - function isOne($num) - { - return !bccomp($num, '1'); - } - - /** - * Finds greatest common divider (GCD) of $num1 and $num2 - * - * @param string $num1 - * @param string $num2 - * @return string - * @access public - */ - function GCD($num1, $num2) - { - do { - $tmp = bcmod($num1, $num2); - $num1 = $num2; - $num2 = $tmp; - } while (bccomp($num2, '0')); - return $num1; - } - - /** - * Finds inverse number $inv for $num by modulus $mod, such as: - * $inv * $num = 1 (mod $mod) - * - * @param string $num - * @param string $mod - * @return string - * @access public - */ - function invmod($num, $mod) - { - $x = '1'; - $y = '0'; - $num1 = $mod; - do { - $tmp = bcmod($num, $num1); - $q = bcdiv($num, $num1); - $num = $num1; - $num1 = $tmp; - - $tmp = bcsub($x, bcmul($y, $q)); - $x = $y; - $y = $tmp; - } while (bccomp($num1, '0')); - if (bccomp($x, '0') < 0) { - $x = bcadd($x, $mod); - } - return $x; - } - - /** - * Returns bit length of number $num - * - * @param string $num - * @return int - * @access public - */ - function bitLen($num) - { - $tmp = $this->int2bin($num); - $bit_len = strlen($tmp) * 8; - $tmp = ord($tmp{strlen($tmp) - 1}); - if (!$tmp) { - $bit_len -= 8; - } - else { - while (!($tmp & 0x80)) { - $bit_len--; - $tmp <<= 1; - } - } - return $bit_len; - } - - /** - * Calculates bitwise or of $num1 and $num2, - * starting from bit $start_pos for number $num1 - * - * @param string $num1 - * @param string $num2 - * @param int $start_pos - * @return string - * @access public - */ - function bitOr($num1, $num2, $start_pos) - { - $start_byte = intval($start_pos / 8); - $start_bit = $start_pos % 8; - $tmp1 = $this->int2bin($num1); - - $num2 = bcmul($num2, 1 << $start_bit); - $tmp2 = $this->int2bin($num2); - if ($start_byte < strlen($tmp1)) { - $tmp2 |= substr($tmp1, $start_byte); - $tmp1 = substr($tmp1, 0, $start_byte) . $tmp2; - } - else { - $tmp1 = str_pad($tmp1, $start_byte, "\0") . $tmp2; - } - return $this->bin2int($tmp1); - } - - /** - * Returns part of number $num, starting at bit - * position $start with length $length - * - * @param string $num - * @param int start - * @param int length - * @return string - * @access public - */ - function subint($num, $start, $length) - { - $start_byte = intval($start / 8); - $start_bit = $start % 8; - $byte_length = intval($length / 8); - $bit_length = $length % 8; - if ($bit_length) { - $byte_length++; - } - $num = bcdiv($num, 1 << $start_bit); - $tmp = substr($this->int2bin($num), $start_byte, $byte_length); - $tmp = str_pad($tmp, $byte_length, "\0"); - $tmp = substr_replace($tmp, $tmp{$byte_length - 1} & chr(0xff >> (8 - $bit_length)), $byte_length - 1, 1); - return $this->bin2int($tmp); - } - - /** - * Returns name of current wrapper - * - * @return string name of current wrapper - * @access public - */ - function getWrapperName() - { - return 'BCMath'; - } -} - -?> \ No newline at end of file diff --git a/plugins/OStatus/extlib/Crypt/RSA/Math/BigInt.php b/plugins/OStatus/extlib/Crypt/RSA/Math/BigInt.php deleted file mode 100644 index b7ac24cb6..000000000 --- a/plugins/OStatus/extlib/Crypt/RSA/Math/BigInt.php +++ /dev/null @@ -1,313 +0,0 @@ - - * @copyright 2005, 2006 Alexander Valyalkin - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version 1.2.0b - * @link http://pear.php.net/package/Crypt_RSA - */ - -/** - * Crypt_RSA_Math_BigInt class. - * - * Provides set of math functions, which are used by Crypt_RSA package - * This class is a wrapper for big_int PECL extension, - * which could be loaded from http://pecl.php.net/packages/big_int - * - * @category Encryption - * @package Crypt_RSA - * @author Alexander Valyalkin - * @copyright 2005, 2006 Alexander Valyalkin - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @link http://pear.php.net/package/Crypt_RSA - * @version @package_version@ - * @access public - */ -class Crypt_RSA_Math_BigInt -{ - /** - * error description - * - * @var string - * @access public - */ - var $errstr = ''; - - /** - * Crypt_RSA_Math_BigInt constructor. - * Checks an existance of big_int PECL math package. - * This package is available at http://pecl.php.net/packages/big_int - * On failure saves error description in $this->errstr - * - * @access public - */ - function Crypt_RSA_Math_BigInt() - { - if (!extension_loaded('big_int')) { - if (!@dl('big_int.' . PHP_SHLIB_SUFFIX) && !@dl('php_big_int.' . PHP_SHLIB_SUFFIX)) { - // cannot load big_int extension - $this->errstr = 'Crypt_RSA package requires big_int PECL package. ' . - 'It is available at http://pecl.php.net/packages/big_int'; - return; - } - } - - // check version of big_int extension ( Crypt_RSA requires version 1.0.2 and higher ) - if (!in_array('bi_info', get_extension_funcs('big_int'))) { - // there is no bi_info() function in versions, older than 1.0.2 - $this->errstr = 'Crypt_RSA package requires big_int package version 1.0.2 and higher'; - } - } - - /** - * Transforms binary representation of large integer into its native form. - * - * Example of transformation: - * $str = "\x12\x34\x56\x78\x90"; - * $num = 0x9078563412; - * - * @param string $str - * @return big_int resource - * @access public - */ - function bin2int($str) - { - return bi_unserialize($str); - } - - /** - * Transforms large integer into binary representation. - * - * Example of transformation: - * $num = 0x9078563412; - * $str = "\x12\x34\x56\x78\x90"; - * - * @param big_int resource $num - * @return string - * @access public - */ - function int2bin($num) - { - return bi_serialize($num); - } - - /** - * Calculates pow($num, $pow) (mod $mod) - * - * @param big_int resource $num - * @param big_int resource $pow - * @param big_int resource $mod - * @return big_int resource - * @access public - */ - function powmod($num, $pow, $mod) - { - return bi_powmod($num, $pow, $mod); - } - - /** - * Calculates $num1 * $num2 - * - * @param big_int resource $num1 - * @param big_int resource $num2 - * @return big_int resource - * @access public - */ - function mul($num1, $num2) - { - return bi_mul($num1, $num2); - } - - /** - * Calculates $num1 % $num2 - * - * @param string $num1 - * @param string $num2 - * @return string - * @access public - */ - function mod($num1, $num2) - { - return bi_mod($num1, $num2); - } - - /** - * Compares abs($num1) to abs($num2). - * Returns: - * -1, if abs($num1) < abs($num2) - * 0, if abs($num1) == abs($num2) - * 1, if abs($num1) > abs($num2) - * - * @param big_int resource $num1 - * @param big_int resource $num2 - * @return int - * @access public - */ - function cmpAbs($num1, $num2) - { - return bi_cmp_abs($num1, $num2); - } - - /** - * Tests $num on primality. Returns true, if $num is strong pseudoprime. - * Else returns false. - * - * @param string $num - * @return bool - * @access private - */ - function isPrime($num) - { - return bi_is_prime($num) ? true : false; - } - - /** - * Generates prime number with length $bits_cnt - * using $random_generator as random generator function. - * - * @param int $bits_cnt - * @param string $rnd_generator - * @access public - */ - function getPrime($bits_cnt, $random_generator) - { - $bytes_n = intval($bits_cnt / 8); - $bits_n = $bits_cnt % 8; - do { - $str = ''; - for ($i = 0; $i < $bytes_n; $i++) { - $str .= chr(call_user_func($random_generator) & 0xff); - } - $n = call_user_func($random_generator) & 0xff; - $n |= 0x80; - $n >>= 8 - $bits_n; - $str .= chr($n); - $num = $this->bin2int($str); - - // search for the next closest prime number after [$num] - $num = bi_next_prime($num); - } while ($this->bitLen($num) != $bits_cnt); - return $num; - } - - /** - * Calculates $num - 1 - * - * @param big_int resource $num - * @return big_int resource - * @access public - */ - function dec($num) - { - return bi_dec($num); - } - - /** - * Returns true, if $num is equal to 1. Else returns false - * - * @param big_int resource $num - * @return bool - * @access public - */ - function isOne($num) - { - return bi_is_one($num); - } - - /** - * Finds greatest common divider (GCD) of $num1 and $num2 - * - * @param big_int resource $num1 - * @param big_int resource $num2 - * @return big_int resource - * @access public - */ - function GCD($num1, $num2) - { - return bi_gcd($num1, $num2); - } - - /** - * Finds inverse number $inv for $num by modulus $mod, such as: - * $inv * $num = 1 (mod $mod) - * - * @param big_int resource $num - * @param big_int resource $mod - * @return big_int resource - * @access public - */ - function invmod($num, $mod) - { - return bi_invmod($num, $mod); - } - - /** - * Returns bit length of number $num - * - * @param big_int resource $num - * @return int - * @access public - */ - function bitLen($num) - { - return bi_bit_len($num); - } - - /** - * Calculates bitwise or of $num1 and $num2, - * starting from bit $start_pos for number $num1 - * - * @param big_int resource $num1 - * @param big_int resource $num2 - * @param int $start_pos - * @return big_int resource - * @access public - */ - function bitOr($num1, $num2, $start_pos) - { - return bi_or($num1, $num2, $start_pos); - } - - /** - * Returns part of number $num, starting at bit - * position $start with length $length - * - * @param big_int resource $num - * @param int start - * @param int length - * @return big_int resource - * @access public - */ - function subint($num, $start, $length) - { - return bi_subint($num, $start, $length); - } - - /** - * Returns name of current wrapper - * - * @return string name of current wrapper - * @access public - */ - function getWrapperName() - { - return 'BigInt'; - } -} - -?> \ No newline at end of file diff --git a/plugins/OStatus/extlib/Crypt/RSA/Math/GMP.php b/plugins/OStatus/extlib/Crypt/RSA/Math/GMP.php deleted file mode 100644 index 54e4c34fc..000000000 --- a/plugins/OStatus/extlib/Crypt/RSA/Math/GMP.php +++ /dev/null @@ -1,361 +0,0 @@ - - * @copyright 2005, 2006 Alexander Valyalkin - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version 1.2.0b - * @link http://pear.php.net/package/Crypt_RSA - */ - -/** - * Crypt_RSA_Math_GMP class. - * - * Provides set of math functions, which are used by Crypt_RSA package - * This class is a wrapper for PHP GMP extension. - * See http://php.net/gmp for details. - * - * @category Encryption - * @package Crypt_RSA - * @author Alexander Valyalkin - * @copyright 2005, 2006 Alexander Valyalkin - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @link http://pear.php.net/package/Crypt_RSA - * @version @package_version@ - * @access public - */ -class Crypt_RSA_Math_GMP -{ - /** - * error description - * - * @var string - * @access public - */ - var $errstr = ''; - - /** - * Crypt_RSA_Math_GMP constructor. - * Checks an existance of PHP GMP package. - * See http://php.net/gmp for details. - * - * On failure saves error description in $this->errstr - * - * @access public - */ - function Crypt_RSA_Math_GMP() - { - if (!extension_loaded('gmp')) { - if (!@dl('gmp.' . PHP_SHLIB_SUFFIX) && !@dl('php_gmp.' . PHP_SHLIB_SUFFIX)) { - // cannot load GMP extension - $this->errstr = 'Crypt_RSA package requires PHP GMP package. ' . - 'See http://php.net/gmp for details'; - return; - } - } - } - - /** - * Transforms binary representation of large integer into its native form. - * - * Example of transformation: - * $str = "\x12\x34\x56\x78\x90"; - * $num = 0x9078563412; - * - * @param string $str - * @return gmp resource - * @access public - */ - function bin2int($str) - { - $result = 0; - $n = strlen($str); - do { - // dirty hack: GMP returns FALSE, when second argument equals to int(0). - // so, it must be converted to string '0' - $result = gmp_add(gmp_mul($result, 256), strval(ord($str{--$n}))); - } while ($n > 0); - return $result; - } - - /** - * Transforms large integer into binary representation. - * - * Example of transformation: - * $num = 0x9078563412; - * $str = "\x12\x34\x56\x78\x90"; - * - * @param gmp resource $num - * @return string - * @access public - */ - function int2bin($num) - { - $result = ''; - do { - $result .= chr(gmp_intval(gmp_mod($num, 256))); - $num = gmp_div($num, 256); - } while (gmp_cmp($num, 0)); - return $result; - } - - /** - * Calculates pow($num, $pow) (mod $mod) - * - * @param gmp resource $num - * @param gmp resource $pow - * @param gmp resource $mod - * @return gmp resource - * @access public - */ - function powmod($num, $pow, $mod) - { - return gmp_powm($num, $pow, $mod); - } - - /** - * Calculates $num1 * $num2 - * - * @param gmp resource $num1 - * @param gmp resource $num2 - * @return gmp resource - * @access public - */ - function mul($num1, $num2) - { - return gmp_mul($num1, $num2); - } - - /** - * Calculates $num1 % $num2 - * - * @param string $num1 - * @param string $num2 - * @return string - * @access public - */ - function mod($num1, $num2) - { - return gmp_mod($num1, $num2); - } - - /** - * Compares abs($num1) to abs($num2). - * Returns: - * -1, if abs($num1) < abs($num2) - * 0, if abs($num1) == abs($num2) - * 1, if abs($num1) > abs($num2) - * - * @param gmp resource $num1 - * @param gmp resource $num2 - * @return int - * @access public - */ - function cmpAbs($num1, $num2) - { - return gmp_cmp($num1, $num2); - } - - /** - * Tests $num on primality. Returns true, if $num is strong pseudoprime. - * Else returns false. - * - * @param string $num - * @return bool - * @access private - */ - function isPrime($num) - { - return gmp_prob_prime($num) ? true : false; - } - - /** - * Generates prime number with length $bits_cnt - * using $random_generator as random generator function. - * - * @param int $bits_cnt - * @param string $rnd_generator - * @access public - */ - function getPrime($bits_cnt, $random_generator) - { - $bytes_n = intval($bits_cnt / 8); - $bits_n = $bits_cnt % 8; - do { - $str = ''; - for ($i = 0; $i < $bytes_n; $i++) { - $str .= chr(call_user_func($random_generator) & 0xff); - } - $n = call_user_func($random_generator) & 0xff; - $n |= 0x80; - $n >>= 8 - $bits_n; - $str .= chr($n); - $num = $this->bin2int($str); - - // search for the next closest prime number after [$num] - if (!gmp_cmp(gmp_mod($num, '2'), '0')) { - $num = gmp_add($num, '1'); - } - while (!gmp_prob_prime($num)) { - $num = gmp_add($num, '2'); - } - } while ($this->bitLen($num) != $bits_cnt); - return $num; - } - - /** - * Calculates $num - 1 - * - * @param gmp resource $num - * @return gmp resource - * @access public - */ - function dec($num) - { - return gmp_sub($num, 1); - } - - /** - * Returns true, if $num is equal to one. Else returns false - * - * @param gmp resource $num - * @return bool - * @access public - */ - function isOne($num) - { - return !gmp_cmp($num, 1); - } - - /** - * Finds greatest common divider (GCD) of $num1 and $num2 - * - * @param gmp resource $num1 - * @param gmp resource $num2 - * @return gmp resource - * @access public - */ - function GCD($num1, $num2) - { - return gmp_gcd($num1, $num2); - } - - /** - * Finds inverse number $inv for $num by modulus $mod, such as: - * $inv * $num = 1 (mod $mod) - * - * @param gmp resource $num - * @param gmp resource $mod - * @return gmp resource - * @access public - */ - function invmod($num, $mod) - { - return gmp_invert($num, $mod); - } - - /** - * Returns bit length of number $num - * - * @param gmp resource $num - * @return int - * @access public - */ - function bitLen($num) - { - $tmp = $this->int2bin($num); - $bit_len = strlen($tmp) * 8; - $tmp = ord($tmp{strlen($tmp) - 1}); - if (!$tmp) { - $bit_len -= 8; - } - else { - while (!($tmp & 0x80)) { - $bit_len--; - $tmp <<= 1; - } - } - return $bit_len; - } - - /** - * Calculates bitwise or of $num1 and $num2, - * starting from bit $start_pos for number $num1 - * - * @param gmp resource $num1 - * @param gmp resource $num2 - * @param int $start_pos - * @return gmp resource - * @access public - */ - function bitOr($num1, $num2, $start_pos) - { - $start_byte = intval($start_pos / 8); - $start_bit = $start_pos % 8; - $tmp1 = $this->int2bin($num1); - - $num2 = gmp_mul($num2, 1 << $start_bit); - $tmp2 = $this->int2bin($num2); - if ($start_byte < strlen($tmp1)) { - $tmp2 |= substr($tmp1, $start_byte); - $tmp1 = substr($tmp1, 0, $start_byte) . $tmp2; - } - else { - $tmp1 = str_pad($tmp1, $start_byte, "\0") . $tmp2; - } - return $this->bin2int($tmp1); - } - - /** - * Returns part of number $num, starting at bit - * position $start with length $length - * - * @param gmp resource $num - * @param int start - * @param int length - * @return gmp resource - * @access public - */ - function subint($num, $start, $length) - { - $start_byte = intval($start / 8); - $start_bit = $start % 8; - $byte_length = intval($length / 8); - $bit_length = $length % 8; - if ($bit_length) { - $byte_length++; - } - $num = gmp_div($num, 1 << $start_bit); - $tmp = substr($this->int2bin($num), $start_byte, $byte_length); - $tmp = str_pad($tmp, $byte_length, "\0"); - $tmp = substr_replace($tmp, $tmp{$byte_length - 1} & chr(0xff >> (8 - $bit_length)), $byte_length - 1, 1); - return $this->bin2int($tmp); - } - - /** - * Returns name of current wrapper - * - * @return string name of current wrapper - * @access public - */ - function getWrapperName() - { - return 'GMP'; - } -} - -?> \ No newline at end of file diff --git a/plugins/OStatus/extlib/Crypt/RSA/MathLoader.php b/plugins/OStatus/extlib/Crypt/RSA/MathLoader.php deleted file mode 100644 index de6c94642..000000000 --- a/plugins/OStatus/extlib/Crypt/RSA/MathLoader.php +++ /dev/null @@ -1,135 +0,0 @@ - - * @copyright Alexander Valyalkin 2005 - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version CVS: $Id: MathLoader.php,v 1.5 2009/01/05 08:30:29 clockwerx Exp $ - * @link http://pear.php.net/package/Crypt_RSA - */ - -/** - * RSA error handling facilities - */ -require_once 'Crypt/RSA/ErrorHandler.php'; - -/** - * Crypt_RSA_MathLoader class. - * - * Provides static function: - * - loadWrapper($wrapper_name) - loads RSA math wrapper with name $wrapper_name - * or most suitable wrapper if $wrapper_name == 'default' - * - * Example usage: - * // load BigInt wrapper - * $big_int_wrapper = Crypt_RSA_MathLoader::loadWrapper('BigInt'); - * - * // load BCMath wrapper - * $bcmath_wrapper = Crypt_RSA_MathLoader::loadWrapper('BCMath'); - * - * // load the most suitable wrapper - * $bcmath_wrapper = Crypt_RSA_MathLoader::loadWrapper(); - * - * @category Encryption - * @package Crypt_RSA - * @author Alexander Valyalkin - * @copyright Alexander Valyalkin 2005 - * @license http://www.php.net/license/3_0.txt PHP License 3.0 - * @version Release: @package_version@ - * @link http://pear.php.net/package/Crypt_RSA - * @access public - */ -class Crypt_RSA_MathLoader -{ - /** - * Loads RSA math wrapper with name $wrapper_name. - * Implemented wrappers can be found at Crypt/RSA/Math folder. - * Read docs/Crypt_RSA/docs/math_wrappers.txt for details - * - * This is a static function: - * // load BigInt wrapper - * $big_int_wrapper = &Crypt_RSA_MathLoader::loadWrapper('BigInt'); - * - * // load BCMath wrapper - * $bcmath_wrapper = &Crypt_RSA_MathLoader::loadWrapper('BCMath'); - * - * @param string $wrapper_name Name of wrapper - * - * @return object - * Reference to object of wrapper with name $wrapper_name on success - * or PEAR_Error object on error - * - * @access public - */ - function loadWrapper($wrapper_name = 'default') - { - static $math_objects = array(); - // ordered by performance. GMP is the fastest math library, BCMath - the slowest. - static $math_wrappers = array('GMP', 'BigInt', 'BCMath',); - - if (isset($math_objects[$wrapper_name])) { - /* - wrapper with name $wrapper_name is already loaded and created. - Return reference to existing copy of wrapper - */ - return $math_objects[$wrapper_name]; - } - - $err_handler = new Crypt_RSA_ErrorHandler(); - - if ($wrapper_name === 'default') { - // try to load the most suitable wrapper - $n = sizeof($math_wrappers); - for ($i = 0; $i < $n; $i++) { - $obj = Crypt_RSA_MathLoader::loadWrapper($math_wrappers[$i]); - if (!$err_handler->isError($obj)) { - // wrapper for $math_wrappers[$i] successfully loaded - // register it as default wrapper and return reference to it - return $math_objects['default'] = $obj; - } - } - // can't load any wrapper - $err_handler->pushError("can't load any wrapper for existing math libraries", CRYPT_RSA_ERROR_NO_WRAPPERS); - return $err_handler->getLastError(); - } - - $class_name = 'Crypt_RSA_Math_' . $wrapper_name; - $class_filename = dirname(__FILE__) . '/Math/' . $wrapper_name . '.php'; - - if (!is_file($class_filename)) { - $err_handler->pushError("can't find file [{$class_filename}] for RSA math wrapper [{$wrapper_name}]", CRYPT_RSA_ERROR_NO_FILE); - return $err_handler->getLastError(); - } - - include_once $class_filename; - if (!class_exists($class_name)) { - $err_handler->pushError("can't find class [{$class_name}] in file [{$class_filename}]", CRYPT_RSA_ERROR_NO_CLASS); - return $err_handler->getLastError(); - } - - // create and return wrapper object on success or PEAR_Error object on error - $obj = new $class_name; - if ($obj->errstr) { - // cannot load required extension for math wrapper - $err_handler->pushError($obj->errstr, CRYPT_RSA_ERROR_NO_EXT); - return $err_handler->getLastError(); - } - return $math_objects[$wrapper_name] = $obj; - } -} - -?> -- cgit v1.2.3-54-g00ecf From 41d2ff662c7783f4aa0341b9b542ff157d01593c Mon Sep 17 00:00:00 2001 From: James Walker Date: Fri, 12 Mar 2010 19:34:24 -0500 Subject: Adding Crypt library from http://phpseclib.sourceforge.net/ --- plugins/OStatus/extlib/Crypt/AES.php | 421 ++++ plugins/OStatus/extlib/Crypt/DES.php | 851 ++++++++ plugins/OStatus/extlib/Crypt/Hash.php | 816 ++++++++ plugins/OStatus/extlib/Crypt/RC4.php | 493 +++++ plugins/OStatus/extlib/Crypt/RSA.php | 1929 ++++++++++++++++++ plugins/OStatus/extlib/Crypt/Random.php | 70 + plugins/OStatus/extlib/Crypt/Rijndael.php | 1135 +++++++++++ plugins/OStatus/extlib/Crypt/TripleDES.php | 603 ++++++ plugins/OStatus/extlib/Math/BigInteger.php | 3060 ++++++++++++++++++++++++++++ 9 files changed, 9378 insertions(+) create mode 100644 plugins/OStatus/extlib/Crypt/AES.php create mode 100644 plugins/OStatus/extlib/Crypt/DES.php create mode 100644 plugins/OStatus/extlib/Crypt/Hash.php create mode 100644 plugins/OStatus/extlib/Crypt/RC4.php create mode 100644 plugins/OStatus/extlib/Crypt/RSA.php create mode 100644 plugins/OStatus/extlib/Crypt/Random.php create mode 100644 plugins/OStatus/extlib/Crypt/Rijndael.php create mode 100644 plugins/OStatus/extlib/Crypt/TripleDES.php create mode 100644 plugins/OStatus/extlib/Math/BigInteger.php diff --git a/plugins/OStatus/extlib/Crypt/AES.php b/plugins/OStatus/extlib/Crypt/AES.php new file mode 100644 index 000000000..4b062c4f2 --- /dev/null +++ b/plugins/OStatus/extlib/Crypt/AES.php @@ -0,0 +1,421 @@ + + * setKey('abcdefghijklmnop'); + * + * $size = 10 * 1024; + * $plaintext = ''; + * for ($i = 0; $i < $size; $i++) { + * $plaintext.= 'a'; + * } + * + * echo $aes->decrypt($aes->encrypt($plaintext)); + * ?> + * + * + * LICENSE: This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * @category Crypt + * @package Crypt_AES + * @author Jim Wigginton + * @copyright MMVIII Jim Wigginton + * @license http://www.gnu.org/licenses/lgpl.txt + * @version $Id: AES.php,v 1.5 2009/11/23 19:06:06 terrafrost Exp $ + * @link http://phpseclib.sourceforge.net + */ + +/** + * Include Crypt_Rijndael + */ +require_once 'Rijndael.php'; + +/**#@+ + * @access public + * @see Crypt_AES::encrypt() + * @see Crypt_AES::decrypt() + */ +/** + * Encrypt / decrypt using the Electronic Code Book mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29 + */ +define('CRYPT_AES_MODE_ECB', 1); +/** + * Encrypt / decrypt using the Code Book Chaining mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29 + */ +define('CRYPT_AES_MODE_CBC', 2); +/**#@-*/ + +/**#@+ + * @access private + * @see Crypt_AES::Crypt_AES() + */ +/** + * Toggles the internal implementation + */ +define('CRYPT_AES_MODE_INTERNAL', 1); +/** + * Toggles the mcrypt implementation + */ +define('CRYPT_AES_MODE_MCRYPT', 2); +/**#@-*/ + +/** + * Pure-PHP implementation of AES. + * + * @author Jim Wigginton + * @version 0.1.0 + * @access public + * @package Crypt_AES + */ +class Crypt_AES extends Crypt_Rijndael { + /** + * MCrypt parameters + * + * @see Crypt_AES::setMCrypt() + * @var Array + * @access private + */ + var $mcrypt = array('', ''); + + /** + * Default Constructor. + * + * Determines whether or not the mcrypt extension should be used. $mode should only, at present, be + * CRYPT_AES_MODE_ECB or CRYPT_AES_MODE_CBC. If not explictly set, CRYPT_AES_MODE_CBC will be used. + * + * @param optional Integer $mode + * @return Crypt_AES + * @access public + */ + function Crypt_AES($mode = CRYPT_AES_MODE_CBC) + { + if ( !defined('CRYPT_AES_MODE') ) { + switch (true) { + case extension_loaded('mcrypt'): + // i'd check to see if aes was supported, by doing in_array('des', mcrypt_list_algorithms('')), + // but since that can be changed after the object has been created, there doesn't seem to be + // a lot of point... + define('CRYPT_AES_MODE', CRYPT_AES_MODE_MCRYPT); + break; + default: + define('CRYPT_AES_MODE', CRYPT_AES_MODE_INTERNAL); + } + } + + switch ( CRYPT_AES_MODE ) { + case CRYPT_AES_MODE_MCRYPT: + switch ($mode) { + case CRYPT_AES_MODE_ECB: + $this->mode = MCRYPT_MODE_ECB; + break; + case CRYPT_AES_MODE_CBC: + default: + $this->mode = MCRYPT_MODE_CBC; + } + + break; + default: + switch ($mode) { + case CRYPT_AES_MODE_ECB: + $this->mode = CRYPT_RIJNDAEL_MODE_ECB; + break; + case CRYPT_AES_MODE_CBC: + default: + $this->mode = CRYPT_RIJNDAEL_MODE_CBC; + } + } + + if (CRYPT_AES_MODE == CRYPT_AES_MODE_INTERNAL) { + parent::Crypt_Rijndael($this->mode); + } + } + + /** + * Dummy function + * + * Since Crypt_AES extends Crypt_Rijndael, this function is, technically, available, but it doesn't do anything. + * + * @access public + * @param Integer $length + */ + function setBlockLength($length) + { + return; + } + + /** + * Encrypts a message. + * + * $plaintext will be padded with up to 16 additional bytes. Other AES implementations may or may not pad in the + * same manner. Other common approaches to padding and the reasons why it's necessary are discussed in the following + * URL: + * + * {@link http://www.di-mgt.com.au/cryptopad.html http://www.di-mgt.com.au/cryptopad.html} + * + * An alternative to padding is to, separately, send the length of the file. This is what SSH, in fact, does. + * strlen($plaintext) will still need to be a multiple of 16, however, arbitrary values can be added to make it that + * length. + * + * @see Crypt_AES::decrypt() + * @access public + * @param String $plaintext + */ + function encrypt($plaintext) + { + if ( CRYPT_AES_MODE == CRYPT_AES_MODE_MCRYPT ) { + $this->_mcryptSetup(); + $plaintext = $this->_pad($plaintext); + + $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, $this->mcrypt[0], $this->mode, $this->mcrypt[1]); + mcrypt_generic_init($td, $this->key, $this->encryptIV); + + $ciphertext = mcrypt_generic($td, $plaintext); + + mcrypt_generic_deinit($td); + mcrypt_module_close($td); + + if ($this->continuousBuffer) { + $this->encryptIV = substr($ciphertext, -16); + } + + return $ciphertext; + } + + return parent::encrypt($plaintext); + } + + /** + * Decrypts a message. + * + * If strlen($ciphertext) is not a multiple of 16, null bytes will be added to the end of the string until it is. + * + * @see Crypt_AES::encrypt() + * @access public + * @param String $ciphertext + */ + function decrypt($ciphertext) + { + // we pad with chr(0) since that's what mcrypt_generic does. to quote from http://php.net/function.mcrypt-generic : + // "The data is padded with "\0" to make sure the length of the data is n * blocksize." + $ciphertext = str_pad($ciphertext, (strlen($ciphertext) + 15) & 0xFFFFFFF0, chr(0)); + + if ( CRYPT_AES_MODE == CRYPT_AES_MODE_MCRYPT ) { + $this->_mcryptSetup(); + + $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, $this->mcrypt[0], $this->mode, $this->mcrypt[1]); + mcrypt_generic_init($td, $this->key, $this->decryptIV); + + $plaintext = mdecrypt_generic($td, $ciphertext); + + mcrypt_generic_deinit($td); + mcrypt_module_close($td); + + if ($this->continuousBuffer) { + $this->decryptIV = substr($ciphertext, -16); + } + + return $this->_unpad($plaintext); + } + + return parent::decrypt($ciphertext); + } + + /** + * Sets MCrypt parameters. (optional) + * + * If MCrypt is being used, empty strings will be used, unless otherwise specified. + * + * @link http://php.net/function.mcrypt-module-open#function.mcrypt-module-open + * @access public + * @param optional Integer $algorithm_directory + * @param optional Integer $mode_directory + */ + function setMCrypt($algorithm_directory = '', $mode_directory = '') + { + $this->mcrypt = array($algorithm_directory, $mode_directory); + } + + /** + * Setup mcrypt + * + * Validates all the variables. + * + * @access private + */ + function _mcryptSetup() + { + if (!$this->changed) { + return; + } + + if (!$this->explicit_key_length) { + // this just copied from Crypt_Rijndael::_setup() + $length = strlen($this->key) >> 2; + if ($length > 8) { + $length = 8; + } else if ($length < 4) { + $length = 4; + } + $this->Nk = $length; + $this->key_size = $length << 2; + } + + switch ($this->Nk) { + case 4: // 128 + $this->key_size = 16; + break; + case 5: // 160 + case 6: // 192 + $this->key_size = 24; + break; + case 7: // 224 + case 8: // 256 + $this->key_size = 32; + } + + $this->key = substr($this->key, 0, $this->key_size); + $this->encryptIV = $this->decryptIV = $this->iv = str_pad(substr($this->iv, 0, 16), 16, chr(0)); + + $this->changed = false; + } + + /** + * Encrypts a block + * + * Optimized over Crypt_Rijndael's implementation by means of loop unrolling. + * + * @see Crypt_Rijndael::_encryptBlock() + * @access private + * @param String $in + * @return String + */ + function _encryptBlock($in) + { + $state = unpack('N*word', $in); + + // addRoundKey and reindex $state + $state = array( + $state['word1'] ^ $this->w[0][0], + $state['word2'] ^ $this->w[0][1], + $state['word3'] ^ $this->w[0][2], + $state['word4'] ^ $this->w[0][3] + ); + + // shiftRows + subWord + mixColumns + addRoundKey + // we could loop unroll this and use if statements to do more rounds as necessary, but, in my tests, that yields + // only a marginal improvement. since that also, imho, hinders the readability of the code, i've opted not to do it. + for ($round = 1; $round < $this->Nr; $round++) { + $state = array( + $this->t0[$state[0] & 0xFF000000] ^ $this->t1[$state[1] & 0x00FF0000] ^ $this->t2[$state[2] & 0x0000FF00] ^ $this->t3[$state[3] & 0x000000FF] ^ $this->w[$round][0], + $this->t0[$state[1] & 0xFF000000] ^ $this->t1[$state[2] & 0x00FF0000] ^ $this->t2[$state[3] & 0x0000FF00] ^ $this->t3[$state[0] & 0x000000FF] ^ $this->w[$round][1], + $this->t0[$state[2] & 0xFF000000] ^ $this->t1[$state[3] & 0x00FF0000] ^ $this->t2[$state[0] & 0x0000FF00] ^ $this->t3[$state[1] & 0x000000FF] ^ $this->w[$round][2], + $this->t0[$state[3] & 0xFF000000] ^ $this->t1[$state[0] & 0x00FF0000] ^ $this->t2[$state[1] & 0x0000FF00] ^ $this->t3[$state[2] & 0x000000FF] ^ $this->w[$round][3] + ); + + } + + // subWord + $state = array( + $this->_subWord($state[0]), + $this->_subWord($state[1]), + $this->_subWord($state[2]), + $this->_subWord($state[3]) + ); + + // shiftRows + addRoundKey + $state = array( + ($state[0] & 0xFF000000) ^ ($state[1] & 0x00FF0000) ^ ($state[2] & 0x0000FF00) ^ ($state[3] & 0x000000FF) ^ $this->w[$this->Nr][0], + ($state[1] & 0xFF000000) ^ ($state[2] & 0x00FF0000) ^ ($state[3] & 0x0000FF00) ^ ($state[0] & 0x000000FF) ^ $this->w[$this->Nr][1], + ($state[2] & 0xFF000000) ^ ($state[3] & 0x00FF0000) ^ ($state[0] & 0x0000FF00) ^ ($state[1] & 0x000000FF) ^ $this->w[$this->Nr][2], + ($state[3] & 0xFF000000) ^ ($state[0] & 0x00FF0000) ^ ($state[1] & 0x0000FF00) ^ ($state[2] & 0x000000FF) ^ $this->w[$this->Nr][3] + ); + + return pack('N*', $state[0], $state[1], $state[2], $state[3]); + } + + /** + * Decrypts a block + * + * Optimized over Crypt_Rijndael's implementation by means of loop unrolling. + * + * @see Crypt_Rijndael::_decryptBlock() + * @access private + * @param String $in + * @return String + */ + function _decryptBlock($in) + { + $state = unpack('N*word', $in); + + // addRoundKey and reindex $state + $state = array( + $state['word1'] ^ $this->dw[$this->Nr][0], + $state['word2'] ^ $this->dw[$this->Nr][1], + $state['word3'] ^ $this->dw[$this->Nr][2], + $state['word4'] ^ $this->dw[$this->Nr][3] + ); + + + // invShiftRows + invSubBytes + invMixColumns + addRoundKey + for ($round = $this->Nr - 1; $round > 0; $round--) { + $state = array( + $this->dt0[$state[0] & 0xFF000000] ^ $this->dt1[$state[3] & 0x00FF0000] ^ $this->dt2[$state[2] & 0x0000FF00] ^ $this->dt3[$state[1] & 0x000000FF] ^ $this->dw[$round][0], + $this->dt0[$state[1] & 0xFF000000] ^ $this->dt1[$state[0] & 0x00FF0000] ^ $this->dt2[$state[3] & 0x0000FF00] ^ $this->dt3[$state[2] & 0x000000FF] ^ $this->dw[$round][1], + $this->dt0[$state[2] & 0xFF000000] ^ $this->dt1[$state[1] & 0x00FF0000] ^ $this->dt2[$state[0] & 0x0000FF00] ^ $this->dt3[$state[3] & 0x000000FF] ^ $this->dw[$round][2], + $this->dt0[$state[3] & 0xFF000000] ^ $this->dt1[$state[2] & 0x00FF0000] ^ $this->dt2[$state[1] & 0x0000FF00] ^ $this->dt3[$state[0] & 0x000000FF] ^ $this->dw[$round][3] + ); + } + + // invShiftRows + invSubWord + addRoundKey + $state = array( + $this->_invSubWord(($state[0] & 0xFF000000) ^ ($state[3] & 0x00FF0000) ^ ($state[2] & 0x0000FF00) ^ ($state[1] & 0x000000FF)) ^ $this->dw[0][0], + $this->_invSubWord(($state[1] & 0xFF000000) ^ ($state[0] & 0x00FF0000) ^ ($state[3] & 0x0000FF00) ^ ($state[2] & 0x000000FF)) ^ $this->dw[0][1], + $this->_invSubWord(($state[2] & 0xFF000000) ^ ($state[1] & 0x00FF0000) ^ ($state[0] & 0x0000FF00) ^ ($state[3] & 0x000000FF)) ^ $this->dw[0][2], + $this->_invSubWord(($state[3] & 0xFF000000) ^ ($state[2] & 0x00FF0000) ^ ($state[1] & 0x0000FF00) ^ ($state[0] & 0x000000FF)) ^ $this->dw[0][3] + ); + + return pack('N*', $state[0], $state[1], $state[2], $state[3]); + } +} + +// vim: ts=4:sw=4:et: +// vim6: fdl=1: \ No newline at end of file diff --git a/plugins/OStatus/extlib/Crypt/DES.php b/plugins/OStatus/extlib/Crypt/DES.php new file mode 100644 index 000000000..3fd0b65ec --- /dev/null +++ b/plugins/OStatus/extlib/Crypt/DES.php @@ -0,0 +1,851 @@ + + * setKey('abcdefgh'); + * + * $size = 10 * 1024; + * $plaintext = ''; + * for ($i = 0; $i < $size; $i++) { + * $plaintext.= 'a'; + * } + * + * echo $des->decrypt($des->encrypt($plaintext)); + * ?> + * + * + * LICENSE: This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * @category Crypt + * @package Crypt_DES + * @author Jim Wigginton + * @copyright MMVII Jim Wigginton + * @license http://www.gnu.org/licenses/lgpl.txt + * @version $Id: DES.php,v 1.9 2009/11/23 19:06:06 terrafrost Exp $ + * @link http://phpseclib.sourceforge.net + */ + +/**#@+ + * @access private + * @see Crypt_DES::_prepareKey() + * @see Crypt_DES::_processBlock() + */ +/** + * Contains array_reverse($keys[CRYPT_DES_DECRYPT]) + */ +define('CRYPT_DES_ENCRYPT', 0); +/** + * Contains array_reverse($keys[CRYPT_DES_ENCRYPT]) + */ +define('CRYPT_DES_DECRYPT', 1); +/**#@-*/ + +/**#@+ + * @access public + * @see Crypt_DES::encrypt() + * @see Crypt_DES::decrypt() + */ +/** + * Encrypt / decrypt using the Electronic Code Book mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29 + */ +define('CRYPT_DES_MODE_ECB', 1); +/** + * Encrypt / decrypt using the Code Book Chaining mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29 + */ +define('CRYPT_DES_MODE_CBC', 2); +/**#@-*/ + +/**#@+ + * @access private + * @see Crypt_DES::Crypt_DES() + */ +/** + * Toggles the internal implementation + */ +define('CRYPT_DES_MODE_INTERNAL', 1); +/** + * Toggles the mcrypt implementation + */ +define('CRYPT_DES_MODE_MCRYPT', 2); +/**#@-*/ + +/** + * Pure-PHP implementation of DES. + * + * @author Jim Wigginton + * @version 0.1.0 + * @access public + * @package Crypt_DES + */ +class Crypt_DES { + /** + * The Key Schedule + * + * @see Crypt_DES::setKey() + * @var Array + * @access private + */ + var $keys = "\0\0\0\0\0\0\0\0"; + + /** + * The Encryption Mode + * + * @see Crypt_DES::Crypt_DES() + * @var Integer + * @access private + */ + var $mode; + + /** + * Continuous Buffer status + * + * @see Crypt_DES::enableContinuousBuffer() + * @var Boolean + * @access private + */ + var $continuousBuffer = false; + + /** + * Padding status + * + * @see Crypt_DES::enablePadding() + * @var Boolean + * @access private + */ + var $padding = true; + + /** + * The Initialization Vector + * + * @see Crypt_DES::setIV() + * @var String + * @access private + */ + var $iv = "\0\0\0\0\0\0\0\0"; + + /** + * A "sliding" Initialization Vector + * + * @see Crypt_DES::enableContinuousBuffer() + * @var String + * @access private + */ + var $encryptIV = "\0\0\0\0\0\0\0\0"; + + /** + * A "sliding" Initialization Vector + * + * @see Crypt_DES::enableContinuousBuffer() + * @var String + * @access private + */ + var $decryptIV = "\0\0\0\0\0\0\0\0"; + + /** + * MCrypt parameters + * + * @see Crypt_DES::setMCrypt() + * @var Array + * @access private + */ + var $mcrypt = array('', ''); + + /** + * Default Constructor. + * + * Determines whether or not the mcrypt extension should be used. $mode should only, at present, be + * CRYPT_DES_MODE_ECB or CRYPT_DES_MODE_CBC. If not explictly set, CRYPT_DES_MODE_CBC will be used. + * + * @param optional Integer $mode + * @return Crypt_DES + * @access public + */ + function Crypt_DES($mode = CRYPT_MODE_DES_CBC) + { + if ( !defined('CRYPT_DES_MODE') ) { + switch (true) { + case extension_loaded('mcrypt'): + // i'd check to see if des was supported, by doing in_array('des', mcrypt_list_algorithms('')), + // but since that can be changed after the object has been created, there doesn't seem to be + // a lot of point... + define('CRYPT_DES_MODE', CRYPT_DES_MODE_MCRYPT); + break; + default: + define('CRYPT_DES_MODE', CRYPT_DES_MODE_INTERNAL); + } + } + + switch ( CRYPT_DES_MODE ) { + case CRYPT_DES_MODE_MCRYPT: + switch ($mode) { + case CRYPT_DES_MODE_ECB: + $this->mode = MCRYPT_MODE_ECB; + break; + case CRYPT_DES_MODE_CBC: + default: + $this->mode = MCRYPT_MODE_CBC; + } + + break; + default: + switch ($mode) { + case CRYPT_DES_MODE_ECB: + case CRYPT_DES_MODE_CBC: + $this->mode = $mode; + break; + default: + $this->mode = CRYPT_DES_MODE_CBC; + } + } + } + + /** + * Sets the key. + * + * Keys can be of any length. DES, itself, uses 64-bit keys (eg. strlen($key) == 8), however, we + * only use the first eight, if $key has more then eight characters in it, and pad $key with the + * null byte if it is less then eight characters long. + * + * DES also requires that every eighth bit be a parity bit, however, we'll ignore that. + * + * If the key is not explicitly set, it'll be assumed to be all zero's. + * + * @access public + * @param String $key + */ + function setKey($key) + { + $this->keys = ( CRYPT_DES_MODE == CRYPT_DES_MODE_MCRYPT ) ? substr($key, 0, 8) : $this->_prepareKey($key); + } + + /** + * Sets the initialization vector. (optional) + * + * SetIV is not required when CRYPT_DES_MODE_ECB is being used. If not explictly set, it'll be assumed + * to be all zero's. + * + * @access public + * @param String $iv + */ + function setIV($iv) + { + $this->encryptIV = $this->decryptIV = $this->iv = str_pad(substr($iv, 0, 8), 8, chr(0));; + } + + /** + * Sets MCrypt parameters. (optional) + * + * If MCrypt is being used, empty strings will be used, unless otherwise specified. + * + * @link http://php.net/function.mcrypt-module-open#function.mcrypt-module-open + * @access public + * @param optional Integer $algorithm_directory + * @param optional Integer $mode_directory + */ + function setMCrypt($algorithm_directory = '', $mode_directory = '') + { + $this->mcrypt = array($algorithm_directory, $mode_directory); + } + + /** + * Encrypts a message. + * + * $plaintext will be padded with up to 8 additional bytes. Other DES implementations may or may not pad in the + * same manner. Other common approaches to padding and the reasons why it's necessary are discussed in the following + * URL: + * + * {@link http://www.di-mgt.com.au/cryptopad.html http://www.di-mgt.com.au/cryptopad.html} + * + * An alternative to padding is to, separately, send the length of the file. This is what SSH, in fact, does. + * strlen($plaintext) will still need to be a multiple of 8, however, arbitrary values can be added to make it that + * length. + * + * @see Crypt_DES::decrypt() + * @access public + * @param String $plaintext + */ + function encrypt($plaintext) + { + $plaintext = $this->_pad($plaintext); + + if ( CRYPT_DES_MODE == CRYPT_DES_MODE_MCRYPT ) { + $td = mcrypt_module_open(MCRYPT_DES, $this->mcrypt[0], $this->mode, $this->mcrypt[1]); + mcrypt_generic_init($td, $this->keys, $this->encryptIV); + + $ciphertext = mcrypt_generic($td, $plaintext); + + mcrypt_generic_deinit($td); + mcrypt_module_close($td); + + if ($this->continuousBuffer) { + $this->encryptIV = substr($ciphertext, -8); + } + + return $ciphertext; + } + + if (!is_array($this->keys)) { + $this->keys = $this->_prepareKey("\0\0\0\0\0\0\0\0"); + } + + $ciphertext = ''; + switch ($this->mode) { + case CRYPT_DES_MODE_ECB: + for ($i = 0; $i < strlen($plaintext); $i+=8) { + $ciphertext.= $this->_processBlock(substr($plaintext, $i, 8), CRYPT_DES_ENCRYPT); + } + break; + case CRYPT_DES_MODE_CBC: + $xor = $this->encryptIV; + for ($i = 0; $i < strlen($plaintext); $i+=8) { + $block = substr($plaintext, $i, 8); + $block = $this->_processBlock($block ^ $xor, CRYPT_DES_ENCRYPT); + $xor = $block; + $ciphertext.= $block; + } + if ($this->continuousBuffer) { + $this->encryptIV = $xor; + } + } + + return $ciphertext; + } + + /** + * Decrypts a message. + * + * If strlen($ciphertext) is not a multiple of 8, null bytes will be added to the end of the string until it is. + * + * @see Crypt_DES::encrypt() + * @access public + * @param String $ciphertext + */ + function decrypt($ciphertext) + { + // we pad with chr(0) since that's what mcrypt_generic does. to quote from http://php.net/function.mcrypt-generic : + // "The data is padded with "\0" to make sure the length of the data is n * blocksize." + $ciphertext = str_pad($ciphertext, (strlen($ciphertext) + 7) & 0xFFFFFFF8, chr(0)); + + if ( CRYPT_DES_MODE == CRYPT_DES_MODE_MCRYPT ) { + $td = mcrypt_module_open(MCRYPT_DES, $this->mcrypt[0], $this->mode, $this->mcrypt[1]); + mcrypt_generic_init($td, $this->keys, $this->decryptIV); + + $plaintext = mdecrypt_generic($td, $ciphertext); + + mcrypt_generic_deinit($td); + mcrypt_module_close($td); + + if ($this->continuousBuffer) { + $this->decryptIV = substr($ciphertext, -8); + } + + return $this->_unpad($plaintext); + } + + if (!is_array($this->keys)) { + $this->keys = $this->_prepareKey("\0\0\0\0\0\0\0\0"); + } + + $plaintext = ''; + switch ($this->mode) { + case CRYPT_DES_MODE_ECB: + for ($i = 0; $i < strlen($ciphertext); $i+=8) { + $plaintext.= $this->_processBlock(substr($ciphertext, $i, 8), CRYPT_DES_DECRYPT); + } + break; + case CRYPT_DES_MODE_CBC: + $xor = $this->decryptIV; + for ($i = 0; $i < strlen($ciphertext); $i+=8) { + $block = substr($ciphertext, $i, 8); + $plaintext.= $this->_processBlock($block, CRYPT_DES_DECRYPT) ^ $xor; + $xor = $block; + } + if ($this->continuousBuffer) { + $this->decryptIV = $xor; + } + } + + return $this->_unpad($plaintext); + } + + /** + * Treat consecutive "packets" as if they are a continuous buffer. + * + * Say you have a 16-byte plaintext $plaintext. Using the default behavior, the two following code snippets + * will yield different outputs: + * + * + * echo $des->encrypt(substr($plaintext, 0, 8)); + * echo $des->encrypt(substr($plaintext, 8, 8)); + * + * + * echo $des->encrypt($plaintext); + * + * + * The solution is to enable the continuous buffer. Although this will resolve the above discrepancy, it creates + * another, as demonstrated with the following: + * + * + * $des->encrypt(substr($plaintext, 0, 8)); + * echo $des->decrypt($des->encrypt(substr($plaintext, 8, 8))); + * + * + * echo $des->decrypt($des->encrypt(substr($plaintext, 8, 8))); + * + * + * With the continuous buffer disabled, these would yield the same output. With it enabled, they yield different + * outputs. The reason is due to the fact that the initialization vector's change after every encryption / + * decryption round when the continuous buffer is enabled. When it's disabled, they remain constant. + * + * Put another way, when the continuous buffer is enabled, the state of the Crypt_DES() object changes after each + * encryption / decryption round, whereas otherwise, it'd remain constant. For this reason, it's recommended that + * continuous buffers not be used. They do offer better security and are, in fact, sometimes required (SSH uses them), + * however, they are also less intuitive and more likely to cause you problems. + * + * @see Crypt_DES::disableContinuousBuffer() + * @access public + */ + function enableContinuousBuffer() + { + $this->continuousBuffer = true; + } + + /** + * Treat consecutive packets as if they are a discontinuous buffer. + * + * The default behavior. + * + * @see Crypt_DES::enableContinuousBuffer() + * @access public + */ + function disableContinuousBuffer() + { + $this->continuousBuffer = false; + $this->encryptIV = $this->iv; + $this->decryptIV = $this->iv; + } + + /** + * Pad "packets". + * + * DES works by encrypting eight bytes at a time. If you ever need to encrypt or decrypt something that's not + * a multiple of eight, it becomes necessary to pad the input so that it's length is a multiple of eight. + * + * Padding is enabled by default. Sometimes, however, it is undesirable to pad strings. Such is the case in SSH1, + * where "packets" are padded with random bytes before being encrypted. Unpad these packets and you risk stripping + * away characters that shouldn't be stripped away. (SSH knows how many bytes are added because the length is + * transmitted separately) + * + * @see Crypt_DES::disablePadding() + * @access public + */ + function enablePadding() + { + $this->padding = true; + } + + /** + * Do not pad packets. + * + * @see Crypt_DES::enablePadding() + * @access public + */ + function disablePadding() + { + $this->padding = false; + } + + /** + * Pads a string + * + * Pads a string using the RSA PKCS padding standards so that its length is a multiple of the blocksize (8). + * 8 - (strlen($text) & 7) bytes are added, each of which is equal to chr(8 - (strlen($text) & 7) + * + * If padding is disabled and $text is not a multiple of the blocksize, the string will be padded regardless + * and padding will, hence forth, be enabled. + * + * @see Crypt_DES::_unpad() + * @access private + */ + function _pad($text) + { + $length = strlen($text); + + if (!$this->padding) { + if (($length & 7) == 0) { + return $text; + } else { + user_error("The plaintext's length ($length) is not a multiple of the block size (8)", E_USER_NOTICE); + $this->padding = true; + } + } + + $pad = 8 - ($length & 7); + return str_pad($text, $length + $pad, chr($pad)); + } + + /** + * Unpads a string + * + * If padding is enabled and the reported padding length is invalid, padding will be, hence forth, disabled. + * + * @see Crypt_DES::_pad() + * @access private + */ + function _unpad($text) + { + if (!$this->padding) { + return $text; + } + + $length = ord($text[strlen($text) - 1]); + + if (!$length || $length > 8) { + user_error("The number of bytes reported as being padded ($length) is invalid (block size = 8)", E_USER_NOTICE); + $this->padding = false; + return $text; + } + + return substr($text, 0, -$length); + } + + /** + * Encrypts or decrypts a 64-bit block + * + * $mode should be either CRYPT_DES_ENCRYPT or CRYPT_DES_DECRYPT. See + * {@link http://en.wikipedia.org/wiki/Image:Feistel.png Feistel.png} to get a general + * idea of what this function does. + * + * @access private + * @param String $block + * @param Integer $mode + * @return String + */ + function _processBlock($block, $mode) + { + // s-boxes. in the official DES docs, they're described as being matrices that + // one accesses by using the first and last bits to determine the row and the + // middle four bits to determine the column. in this implementation, they've + // been converted to vectors + static $sbox = array( + array( + 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1, + 3, 10 ,10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8, + 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7, + 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13 + ), + array( + 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14, + 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5, + 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2, + 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9 + ), + array( + 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10, + 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1, + 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7, + 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12 + ), + array( + 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3, + 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9, + 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8, + 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14 + ), + array( + 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1, + 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6, + 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13, + 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3 + ), + array( + 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5, + 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8, + 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10, + 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13 + ), + array( + 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10, + 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6, + 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7, + 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12 + ), + array( + 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4, + 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2, + 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13, + 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11 + ) + ); + + $temp = unpack('Na/Nb', $block); + $block = array($temp['a'], $temp['b']); + + // because php does arithmetic right shifts, if the most significant bits are set, right + // shifting those into the correct position will add 1's - not 0's. this will intefere + // with the | operation unless a second & is done. so we isolate these bits and left shift + // them into place. we then & each block with 0x7FFFFFFF to prevennt 1's from being added + // for any other shifts. + $msb = array( + ($block[0] >> 31) & 1, + ($block[1] >> 31) & 1 + ); + $block[0] &= 0x7FFFFFFF; + $block[1] &= 0x7FFFFFFF; + + // we isolate the appropriate bit in the appropriate integer and shift as appropriate. in + // some cases, there are going to be multiple bits in the same integer that need to be shifted + // in the same way. we combine those into one shift operation. + $block = array( + (($block[1] & 0x00000040) << 25) | (($block[1] & 0x00004000) << 16) | + (($block[1] & 0x00400001) << 7) | (($block[1] & 0x40000100) >> 2) | + (($block[0] & 0x00000040) << 21) | (($block[0] & 0x00004000) << 12) | + (($block[0] & 0x00400001) << 3) | (($block[0] & 0x40000100) >> 6) | + (($block[1] & 0x00000010) << 19) | (($block[1] & 0x00001000) << 10) | + (($block[1] & 0x00100000) << 1) | (($block[1] & 0x10000000) >> 8) | + (($block[0] & 0x00000010) << 15) | (($block[0] & 0x00001000) << 6) | + (($block[0] & 0x00100000) >> 3) | (($block[0] & 0x10000000) >> 12) | + (($block[1] & 0x00000004) << 13) | (($block[1] & 0x00000400) << 4) | + (($block[1] & 0x00040000) >> 5) | (($block[1] & 0x04000000) >> 14) | + (($block[0] & 0x00000004) << 9) | ( $block[0] & 0x00000400 ) | + (($block[0] & 0x00040000) >> 9) | (($block[0] & 0x04000000) >> 18) | + (($block[1] & 0x00010000) >> 11) | (($block[1] & 0x01000000) >> 20) | + (($block[0] & 0x00010000) >> 15) | (($block[0] & 0x01000000) >> 24) + , + (($block[1] & 0x00000080) << 24) | (($block[1] & 0x00008000) << 15) | + (($block[1] & 0x00800002) << 6) | (($block[0] & 0x00000080) << 20) | + (($block[0] & 0x00008000) << 11) | (($block[0] & 0x00800002) << 2) | + (($block[1] & 0x00000020) << 18) | (($block[1] & 0x00002000) << 9) | + ( $block[1] & 0x00200000 ) | (($block[1] & 0x20000000) >> 9) | + (($block[0] & 0x00000020) << 14) | (($block[0] & 0x00002000) << 5) | + (($block[0] & 0x00200000) >> 4) | (($block[0] & 0x20000000) >> 13) | + (($block[1] & 0x00000008) << 12) | (($block[1] & 0x00000800) << 3) | + (($block[1] & 0x00080000) >> 6) | (($block[1] & 0x08000000) >> 15) | + (($block[0] & 0x00000008) << 8) | (($block[0] & 0x00000800) >> 1) | + (($block[0] & 0x00080000) >> 10) | (($block[0] & 0x08000000) >> 19) | + (($block[1] & 0x00000200) >> 3) | (($block[0] & 0x00000200) >> 7) | + (($block[1] & 0x00020000) >> 12) | (($block[1] & 0x02000000) >> 21) | + (($block[0] & 0x00020000) >> 16) | (($block[0] & 0x02000000) >> 25) | + ($msb[1] << 28) | ($msb[0] << 24) + ); + + for ($i = 0; $i < 16; $i++) { + // start of "the Feistel (F) function" - see the following URL: + // http://en.wikipedia.org/wiki/Image:Data_Encryption_Standard_InfoBox_Diagram.png + $temp = (($sbox[0][((($block[1] >> 27) & 0x1F) | (($block[1] & 1) << 5)) ^ $this->keys[$mode][$i][0]]) << 28) + | (($sbox[1][(($block[1] & 0x1F800000) >> 23) ^ $this->keys[$mode][$i][1]]) << 24) + | (($sbox[2][(($block[1] & 0x01F80000) >> 19) ^ $this->keys[$mode][$i][2]]) << 20) + | (($sbox[3][(($block[1] & 0x001F8000) >> 15) ^ $this->keys[$mode][$i][3]]) << 16) + | (($sbox[4][(($block[1] & 0x0001F800) >> 11) ^ $this->keys[$mode][$i][4]]) << 12) + | (($sbox[5][(($block[1] & 0x00001F80) >> 7) ^ $this->keys[$mode][$i][5]]) << 8) + | (($sbox[6][(($block[1] & 0x000001F8) >> 3) ^ $this->keys[$mode][$i][6]]) << 4) + | ( $sbox[7][((($block[1] & 0x1F) << 1) | (($block[1] >> 31) & 1)) ^ $this->keys[$mode][$i][7]]); + + $msb = ($temp >> 31) & 1; + $temp &= 0x7FFFFFFF; + $newBlock = (($temp & 0x00010000) << 15) | (($temp & 0x02020120) << 5) + | (($temp & 0x00001800) << 17) | (($temp & 0x01000000) >> 10) + | (($temp & 0x00000008) << 24) | (($temp & 0x00100000) << 6) + | (($temp & 0x00000010) << 21) | (($temp & 0x00008000) << 9) + | (($temp & 0x00000200) << 12) | (($temp & 0x10000000) >> 27) + | (($temp & 0x00000040) << 14) | (($temp & 0x08000000) >> 8) + | (($temp & 0x00004000) << 4) | (($temp & 0x00000002) << 16) + | (($temp & 0x00442000) >> 6) | (($temp & 0x40800000) >> 15) + | (($temp & 0x00000001) << 11) | (($temp & 0x20000000) >> 20) + | (($temp & 0x00080000) >> 13) | (($temp & 0x00000004) << 3) + | (($temp & 0x04000000) >> 22) | (($temp & 0x00000480) >> 7) + | (($temp & 0x00200000) >> 19) | ($msb << 23); + // end of "the Feistel (F) function" - $newBlock is F's output + + $temp = $block[1]; + $block[1] = $block[0] ^ $newBlock; + $block[0] = $temp; + } + + $msb = array( + ($block[0] >> 31) & 1, + ($block[1] >> 31) & 1 + ); + $block[0] &= 0x7FFFFFFF; + $block[1] &= 0x7FFFFFFF; + + $block = array( + (($block[0] & 0x01000004) << 7) | (($block[1] & 0x01000004) << 6) | + (($block[0] & 0x00010000) << 13) | (($block[1] & 0x00010000) << 12) | + (($block[0] & 0x00000100) << 19) | (($block[1] & 0x00000100) << 18) | + (($block[0] & 0x00000001) << 25) | (($block[1] & 0x00000001) << 24) | + (($block[0] & 0x02000008) >> 2) | (($block[1] & 0x02000008) >> 3) | + (($block[0] & 0x00020000) << 4) | (($block[1] & 0x00020000) << 3) | + (($block[0] & 0x00000200) << 10) | (($block[1] & 0x00000200) << 9) | + (($block[0] & 0x00000002) << 16) | (($block[1] & 0x00000002) << 15) | + (($block[0] & 0x04000000) >> 11) | (($block[1] & 0x04000000) >> 12) | + (($block[0] & 0x00040000) >> 5) | (($block[1] & 0x00040000) >> 6) | + (($block[0] & 0x00000400) << 1) | ( $block[1] & 0x00000400 ) | + (($block[0] & 0x08000000) >> 20) | (($block[1] & 0x08000000) >> 21) | + (($block[0] & 0x00080000) >> 14) | (($block[1] & 0x00080000) >> 15) | + (($block[0] & 0x00000800) >> 8) | (($block[1] & 0x00000800) >> 9) + , + (($block[0] & 0x10000040) << 3) | (($block[1] & 0x10000040) << 2) | + (($block[0] & 0x00100000) << 9) | (($block[1] & 0x00100000) << 8) | + (($block[0] & 0x00001000) << 15) | (($block[1] & 0x00001000) << 14) | + (($block[0] & 0x00000010) << 21) | (($block[1] & 0x00000010) << 20) | + (($block[0] & 0x20000080) >> 6) | (($block[1] & 0x20000080) >> 7) | + ( $block[0] & 0x00200000 ) | (($block[1] & 0x00200000) >> 1) | + (($block[0] & 0x00002000) << 6) | (($block[1] & 0x00002000) << 5) | + (($block[0] & 0x00000020) << 12) | (($block[1] & 0x00000020) << 11) | + (($block[0] & 0x40000000) >> 15) | (($block[1] & 0x40000000) >> 16) | + (($block[0] & 0x00400000) >> 9) | (($block[1] & 0x00400000) >> 10) | + (($block[0] & 0x00004000) >> 3) | (($block[1] & 0x00004000) >> 4) | + (($block[0] & 0x00800000) >> 18) | (($block[1] & 0x00800000) >> 19) | + (($block[0] & 0x00008000) >> 12) | (($block[1] & 0x00008000) >> 13) | + ($msb[0] << 7) | ($msb[1] << 6) + ); + + return pack('NN', $block[0], $block[1]); + } + + /** + * Creates the key schedule. + * + * @access private + * @param String $key + * @return Array + */ + function _prepareKey($key) + { + static $shifts = array( // number of key bits shifted per round + 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1 + ); + + // pad the key and remove extra characters as appropriate. + $key = str_pad(substr($key, 0, 8), 8, chr(0)); + + $temp = unpack('Na/Nb', $key); + $key = array($temp['a'], $temp['b']); + $msb = array( + ($key[0] >> 31) & 1, + ($key[1] >> 31) & 1 + ); + $key[0] &= 0x7FFFFFFF; + $key[1] &= 0x7FFFFFFF; + + $key = array( + (($key[1] & 0x00000002) << 26) | (($key[1] & 0x00000204) << 17) | + (($key[1] & 0x00020408) << 8) | (($key[1] & 0x02040800) >> 1) | + (($key[0] & 0x00000002) << 22) | (($key[0] & 0x00000204) << 13) | + (($key[0] & 0x00020408) << 4) | (($key[0] & 0x02040800) >> 5) | + (($key[1] & 0x04080000) >> 10) | (($key[0] & 0x04080000) >> 14) | + (($key[1] & 0x08000000) >> 19) | (($key[0] & 0x08000000) >> 23) | + (($key[0] & 0x00000010) >> 1) | (($key[0] & 0x00001000) >> 10) | + (($key[0] & 0x00100000) >> 19) | (($key[0] & 0x10000000) >> 28) + , + (($key[1] & 0x00000080) << 20) | (($key[1] & 0x00008000) << 11) | + (($key[1] & 0x00800000) << 2) | (($key[0] & 0x00000080) << 16) | + (($key[0] & 0x00008000) << 7) | (($key[0] & 0x00800000) >> 2) | + (($key[1] & 0x00000040) << 13) | (($key[1] & 0x00004000) << 4) | + (($key[1] & 0x00400000) >> 5) | (($key[1] & 0x40000000) >> 14) | + (($key[0] & 0x00000040) << 9) | ( $key[0] & 0x00004000 ) | + (($key[0] & 0x00400000) >> 9) | (($key[0] & 0x40000000) >> 18) | + (($key[1] & 0x00000020) << 6) | (($key[1] & 0x00002000) >> 3) | + (($key[1] & 0x00200000) >> 12) | (($key[1] & 0x20000000) >> 21) | + (($key[0] & 0x00000020) << 2) | (($key[0] & 0x00002000) >> 7) | + (($key[0] & 0x00200000) >> 16) | (($key[0] & 0x20000000) >> 25) | + (($key[1] & 0x00000010) >> 1) | (($key[1] & 0x00001000) >> 10) | + (($key[1] & 0x00100000) >> 19) | (($key[1] & 0x10000000) >> 28) | + ($msb[1] << 24) | ($msb[0] << 20) + ); + + $keys = array(); + for ($i = 0; $i < 16; $i++) { + $key[0] <<= $shifts[$i]; + $temp = ($key[0] & 0xF0000000) >> 28; + $key[0] = ($key[0] | $temp) & 0x0FFFFFFF; + + $key[1] <<= $shifts[$i]; + $temp = ($key[1] & 0xF0000000) >> 28; + $key[1] = ($key[1] | $temp) & 0x0FFFFFFF; + + $temp = array( + (($key[1] & 0x00004000) >> 9) | (($key[1] & 0x00000800) >> 7) | + (($key[1] & 0x00020000) >> 14) | (($key[1] & 0x00000010) >> 2) | + (($key[1] & 0x08000000) >> 26) | (($key[1] & 0x00800000) >> 23) + , + (($key[1] & 0x02400000) >> 20) | (($key[1] & 0x00000001) << 4) | + (($key[1] & 0x00002000) >> 10) | (($key[1] & 0x00040000) >> 18) | + (($key[1] & 0x00000080) >> 6) + , + ( $key[1] & 0x00000020 ) | (($key[1] & 0x00000200) >> 5) | + (($key[1] & 0x00010000) >> 13) | (($key[1] & 0x01000000) >> 22) | + (($key[1] & 0x00000004) >> 1) | (($key[1] & 0x00100000) >> 20) + , + (($key[1] & 0x00001000) >> 7) | (($key[1] & 0x00200000) >> 17) | + (($key[1] & 0x00000002) << 2) | (($key[1] & 0x00000100) >> 6) | + (($key[1] & 0x00008000) >> 14) | (($key[1] & 0x04000000) >> 26) + , + (($key[0] & 0x00008000) >> 10) | ( $key[0] & 0x00000010 ) | + (($key[0] & 0x02000000) >> 22) | (($key[0] & 0x00080000) >> 17) | + (($key[0] & 0x00000200) >> 8) | (($key[0] & 0x00000002) >> 1) + , + (($key[0] & 0x04000000) >> 21) | (($key[0] & 0x00010000) >> 12) | + (($key[0] & 0x00000020) >> 2) | (($key[0] & 0x00000800) >> 9) | + (($key[0] & 0x00800000) >> 22) | (($key[0] & 0x00000100) >> 8) + , + (($key[0] & 0x00001000) >> 7) | (($key[0] & 0x00000088) >> 3) | + (($key[0] & 0x00020000) >> 14) | (($key[0] & 0x00000001) << 2) | + (($key[0] & 0x00400000) >> 21) + , + (($key[0] & 0x00000400) >> 5) | (($key[0] & 0x00004000) >> 10) | + (($key[0] & 0x00000040) >> 3) | (($key[0] & 0x00100000) >> 18) | + (($key[0] & 0x08000000) >> 26) | (($key[0] & 0x01000000) >> 24) + ); + + $keys[] = $temp; + } + + $temp = array( + CRYPT_DES_ENCRYPT => $keys, + CRYPT_DES_DECRYPT => array_reverse($keys) + ); + + return $temp; + } +} + +// vim: ts=4:sw=4:et: +// vim6: fdl=1: \ No newline at end of file diff --git a/plugins/OStatus/extlib/Crypt/Hash.php b/plugins/OStatus/extlib/Crypt/Hash.php new file mode 100644 index 000000000..ef3a85802 --- /dev/null +++ b/plugins/OStatus/extlib/Crypt/Hash.php @@ -0,0 +1,816 @@ + + * setKey('abcdefg'); + * + * echo base64_encode($hash->hash('abcdefg')); + * ?> + * + * + * LICENSE: This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * @category Crypt + * @package Crypt_Hash + * @author Jim Wigginton + * @copyright MMVII Jim Wigginton + * @license http://www.gnu.org/licenses/lgpl.txt + * @version $Id: Hash.php,v 1.6 2009/11/23 23:37:07 terrafrost Exp $ + * @link http://phpseclib.sourceforge.net + */ + +/**#@+ + * @access private + * @see Crypt_Hash::Crypt_Hash() + */ +/** + * Toggles the internal implementation + */ +define('CRYPT_HASH_MODE_INTERNAL', 1); +/** + * Toggles the mhash() implementation, which has been deprecated on PHP 5.3.0+. + */ +define('CRYPT_HASH_MODE_MHASH', 2); +/** + * Toggles the hash() implementation, which works on PHP 5.1.2+. + */ +define('CRYPT_HASH_MODE_HASH', 3); +/**#@-*/ + +/** + * Pure-PHP implementations of keyed-hash message authentication codes (HMACs) and various cryptographic hashing functions. + * + * @author Jim Wigginton + * @version 0.1.0 + * @access public + * @package Crypt_Hash + */ +class Crypt_Hash { + /** + * Byte-length of compression blocks / key (Internal HMAC) + * + * @see Crypt_Hash::setAlgorithm() + * @var Integer + * @access private + */ + var $b; + + /** + * Byte-length of hash output (Internal HMAC) + * + * @see Crypt_Hash::setHash() + * @var Integer + * @access private + */ + var $l = false; + + /** + * Hash Algorithm + * + * @see Crypt_Hash::setHash() + * @var String + * @access private + */ + var $hash; + + /** + * Key + * + * @see Crypt_Hash::setKey() + * @var String + * @access private + */ + var $key = ''; + + /** + * Outer XOR (Internal HMAC) + * + * @see Crypt_Hash::setKey() + * @var String + * @access private + */ + var $opad; + + /** + * Inner XOR (Internal HMAC) + * + * @see Crypt_Hash::setKey() + * @var String + * @access private + */ + var $ipad; + + /** + * Default Constructor. + * + * @param optional String $hash + * @return Crypt_Hash + * @access public + */ + function Crypt_Hash($hash = 'sha1') + { + if ( !defined('CRYPT_HASH_MODE') ) { + switch (true) { + case extension_loaded('hash'): + define('CRYPT_HASH_MODE', CRYPT_HASH_MODE_HASH); + break; + case extension_loaded('mhash'): + define('CRYPT_HASH_MODE', CRYPT_HASH_MODE_MHASH); + break; + default: + define('CRYPT_HASH_MODE', CRYPT_HASH_MODE_INTERNAL); + } + } + + $this->setHash($hash); + } + + /** + * Sets the key for HMACs + * + * Keys can be of any length. + * + * @access public + * @param String $key + */ + function setKey($key) + { + $this->key = $key; + } + + /** + * Sets the hash function. + * + * @access public + * @param String $hash + */ + function setHash($hash) + { + switch ($hash) { + case 'md5-96': + case 'sha1-96': + $this->l = 12; // 96 / 8 = 12 + break; + case 'md2': + case 'md5': + $this->l = 16; + break; + case 'sha1': + $this->l = 20; + break; + case 'sha256': + $this->l = 32; + break; + case 'sha384': + $this->l = 48; + break; + case 'sha512': + $this->l = 64; + } + + switch ($hash) { + case 'md2': + $mode = CRYPT_HASH_MODE_INTERNAL; + break; + case 'sha384': + case 'sha512': + $mode = CRYPT_HASH_MODE == CRYPT_HASH_MODE_MHASH ? CRYPT_HASH_MODE_INTERNAL : CRYPT_HASH_MODE; + break; + default: + $mode = CRYPT_HASH_MODE; + } + + switch ( $mode ) { + case CRYPT_HASH_MODE_MHASH: + switch ($hash) { + case 'md5': + case 'md5-96': + $this->hash = MHASH_MD5; + break; + case 'sha256': + $this->hash = MHASH_SHA256; + break; + case 'sha1': + case 'sha1-96': + default: + $this->hash = MHASH_SHA1; + } + return; + case CRYPT_HASH_MODE_HASH: + switch ($hash) { + case 'md5': + case 'md5-96': + $this->hash = 'md5'; + return; + case 'sha256': + case 'sha384': + case 'sha512': + $this->hash = $hash; + return; + case 'sha1': + case 'sha1-96': + default: + $this->hash = 'sha1'; + } + return; + } + + switch ($hash) { + case 'md2': + $this->b = 16; + $this->hash = array($this, '_md2'); + break; + case 'md5': + case 'md5-96': + $this->b = 64; + $this->hash = array($this, '_md5'); + break; + case 'sha256': + $this->b = 64; + $this->hash = array($this, '_sha256'); + break; + case 'sha384': + case 'sha512': + $this->b = 128; + $this->hash = array($this, '_sha512'); + break; + case 'sha1': + case 'sha1-96': + default: + $this->b = 64; + $this->hash = array($this, '_sha1'); + } + + $this->ipad = str_repeat(chr(0x36), $this->b); + $this->opad = str_repeat(chr(0x5C), $this->b); + } + + /** + * Compute the HMAC. + * + * @access public + * @param String $text + * @return String + */ + function hash($text) + { + $mode = is_array($this->hash) ? CRYPT_HASH_MODE_INTERNAL : CRYPT_HASH_MODE; + + if (!empty($this->key)) { + switch ( $mode ) { + case CRYPT_HASH_MODE_MHASH: + $output = mhash($this->hash, $text, $this->key); + break; + case CRYPT_HASH_MODE_HASH: + $output = hash_hmac($this->hash, $text, $this->key, true); + break; + case CRYPT_HASH_MODE_INTERNAL: + /* "Applications that use keys longer than B bytes will first hash the key using H and then use the + resultant L byte string as the actual key to HMAC." + + -- http://tools.ietf.org/html/rfc2104#section-2 */ + $key = strlen($this->key) > $this->b ? call_user_func($this->$hash, $this->key) : $this->key; + + $key = str_pad($key, $this->b, chr(0)); // step 1 + $temp = $this->ipad ^ $key; // step 2 + $temp .= $text; // step 3 + $temp = call_user_func($this->hash, $temp); // step 4 + $output = $this->opad ^ $key; // step 5 + $output.= $temp; // step 6 + $output = call_user_func($this->hash, $output); // step 7 + } + } else { + switch ( $mode ) { + case CRYPT_HASH_MODE_MHASH: + $output = mhash($this->hash, $text); + break; + case CRYPT_HASH_MODE_HASH: + $output = hash($this->hash, $text, true); + break; + case CRYPT_HASH_MODE_INTERNAL: + $output = call_user_func($this->hash, $text); + } + } + + return substr($output, 0, $this->l); + } + + /** + * Returns the hash length (in bytes) + * + * @access private + * @return Integer + */ + function getLength() + { + return $this->l; + } + + /** + * Wrapper for MD5 + * + * @access private + * @param String $text + */ + function _md5($m) + { + return pack('H*', md5($m)); + } + + /** + * Wrapper for SHA1 + * + * @access private + * @param String $text + */ + function _sha1($m) + { + return pack('H*', sha1($m)); + } + + /** + * Pure-PHP implementation of MD2 + * + * See {@link http://tools.ietf.org/html/rfc1319 RFC1319}. + * + * @access private + * @param String $text + */ + function _md2($m) + { + static $s = array( + 41, 46, 67, 201, 162, 216, 124, 1, 61, 54, 84, 161, 236, 240, 6, + 19, 98, 167, 5, 243, 192, 199, 115, 140, 152, 147, 43, 217, 188, + 76, 130, 202, 30, 155, 87, 60, 253, 212, 224, 22, 103, 66, 111, 24, + 138, 23, 229, 18, 190, 78, 196, 214, 218, 158, 222, 73, 160, 251, + 245, 142, 187, 47, 238, 122, 169, 104, 121, 145, 21, 178, 7, 63, + 148, 194, 16, 137, 11, 34, 95, 33, 128, 127, 93, 154, 90, 144, 50, + 39, 53, 62, 204, 231, 191, 247, 151, 3, 255, 25, 48, 179, 72, 165, + 181, 209, 215, 94, 146, 42, 172, 86, 170, 198, 79, 184, 56, 210, + 150, 164, 125, 182, 118, 252, 107, 226, 156, 116, 4, 241, 69, 157, + 112, 89, 100, 113, 135, 32, 134, 91, 207, 101, 230, 45, 168, 2, 27, + 96, 37, 173, 174, 176, 185, 246, 28, 70, 97, 105, 52, 64, 126, 15, + 85, 71, 163, 35, 221, 81, 175, 58, 195, 92, 249, 206, 186, 197, + 234, 38, 44, 83, 13, 110, 133, 40, 132, 9, 211, 223, 205, 244, 65, + 129, 77, 82, 106, 220, 55, 200, 108, 193, 171, 250, 36, 225, 123, + 8, 12, 189, 177, 74, 120, 136, 149, 139, 227, 99, 232, 109, 233, + 203, 213, 254, 59, 0, 29, 57, 242, 239, 183, 14, 102, 88, 208, 228, + 166, 119, 114, 248, 235, 117, 75, 10, 49, 68, 80, 180, 143, 237, + 31, 26, 219, 153, 141, 51, 159, 17, 131, 20 + ); + + // Step 1. Append Padding Bytes + $pad = 16 - (strlen($m) & 0xF); + $m.= str_repeat(chr($pad), $pad); + + $length = strlen($m); + + // Step 2. Append Checksum + $c = str_repeat(chr(0), 16); + $l = chr(0); + for ($i = 0; $i < $length; $i+= 16) { + for ($j = 0; $j < 16; $j++) { + $c[$j] = chr($s[ord($m[$i + $j] ^ $l)]); + $l = $c[$j]; + } + } + $m.= $c; + + $length+= 16; + + // Step 3. Initialize MD Buffer + $x = str_repeat(chr(0), 48); + + // Step 4. Process Message in 16-Byte Blocks + for ($i = 0; $i < $length; $i+= 16) { + for ($j = 0; $j < 16; $j++) { + $x[$j + 16] = $m[$i + $j]; + $x[$j + 32] = $x[$j + 16] ^ $x[$j]; + } + $t = chr(0); + for ($j = 0; $j < 18; $j++) { + for ($k = 0; $k < 48; $k++) { + $x[$k] = $t = $x[$k] ^ chr($s[ord($t)]); + //$t = $x[$k] = $x[$k] ^ chr($s[ord($t)]); + } + $t = chr(ord($t) + $j); + } + } + + // Step 5. Output + return substr($x, 0, 16); + } + + /** + * Pure-PHP implementation of SHA256 + * + * See {@link http://en.wikipedia.org/wiki/SHA_hash_functions#SHA-256_.28a_SHA-2_variant.29_pseudocode SHA-256 (a SHA-2 variant) pseudocode - Wikipedia}. + * + * @access private + * @param String $text + */ + function _sha256($m) + { + if (extension_loaded('suhosin')) { + return pack('H*', sha256($m)); + } + + // Initialize variables + $hash = array( + 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19 + ); + // Initialize table of round constants + // (first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311) + static $k = array( + 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, + 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, + 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, + 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, + 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, + 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, + 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 + ); + + // Pre-processing + $length = strlen($m); + // to round to nearest 56 mod 64, we'll add 64 - (length + (64 - 56)) % 64 + $m.= str_repeat(chr(0), 64 - (($length + 8) & 0x3F)); + $m[$length] = chr(0x80); + // we don't support hashing strings 512MB long + $m.= pack('N2', 0, $length << 3); + + // Process the message in successive 512-bit chunks + $chunks = str_split($m, 64); + foreach ($chunks as $chunk) { + $w = array(); + for ($i = 0; $i < 16; $i++) { + extract(unpack('Ntemp', $this->_string_shift($chunk, 4))); + $w[] = $temp; + } + + // Extend the sixteen 32-bit words into sixty-four 32-bit words + for ($i = 16; $i < 64; $i++) { + $s0 = $this->_rightRotate($w[$i - 15], 7) ^ + $this->_rightRotate($w[$i - 15], 18) ^ + $this->_rightShift( $w[$i - 15], 3); + $s1 = $this->_rightRotate($w[$i - 2], 17) ^ + $this->_rightRotate($w[$i - 2], 19) ^ + $this->_rightShift( $w[$i - 2], 10); + $w[$i] = $this->_add($w[$i - 16], $s0, $w[$i - 7], $s1); + + } + + // Initialize hash value for this chunk + list($a, $b, $c, $d, $e, $f, $g, $h) = $hash; + + // Main loop + for ($i = 0; $i < 64; $i++) { + $s0 = $this->_rightRotate($a, 2) ^ + $this->_rightRotate($a, 13) ^ + $this->_rightRotate($a, 22); + $maj = ($a & $b) ^ + ($a & $c) ^ + ($b & $c); + $t2 = $this->_add($s0, $maj); + + $s1 = $this->_rightRotate($e, 6) ^ + $this->_rightRotate($e, 11) ^ + $this->_rightRotate($e, 25); + $ch = ($e & $f) ^ + ($this->_not($e) & $g); + $t1 = $this->_add($h, $s1, $ch, $k[$i], $w[$i]); + + $h = $g; + $g = $f; + $f = $e; + $e = $this->_add($d, $t1); + $d = $c; + $c = $b; + $b = $a; + $a = $this->_add($t1, $t2); + } + + // Add this chunk's hash to result so far + $hash = array( + $this->_add($hash[0], $a), + $this->_add($hash[1], $b), + $this->_add($hash[2], $c), + $this->_add($hash[3], $d), + $this->_add($hash[4], $e), + $this->_add($hash[5], $f), + $this->_add($hash[6], $g), + $this->_add($hash[7], $h) + ); + } + + // Produce the final hash value (big-endian) + return pack('N8', $hash[0], $hash[1], $hash[2], $hash[3], $hash[4], $hash[5], $hash[6], $hash[7]); + } + + /** + * Pure-PHP implementation of SHA384 and SHA512 + * + * @access private + * @param String $text + */ + function _sha512($m) + { + if (!class_exists('Math_BigInteger')) { + require_once('Math/BigInteger.php'); + } + + static $init384, $init512, $k; + + if (!isset($k)) { + // Initialize variables + $init384 = array( // initial values for SHA384 + 'cbbb9d5dc1059ed8', '629a292a367cd507', '9159015a3070dd17', '152fecd8f70e5939', + '67332667ffc00b31', '8eb44a8768581511', 'db0c2e0d64f98fa7', '47b5481dbefa4fa4' + ); + $init512 = array( // initial values for SHA512 + '6a09e667f3bcc908', 'bb67ae8584caa73b', '3c6ef372fe94f82b', 'a54ff53a5f1d36f1', + '510e527fade682d1', '9b05688c2b3e6c1f', '1f83d9abfb41bd6b', '5be0cd19137e2179' + ); + + for ($i = 0; $i < 8; $i++) { + $init384[$i] = new Math_BigInteger($init384[$i], 16); + $init384[$i]->setPrecision(64); + $init512[$i] = new Math_BigInteger($init512[$i], 16); + $init512[$i]->setPrecision(64); + } + + // Initialize table of round constants + // (first 64 bits of the fractional parts of the cube roots of the first 80 primes 2..409) + $k = array( + '428a2f98d728ae22', '7137449123ef65cd', 'b5c0fbcfec4d3b2f', 'e9b5dba58189dbbc', + '3956c25bf348b538', '59f111f1b605d019', '923f82a4af194f9b', 'ab1c5ed5da6d8118', + 'd807aa98a3030242', '12835b0145706fbe', '243185be4ee4b28c', '550c7dc3d5ffb4e2', + '72be5d74f27b896f', '80deb1fe3b1696b1', '9bdc06a725c71235', 'c19bf174cf692694', + 'e49b69c19ef14ad2', 'efbe4786384f25e3', '0fc19dc68b8cd5b5', '240ca1cc77ac9c65', + '2de92c6f592b0275', '4a7484aa6ea6e483', '5cb0a9dcbd41fbd4', '76f988da831153b5', + '983e5152ee66dfab', 'a831c66d2db43210', 'b00327c898fb213f', 'bf597fc7beef0ee4', + 'c6e00bf33da88fc2', 'd5a79147930aa725', '06ca6351e003826f', '142929670a0e6e70', + '27b70a8546d22ffc', '2e1b21385c26c926', '4d2c6dfc5ac42aed', '53380d139d95b3df', + '650a73548baf63de', '766a0abb3c77b2a8', '81c2c92e47edaee6', '92722c851482353b', + 'a2bfe8a14cf10364', 'a81a664bbc423001', 'c24b8b70d0f89791', 'c76c51a30654be30', + 'd192e819d6ef5218', 'd69906245565a910', 'f40e35855771202a', '106aa07032bbd1b8', + '19a4c116b8d2d0c8', '1e376c085141ab53', '2748774cdf8eeb99', '34b0bcb5e19b48a8', + '391c0cb3c5c95a63', '4ed8aa4ae3418acb', '5b9cca4f7763e373', '682e6ff3d6b2b8a3', + '748f82ee5defb2fc', '78a5636f43172f60', '84c87814a1f0ab72', '8cc702081a6439ec', + '90befffa23631e28', 'a4506cebde82bde9', 'bef9a3f7b2c67915', 'c67178f2e372532b', + 'ca273eceea26619c', 'd186b8c721c0c207', 'eada7dd6cde0eb1e', 'f57d4f7fee6ed178', + '06f067aa72176fba', '0a637dc5a2c898a6', '113f9804bef90dae', '1b710b35131c471b', + '28db77f523047d84', '32caab7b40c72493', '3c9ebe0a15c9bebc', '431d67c49c100d4c', + '4cc5d4becb3e42b6', '597f299cfc657e2a', '5fcb6fab3ad6faec', '6c44198c4a475817' + ); + + for ($i = 0; $i < 80; $i++) { + $k[$i] = new Math_BigInteger($k[$i], 16); + } + } + + $hash = $this->l == 48 ? $init384 : $init512; + + // Pre-processing + $length = strlen($m); + // to round to nearest 112 mod 128, we'll add 128 - (length + (128 - 112)) % 128 + $m.= str_repeat(chr(0), 128 - (($length + 16) & 0x7F)); + $m[$length] = chr(0x80); + // we don't support hashing strings 512MB long + $m.= pack('N4', 0, 0, 0, $length << 3); + + // Process the message in successive 1024-bit chunks + $chunks = str_split($m, 128); + foreach ($chunks as $chunk) { + $w = array(); + for ($i = 0; $i < 16; $i++) { + $temp = new Math_BigInteger($this->_string_shift($chunk, 8), 256); + $temp->setPrecision(64); + $w[] = $temp; + } + + // Extend the sixteen 32-bit words into eighty 32-bit words + for ($i = 16; $i < 80; $i++) { + $temp = array( + $w[$i - 15]->bitwise_rightRotate(1), + $w[$i - 15]->bitwise_rightRotate(8), + $w[$i - 15]->bitwise_rightShift(7) + ); + $s0 = $temp[0]->bitwise_xor($temp[1]); + $s0 = $s0->bitwise_xor($temp[2]); + $temp = array( + $w[$i - 2]->bitwise_rightRotate(19), + $w[$i - 2]->bitwise_rightRotate(61), + $w[$i - 2]->bitwise_rightShift(6) + ); + $s1 = $temp[0]->bitwise_xor($temp[1]); + $s1 = $s1->bitwise_xor($temp[2]); + $w[$i] = $w[$i - 16]->copy(); + $w[$i] = $w[$i]->add($s0); + $w[$i] = $w[$i]->add($w[$i - 7]); + $w[$i] = $w[$i]->add($s1); + } + + // Initialize hash value for this chunk + $a = $hash[0]->copy(); + $b = $hash[1]->copy(); + $c = $hash[2]->copy(); + $d = $hash[3]->copy(); + $e = $hash[4]->copy(); + $f = $hash[5]->copy(); + $g = $hash[6]->copy(); + $h = $hash[7]->copy(); + + // Main loop + for ($i = 0; $i < 80; $i++) { + $temp = array( + $a->bitwise_rightRotate(28), + $a->bitwise_rightRotate(34), + $a->bitwise_rightRotate(39) + ); + $s0 = $temp[0]->bitwise_xor($temp[1]); + $s0 = $s0->bitwise_xor($temp[2]); + $temp = array( + $a->bitwise_and($b), + $a->bitwise_and($c), + $b->bitwise_and($c) + ); + $maj = $temp[0]->bitwise_xor($temp[1]); + $maj = $maj->bitwise_xor($temp[2]); + $t2 = $s0->add($maj); + + $temp = array( + $e->bitwise_rightRotate(14), + $e->bitwise_rightRotate(18), + $e->bitwise_rightRotate(41) + ); + $s1 = $temp[0]->bitwise_xor($temp[1]); + $s1 = $s1->bitwise_xor($temp[2]); + $temp = array( + $e->bitwise_and($f), + $g->bitwise_and($e->bitwise_not()) + ); + $ch = $temp[0]->bitwise_xor($temp[1]); + $t1 = $h->add($s1); + $t1 = $t1->add($ch); + $t1 = $t1->add($k[$i]); + $t1 = $t1->add($w[$i]); + + $h = $g->copy(); + $g = $f->copy(); + $f = $e->copy(); + $e = $d->add($t1); + $d = $c->copy(); + $c = $b->copy(); + $b = $a->copy(); + $a = $t1->add($t2); + } + + // Add this chunk's hash to result so far + $hash = array( + $hash[0]->add($a), + $hash[1]->add($b), + $hash[2]->add($c), + $hash[3]->add($d), + $hash[4]->add($e), + $hash[5]->add($f), + $hash[6]->add($g), + $hash[7]->add($h) + ); + } + + // Produce the final hash value (big-endian) + // (Crypt_Hash::hash() trims the output for hashes but not for HMACs. as such, we trim the output here) + $temp = $hash[0]->toBytes() . $hash[1]->toBytes() . $hash[2]->toBytes() . $hash[3]->toBytes() . + $hash[4]->toBytes() . $hash[5]->toBytes(); + if ($this->l != 48) { + $temp.= $hash[6]->toBytes() . $hash[7]->toBytes(); + } + + return $temp; + } + + /** + * Right Rotate + * + * @access private + * @param Integer $int + * @param Integer $amt + * @see _sha256() + * @return Integer + */ + function _rightRotate($int, $amt) + { + $invamt = 32 - $amt; + $mask = (1 << $invamt) - 1; + return (($int << $invamt) & 0xFFFFFFFF) | (($int >> $amt) & $mask); + } + + /** + * Right Shift + * + * @access private + * @param Integer $int + * @param Integer $amt + * @see _sha256() + * @return Integer + */ + function _rightShift($int, $amt) + { + $mask = (1 << (32 - $amt)) - 1; + return ($int >> $amt) & $mask; + } + + /** + * Not + * + * @access private + * @param Integer $int + * @see _sha256() + * @return Integer + */ + function _not($int) + { + return ~$int & 0xFFFFFFFF; + } + + /** + * Add + * + * _sha256() adds multiple unsigned 32-bit integers. Since PHP doesn't support unsigned integers and since the + * possibility of overflow exists, care has to be taken. Math_BigInteger() could be used but this should be faster. + * + * @param String $string + * @param optional Integer $index + * @return String + * @see _sha256() + * @access private + */ + function _add() + { + static $mod; + if (!isset($mod)) { + $mod = pow(2, 32); + } + + $result = 0; + $arguments = func_get_args(); + foreach ($arguments as $argument) { + $result+= $argument < 0 ? ($argument & 0x7FFFFFFF) + 0x80000000 : $argument; + } + + return fmod($result, $mod); + } + + /** + * String Shift + * + * Inspired by array_shift + * + * @param String $string + * @param optional Integer $index + * @return String + * @access private + */ + function _string_shift(&$string, $index = 1) + { + $substr = substr($string, 0, $index); + $string = substr($string, $index); + return $substr; + } +} \ No newline at end of file diff --git a/plugins/OStatus/extlib/Crypt/RC4.php b/plugins/OStatus/extlib/Crypt/RC4.php new file mode 100644 index 000000000..6f82b2413 --- /dev/null +++ b/plugins/OStatus/extlib/Crypt/RC4.php @@ -0,0 +1,493 @@ + + * setKey('abcdefgh'); + * + * $size = 10 * 1024; + * $plaintext = ''; + * for ($i = 0; $i < $size; $i++) { + * $plaintext.= 'a'; + * } + * + * echo $rc4->decrypt($rc4->encrypt($plaintext)); + * ?> + * + * + * LICENSE: This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * @category Crypt + * @package Crypt_RC4 + * @author Jim Wigginton + * @copyright MMVII Jim Wigginton + * @license http://www.gnu.org/licenses/lgpl.txt + * @version $Id: RC4.php,v 1.8 2009/06/09 04:00:38 terrafrost Exp $ + * @link http://phpseclib.sourceforge.net + */ + +/**#@+ + * @access private + * @see Crypt_RC4::Crypt_RC4() + */ +/** + * Toggles the internal implementation + */ +define('CRYPT_RC4_MODE_INTERNAL', 1); +/** + * Toggles the mcrypt implementation + */ +define('CRYPT_RC4_MODE_MCRYPT', 2); +/**#@-*/ + +/**#@+ + * @access private + * @see Crypt_RC4::_crypt() + */ +define('CRYPT_RC4_ENCRYPT', 0); +define('CRYPT_RC4_DECRYPT', 1); +/**#@-*/ + +/** + * Pure-PHP implementation of RC4. + * + * @author Jim Wigginton + * @version 0.1.0 + * @access public + * @package Crypt_RC4 + */ +class Crypt_RC4 { + /** + * The Key + * + * @see Crypt_RC4::setKey() + * @var String + * @access private + */ + var $key = "\0"; + + /** + * The Key Stream for encryption + * + * If CRYPT_RC4_MODE == CRYPT_RC4_MODE_MCRYPT, this will be equal to the mcrypt object + * + * @see Crypt_RC4::setKey() + * @var Array + * @access private + */ + var $encryptStream = false; + + /** + * The Key Stream for decryption + * + * If CRYPT_RC4_MODE == CRYPT_RC4_MODE_MCRYPT, this will be equal to the mcrypt object + * + * @see Crypt_RC4::setKey() + * @var Array + * @access private + */ + var $decryptStream = false; + + /** + * The $i and $j indexes for encryption + * + * @see Crypt_RC4::_crypt() + * @var Integer + * @access private + */ + var $encryptIndex = 0; + + /** + * The $i and $j indexes for decryption + * + * @see Crypt_RC4::_crypt() + * @var Integer + * @access private + */ + var $decryptIndex = 0; + + /** + * MCrypt parameters + * + * @see Crypt_RC4::setMCrypt() + * @var Array + * @access private + */ + var $mcrypt = array('', ''); + + /** + * The Encryption Algorithm + * + * Only used if CRYPT_RC4_MODE == CRYPT_RC4_MODE_MCRYPT. Only possible values are MCRYPT_RC4 or MCRYPT_ARCFOUR. + * + * @see Crypt_RC4::Crypt_RC4() + * @var Integer + * @access private + */ + var $mode; + + /** + * Default Constructor. + * + * Determines whether or not the mcrypt extension should be used. + * + * @param optional Integer $mode + * @return Crypt_RC4 + * @access public + */ + function Crypt_RC4() + { + if ( !defined('CRYPT_RC4_MODE') ) { + switch (true) { + case extension_loaded('mcrypt') && (defined('MCRYPT_ARCFOUR') || defined('MCRYPT_RC4')): + // i'd check to see if rc4 was supported, by doing in_array('arcfour', mcrypt_list_algorithms('')), + // but since that can be changed after the object has been created, there doesn't seem to be + // a lot of point... + define('CRYPT_RC4_MODE', CRYPT_RC4_MODE_MCRYPT); + break; + default: + define('CRYPT_RC4_MODE', CRYPT_RC4_MODE_INTERNAL); + } + } + + switch ( CRYPT_RC4_MODE ) { + case CRYPT_RC4_MODE_MCRYPT: + switch (true) { + case defined('MCRYPT_ARCFOUR'): + $this->mode = MCRYPT_ARCFOUR; + break; + case defined('MCRYPT_RC4'); + $this->mode = MCRYPT_RC4; + } + } + } + + /** + * Sets the key. + * + * Keys can be between 1 and 256 bytes long. If they are longer then 256 bytes, the first 256 bytes will + * be used. If no key is explicitly set, it'll be assumed to be a single null byte. + * + * @access public + * @param String $key + */ + function setKey($key) + { + $this->key = $key; + + if ( CRYPT_RC4_MODE == CRYPT_RC4_MODE_MCRYPT ) { + return; + } + + $keyLength = strlen($key); + $keyStream = array(); + for ($i = 0; $i < 256; $i++) { + $keyStream[$i] = $i; + } + $j = 0; + for ($i = 0; $i < 256; $i++) { + $j = ($j + $keyStream[$i] + ord($key[$i % $keyLength])) & 255; + $temp = $keyStream[$i]; + $keyStream[$i] = $keyStream[$j]; + $keyStream[$j] = $temp; + } + + $this->encryptIndex = $this->decryptIndex = array(0, 0); + $this->encryptStream = $this->decryptStream = $keyStream; + } + + /** + * Dummy function. + * + * Some protocols, such as WEP, prepend an "initialization vector" to the key, effectively creating a new key [1]. + * If you need to use an initialization vector in this manner, feel free to prepend it to the key, yourself, before + * calling setKey(). + * + * [1] WEP's initialization vectors (IV's) are used in a somewhat insecure way. Since, in that protocol, + * the IV's are relatively easy to predict, an attack described by + * {@link http://www.drizzle.com/~aboba/IEEE/rc4_ksaproc.pdf Scott Fluhrer, Itsik Mantin, and Adi Shamir} + * can be used to quickly guess at the rest of the key. The following links elaborate: + * + * {@link http://www.rsa.com/rsalabs/node.asp?id=2009 http://www.rsa.com/rsalabs/node.asp?id=2009} + * {@link http://en.wikipedia.org/wiki/Related_key_attack http://en.wikipedia.org/wiki/Related_key_attack} + * + * @param String $iv + * @see Crypt_RC4::setKey() + * @access public + */ + function setIV($iv) + { + } + + /** + * Sets MCrypt parameters. (optional) + * + * If MCrypt is being used, empty strings will be used, unless otherwise specified. + * + * @link http://php.net/function.mcrypt-module-open#function.mcrypt-module-open + * @access public + * @param optional Integer $algorithm_directory + * @param optional Integer $mode_directory + */ + function setMCrypt($algorithm_directory = '', $mode_directory = '') + { + if ( CRYPT_RC4_MODE == CRYPT_RC4_MODE_MCRYPT ) { + $this->mcrypt = array($algorithm_directory, $mode_directory); + $this->_closeMCrypt(); + } + } + + /** + * Encrypts a message. + * + * @see Crypt_RC4::_crypt() + * @access public + * @param String $plaintext + */ + function encrypt($plaintext) + { + return $this->_crypt($plaintext, CRYPT_RC4_ENCRYPT); + } + + /** + * Decrypts a message. + * + * $this->decrypt($this->encrypt($plaintext)) == $this->encrypt($this->encrypt($plaintext)). + * Atleast if the continuous buffer is disabled. + * + * @see Crypt_RC4::_crypt() + * @access public + * @param String $ciphertext + */ + function decrypt($ciphertext) + { + return $this->_crypt($ciphertext, CRYPT_RC4_DECRYPT); + } + + /** + * Encrypts or decrypts a message. + * + * @see Crypt_RC4::encrypt() + * @see Crypt_RC4::decrypt() + * @access private + * @param String $text + * @param Integer $mode + */ + function _crypt($text, $mode) + { + if ( CRYPT_RC4_MODE == CRYPT_RC4_MODE_MCRYPT ) { + $keyStream = $mode == CRYPT_RC4_ENCRYPT ? 'encryptStream' : 'decryptStream'; + + if ($this->$keyStream === false) { + $this->$keyStream = mcrypt_module_open($this->mode, $this->mcrypt[0], MCRYPT_MODE_STREAM, $this->mcrypt[1]); + mcrypt_generic_init($this->$keyStream, $this->key, ''); + } else if (!$this->continuousBuffer) { + mcrypt_generic_init($this->$keyStream, $this->key, ''); + } + $newText = mcrypt_generic($this->$keyStream, $text); + if (!$this->continuousBuffer) { + mcrypt_generic_deinit($this->$keyStream); + } + + return $newText; + } + + if ($this->encryptStream === false) { + $this->setKey($this->key); + } + + switch ($mode) { + case CRYPT_RC4_ENCRYPT: + $keyStream = $this->encryptStream; + list($i, $j) = $this->encryptIndex; + break; + case CRYPT_RC4_DECRYPT: + $keyStream = $this->decryptStream; + list($i, $j) = $this->decryptIndex; + } + + $newText = ''; + for ($k = 0; $k < strlen($text); $k++) { + $i = ($i + 1) & 255; + $j = ($j + $keyStream[$i]) & 255; + $temp = $keyStream[$i]; + $keyStream[$i] = $keyStream[$j]; + $keyStream[$j] = $temp; + $temp = $keyStream[($keyStream[$i] + $keyStream[$j]) & 255]; + $newText.= chr(ord($text[$k]) ^ $temp); + } + + if ($this->continuousBuffer) { + switch ($mode) { + case CRYPT_RC4_ENCRYPT: + $this->encryptStream = $keyStream; + $this->encryptIndex = array($i, $j); + break; + case CRYPT_RC4_DECRYPT: + $this->decryptStream = $keyStream; + $this->decryptIndex = array($i, $j); + } + } + + return $newText; + } + + /** + * Treat consecutive "packets" as if they are a continuous buffer. + * + * Say you have a 16-byte plaintext $plaintext. Using the default behavior, the two following code snippets + * will yield different outputs: + * + * + * echo $rc4->encrypt(substr($plaintext, 0, 8)); + * echo $rc4->encrypt(substr($plaintext, 8, 8)); + * + * + * echo $rc4->encrypt($plaintext); + * + * + * The solution is to enable the continuous buffer. Although this will resolve the above discrepancy, it creates + * another, as demonstrated with the following: + * + * + * $rc4->encrypt(substr($plaintext, 0, 8)); + * echo $rc4->decrypt($des->encrypt(substr($plaintext, 8, 8))); + * + * + * echo $rc4->decrypt($des->encrypt(substr($plaintext, 8, 8))); + * + * + * With the continuous buffer disabled, these would yield the same output. With it enabled, they yield different + * outputs. The reason is due to the fact that the initialization vector's change after every encryption / + * decryption round when the continuous buffer is enabled. When it's disabled, they remain constant. + * + * Put another way, when the continuous buffer is enabled, the state of the Crypt_DES() object changes after each + * encryption / decryption round, whereas otherwise, it'd remain constant. For this reason, it's recommended that + * continuous buffers not be used. They do offer better security and are, in fact, sometimes required (SSH uses them), + * however, they are also less intuitive and more likely to cause you problems. + * + * @see Crypt_RC4::disableContinuousBuffer() + * @access public + */ + function enableContinuousBuffer() + { + $this->continuousBuffer = true; + } + + /** + * Treat consecutive packets as if they are a discontinuous buffer. + * + * The default behavior. + * + * @see Crypt_RC4::enableContinuousBuffer() + * @access public + */ + function disableContinuousBuffer() + { + if ( CRYPT_RC4_MODE == CRYPT_RC4_MODE_INTERNAL ) { + $this->encryptIndex = $this->decryptIndex = array(0, 0); + $this->setKey($this->key); + } + + $this->continuousBuffer = false; + } + + /** + * Dummy function. + * + * Since RC4 is a stream cipher and not a block cipher, no padding is necessary. The only reason this function is + * included is so that you can switch between a block cipher and a stream cipher transparently. + * + * @see Crypt_RC4::disablePadding() + * @access public + */ + function enablePadding() + { + } + + /** + * Dummy function. + * + * @see Crypt_RC4::enablePadding() + * @access public + */ + function disablePadding() + { + } + + /** + * Class destructor. + * + * Will be called, automatically, if you're using PHP5. If you're using PHP4, call it yourself. Only really + * needs to be called if mcrypt is being used. + * + * @access public + */ + function __destruct() + { + if ( CRYPT_RC4_MODE == CRYPT_RC4_MODE_MCRYPT ) { + $this->_closeMCrypt(); + } + } + + /** + * Properly close the MCrypt objects. + * + * @access prviate + */ + function _closeMCrypt() + { + if ( $this->encryptStream !== false ) { + if ( $this->continuousBuffer ) { + mcrypt_generic_deinit($this->encryptStream); + } + + mcrypt_module_close($this->encryptStream); + + $this->encryptStream = false; + } + + if ( $this->decryptStream !== false ) { + if ( $this->continuousBuffer ) { + mcrypt_generic_deinit($this->decryptStream); + } + + mcrypt_module_close($this->decryptStream); + + $this->decryptStream = false; + } + } +} \ No newline at end of file diff --git a/plugins/OStatus/extlib/Crypt/RSA.php b/plugins/OStatus/extlib/Crypt/RSA.php new file mode 100644 index 000000000..b9a4e23eb --- /dev/null +++ b/plugins/OStatus/extlib/Crypt/RSA.php @@ -0,0 +1,1929 @@ + + * createKey()); + * + * $plaintext = 'terrafrost'; + * + * $rsa->loadKey($privatekey); + * $ciphertext = $rsa->encrypt($plaintext); + * + * $rsa->loadKey($publickey); + * echo $rsa->decrypt($ciphertext); + * ?> + * + * + * Here's an example of how to create signatures and verify signatures with this library: + * + * createKey()); + * + * $plaintext = 'terrafrost'; + * + * $rsa->loadKey($privatekey); + * $signature = $rsa->sign($plaintext); + * + * $rsa->loadKey($publickey); + * echo $rsa->verify($plaintext, $signature) ? 'verified' : 'unverified'; + * ?> + * + * + * LICENSE: This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * @category Crypt + * @package Crypt_RSA + * @author Jim Wigginton + * @copyright MMIX Jim Wigginton + * @license http://www.gnu.org/licenses/lgpl.txt + * @version $Id: RSA.php,v 1.3 2009/12/04 21:05:32 terrafrost Exp $ + * @link http://phpseclib.sourceforge.net + */ + +/** + * Include Math_BigInteger + */ +require_once('Math/BigInteger.php'); + +/** + * Include Crypt_Random + */ +require_once('Crypt/Random.php'); + +/** + * Include Crypt_Hash + */ +require_once('Crypt/Hash.php'); + +/**#@+ + * @access public + * @see Crypt_RSA::encrypt() + * @see Crypt_RSA::decrypt() + */ +/** + * Use {@link http://en.wikipedia.org/wiki/Optimal_Asymmetric_Encryption_Padding Optimal Asymmetric Encryption Padding} + * (OAEP) for encryption / decryption. + * + * Uses sha1 by default. + * + * @see Crypt_RSA::setHash() + * @see Crypt_RSA::setMGFHash() + */ +define('CRYPT_RSA_ENCRYPTION_OAEP', 1); +/** + * Use PKCS#1 padding. + * + * Although CRYPT_RSA_ENCRYPTION_OAEP offers more security, including PKCS#1 padding is necessary for purposes of backwards + * compatability with protocols (like SSH-1) written before OAEP's introduction. + */ +define('CRYPT_RSA_ENCRYPTION_PKCS1', 2); +/**#@-*/ + +/**#@+ + * @access public + * @see Crypt_RSA::sign() + * @see Crypt_RSA::verify() + * @see Crypt_RSA::setHash() + */ +/** + * Use the Probabilistic Signature Scheme for signing + * + * Uses sha1 by default. + * + * @see Crypt_RSA::setSaltLength() + * @see Crypt_RSA::setMGFHash() + */ +define('CRYPT_RSA_SIGNATURE_PSS', 1); +/** + * Use the PKCS#1 scheme by default. + * + * Although CRYPT_RSA_SIGNATURE_PSS offers more security, including PKCS#1 signing is necessary for purposes of backwards + * compatability with protocols (like SSH-2) written before PSS's introduction. + */ +define('CRYPT_RSA_SIGNATURE_PKCS1', 2); +/**#@-*/ + +/**#@+ + * @access private + * @see Crypt_RSA::createKey() + */ +/** + * ASN1 Integer + */ +define('CRYPT_RSA_ASN1_INTEGER', 2); +/** + * ASN1 Sequence (with the constucted bit set) + */ +define('CRYPT_RSA_ASN1_SEQUENCE', 48); +/**#@-*/ + +/**#@+ + * @access private + * @see Crypt_RSA::Crypt_RSA() + */ +/** + * To use the pure-PHP implementation + */ +define('CRYPT_RSA_MODE_INTERNAL', 1); +/** + * To use the OpenSSL library + * + * (if enabled; otherwise, the internal implementation will be used) + */ +define('CRYPT_RSA_MODE_OPENSSL', 2); +/**#@-*/ + +/**#@+ + * @access public + * @see Crypt_RSA::createKey() + * @see Crypt_RSA::setPrivateKeyFormat() + */ +/** + * PKCS#1 formatted private key + * + * Used by OpenSSH + */ +define('CRYPT_RSA_PRIVATE_FORMAT_PKCS1', 0); +/**#@-*/ + +/**#@+ + * @access public + * @see Crypt_RSA::createKey() + * @see Crypt_RSA::setPublicKeyFormat() + */ +/** + * Raw public key + * + * An array containing two Math_BigInteger objects. + * + * The exponent can be indexed with any of the following: + * + * 0, e, exponent, publicExponent + * + * The modulus can be indexed with any of the following: + * + * 1, n, modulo, modulus + */ +define('CRYPT_RSA_PUBLIC_FORMAT_RAW', 1); +/** + * PKCS#1 formatted public key + */ +define('CRYPT_RSA_PUBLIC_FORMAT_PKCS1', 2); +/** + * OpenSSH formatted public key + * + * Place in $HOME/.ssh/authorized_keys + */ +define('CRYPT_RSA_PUBLIC_FORMAT_OPENSSH', 3); +/**#@-*/ + +/** + * Pure-PHP PKCS#1 compliant implementation of RSA. + * + * @author Jim Wigginton + * @version 0.1.0 + * @access public + * @package Crypt_RSA + */ +class Crypt_RSA { + /** + * Precomputed Zero + * + * @var Array + * @access private + */ + var $zero; + + /** + * Precomputed One + * + * @var Array + * @access private + */ + var $one; + + /** + * Private Key Format + * + * @var Integer + * @access private + */ + var $privateKeyFormat = CRYPT_RSA_PRIVATE_FORMAT_PKCS1; + + /** + * Public Key Format + * + * @var Integer + * @access public + */ + var $publicKeyFormat = CRYPT_RSA_PUBLIC_FORMAT_PKCS1; + + /** + * Modulus (ie. n) + * + * @var Math_BigInteger + * @access private + */ + var $modulus; + + /** + * Modulus length + * + * @var Math_BigInteger + * @access private + */ + var $k; + + /** + * Exponent (ie. e or d) + * + * @var Math_BigInteger + * @access private + */ + var $exponent; + + /** + * Primes for Chinese Remainder Theorem (ie. p and q) + * + * @var Array + * @access private + */ + var $primes; + + /** + * Exponents for Chinese Remainder Theorem (ie. dP and dQ) + * + * @var Array + * @access private + */ + var $exponents; + + /** + * Coefficients for Chinese Remainder Theorem (ie. qInv) + * + * @var Array + * @access private + */ + var $coefficients; + + /** + * Hash name + * + * @var String + * @access private + */ + var $hashName; + + /** + * Hash function + * + * @var Crypt_Hash + * @access private + */ + var $hash; + + /** + * Length of hash function output + * + * @var Integer + * @access private + */ + var $hLen; + + /** + * Length of salt + * + * @var Integer + * @access private + */ + var $sLen; + + /** + * Hash function for the Mask Generation Function + * + * @var Crypt_Hash + * @access private + */ + var $mgfHash; + + /** + * Encryption mode + * + * @var Integer + * @access private + */ + var $encryptionMode = CRYPT_RSA_ENCRYPTION_OAEP; + + /** + * Signature mode + * + * @var Integer + * @access private + */ + var $signatureMode = CRYPT_RSA_SIGNATURE_PSS; + + /** + * Public Exponent + * + * @var Mixed + * @access private + */ + var $publicExponent = false; + + /** + * Password + * + * @var String + * @access private + */ + var $password = ''; + + /** + * The constructor + * + * If you want to make use of the openssl extension, you'll need to set the mode manually, yourself. The reason + * Crypt_RSA doesn't do it is because OpenSSL doesn't fail gracefully. openssl_pkey_new(), in particular, requires + * openssl.cnf be present somewhere and, unfortunately, the only real way to find out is too late. + * + * @return Crypt_RSA + * @access public + */ + function Crypt_RSA() + { + if ( !defined('CRYPT_RSA_MODE') ) { + switch (true) { + //case extension_loaded('openssl') && version_compare(PHP_VERSION, '4.2.0', '>='): + // define('CRYPT_RSA_MODE', CRYPT_RSA_MODE_OPENSSL); + // break; + default: + define('CRYPT_RSA_MODE', CRYPT_RSA_MODE_INTERNAL); + } + } + + $this->zero = new Math_BigInteger(); + $this->one = new Math_BigInteger(1); + + $this->hash = new Crypt_Hash('sha1'); + $this->hLen = $this->hash->getLength(); + $this->hashName = 'sha1'; + $this->mgfHash = new Crypt_Hash('sha1'); + } + + /** + * Create public / private key pair + * + * Returns an array with the following three elements: + * - 'privatekey': The private key. + * - 'publickey': The public key. + * - 'partialkey': A partially computed key (if the execution time exceeded $timeout). + * Will need to be passed back to Crypt_RSA::createKey() as the third parameter for further processing. + * + * @access public + * @param optional Integer $bits + * @param optional Integer $timeout + * @param optional Math_BigInteger $p + */ + function createKey($bits = 1024, $timeout = false, $primes = array()) + { + if ( CRYPT_RSA_MODE == CRYPT_RSA_MODE_OPENSSL ) { + $rsa = openssl_pkey_new(array('private_key_bits' => $bits)); + openssl_pkey_export($rsa, $privatekey); + $publickey = openssl_pkey_get_details($rsa); + $publickey = $publickey['key']; + + if ($this->privateKeyFormat != CRYPT_RSA_PRIVATE_FORMAT_PKCS1) { + $privatekey = call_user_func_array(array($this, '_convertPrivateKey'), array_values($this->_parseKey($privatekey, CRYPT_RSA_PRIVATE_FORMAT_PKCS1))); + $publickey = call_user_func_array(array($this, '_convertPublicKey'), array_values($this->_parseKey($publickey, CRYPT_RSA_PUBLIC_FORMAT_PKCS1))); + } + + return array( + 'privatekey' => $privatekey, + 'publickey' => $publickey, + 'partialkey' => false + ); + } + + static $e; + if (!isset($e)) { + if (!defined('CRYPT_RSA_EXPONENT')) { + // http://en.wikipedia.org/wiki/65537_%28number%29 + define('CRYPT_RSA_EXPONENT', '65537'); + } + if (!defined('CRYPT_RSA_COMMENT')) { + define('CRYPT_RSA_COMMENT', 'phpseclib-generated-key'); + } + // per , this number ought not result in primes smaller + // than 256 bits. + if (!defined('CRYPT_RSA_SMALLEST_PRIME')) { + define('CRYPT_RSA_SMALLEST_PRIME', 4096); + } + + $e = new Math_BigInteger(CRYPT_RSA_EXPONENT); + } + + extract($this->_generateMinMax($bits)); + $absoluteMin = $min; + $temp = $bits >> 1; + if ($temp > CRYPT_RSA_SMALLEST_PRIME) { + $num_primes = floor($bits / CRYPT_RSA_SMALLEST_PRIME); + $temp = CRYPT_RSA_SMALLEST_PRIME; + } else { + $num_primes = 2; + } + extract($this->_generateMinMax($temp + $bits % $temp)); + $finalMax = $max; + extract($this->_generateMinMax($temp)); + + $exponents = $coefficients = array(); + $generator = new Math_BigInteger(); + $generator->setRandomGenerator('crypt_random'); + + $n = $this->one->copy(); + $lcm = array( + 'top' => $this->one->copy(), + 'bottom' => false + ); + + $start = time(); + $i0 = count($primes) + 1; + + do { + for ($i = $i0; $i <= $num_primes; $i++) { + if ($timeout !== false) { + $timeout-= time() - $start; + $start = time(); + if ($timeout <= 0) { + return array( + 'privatekey' => '', + 'publickey' => '', + 'partialkey' => $primes + ); + } + } + if ($i == $num_primes) { + list($min, $temp) = $absoluteMin->divide($n); + if (!$temp->equals($this->zero)) { + $min = $min->add($this->one); // ie. ceil() + } + $primes[$i] = $generator->randomPrime($min, $finalMax, $timeout); + } else { + $primes[$i] = $generator->randomPrime($min, $max, $timeout); + } + + if ($primes[$i] === false) { // if we've reached the timeout + return array( + 'privatekey' => '', + 'publickey' => '', + 'partialkey' => array_slice($primes, 0, $i - 1) + ); + } + + // the first coefficient is calculated differently from the rest + // ie. instead of being $primes[1]->modInverse($primes[2]), it's $primes[2]->modInverse($primes[1]) + if ($i > 2) { + $coefficients[$i] = $n->modInverse($primes[$i]); + } + + $n = $n->multiply($primes[$i]); + + $temp = $primes[$i]->subtract($this->one); + + // textbook RSA implementations use Euler's totient function instead of the least common multiple. + // see http://en.wikipedia.org/wiki/Euler%27s_totient_function + $lcm['top'] = $lcm['top']->multiply($temp); + $lcm['bottom'] = $lcm['bottom'] === false ? $temp : $lcm['bottom']->gcd($temp); + + $exponents[$i] = $e->modInverse($temp); + } + + list($lcm) = $lcm['top']->divide($lcm['bottom']); + $gcd = $lcm->gcd($e); + $i0 = 1; + } while (!$gcd->equals($this->one)); + + $d = $e->modInverse($lcm); + + $coefficients[2] = $primes[2]->modInverse($primes[1]); + + // from : + // RSAPrivateKey ::= SEQUENCE { + // version Version, + // modulus INTEGER, -- n + // publicExponent INTEGER, -- e + // privateExponent INTEGER, -- d + // prime1 INTEGER, -- p + // prime2 INTEGER, -- q + // exponent1 INTEGER, -- d mod (p-1) + // exponent2 INTEGER, -- d mod (q-1) + // coefficient INTEGER, -- (inverse of q) mod p + // otherPrimeInfos OtherPrimeInfos OPTIONAL + // } + + return array( + 'privatekey' => $this->_convertPrivateKey($n, $e, $d, $primes, $exponents, $coefficients), + 'publickey' => $this->_convertPublicKey($n, $e), + 'partialkey' => false + ); + } + + /** + * Convert a private key to the appropriate format. + * + * @access private + * @see setPrivateKeyFormat() + * @param String $RSAPrivateKey + * @return String + */ + function _convertPrivateKey($n, $e, $d, $primes, $exponents, $coefficients) + { + $num_primes = count($primes); + + $raw = array( + 'version' => $num_primes == 2 ? chr(0) : chr(1), // two-prime vs. multi + 'modulus' => $n->toBytes(true), + 'publicExponent' => $e->toBytes(true), + 'privateExponent' => $d->toBytes(true), + 'prime1' => $primes[1]->toBytes(true), + 'prime2' => $primes[2]->toBytes(true), + 'exponent1' => $exponents[1]->toBytes(true), + 'exponent2' => $exponents[2]->toBytes(true), + 'coefficient' => $coefficients[2]->toBytes(true) + ); + + // if the format in question does not support multi-prime rsa and multi-prime rsa was used, + // call _convertPublicKey() instead. + switch ($this->privateKeyFormat) { + default: // eg. CRYPT_RSA_PRIVATE_FORMAT_PKCS1 + $components = array(); + foreach ($raw as $name => $value) { + $components[$name] = pack('Ca*a*', CRYPT_RSA_ASN1_INTEGER, $this->_encodeLength(strlen($value)), $value); + } + + $RSAPrivateKey = implode('', $components); + + if ($num_primes > 2) { + $OtherPrimeInfos = ''; + for ($i = 3; $i <= $num_primes; $i++) { + // OtherPrimeInfos ::= SEQUENCE SIZE(1..MAX) OF OtherPrimeInfo + // + // OtherPrimeInfo ::= SEQUENCE { + // prime INTEGER, -- ri + // exponent INTEGER, -- di + // coefficient INTEGER -- ti + // } + $OtherPrimeInfo = pack('Ca*a*', CRYPT_RSA_ASN1_INTEGER, $this->_encodeLength(strlen($primes[$i]->toBytes(true))), $primes[$i]->toBytes(true)); + $OtherPrimeInfo.= pack('Ca*a*', CRYPT_RSA_ASN1_INTEGER, $this->_encodeLength(strlen($exponents[$i]->toBytes(true))), $exponents[$i]->toBytes(true)); + $OtherPrimeInfo.= pack('Ca*a*', CRYPT_RSA_ASN1_INTEGER, $this->_encodeLength(strlen($coefficients[$i]->toBytes(true))), $coefficients[$i]->toBytes(true)); + $OtherPrimeInfos.= pack('Ca*a*', CRYPT_RSA_ASN1_SEQUENCE, $this->_encodeLength(strlen($OtherPrimeInfo)), $OtherPrimeInfo); + } + $RSAPrivateKey.= pack('Ca*a*', CRYPT_RSA_ASN1_SEQUENCE, $this->_encodeLength(strlen($OtherPrimeInfos)), $OtherPrimeInfos); + } + + $RSAPrivateKey = pack('Ca*a*', CRYPT_RSA_ASN1_SEQUENCE, $this->_encodeLength(strlen($RSAPrivateKey)), $RSAPrivateKey); + + if (!empty($this->password)) { + $iv = $this->_random(8); + $symkey = pack('H*', md5($this->password . $iv)); // symkey is short for symmetric key + $symkey.= substr(pack('H*', md5($symkey . $this->password . $iv)), 0, 8); + if (!class_exists('Crypt_TripleDES')) { + require_once('Crypt/TripleDES.php'); + } + $des = new Crypt_TripleDES(); + $des->setKey($symkey); + $des->setIV($iv); + $iv = strtoupper(bin2hex($iv)); + $RSAPrivateKey = "-----BEGIN RSA PRIVATE KEY-----\r\n" . + "Proc-Type: 4,ENCRYPTED\r\n" . + "DEK-Info: DES-EDE3-CBC,$iv\r\n" . + "\r\n" . + chunk_split(base64_encode($des->encrypt($RSAPrivateKey))) . + '-----END RSA PRIVATE KEY-----'; + } else { + $RSAPrivateKey = "-----BEGIN RSA PRIVATE KEY-----\r\n" . + chunk_split(base64_encode($RSAPrivateKey)) . + '-----END RSA PRIVATE KEY-----'; + } + + return $RSAPrivateKey; + } + } + + /** + * Convert a public key to the appropriate format + * + * @access private + * @see setPublicKeyFormat() + * @param String $RSAPrivateKey + * @return String + */ + function _convertPublicKey($n, $e) + { + $modulus = $n->toBytes(true); + $publicExponent = $e->toBytes(true); + + switch ($this->publicKeyFormat) { + case CRYPT_RSA_PUBLIC_FORMAT_RAW: + return array('e' => $e->copy(), 'n' => $n->copy()); + case CRYPT_RSA_PUBLIC_FORMAT_OPENSSH: + // from : + // string "ssh-rsa" + // mpint e + // mpint n + $RSAPublicKey = pack('Na*Na*Na*', strlen('ssh-rsa'), 'ssh-rsa', strlen($publicExponent), $publicExponent, strlen($modulus), $modulus); + $RSAPublicKey = 'ssh-rsa ' . base64_encode($RSAPublicKey) . ' ' . CRYPT_RSA_COMMENT; + + return $RSAPublicKey; + default: // eg. CRYPT_RSA_PUBLIC_FORMAT_PKCS1 + // from : + // RSAPublicKey ::= SEQUENCE { + // modulus INTEGER, -- n + // publicExponent INTEGER -- e + // } + $components = array( + 'modulus' => pack('Ca*a*', CRYPT_RSA_ASN1_INTEGER, $this->_encodeLength(strlen($modulus)), $modulus), + 'publicExponent' => pack('Ca*a*', CRYPT_RSA_ASN1_INTEGER, $this->_encodeLength(strlen($publicExponent)), $publicExponent) + ); + + $RSAPublicKey = pack('Ca*a*a*', + CRYPT_RSA_ASN1_SEQUENCE, $this->_encodeLength(strlen($components['modulus']) + strlen($components['publicExponent'])), + $components['modulus'], $components['publicExponent'] + ); + + $RSAPublicKey = "-----BEGIN PUBLIC KEY-----\r\n" . + chunk_split(base64_encode($RSAPublicKey)) . + '-----END PUBLIC KEY-----'; + + return $RSAPublicKey; + } + } + + /** + * Break a public or private key down into its constituant components + * + * @access private + * @see _convertPublicKey() + * @see _convertPrivateKey() + * @param String $key + * @param Integer $type + * @return Array + */ + function _parseKey($key, $type) + { + switch ($type) { + case CRYPT_RSA_PUBLIC_FORMAT_RAW: + if (!is_array($key)) { + return false; + } + $components = array(); + switch (true) { + case isset($key['e']): + $components['publicExponent'] = $key['e']->copy(); + break; + case isset($key['exponent']): + $components['publicExponent'] = $key['exponent']->copy(); + break; + case isset($key['publicExponent']): + $components['publicExponent'] = $key['publicExponent']->copy(); + break; + case isset($key[0]): + $components['publicExponent'] = $key[0]->copy(); + } + switch (true) { + case isset($key['n']): + $components['modulus'] = $key['n']->copy(); + break; + case isset($key['modulo']): + $components['modulus'] = $key['modulo']->copy(); + break; + case isset($key['modulus']): + $components['modulus'] = $key['modulus']->copy(); + break; + case isset($key[1]): + $components['modulus'] = $key[1]->copy(); + } + return $components; + case CRYPT_RSA_PRIVATE_FORMAT_PKCS1: + case CRYPT_RSA_PUBLIC_FORMAT_PKCS1: + /* Although PKCS#1 proposes a format that public and private keys can use, encrypting them is + "outside the scope" of PKCS#1. PKCS#1 then refers you to PKCS#12 and PKCS#15 if you're wanting to + protect private keys, however, that's not what OpenSSL* does. OpenSSL protects private keys by adding + two new "fields" to the key - DEK-Info and Proc-Type. These fields are discussed here: + + http://tools.ietf.org/html/rfc1421#section-4.6.1.1 + http://tools.ietf.org/html/rfc1421#section-4.6.1.3 + + DES-EDE3-CBC as an algorithm, however, is not discussed anywhere, near as I can tell. + DES-CBC and DES-EDE are discussed in RFC1423, however, DES-EDE3-CBC isn't, nor is its key derivation + function. As is, the definitive authority on this encoding scheme isn't the IETF but rather OpenSSL's + own implementation. ie. the implementation *is* the standard and any bugs that may exist in that + implementation are part of the standard, as well. + + * OpenSSL is the de facto standard. It's utilized by OpenSSH and other projects */ + if (preg_match('#DEK-Info: DES-EDE3-CBC,(.+)#', $key, $matches)) { + $iv = pack('H*', trim($matches[1])); + $symkey = pack('H*', md5($this->password . $iv)); // symkey is short for symmetric key + $symkey.= substr(pack('H*', md5($symkey . $this->password . $iv)), 0, 8); + $ciphertext = base64_decode(preg_replace('#.+(\r|\n|\r\n)\1|[\r\n]|-.+-#s', '', $key)); + if ($ciphertext === false) { + return false; + } + if (!class_exists('Crypt_TripleDES')) { + require_once('Crypt/TripleDES.php'); + } + $des = new Crypt_TripleDES(); + $des->setKey($symkey); + $des->setIV($iv); + $key = $des->decrypt($ciphertext); + } else { + $key = base64_decode(preg_replace('#-.+-|[\r\n]#', '', $key)); + if ($key === false) { + return false; + } + } + + $private = false; + $components = array(); + + $this->_string_shift($key); // skip over CRYPT_RSA_ASN1_SEQUENCE + $this->_decodeLength($key); // skip over the length of the above sequence + $this->_string_shift($key); // skip over CRYPT_RSA_ASN1_INTEGER + $length = $this->_decodeLength($key); + $temp = $this->_string_shift($key, $length); + if (strlen($temp) != 1 || ord($temp) > 2) { + $components['modulus'] = new Math_BigInteger($temp, -256); + $this->_string_shift($key); // skip over CRYPT_RSA_ASN1_INTEGER + $length = $this->_decodeLength($key); + $components[$type == CRYPT_RSA_PUBLIC_FORMAT_PKCS1 ? 'publicExponent' : 'privateExponent'] = new Math_BigInteger($this->_string_shift($key, $length), -256); + + return $components; + } + $this->_string_shift($key); // skip over CRYPT_RSA_ASN1_INTEGER + $length = $this->_decodeLength($key); + $components['modulus'] = new Math_BigInteger($this->_string_shift($key, $length), -256); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['publicExponent'] = new Math_BigInteger($this->_string_shift($key, $length), -256); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['privateExponent'] = new Math_BigInteger($this->_string_shift($key, $length), -256); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['primes'] = array(1 => new Math_BigInteger($this->_string_shift($key, $length), -256)); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['primes'][] = new Math_BigInteger($this->_string_shift($key, $length), -256); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['exponents'] = array(1 => new Math_BigInteger($this->_string_shift($key, $length), -256)); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['exponents'][] = new Math_BigInteger($this->_string_shift($key, $length), -256); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['coefficients'] = array(2 => new Math_BigInteger($this->_string_shift($key, $length), -256)); + if (!empty($key)) { + $key = substr($key, 1); // skip over CRYPT_RSA_ASN1_SEQUENCE + $this->_decodeLength($key); + while (!empty($key)) { + $key = substr($key, 1); // skip over CRYPT_RSA_ASN1_SEQUENCE + $this->_decodeLength($key); + $key = substr($key, 1); + $length = $this->_decodeLength($key); + $components['primes'][] = new Math_BigInteger($this->_string_shift($key, $length), -256); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['exponents'][] = new Math_BigInteger($this->_string_shift($key, $length), -256); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['coefficients'][] = new Math_BigInteger($this->_string_shift($key, $length), -256); + } + } + + return $components; + case CRYPT_RSA_PUBLIC_FORMAT_OPENSSH: + $key = base64_decode(preg_replace('#^ssh-rsa | .+$#', '', $key)); + if ($key === false) { + return false; + } + + $components = array(); + extract(unpack('Nlength', $this->_string_shift($key, 4))); + $components['modulus'] = new Math_BigInteger($this->_string_shift($key, $length), -256); + extract(unpack('Nlength', $this->_string_shift($key, 4))); + $components['publicExponent'] = new Math_BigInteger($this->_string_shift($key, $length), -256); + + return $components; + } + } + + /** + * Loads a public or private key + * + * @access public + * @param String $key + * @param Integer $type optional + */ + function loadKey($key, $type = CRYPT_RSA_PRIVATE_FORMAT_PKCS1) + { + $components = $this->_parseKey($key, $type); + $this->modulus = $components['modulus']; + $this->k = strlen($this->modulus->toBytes()); + $this->exponent = isset($components['privateExponent']) ? $components['privateExponent'] : $components['publicExponent']; + if (isset($components['primes'])) { + $this->primes = $components['primes']; + $this->exponents = $components['exponents']; + $this->coefficients = $components['coefficients']; + $this->publicExponent = $components['publicExponent']; + } else { + $this->primes = array(); + $this->exponents = array(); + $this->coefficients = array(); + $this->publicExponent = false; + } + } + + /** + * Sets the password + * + * Private keys can be encrypted with a password. To unset the password, pass in the empty string or false. + * Or rather, pass in $password such that empty($password) is true. + * + * @see createKey() + * @see loadKey() + * @access public + * @param String $password + */ + function setPassword($password) + { + $this->password = $password; + } + + /** + * Defines the public key + * + * Some private key formats define the public exponent and some don't. Those that don't define it are problematic when + * used in certain contexts. For example, in SSH-2, RSA authentication works by sending the public key along with a + * message signed by the private key to the server. The SSH-2 server looks the public key up in an index of public keys + * and if it's present then proceeds to verify the signature. Problem is, if your private key doesn't include the public + * exponent this won't work unless you manually add the public exponent. + * + * Do note that when a new key is loaded the index will be cleared. + * + * Returns true on success, false on failure + * + * @see getPublicKey() + * @access public + * @param String $key + * @param Integer $type optional + * @return Boolean + */ + function setPublicKey($key, $type = CRYPT_RSA_PUBLIC_FORMAT_PKCS1) + { + $components = $this->_parseKey($key, $type); + if (!$this->modulus->equals($components['modulus'])) { + return false; + } + $this->publicExponent = $components['publicExponent']; + } + + /** + * Returns the public key + * + * The public key is only returned under two circumstances - if the private key had the public key embedded within it + * or if the public key was set via setPublicKey(). If the currently loaded key is supposed to be the public key this + * function won't return it since this library, for the most part, doesn't distinguish between public and private keys. + * + * @see getPublicKey() + * @access public + * @param String $key + * @param Integer $type optional + */ + function getPublicKey($type = CRYPT_RSA_PUBLIC_FORMAT_PKCS1) + { + $oldFormat = $this->publicKeyFormat; + $this->publicKeyFormat = $type; + $temp = $this->_convertPublicKey($this->modulus, $this->publicExponent); + $this->publicKeyFormat = $oldFormat; + return $temp; + } + + /** + * Generates the smallest and largest numbers requiring $bits bits + * + * @access private + * @param Integer $bits + * @return Array + */ + function _generateMinMax($bits) + { + $bytes = $bits >> 3; + $min = str_repeat(chr(0), $bytes); + $max = str_repeat(chr(0xFF), $bytes); + $msb = $num_bits & 7; + if ($msb) { + $min = chr(1 << ($msb - 1)) . $min; + $max = chr((1 << $msb) - 1) . $max; + } else { + $min[0] = chr(0x80); + } + + return array( + 'min' => new Math_BigInteger($min, 256), + 'max' => new Math_BigInteger($max, 256) + ); + } + + /** + * DER-decode the length + * + * DER supports lengths up to (2**8)**127, however, we'll only support lengths up to (2**8)**4. See + * {@link http://itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#p=13 X.690 8.1.3} for more information. + * + * @access private + * @param String $string + * @return Integer + */ + function _decodeLength(&$string) + { + $length = ord($this->_string_shift($string)); + if ( $length & 0x80 ) { // definite length, long form + $length&= 0x7F; + $temp = $this->_string_shift($string, $length); + $start+= $length; + list(, $length) = unpack('N', substr(str_pad($temp, 4, chr(0), STR_PAD_LEFT), -4)); + } + return $length; + } + + /** + * DER-encode the length + * + * DER supports lengths up to (2**8)**127, however, we'll only support lengths up to (2**8)**4. See + * {@link http://itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#p=13 X.690 8.1.3} for more information. + * + * @access private + * @param Integer $length + * @return String + */ + function _encodeLength($length) + { + if ($length <= 0x7F) { + return chr($length); + } + + $temp = ltrim(pack('N', $length), chr(0)); + return pack('Ca*', 0x80 | strlen($temp), $temp); + } + + /** + * String Shift + * + * Inspired by array_shift + * + * @param String $string + * @param optional Integer $index + * @return String + * @access private + */ + function _string_shift(&$string, $index = 1) + { + $substr = substr($string, 0, $index); + $string = substr($string, $index); + return $substr; + } + + /** + * Determines the private key format + * + * @see createKey() + * @access public + * @param Integer $format + */ + function setPrivateKeyFormat($format) + { + $this->privateKeyFormat = $format; + } + + /** + * Determines the public key format + * + * @see createKey() + * @access public + * @param Integer $format + */ + function setPublicKeyFormat($format) + { + $this->publicKeyFormat = $format; + } + + /** + * Determines which hashing function should be used + * + * Used with signature production / verification and (if the encryption mode is CRYPT_RSA_ENCRYPTION_OAEP) encryption and + * decryption. If $hash isn't supported, sha1 is used. + * + * @access public + * @param String $hash + */ + function setHash($hash) + { + // Crypt_Hash supports algorithms that PKCS#1 doesn't support. md5-96 and sha1-96, for example. + switch ($hash) { + case 'md2': + case 'md5': + case 'sha1': + case 'sha256': + case 'sha384': + case 'sha512': + $this->hash = new Crypt_Hash($hash); + $this->hLen = $this->hash->getLength(); + $this->hashName = $hash; + break; + default: + $this->hash = new Crypt_Hash('sha1'); + $this->hLen = $this->hash->getLength(); + $this->hashName = 'sha1'; + } + } + + /** + * Determines which hashing function should be used for the mask generation function + * + * The mask generation function is used by CRYPT_RSA_ENCRYPTION_OAEP and CRYPT_RSA_SIGNATURE_PSS and although it's + * best if Hash and MGFHash are set to the same thing this is not a requirement. + * + * @access public + * @param String $hash + */ + function setMGFHash($hash) + { + // Crypt_Hash supports algorithms that PKCS#1 doesn't support. md5-96 and sha1-96, for example. + switch ($hash) { + case 'md2': + case 'md5': + case 'sha1': + case 'sha256': + case 'sha384': + case 'sha512': + $this->mgfHash = new Crypt_Hash($hash); + break; + default: + $this->mgfHash = new Crypt_Hash('sha1'); + } + } + + /** + * Determines the salt length + * + * To quote from {@link http://tools.ietf.org/html/rfc3447#page-38 RFC3447#page-38}: + * + * Typical salt lengths in octets are hLen (the length of the output + * of the hash function Hash) and 0. + * + * @access public + * @param Integer $format + */ + function setSaltLength($sLen) + { + $this->sLen = $sLen; + } + + /** + * Generates a random string x bytes long + * + * @access public + * @param Integer $bytes + * @param optional Integer $nonzero + * @return String + */ + function _random($bytes, $nonzero = false) + { + $temp = ''; + if ($nonzero) { + for ($i = 0; $i < $bytes; $i++) { + $temp.= chr(crypt_random(1, 255)); + } + } else { + $ints = ($bytes + 1) >> 2; + for ($i = 0; $i < $ints; $i++) { + $temp.= pack('N', crypt_random()); + } + $temp = substr($temp, 0, $bytes); + } + return $temp; + } + + /** + * Integer-to-Octet-String primitive + * + * See {@link http://tools.ietf.org/html/rfc3447#section-4.1 RFC3447#section-4.1}. + * + * @access private + * @param Math_BigInteger $x + * @param Integer $xLen + * @return String + */ + function _i2osp($x, $xLen) + { + $x = $x->toBytes(); + if (strlen($x) > $xLen) { + user_error('Integer too large', E_USER_NOTICE); + return false; + } + return str_pad($x, $xLen, chr(0), STR_PAD_LEFT); + } + + /** + * Octet-String-to-Integer primitive + * + * See {@link http://tools.ietf.org/html/rfc3447#section-4.2 RFC3447#section-4.2}. + * + * @access private + * @param String $x + * @return Math_BigInteger + */ + function _os2ip($x) + { + return new Math_BigInteger($x, 256); + } + + /** + * Exponentiate with or without Chinese Remainder Theorem + * + * See {@link http://tools.ietf.org/html/rfc3447#section-5.1.1 RFC3447#section-5.1.2}. + * + * @access private + * @param Math_BigInteger $x + * @return Math_BigInteger + */ + function _exponentiate($x) + { + if (empty($this->primes) || empty($this->coefficients) || empty($this->exponents)) { + return $x->modPow($this->exponent, $this->modulus); + } + + $num_primes = count($this->primes); + $m_i = array( + 1 => $x->modPow($this->exponents[1], $this->primes[1]), + 2 => $x->modPow($this->exponents[2], $this->primes[2]) + ); + $h = $m_i[1]->subtract($m_i[2]); + $h = $h->multiply($this->coefficients[2]); + list(, $h) = $h->divide($this->primes[1]); + $m = $m_i[2]->add($h->multiply($this->primes[2])); + + $r = $this->primes[1]; + for ($i = 3; $i <= $num_primes; $i++) { + $m_i = $x->modPow($this->exponents[$i], $this->primes[$i]); + + $r = $r->multiply($this->primes[$i - 1]); + + $h = $m_i->subtract($m); + $h = $h->multiply($this->coefficients[$i]); + list(, $h) = $h->divide($this->primes[$i]); + + $m = $m->add($r->multiply($h)); + } + + return $m; + } + + /** + * RSAEP + * + * See {@link http://tools.ietf.org/html/rfc3447#section-5.1.1 RFC3447#section-5.1.1}. + * + * @access private + * @param Math_BigInteger $m + * @return Math_BigInteger + */ + function _rsaep($m) + { + if ($m->compare($this->zero) < 0 || $m->compare($this->modulus) > 0) { + user_error('Message representative out of range', E_USER_NOTICE); + return false; + } + return $this->_exponentiate($m); + } + + /** + * RSADP + * + * See {@link http://tools.ietf.org/html/rfc3447#section-5.1.2 RFC3447#section-5.1.2}. + * + * @access private + * @param Math_BigInteger $c + * @return Math_BigInteger + */ + function _rsadp($c) + { + if ($c->compare($this->zero) < 0 || $c->compare($this->modulus) > 0) { + user_error('Ciphertext representative out of range', E_USER_NOTICE); + return false; + } + return $this->_exponentiate($c); + } + + /** + * RSASP1 + * + * See {@link http://tools.ietf.org/html/rfc3447#section-5.2.1 RFC3447#section-5.2.1}. + * + * @access private + * @param Math_BigInteger $m + * @return Math_BigInteger + */ + function _rsasp1($m) + { + if ($m->compare($this->zero) < 0 || $m->compare($this->modulus) > 0) { + user_error('Message representative out of range', E_USER_NOTICE); + return false; + } + return $this->_exponentiate($m); + } + + /** + * RSAVP1 + * + * See {@link http://tools.ietf.org/html/rfc3447#section-5.2.2 RFC3447#section-5.2.2}. + * + * @access private + * @param Math_BigInteger $s + * @return Math_BigInteger + */ + function _rsavp1($s) + { + if ($s->compare($this->zero) < 0 || $s->compare($this->modulus) > 0) { + user_error('Signature representative out of range', E_USER_NOTICE); + return false; + } + return $this->_exponentiate($s); + } + + /** + * MGF1 + * + * See {@link http://tools.ietf.org/html/rfc3447#section-B.2.1 RFC3447#section-B.2.1}. + * + * @access private + * @param String $mgfSeed + * @param Integer $mgfLen + * @return String + */ + function _mgf1($mgfSeed, $maskLen) + { + // if $maskLen would yield strings larger than 4GB, PKCS#1 suggests a "Mask too long" error be output. + + $t = ''; + $count = ceil($maskLen / $this->hLen); + for ($i = 0; $i < $count; $i++) { + $c = pack('N', $i); + $t.= $this->mgfHash->hash($mgfSeed . $c); + } + + return substr($t, 0, $maskLen); + } + + /** + * RSAES-OAEP-ENCRYPT + * + * See {@link http://tools.ietf.org/html/rfc3447#section-7.1.1 RFC3447#section-7.1.1} and + * {http://en.wikipedia.org/wiki/Optimal_Asymmetric_Encryption_Padding OAES}. + * + * @access private + * @param String $m + * @param String $l + * @return String + */ + function _rsaes_oaep_encrypt($m, $l = '') + { + $mLen = strlen($m); + + // Length checking + + // if $l is larger than two million terrabytes and you're using sha1, PKCS#1 suggests a "Label too long" error + // be output. + + if ($mLen > $this->k - 2 * $this->hLen - 2) { + user_error('Message too long', E_USER_NOTICE); + return false; + } + + // EME-OAEP encoding + + $lHash = $this->hash->hash($l); + $ps = str_repeat(chr(0), $this->k - $mLen - 2 * $this->hLen - 2); + $db = $lHash . $ps . chr(1) . $m; + $seed = $this->_random($this->hLen); + $dbMask = $this->_mgf1($seed, $this->k - $this->hLen - 1); + $maskedDB = $db ^ $dbMask; + $seedMask = $this->_mgf1($maskedDB, $this->hLen); + $maskedSeed = $seed ^ $seedMask; + $em = chr(0) . $maskedSeed . $maskedDB; + + // RSA encryption + + $m = $this->_os2ip($em); + $c = $this->_rsaep($m); + $c = $this->_i2osp($c, $this->k); + + // Output the ciphertext C + + return $c; + } + + /** + * RSAES-OAEP-DECRYPT + * + * See {@link http://tools.ietf.org/html/rfc3447#section-7.1.2 RFC3447#section-7.1.2}. The fact that the error + * messages aren't distinguishable from one another hinders debugging, but, to quote from RFC3447#section-7.1.2: + * + * Note. Care must be taken to ensure that an opponent cannot + * distinguish the different error conditions in Step 3.g, whether by + * error message or timing, or, more generally, learn partial + * information about the encoded message EM. Otherwise an opponent may + * be able to obtain useful information about the decryption of the + * ciphertext C, leading to a chosen-ciphertext attack such as the one + * observed by Manger [36]. + * + * As for $l... to quote from {@link http://tools.ietf.org/html/rfc3447#page-17 RFC3447#page-17}: + * + * Both the encryption and the decryption operations of RSAES-OAEP take + * the value of a label L as input. In this version of PKCS #1, L is + * the empty string; other uses of the label are outside the scope of + * this document. + * + * @access private + * @param String $c + * @param String $l + * @return String + */ + function _rsaes_oaep_decrypt($c, $l = '') + { + // Length checking + + // if $l is larger than two million terrabytes and you're using sha1, PKCS#1 suggests a "Label too long" error + // be output. + + if (strlen($c) != $this->k || $this->k < 2 * $this->hLen + 2) { + user_error('Decryption error', E_USER_NOTICE); + return false; + } + + // RSA decryption + + $c = $this->_os2ip($c); + $m = $this->_rsadp($c); + if ($m === false) { + user_error('Decryption error', E_USER_NOTICE); + return false; + } + $em = $this->_i2osp($m, $this->k); + + // EME-OAEP decoding + + $lHash = $this->hash->hash($l); + $y = ord($em[0]); + $maskedSeed = substr($em, 1, $this->hLen); + $maskedDB = substr($em, $this->hLen + 1); + $seedMask = $this->_mgf1($maskedDB, $this->hLen); + $seed = $maskedSeed ^ $seedMask; + $dbMask = $this->_mgf1($seed, $this->k - $this->hLen - 1); + $db = $maskedDB ^ $dbMask; + $lHash2 = substr($db, 0, $this->hLen); + $m = substr($db, $this->hLen); + if ($lHash != $lHash2) { + user_error('Decryption error', E_USER_NOTICE); + return false; + } + $m = ltrim($m, chr(0)); + if (ord($m[0]) != 1) { + user_error('Decryption error', E_USER_NOTICE); + return false; + } + + // Output the message M + + return substr($m, 1); + } + + /** + * RSAES-PKCS1-V1_5-ENCRYPT + * + * See {@link http://tools.ietf.org/html/rfc3447#section-7.2.1 RFC3447#section-7.2.1}. + * + * @access private + * @param String $m + * @return String + */ + function _rsaes_pkcs1_v1_5_encrypt($m) + { + $mLen = strlen($m); + + // Length checking + + if ($mLen > $this->k - 11) { + user_error('Message too long', E_USER_NOTICE); + return false; + } + + // EME-PKCS1-v1_5 encoding + + $ps = $this->_random($this->k - $mLen - 3, true); + $em = chr(0) . chr(2) . $ps . chr(0) . $m; + + // RSA encryption + $m = $this->_os2ip($em); + $c = $this->_rsaep($m); + $c = $this->_i2osp($c, $this->k); + + // Output the ciphertext C + + return $c; + } + + /** + * RSAES-PKCS1-V1_5-DECRYPT + * + * See {@link http://tools.ietf.org/html/rfc3447#section-7.2.2 RFC3447#section-7.2.2}. + * + * @access private + * @param String $c + * @return String + */ + function _rsaes_pkcs1_v1_5_decrypt($c) + { + // Length checking + + if (strlen($c) != $this->k) { // or if k < 11 + user_error('Decryption error', E_USER_NOTICE); + return false; + } + + // RSA decryption + + $c = $this->_os2ip($c); + $m = $this->_rsadp($c); + if ($m === false) { + user_error('Decryption error', E_USER_NOTICE); + return false; + } + $em = $this->_i2osp($m, $this->k); + + // EME-PKCS1-v1_5 decoding + + if (ord($em[0]) != 0 || ord($em[1]) != 2) { + user_error('Decryption error', E_USER_NOTICE); + return false; + } + + $ps = substr($em, 2, strpos($em, chr(0), 2) - 2); + $m = substr($em, strlen($ps) + 3); + + if (strlen($ps) < 8) { + user_error('Decryption error', E_USER_NOTICE); + return false; + } + + // Output M + + return $m; + } + + /** + * EMSA-PSS-ENCODE + * + * See {@link http://tools.ietf.org/html/rfc3447#section-9.1.1 RFC3447#section-9.1.1}. + * + * @access private + * @param String $m + * @param Integer $emBits + */ + function _emsa_pss_encode($m, $emBits) + { + // if $m is larger than two million terrabytes and you're using sha1, PKCS#1 suggests a "Label too long" error + // be output. + + $emLen = ($emBits + 1) >> 3; // ie. ceil($emBits / 8) + $sLen = $this->sLen == false ? $this->hLen : $this->sLen; + + $mHash = $this->hash->hash($m); + if ($emLen < $this->hLen + $sLen + 2) { + user_error('Encoding error', E_USER_NOTICE); + return false; + } + + $salt = $this->_random($sLen); + $m2 = "\0\0\0\0\0\0\0\0" . $mHash . $salt; + $h = $this->hash->hash($m2); + $ps = str_repeat(chr(0), $emLen - $sLen - $this->hLen - 2); + $db = $ps . chr(1) . $salt; + $dbMask = $this->_mgf1($h, $emLen - $this->hLen - 1); + $maskedDB = $db ^ $dbMask; + $maskedDB[0] = ~chr(0xFF << ($emBits & 7)) & $maskedDB[0]; + $em = $maskedDB . $h . chr(0xBC); + + return $em; + } + + /** + * EMSA-PSS-VERIFY + * + * See {@link http://tools.ietf.org/html/rfc3447#section-9.1.2 RFC3447#section-9.1.2}. + * + * @access private + * @param String $m + * @param String $em + * @param Integer $emBits + * @return String + */ + function _emsa_pss_verify($m, $em, $emBits) + { + // if $m is larger than two million terrabytes and you're using sha1, PKCS#1 suggests a "Label too long" error + // be output. + + $emLen = ($emBits + 1) >> 3; // ie. ceil($emBits / 8); + $sLen = $this->sLen == false ? $this->hLen : $this->sLen; + + $mHash = $this->hash->hash($m); + if ($emLen < $this->hLen + $sLen + 2) { + return false; + } + + if ($em[strlen($em) - 1] != chr(0xBC)) { + return false; + } + + $maskedDB = substr($em, 0, $em - $this->hLen - 1); + $h = substr($em, $em - $this->hLen - 1, $this->hLen); + $temp = chr(0xFF << ($emBits & 7)); + if ((~$maskedDB[0] & $temp) != $temp) { + return false; + } + $dbMask = $this->_mgf1($h, $emLen - $this->hLen - 1); + $db = $maskedDB ^ $dbMask; + $db[0] = ~chr(0xFF << ($emBits & 7)) & $db[0]; + $temp = $emLen - $this->hLen - $sLen - 2; + if (substr($db, 0, $temp) != str_repeat(chr(0), $temp) || ord($db[$temp]) != 1) { + return false; + } + $salt = substr($db, $temp + 1); // should be $sLen long + $m2 = "\0\0\0\0\0\0\0\0" . $mHash . $salt; + $h2 = $this->hash->hash($m2); + return $h == $h2; + } + + /** + * RSASSA-PSS-SIGN + * + * See {@link http://tools.ietf.org/html/rfc3447#section-8.1.1 RFC3447#section-8.1.1}. + * + * @access private + * @param String $m + * @return String + */ + function _rsassa_pss_sign($m) + { + // EMSA-PSS encoding + + $em = $this->_emsa_pss_encode($m, 8 * $this->k - 1); + + // RSA signature + + $m = $this->_os2ip($em); + $s = $this->_rsasp1($m); + $s = $this->_i2osp($s, $this->k); + + // Output the signature S + + return $s; + } + + /** + * RSASSA-PSS-VERIFY + * + * See {@link http://tools.ietf.org/html/rfc3447#section-8.1.2 RFC3447#section-8.1.2}. + * + * @access private + * @param String $m + * @param String $s + * @return String + */ + function _rsassa_pss_verify($m, $s) + { + // Length checking + + if (strlen($s) != $this->k) { + user_error('Invalid signature', E_USER_NOTICE); + return false; + } + + // RSA verification + + $modBits = 8 * $this->k; + + $s2 = $this->_os2ip($s); + $m2 = $this->_rsavp1($s2); + if ($m2 === false) { + user_error('Invalid signature', E_USER_NOTICE); + return false; + } + $em = $this->_i2osp($m2, $modBits >> 3); + if ($em === false) { + user_error('Invalid signature', E_USER_NOTICE); + return false; + } + + // EMSA-PSS verification + + return $this->_emsa_pss_verify($m, $em, $modBits - 1); + } + + /** + * EMSA-PKCS1-V1_5-ENCODE + * + * See {@link http://tools.ietf.org/html/rfc3447#section-9.2 RFC3447#section-9.2}. + * + * @access private + * @param String $m + * @param Integer $emLen + * @return String + */ + function _emsa_pkcs1_v1_5_encode($m, $emLen) + { + $h = $this->hash->hash($m); + if ($h === false) { + return false; + } + + // see http://tools.ietf.org/html/rfc3447#page-43 + switch ($this->hashName) { + case 'md2': + $t = pack('H*', '3020300c06082a864886f70d020205000410'); + break; + case 'md5': + $t = pack('H*', '3020300c06082a864886f70d020505000410'); + break; + case 'sha1': + $t = pack('H*', '3021300906052b0e03021a05000414'); + break; + case 'sha256': + $t = pack('H*', '3031300d060960864801650304020105000420'); + break; + case 'sha384': + $t = pack('H*', '3041300d060960864801650304020205000430'); + break; + case 'sha512': + $t = pack('H*', '3051300d060960864801650304020305000440'); + } + $t.= $h; + $tLen = strlen($t); + + if ($emLen < $tLen + 11) { + user_error('Intended encoded message length too short', E_USER_NOTICE); + return false; + } + + $ps = str_repeat(chr(0xFF), $emLen - $tLen - 3); + + $em = "\0\1$ps\0$t"; + + return $em; + } + + /** + * RSASSA-PKCS1-V1_5-SIGN + * + * See {@link http://tools.ietf.org/html/rfc3447#section-8.2.1 RFC3447#section-8.2.1}. + * + * @access private + * @param String $m + * @return String + */ + function _rsassa_pkcs1_v1_5_sign($m) + { + // EMSA-PKCS1-v1_5 encoding + + $em = $this->_emsa_pkcs1_v1_5_encode($m, $this->k); + if ($em === false) { + user_error('RSA modulus too short', E_USER_NOTICE); + return false; + } + + // RSA signature + + $m = $this->_os2ip($em); + $s = $this->_rsasp1($m); + $s = $this->_i2osp($s, $this->k); + + // Output the signature S + + return $s; + } + + /** + * RSASSA-PKCS1-V1_5-VERIFY + * + * See {@link http://tools.ietf.org/html/rfc3447#section-8.2.2 RFC3447#section-8.2.2}. + * + * @access private + * @param String $m + * @return String + */ + function _rsassa_pkcs1_v1_5_verify($m, $s) + { + // Length checking + + if (strlen($s) != $this->k) { + user_error('Invalid signature', E_USER_NOTICE); + return false; + } + + // RSA verification + + $s = $this->_os2ip($s); + $m2 = $this->_rsavp1($s); + if ($m2 === false) { + user_error('Invalid signature', E_USER_NOTICE); + return false; + } + $em = $this->_i2osp($m2, $this->k); + if ($em === false) { + user_error('Invalid signature', E_USER_NOTICE); + return false; + } + + // EMSA-PKCS1-v1_5 encoding + + $em2 = $this->_emsa_pkcs1_v1_5_encode($m, $this->k); + if ($em2 === false) { + user_error('RSA modulus too short', E_USER_NOTICE); + return false; + } + + // Compare + + return $em == $em2; + } + + /** + * Set Encryption Mode + * + * Valid values include CRYPT_RSA_ENCRYPTION_OAEP and CRYPT_RSA_ENCRYPTION_PKCS1. + * + * @access public + * @param Integer $mode + */ + function setEncryptionMode($mode) + { + $this->encryptionMode = $mode; + } + + /** + * Set Signature Mode + * + * Valid values include CRYPT_RSA_SIGNATURE_PSS and CRYPT_RSA_SIGNATURE_PKCS1 + * + * @access public + * @param Integer $mode + */ + function setSignatureMode($mode) + { + $this->signatureMode = $mode; + } + + /** + * Encryption + * + * Both CRYPT_RSA_ENCRYPTION_OAEP and CRYPT_RSA_ENCRYPTION_PKCS1 both place limits on how long $plaintext can be. + * If $plaintext exceeds those limits it will be broken up so that it does and the resultant ciphertext's will + * be concatenated together. + * + * @see decrypt() + * @access public + * @param String $plaintext + * @return String + */ + function encrypt($plaintext) + { + switch ($this->encryptionMode) { + case CRYPT_RSA_ENCRYPTION_PKCS1: + $plaintext = str_split($plaintext, $this->k - 11); + $ciphertext = ''; + foreach ($plaintext as $m) { + $ciphertext.= $this->_rsaes_pkcs1_v1_5_encrypt($m); + } + return $ciphertext; + //case CRYPT_RSA_ENCRYPTION_OAEP: + default: + $plaintext = str_split($plaintext, $this->k - 2 * $this->hLen - 2); + $ciphertext = ''; + foreach ($plaintext as $m) { + $ciphertext.= $this->_rsaes_oaep_encrypt($m); + } + return $ciphertext; + } + } + + /** + * Decryption + * + * @see encrypt() + * @access public + * @param String $plaintext + * @return String + */ + function decrypt($ciphertext) + { + switch ($this->encryptionMode) { + case CRYPT_RSA_ENCRYPTION_PKCS1: + $ciphertext = str_split($ciphertext, $this->k); + $plaintext = ''; + foreach ($ciphertext as $c) { + $temp = $this->_rsaes_pkcs1_v1_5_decrypt($c); + if ($temp === false) { + return false; + } + $plaintext.= $temp; + } + return $plaintext; + //case CRYPT_RSA_ENCRYPTION_OAEP: + default: + $ciphertext = str_split($ciphertext, $this->k); + $plaintext = ''; + foreach ($ciphertext as $c) { + $temp = $this->_rsaes_oaep_decrypt($c); + if ($temp === false) { + return false; + } + $plaintext.= $temp; + } + return $plaintext; + } + } + + /** + * Create a signature + * + * @see verify() + * @access public + * @param String $message + * @return String + */ + function sign($message) + { + switch ($this->signatureMode) { + case CRYPT_RSA_SIGNATURE_PKCS1: + return $this->_rsassa_pkcs1_v1_5_sign($message); + //case CRYPT_RSA_SIGNATURE_PSS: + default: + return $this->_rsassa_pss_sign($message); + } + } + + /** + * Verifies a signature + * + * @see sign() + * @access public + * @param String $message + * @param String $signature + * @return Boolean + */ + function verify($message, $signature) + { + switch ($this->signatureMode) { + case CRYPT_RSA_SIGNATURE_PKCS1: + return $this->_rsassa_pkcs1_v1_5_verify($message, $signature); + //case CRYPT_RSA_SIGNATURE_PSS: + default: + return $this->_rsassa_pss_verify($message, $signature); + } + } +} \ No newline at end of file diff --git a/plugins/OStatus/extlib/Crypt/Random.php b/plugins/OStatus/extlib/Crypt/Random.php new file mode 100644 index 000000000..fbb41074e --- /dev/null +++ b/plugins/OStatus/extlib/Crypt/Random.php @@ -0,0 +1,70 @@ + + * + * + * + * LICENSE: This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * @category Crypt + * @package Crypt_Random + * @author Jim Wigginton + * @copyright MMVII Jim Wigginton + * @license http://www.gnu.org/licenses/lgpl.txt + * @version $Id: Random.php,v 1.4 2008/05/21 05:15:32 terrafrost Exp $ + * @link http://phpseclib.sourceforge.net + */ + +/** + * Generate a random value. Feel free to replace this function with a cryptographically secure PRNG. + * + * @param optional Integer $min + * @param optional Integer $max + * @param optional String $randomness_path + * @return Integer + * @access public + */ +function crypt_random($min = 0, $max = 0x7FFFFFFF, $randomness_path = '/dev/urandom') +{ + static $seeded = false; + + if (!$seeded) { + $seeded = true; + if (file_exists($randomness_path)) { + $fp = fopen($randomness_path, 'r'); + $temp = unpack('Nint', fread($fp, 4)); + mt_srand($temp['int']); + fclose($fp); + } else { + list($sec, $usec) = explode(' ', microtime()); + mt_srand((float) $sec + ((float) $usec * 100000)); + } + } + + return mt_rand($min, $max); +} +?> \ No newline at end of file diff --git a/plugins/OStatus/extlib/Crypt/Rijndael.php b/plugins/OStatus/extlib/Crypt/Rijndael.php new file mode 100644 index 000000000..19bba83f3 --- /dev/null +++ b/plugins/OStatus/extlib/Crypt/Rijndael.php @@ -0,0 +1,1135 @@ + + * setKey('abcdefghijklmnop'); + * + * $size = 10 * 1024; + * $plaintext = ''; + * for ($i = 0; $i < $size; $i++) { + * $plaintext.= 'a'; + * } + * + * echo $rijndael->decrypt($rijndael->encrypt($plaintext)); + * ?> + * + * + * LICENSE: This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * @category Crypt + * @package Crypt_Rijndael + * @author Jim Wigginton + * @copyright MMVIII Jim Wigginton + * @license http://www.gnu.org/licenses/lgpl.txt + * @version $Id: Rijndael.php,v 1.8 2009/11/23 19:06:07 terrafrost Exp $ + * @link http://phpseclib.sourceforge.net + */ + +/**#@+ + * @access public + * @see Crypt_Rijndael::encrypt() + * @see Crypt_Rijndael::decrypt() + */ +/** + * Encrypt / decrypt using the Electronic Code Book mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29 + */ +define('CRYPT_RIJNDAEL_MODE_ECB', 1); +/** + * Encrypt / decrypt using the Code Book Chaining mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29 + */ +define('CRYPT_RIJNDAEL_MODE_CBC', 2); +/**#@-*/ + +/**#@+ + * @access private + * @see Crypt_Rijndael::Crypt_Rijndael() + */ +/** + * Toggles the internal implementation + */ +define('CRYPT_RIJNDAEL_MODE_INTERNAL', 1); +/** + * Toggles the mcrypt implementation + */ +define('CRYPT_RIJNDAEL_MODE_MCRYPT', 2); +/**#@-*/ + +/** + * Pure-PHP implementation of Rijndael. + * + * @author Jim Wigginton + * @version 0.1.0 + * @access public + * @package Crypt_Rijndael + */ +class Crypt_Rijndael { + /** + * The Encryption Mode + * + * @see Crypt_Rijndael::Crypt_Rijndael() + * @var Integer + * @access private + */ + var $mode; + + /** + * The Key + * + * @see Crypt_Rijndael::setKey() + * @var String + * @access private + */ + var $key = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; + + /** + * The Initialization Vector + * + * @see Crypt_Rijndael::setIV() + * @var String + * @access private + */ + var $iv = ''; + + /** + * A "sliding" Initialization Vector + * + * @see Crypt_Rijndael::enableContinuousBuffer() + * @var String + * @access private + */ + var $encryptIV = ''; + + /** + * A "sliding" Initialization Vector + * + * @see Crypt_Rijndael::enableContinuousBuffer() + * @var String + * @access private + */ + var $decryptIV = ''; + + /** + * Continuous Buffer status + * + * @see Crypt_Rijndael::enableContinuousBuffer() + * @var Boolean + * @access private + */ + var $continuousBuffer = false; + + /** + * Padding status + * + * @see Crypt_Rijndael::enablePadding() + * @var Boolean + * @access private + */ + var $padding = true; + + /** + * Does the key schedule need to be (re)calculated? + * + * @see setKey() + * @see setBlockLength() + * @see setKeyLength() + * @var Boolean + * @access private + */ + var $changed = true; + + /** + * Has the key length explicitly been set or should it be derived from the key, itself? + * + * @see setKeyLength() + * @var Boolean + * @access private + */ + var $explicit_key_length = false; + + /** + * The Key Schedule + * + * @see _setup() + * @var Array + * @access private + */ + var $w; + + /** + * The Inverse Key Schedule + * + * @see _setup() + * @var Array + * @access private + */ + var $dw; + + /** + * The Block Length + * + * @see setBlockLength() + * @var Integer + * @access private + * @internal The max value is 32, the min value is 16. All valid values are multiples of 4. Exists in conjunction with + * $Nb because we need this value and not $Nb to pad strings appropriately. + */ + var $block_size = 16; + + /** + * The Block Length divided by 32 + * + * @see setBlockLength() + * @var Integer + * @access private + * @internal The max value is 256 / 32 = 8, the min value is 128 / 32 = 4. Exists in conjunction with $block_size + * because the encryption / decryption / key schedule creation requires this number and not $block_size. We could + * derive this from $block_size or vice versa, but that'd mean we'd have to do multiple shift operations, so in lieu + * of that, we'll just precompute it once. + * + */ + var $Nb = 4; + + /** + * The Key Length + * + * @see setKeyLength() + * @var Integer + * @access private + * @internal The max value is 256 / 8 = 32, the min value is 128 / 8 = 16. Exists in conjunction with $key_size + * because the encryption / decryption / key schedule creation requires this number and not $key_size. We could + * derive this from $key_size or vice versa, but that'd mean we'd have to do multiple shift operations, so in lieu + * of that, we'll just precompute it once. + */ + var $key_size = 16; + + /** + * The Key Length divided by 32 + * + * @see setKeyLength() + * @var Integer + * @access private + * @internal The max value is 256 / 32 = 8, the min value is 128 / 32 = 4 + */ + var $Nk = 4; + + /** + * The Number of Rounds + * + * @var Integer + * @access private + * @internal The max value is 14, the min value is 10. + */ + var $Nr; + + /** + * Shift offsets + * + * @var Array + * @access private + */ + var $c; + + /** + * Precomputed mixColumns table + * + * @see Crypt_Rijndael() + * @var Array + * @access private + */ + var $t0; + + /** + * Precomputed mixColumns table + * + * @see Crypt_Rijndael() + * @var Array + * @access private + */ + var $t1; + + /** + * Precomputed mixColumns table + * + * @see Crypt_Rijndael() + * @var Array + * @access private + */ + var $t2; + + /** + * Precomputed mixColumns table + * + * @see Crypt_Rijndael() + * @var Array + * @access private + */ + var $t3; + + /** + * Precomputed invMixColumns table + * + * @see Crypt_Rijndael() + * @var Array + * @access private + */ + var $dt0; + + /** + * Precomputed invMixColumns table + * + * @see Crypt_Rijndael() + * @var Array + * @access private + */ + var $dt1; + + /** + * Precomputed invMixColumns table + * + * @see Crypt_Rijndael() + * @var Array + * @access private + */ + var $dt2; + + /** + * Precomputed invMixColumns table + * + * @see Crypt_Rijndael() + * @var Array + * @access private + */ + var $dt3; + + /** + * Default Constructor. + * + * Determines whether or not the mcrypt extension should be used. $mode should only, at present, be + * CRYPT_RIJNDAEL_MODE_ECB or CRYPT_RIJNDAEL_MODE_CBC. If not explictly set, CRYPT_RIJNDAEL_MODE_CBC will be used. + * + * @param optional Integer $mode + * @return Crypt_Rijndael + * @access public + */ + function Crypt_Rijndael($mode = CRYPT_RIJNDAEL_MODE_CBC) + { + switch ($mode) { + case CRYPT_RIJNDAEL_MODE_ECB: + case CRYPT_RIJNDAEL_MODE_CBC: + $this->mode = $mode; + break; + default: + $this->mode = CRYPT_RIJNDAEL_MODE_CBC; + } + + // according to (section 5.2.1), + // precomputed tables can be used in the mixColumns phase. in that example, they're assigned t0...t3, so + // those are the names we'll use. + $this->t3 = array( + 0x6363A5C6, 0x7C7C84F8, 0x777799EE, 0x7B7B8DF6, 0xF2F20DFF, 0x6B6BBDD6, 0x6F6FB1DE, 0xC5C55491, + 0x30305060, 0x01010302, 0x6767A9CE, 0x2B2B7D56, 0xFEFE19E7, 0xD7D762B5, 0xABABE64D, 0x76769AEC, + 0xCACA458F, 0x82829D1F, 0xC9C94089, 0x7D7D87FA, 0xFAFA15EF, 0x5959EBB2, 0x4747C98E, 0xF0F00BFB, + 0xADADEC41, 0xD4D467B3, 0xA2A2FD5F, 0xAFAFEA45, 0x9C9CBF23, 0xA4A4F753, 0x727296E4, 0xC0C05B9B, + 0xB7B7C275, 0xFDFD1CE1, 0x9393AE3D, 0x26266A4C, 0x36365A6C, 0x3F3F417E, 0xF7F702F5, 0xCCCC4F83, + 0x34345C68, 0xA5A5F451, 0xE5E534D1, 0xF1F108F9, 0x717193E2, 0xD8D873AB, 0x31315362, 0x15153F2A, + 0x04040C08, 0xC7C75295, 0x23236546, 0xC3C35E9D, 0x18182830, 0x9696A137, 0x05050F0A, 0x9A9AB52F, + 0x0707090E, 0x12123624, 0x80809B1B, 0xE2E23DDF, 0xEBEB26CD, 0x2727694E, 0xB2B2CD7F, 0x75759FEA, + 0x09091B12, 0x83839E1D, 0x2C2C7458, 0x1A1A2E34, 0x1B1B2D36, 0x6E6EB2DC, 0x5A5AEEB4, 0xA0A0FB5B, + 0x5252F6A4, 0x3B3B4D76, 0xD6D661B7, 0xB3B3CE7D, 0x29297B52, 0xE3E33EDD, 0x2F2F715E, 0x84849713, + 0x5353F5A6, 0xD1D168B9, 0x00000000, 0xEDED2CC1, 0x20206040, 0xFCFC1FE3, 0xB1B1C879, 0x5B5BEDB6, + 0x6A6ABED4, 0xCBCB468D, 0xBEBED967, 0x39394B72, 0x4A4ADE94, 0x4C4CD498, 0x5858E8B0, 0xCFCF4A85, + 0xD0D06BBB, 0xEFEF2AC5, 0xAAAAE54F, 0xFBFB16ED, 0x4343C586, 0x4D4DD79A, 0x33335566, 0x85859411, + 0x4545CF8A, 0xF9F910E9, 0x02020604, 0x7F7F81FE, 0x5050F0A0, 0x3C3C4478, 0x9F9FBA25, 0xA8A8E34B, + 0x5151F3A2, 0xA3A3FE5D, 0x4040C080, 0x8F8F8A05, 0x9292AD3F, 0x9D9DBC21, 0x38384870, 0xF5F504F1, + 0xBCBCDF63, 0xB6B6C177, 0xDADA75AF, 0x21216342, 0x10103020, 0xFFFF1AE5, 0xF3F30EFD, 0xD2D26DBF, + 0xCDCD4C81, 0x0C0C1418, 0x13133526, 0xECEC2FC3, 0x5F5FE1BE, 0x9797A235, 0x4444CC88, 0x1717392E, + 0xC4C45793, 0xA7A7F255, 0x7E7E82FC, 0x3D3D477A, 0x6464ACC8, 0x5D5DE7BA, 0x19192B32, 0x737395E6, + 0x6060A0C0, 0x81819819, 0x4F4FD19E, 0xDCDC7FA3, 0x22226644, 0x2A2A7E54, 0x9090AB3B, 0x8888830B, + 0x4646CA8C, 0xEEEE29C7, 0xB8B8D36B, 0x14143C28, 0xDEDE79A7, 0x5E5EE2BC, 0x0B0B1D16, 0xDBDB76AD, + 0xE0E03BDB, 0x32325664, 0x3A3A4E74, 0x0A0A1E14, 0x4949DB92, 0x06060A0C, 0x24246C48, 0x5C5CE4B8, + 0xC2C25D9F, 0xD3D36EBD, 0xACACEF43, 0x6262A6C4, 0x9191A839, 0x9595A431, 0xE4E437D3, 0x79798BF2, + 0xE7E732D5, 0xC8C8438B, 0x3737596E, 0x6D6DB7DA, 0x8D8D8C01, 0xD5D564B1, 0x4E4ED29C, 0xA9A9E049, + 0x6C6CB4D8, 0x5656FAAC, 0xF4F407F3, 0xEAEA25CF, 0x6565AFCA, 0x7A7A8EF4, 0xAEAEE947, 0x08081810, + 0xBABAD56F, 0x787888F0, 0x25256F4A, 0x2E2E725C, 0x1C1C2438, 0xA6A6F157, 0xB4B4C773, 0xC6C65197, + 0xE8E823CB, 0xDDDD7CA1, 0x74749CE8, 0x1F1F213E, 0x4B4BDD96, 0xBDBDDC61, 0x8B8B860D, 0x8A8A850F, + 0x707090E0, 0x3E3E427C, 0xB5B5C471, 0x6666AACC, 0x4848D890, 0x03030506, 0xF6F601F7, 0x0E0E121C, + 0x6161A3C2, 0x35355F6A, 0x5757F9AE, 0xB9B9D069, 0x86869117, 0xC1C15899, 0x1D1D273A, 0x9E9EB927, + 0xE1E138D9, 0xF8F813EB, 0x9898B32B, 0x11113322, 0x6969BBD2, 0xD9D970A9, 0x8E8E8907, 0x9494A733, + 0x9B9BB62D, 0x1E1E223C, 0x87879215, 0xE9E920C9, 0xCECE4987, 0x5555FFAA, 0x28287850, 0xDFDF7AA5, + 0x8C8C8F03, 0xA1A1F859, 0x89898009, 0x0D0D171A, 0xBFBFDA65, 0xE6E631D7, 0x4242C684, 0x6868B8D0, + 0x4141C382, 0x9999B029, 0x2D2D775A, 0x0F0F111E, 0xB0B0CB7B, 0x5454FCA8, 0xBBBBD66D, 0x16163A2C + ); + + $this->dt3 = array( + 0xF4A75051, 0x4165537E, 0x17A4C31A, 0x275E963A, 0xAB6BCB3B, 0x9D45F11F, 0xFA58ABAC, 0xE303934B, + 0x30FA5520, 0x766DF6AD, 0xCC769188, 0x024C25F5, 0xE5D7FC4F, 0x2ACBD7C5, 0x35448026, 0x62A38FB5, + 0xB15A49DE, 0xBA1B6725, 0xEA0E9845, 0xFEC0E15D, 0x2F7502C3, 0x4CF01281, 0x4697A38D, 0xD3F9C66B, + 0x8F5FE703, 0x929C9515, 0x6D7AEBBF, 0x5259DA95, 0xBE832DD4, 0x7421D358, 0xE0692949, 0xC9C8448E, + 0xC2896A75, 0x8E7978F4, 0x583E6B99, 0xB971DD27, 0xE14FB6BE, 0x88AD17F0, 0x20AC66C9, 0xCE3AB47D, + 0xDF4A1863, 0x1A3182E5, 0x51336097, 0x537F4562, 0x6477E0B1, 0x6BAE84BB, 0x81A01CFE, 0x082B94F9, + 0x48685870, 0x45FD198F, 0xDE6C8794, 0x7BF8B752, 0x73D323AB, 0x4B02E272, 0x1F8F57E3, 0x55AB2A66, + 0xEB2807B2, 0xB5C2032F, 0xC57B9A86, 0x3708A5D3, 0x2887F230, 0xBFA5B223, 0x036ABA02, 0x16825CED, + 0xCF1C2B8A, 0x79B492A7, 0x07F2F0F3, 0x69E2A14E, 0xDAF4CD65, 0x05BED506, 0x34621FD1, 0xA6FE8AC4, + 0x2E539D34, 0xF355A0A2, 0x8AE13205, 0xF6EB75A4, 0x83EC390B, 0x60EFAA40, 0x719F065E, 0x6E1051BD, + 0x218AF93E, 0xDD063D96, 0x3E05AEDD, 0xE6BD464D, 0x548DB591, 0xC45D0571, 0x06D46F04, 0x5015FF60, + 0x98FB2419, 0xBDE997D6, 0x4043CC89, 0xD99E7767, 0xE842BDB0, 0x898B8807, 0x195B38E7, 0xC8EEDB79, + 0x7C0A47A1, 0x420FE97C, 0x841EC9F8, 0x00000000, 0x80868309, 0x2BED4832, 0x1170AC1E, 0x5A724E6C, + 0x0EFFFBFD, 0x8538560F, 0xAED51E3D, 0x2D392736, 0x0FD9640A, 0x5CA62168, 0x5B54D19B, 0x362E3A24, + 0x0A67B10C, 0x57E70F93, 0xEE96D2B4, 0x9B919E1B, 0xC0C54F80, 0xDC20A261, 0x774B695A, 0x121A161C, + 0x93BA0AE2, 0xA02AE5C0, 0x22E0433C, 0x1B171D12, 0x090D0B0E, 0x8BC7ADF2, 0xB6A8B92D, 0x1EA9C814, + 0xF1198557, 0x75074CAF, 0x99DDBBEE, 0x7F60FDA3, 0x01269FF7, 0x72F5BC5C, 0x663BC544, 0xFB7E345B, + 0x4329768B, 0x23C6DCCB, 0xEDFC68B6, 0xE4F163B8, 0x31DCCAD7, 0x63851042, 0x97224013, 0xC6112084, + 0x4A247D85, 0xBB3DF8D2, 0xF93211AE, 0x29A16DC7, 0x9E2F4B1D, 0xB230F3DC, 0x8652EC0D, 0xC1E3D077, + 0xB3166C2B, 0x70B999A9, 0x9448FA11, 0xE9642247, 0xFC8CC4A8, 0xF03F1AA0, 0x7D2CD856, 0x3390EF22, + 0x494EC787, 0x38D1C1D9, 0xCAA2FE8C, 0xD40B3698, 0xF581CFA6, 0x7ADE28A5, 0xB78E26DA, 0xADBFA43F, + 0x3A9DE42C, 0x78920D50, 0x5FCC9B6A, 0x7E466254, 0x8D13C2F6, 0xD8B8E890, 0x39F75E2E, 0xC3AFF582, + 0x5D80BE9F, 0xD0937C69, 0xD52DA96F, 0x2512B3CF, 0xAC993BC8, 0x187DA710, 0x9C636EE8, 0x3BBB7BDB, + 0x267809CD, 0x5918F46E, 0x9AB701EC, 0x4F9AA883, 0x956E65E6, 0xFFE67EAA, 0xBCCF0821, 0x15E8E6EF, + 0xE79BD9BA, 0x6F36CE4A, 0x9F09D4EA, 0xB07CD629, 0xA4B2AF31, 0x3F23312A, 0xA59430C6, 0xA266C035, + 0x4EBC3774, 0x82CAA6FC, 0x90D0B0E0, 0xA7D81533, 0x04984AF1, 0xECDAF741, 0xCD500E7F, 0x91F62F17, + 0x4DD68D76, 0xEFB04D43, 0xAA4D54CC, 0x9604DFE4, 0xD1B5E39E, 0x6A881B4C, 0x2C1FB8C1, 0x65517F46, + 0x5EEA049D, 0x8C355D01, 0x877473FA, 0x0B412EFB, 0x671D5AB3, 0xDBD25292, 0x105633E9, 0xD647136D, + 0xD7618C9A, 0xA10C7A37, 0xF8148E59, 0x133C89EB, 0xA927EECE, 0x61C935B7, 0x1CE5EDE1, 0x47B13C7A, + 0xD2DF599C, 0xF2733F55, 0x14CE7918, 0xC737BF73, 0xF7CDEA53, 0xFDAA5B5F, 0x3D6F14DF, 0x44DB8678, + 0xAFF381CA, 0x68C43EB9, 0x24342C38, 0xA3405FC2, 0x1DC37216, 0xE2250CBC, 0x3C498B28, 0x0D9541FF, + 0xA8017139, 0x0CB3DE08, 0xB4E49CD8, 0x56C19064, 0xCB84617B, 0x32B670D5, 0x6C5C7448, 0xB85742D0 + ); + + for ($i = 0; $i < 256; $i++) { + $this->t2[$i << 8] = (($this->t3[$i] << 8) & 0xFFFFFF00) | (($this->t3[$i] >> 24) & 0x000000FF); + $this->t1[$i << 16] = (($this->t3[$i] << 16) & 0xFFFF0000) | (($this->t3[$i] >> 16) & 0x0000FFFF); + $this->t0[$i << 24] = (($this->t3[$i] << 24) & 0xFF000000) | (($this->t3[$i] >> 8) & 0x00FFFFFF); + + $this->dt2[$i << 8] = (($this->dt3[$i] << 8) & 0xFFFFFF00) | (($this->dt3[$i] >> 24) & 0x000000FF); + $this->dt1[$i << 16] = (($this->dt3[$i] << 16) & 0xFFFF0000) | (($this->dt3[$i] >> 16) & 0x0000FFFF); + $this->dt0[$i << 24] = (($this->dt3[$i] << 24) & 0xFF000000) | (($this->dt3[$i] >> 8) & 0x00FFFFFF); + } + } + + /** + * Sets the key. + * + * Keys can be of any length. Rijndael, itself, requires the use of a key that's between 128-bits and 256-bits long and + * whose length is a multiple of 32. If the key is less than 256-bits and the key length isn't set, we round the length + * up to the closest valid key length, padding $key with null bytes. If the key is more than 256-bits, we trim the + * excess bits. + * + * If the key is not explicitly set, it'll be assumed to be all null bytes. + * + * @access public + * @param String $key + */ + function setKey($key) + { + $this->key = $key; + $this->changed = true; + } + + /** + * Sets the initialization vector. (optional) + * + * SetIV is not required when CRYPT_RIJNDAEL_MODE_ECB is being used. If not explictly set, it'll be assumed + * to be all zero's. + * + * @access public + * @param String $iv + */ + function setIV($iv) + { + $this->encryptIV = $this->decryptIV = $this->iv = str_pad(substr($iv, 0, $this->block_size), $this->block_size, chr(0));; + } + + /** + * Sets the key length + * + * Valid key lengths are 128, 160, 192, 224, and 256. If the length is less than 128, it will be rounded up to + * 128. If the length is greater then 128 and invalid, it will be rounded down to the closest valid amount. + * + * @access public + * @param Integer $length + */ + function setKeyLength($length) + { + $length >>= 5; + if ($length > 8) { + $length = 8; + } else if ($length < 4) { + $length = 4; + } + $this->Nk = $length; + $this->key_size = $length << 2; + + $this->explicit_key_length = true; + $this->changed = true; + } + + /** + * Sets the block length + * + * Valid block lengths are 128, 160, 192, 224, and 256. If the length is less than 128, it will be rounded up to + * 128. If the length is greater then 128 and invalid, it will be rounded down to the closest valid amount. + * + * @access public + * @param Integer $length + */ + function setBlockLength($length) + { + $length >>= 5; + if ($length > 8) { + $length = 8; + } else if ($length < 4) { + $length = 4; + } + $this->Nb = $length; + $this->block_size = $length << 2; + $this->changed = true; + } + + /** + * Encrypts a message. + * + * $plaintext will be padded with additional bytes such that it's length is a multiple of the block size. Other Rjindael + * implementations may or may not pad in the same manner. Other common approaches to padding and the reasons why it's + * necessary are discussed in the following + * URL: + * + * {@link http://www.di-mgt.com.au/cryptopad.html http://www.di-mgt.com.au/cryptopad.html} + * + * An alternative to padding is to, separately, send the length of the file. This is what SSH, in fact, does. + * strlen($plaintext) will still need to be a multiple of 8, however, arbitrary values can be added to make it that + * length. + * + * @see Crypt_Rijndael::decrypt() + * @access public + * @param String $plaintext + */ + function encrypt($plaintext) + { + $this->_setup(); + $plaintext = $this->_pad($plaintext); + + $ciphertext = ''; + switch ($this->mode) { + case CRYPT_RIJNDAEL_MODE_ECB: + for ($i = 0; $i < strlen($plaintext); $i+=$this->block_size) { + $ciphertext.= $this->_encryptBlock(substr($plaintext, $i, $this->block_size)); + } + break; + case CRYPT_RIJNDAEL_MODE_CBC: + $xor = $this->encryptIV; + for ($i = 0; $i < strlen($plaintext); $i+=$this->block_size) { + $block = substr($plaintext, $i, $this->block_size); + $block = $this->_encryptBlock($block ^ $xor); + $xor = $block; + $ciphertext.= $block; + } + if ($this->continuousBuffer) { + $this->encryptIV = $xor; + } + } + + return $ciphertext; + } + + /** + * Decrypts a message. + * + * If strlen($ciphertext) is not a multiple of the block size, null bytes will be added to the end of the string until + * it is. + * + * @see Crypt_Rijndael::encrypt() + * @access public + * @param String $ciphertext + */ + function decrypt($ciphertext) + { + $this->_setup(); + // we pad with chr(0) since that's what mcrypt_generic does. to quote from http://php.net/function.mcrypt-generic : + // "The data is padded with "\0" to make sure the length of the data is n * blocksize." + $ciphertext = str_pad($ciphertext, (strlen($ciphertext) + $this->block_size - 1) % $this->block_size, chr(0)); + + $plaintext = ''; + switch ($this->mode) { + case CRYPT_RIJNDAEL_MODE_ECB: + for ($i = 0; $i < strlen($ciphertext); $i+=$this->block_size) { + $plaintext.= $this->_decryptBlock(substr($ciphertext, $i, $this->block_size)); + } + break; + case CRYPT_RIJNDAEL_MODE_CBC: + $xor = $this->decryptIV; + for ($i = 0; $i < strlen($ciphertext); $i+=$this->block_size) { + $block = substr($ciphertext, $i, $this->block_size); + $plaintext.= $this->_decryptBlock($block) ^ $xor; + $xor = $block; + } + if ($this->continuousBuffer) { + $this->decryptIV = $xor; + } + } + + return $this->_unpad($plaintext); + } + + /** + * Encrypts a block + * + * @access private + * @param String $in + * @return String + */ + function _encryptBlock($in) + { + $state = array(); + $words = unpack('N*word', $in); + + // addRoundKey + foreach ($words as $word) { + $state[] = $word ^ $this->w[0][count($state)]; + } + + // fips-197.pdf#page=19, "Figure 5. Pseudo Code for the Cipher", states that this loop has four components - + // subBytes, shiftRows, mixColumns, and addRoundKey. fips-197.pdf#page=30, "Implementation Suggestions Regarding + // Various Platforms" suggests that performs enhanced implementations are described in Rijndael-ammended.pdf. + // Rijndael-ammended.pdf#page=20, "Implementation aspects / 32-bit processor", discusses such an optimization. + // Unfortunately, the description given there is not quite correct. Per aes.spec.v316.pdf#page=19 [1], + // equation (7.4.7) is supposed to use addition instead of subtraction, so we'll do that here, as well. + + // [1] http://fp.gladman.plus.com/cryptography_technology/rijndael/aes.spec.v316.pdf + $temp = array(); + for ($round = 1; $round < $this->Nr; $round++) { + $i = 0; // $this->c[0] == 0 + $j = $this->c[1]; + $k = $this->c[2]; + $l = $this->c[3]; + + while ($i < $this->Nb) { + $temp[$i] = $this->t0[$state[$i] & 0xFF000000] ^ + $this->t1[$state[$j] & 0x00FF0000] ^ + $this->t2[$state[$k] & 0x0000FF00] ^ + $this->t3[$state[$l] & 0x000000FF] ^ + $this->w[$round][$i]; + $i++; + $j = ($j + 1) % $this->Nb; + $k = ($k + 1) % $this->Nb; + $l = ($l + 1) % $this->Nb; + } + + for ($i = 0; $i < $this->Nb; $i++) { + $state[$i] = $temp[$i]; + } + } + + // subWord + for ($i = 0; $i < $this->Nb; $i++) { + $state[$i] = $this->_subWord($state[$i]); + } + + // shiftRows + addRoundKey + $i = 0; // $this->c[0] == 0 + $j = $this->c[1]; + $k = $this->c[2]; + $l = $this->c[3]; + while ($i < $this->Nb) { + $temp[$i] = ($state[$i] & 0xFF000000) ^ + ($state[$j] & 0x00FF0000) ^ + ($state[$k] & 0x0000FF00) ^ + ($state[$l] & 0x000000FF) ^ + $this->w[$this->Nr][$i]; + $i++; + $j = ($j + 1) % $this->Nb; + $k = ($k + 1) % $this->Nb; + $l = ($l + 1) % $this->Nb; + } + $state = $temp; + + array_unshift($state, 'N*'); + + return call_user_func_array('pack', $state); + } + + /** + * Decrypts a block + * + * @access private + * @param String $in + * @return String + */ + function _decryptBlock($in) + { + $state = array(); + $words = unpack('N*word', $in); + + // addRoundKey + foreach ($words as $word) { + $state[] = $word ^ $this->dw[0][count($state)]; + } + + $temp = array(); + for ($round = $this->Nr - 1; $round > 0; $round--) { + $i = 0; // $this->c[0] == 0 + $j = $this->Nb - $this->c[1]; + $k = $this->Nb - $this->c[2]; + $l = $this->Nb - $this->c[3]; + + while ($i < $this->Nb) { + $temp[$i] = $this->dt0[$state[$i] & 0xFF000000] ^ + $this->dt1[$state[$j] & 0x00FF0000] ^ + $this->dt2[$state[$k] & 0x0000FF00] ^ + $this->dt3[$state[$l] & 0x000000FF] ^ + $this->dw[$round][$i]; + $i++; + $j = ($j + 1) % $this->Nb; + $k = ($k + 1) % $this->Nb; + $l = ($l + 1) % $this->Nb; + } + + for ($i = 0; $i < $this->Nb; $i++) { + $state[$i] = $temp[$i]; + } + } + + // invShiftRows + invSubWord + addRoundKey + $i = 0; // $this->c[0] == 0 + $j = $this->Nb - $this->c[1]; + $k = $this->Nb - $this->c[2]; + $l = $this->Nb - $this->c[3]; + + while ($i < $this->Nb) { + $temp[$i] = $this->dw[0][$i] ^ + $this->_invSubWord(($state[$i] & 0xFF000000) | + ($state[$j] & 0x00FF0000) | + ($state[$k] & 0x0000FF00) | + ($state[$l] & 0x000000FF)); + $i++; + $j = ($j + 1) % $this->Nb; + $k = ($k + 1) % $this->Nb; + $l = ($l + 1) % $this->Nb; + } + + $state = $temp; + + array_unshift($state, 'N*'); + + return call_user_func_array('pack', $state); + } + + /** + * Setup Rijndael + * + * Validates all the variables and calculates $Nr - the number of rounds that need to be performed - and $w - the key + * key schedule. + * + * @access private + */ + function _setup() + { + // Each number in $rcon is equal to the previous number multiplied by two in Rijndael's finite field. + // See http://en.wikipedia.org/wiki/Finite_field_arithmetic#Multiplicative_inverse + static $rcon = array(0, + 0x01000000, 0x02000000, 0x04000000, 0x08000000, 0x10000000, + 0x20000000, 0x40000000, 0x80000000, 0x1B000000, 0x36000000, + 0x6C000000, 0xD8000000, 0xAB000000, 0x4D000000, 0x9A000000, + 0x2F000000, 0x5E000000, 0xBC000000, 0x63000000, 0xC6000000, + 0x97000000, 0x35000000, 0x6A000000, 0xD4000000, 0xB3000000, + 0x7D000000, 0xFA000000, 0xEF000000, 0xC5000000, 0x91000000 + ); + + if (!$this->changed) { + return; + } + + if (!$this->explicit_key_length) { + // we do >> 2, here, and not >> 5, as we do above, since strlen($this->key) tells us the number of bytes - not bits + $length = strlen($this->key) >> 2; + if ($length > 8) { + $length = 8; + } else if ($length < 4) { + $length = 4; + } + $this->Nk = $length; + $this->key_size = $length << 2; + } + + $this->key = str_pad(substr($this->key, 0, $this->key_size), $this->key_size, chr(0)); + $this->encryptIV = $this->decryptIV = $this->iv = str_pad(substr($this->iv, 0, $this->block_size), $this->block_size, chr(0)); + + // see Rijndael-ammended.pdf#page=44 + $this->Nr = max($this->Nk, $this->Nb) + 6; + + // shift offsets for Nb = 5, 7 are defined in Rijndael-ammended.pdf#page=44, + // "Table 8: Shift offsets in Shiftrow for the alternative block lengths" + // shift offsets for Nb = 4, 6, 8 are defined in Rijndael-ammended.pdf#page=14, + // "Table 2: Shift offsets for different block lengths" + switch ($this->Nb) { + case 4: + case 5: + case 6: + $this->c = array(0, 1, 2, 3); + break; + case 7: + $this->c = array(0, 1, 2, 4); + break; + case 8: + $this->c = array(0, 1, 3, 4); + } + + $key = $this->key; + + $w = array_values(unpack('N*words', $key)); + + $length = $this->Nb * ($this->Nr + 1); + for ($i = $this->Nk; $i < $length; $i++) { + $temp = $w[$i - 1]; + if ($i % $this->Nk == 0) { + // according to , "the size of an integer is platform-dependent". + // on a 32-bit machine, it's 32-bits, and on a 64-bit machine, it's 64-bits. on a 32-bit machine, + // 0xFFFFFFFF << 8 == 0xFFFFFF00, but on a 64-bit machine, it equals 0xFFFFFFFF00. as such, doing 'and' + // with 0xFFFFFFFF (or 0xFFFFFF00) on a 32-bit machine is unnecessary, but on a 64-bit machine, it is. + $temp = (($temp << 8) & 0xFFFFFF00) | (($temp >> 24) & 0x000000FF); // rotWord + $temp = $this->_subWord($temp) ^ $rcon[$i / $this->Nk]; + } else if ($this->Nk > 6 && $i % $this->Nk == 4) { + $temp = $this->_subWord($temp); + } + $w[$i] = $w[$i - $this->Nk] ^ $temp; + } + + // convert the key schedule from a vector of $Nb * ($Nr + 1) length to a matrix with $Nr + 1 rows and $Nb columns + // and generate the inverse key schedule. more specifically, + // according to (section 5.3.3), + // "The key expansion for the Inverse Cipher is defined as follows: + // 1. Apply the Key Expansion. + // 2. Apply InvMixColumn to all Round Keys except the first and the last one." + // also, see fips-197.pdf#page=27, "5.3.5 Equivalent Inverse Cipher" + $temp = array(); + for ($i = $row = $col = 0; $i < $length; $i++, $col++) { + if ($col == $this->Nb) { + if ($row == 0) { + $this->dw[0] = $this->w[0]; + } else { + // subWord + invMixColumn + invSubWord = invMixColumn + $j = 0; + while ($j < $this->Nb) { + $dw = $this->_subWord($this->w[$row][$j]); + $temp[$j] = $this->dt0[$dw & 0xFF000000] ^ + $this->dt1[$dw & 0x00FF0000] ^ + $this->dt2[$dw & 0x0000FF00] ^ + $this->dt3[$dw & 0x000000FF]; + $j++; + } + $this->dw[$row] = $temp; + } + + $col = 0; + $row++; + } + $this->w[$row][$col] = $w[$i]; + } + + $this->dw[$row] = $this->w[$row]; + + $this->changed = false; + } + + /** + * Performs S-Box substitutions + * + * @access private + */ + function _subWord($word) + { + static $sbox0, $sbox1, $sbox2, $sbox3; + + if (empty($sbox0)) { + $sbox0 = array( + 0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5, 0x30, 0x01, 0x67, 0x2B, 0xFE, 0xD7, 0xAB, 0x76, + 0xCA, 0x82, 0xC9, 0x7D, 0xFA, 0x59, 0x47, 0xF0, 0xAD, 0xD4, 0xA2, 0xAF, 0x9C, 0xA4, 0x72, 0xC0, + 0xB7, 0xFD, 0x93, 0x26, 0x36, 0x3F, 0xF7, 0xCC, 0x34, 0xA5, 0xE5, 0xF1, 0x71, 0xD8, 0x31, 0x15, + 0x04, 0xC7, 0x23, 0xC3, 0x18, 0x96, 0x05, 0x9A, 0x07, 0x12, 0x80, 0xE2, 0xEB, 0x27, 0xB2, 0x75, + 0x09, 0x83, 0x2C, 0x1A, 0x1B, 0x6E, 0x5A, 0xA0, 0x52, 0x3B, 0xD6, 0xB3, 0x29, 0xE3, 0x2F, 0x84, + 0x53, 0xD1, 0x00, 0xED, 0x20, 0xFC, 0xB1, 0x5B, 0x6A, 0xCB, 0xBE, 0x39, 0x4A, 0x4C, 0x58, 0xCF, + 0xD0, 0xEF, 0xAA, 0xFB, 0x43, 0x4D, 0x33, 0x85, 0x45, 0xF9, 0x02, 0x7F, 0x50, 0x3C, 0x9F, 0xA8, + 0x51, 0xA3, 0x40, 0x8F, 0x92, 0x9D, 0x38, 0xF5, 0xBC, 0xB6, 0xDA, 0x21, 0x10, 0xFF, 0xF3, 0xD2, + 0xCD, 0x0C, 0x13, 0xEC, 0x5F, 0x97, 0x44, 0x17, 0xC4, 0xA7, 0x7E, 0x3D, 0x64, 0x5D, 0x19, 0x73, + 0x60, 0x81, 0x4F, 0xDC, 0x22, 0x2A, 0x90, 0x88, 0x46, 0xEE, 0xB8, 0x14, 0xDE, 0x5E, 0x0B, 0xDB, + 0xE0, 0x32, 0x3A, 0x0A, 0x49, 0x06, 0x24, 0x5C, 0xC2, 0xD3, 0xAC, 0x62, 0x91, 0x95, 0xE4, 0x79, + 0xE7, 0xC8, 0x37, 0x6D, 0x8D, 0xD5, 0x4E, 0xA9, 0x6C, 0x56, 0xF4, 0xEA, 0x65, 0x7A, 0xAE, 0x08, + 0xBA, 0x78, 0x25, 0x2E, 0x1C, 0xA6, 0xB4, 0xC6, 0xE8, 0xDD, 0x74, 0x1F, 0x4B, 0xBD, 0x8B, 0x8A, + 0x70, 0x3E, 0xB5, 0x66, 0x48, 0x03, 0xF6, 0x0E, 0x61, 0x35, 0x57, 0xB9, 0x86, 0xC1, 0x1D, 0x9E, + 0xE1, 0xF8, 0x98, 0x11, 0x69, 0xD9, 0x8E, 0x94, 0x9B, 0x1E, 0x87, 0xE9, 0xCE, 0x55, 0x28, 0xDF, + 0x8C, 0xA1, 0x89, 0x0D, 0xBF, 0xE6, 0x42, 0x68, 0x41, 0x99, 0x2D, 0x0F, 0xB0, 0x54, 0xBB, 0x16 + ); + + $sbox1 = array(); + $sbox2 = array(); + $sbox3 = array(); + + for ($i = 0; $i < 256; $i++) { + $sbox1[$i << 8] = $sbox0[$i] << 8; + $sbox2[$i << 16] = $sbox0[$i] << 16; + $sbox3[$i << 24] = $sbox0[$i] << 24; + } + } + + return $sbox0[$word & 0x000000FF] | + $sbox1[$word & 0x0000FF00] | + $sbox2[$word & 0x00FF0000] | + $sbox3[$word & 0xFF000000]; + } + + /** + * Performs inverse S-Box substitutions + * + * @access private + */ + function _invSubWord($word) + { + static $sbox0, $sbox1, $sbox2, $sbox3; + + if (empty($sbox0)) { + $sbox0 = array( + 0x52, 0x09, 0x6A, 0xD5, 0x30, 0x36, 0xA5, 0x38, 0xBF, 0x40, 0xA3, 0x9E, 0x81, 0xF3, 0xD7, 0xFB, + 0x7C, 0xE3, 0x39, 0x82, 0x9B, 0x2F, 0xFF, 0x87, 0x34, 0x8E, 0x43, 0x44, 0xC4, 0xDE, 0xE9, 0xCB, + 0x54, 0x7B, 0x94, 0x32, 0xA6, 0xC2, 0x23, 0x3D, 0xEE, 0x4C, 0x95, 0x0B, 0x42, 0xFA, 0xC3, 0x4E, + 0x08, 0x2E, 0xA1, 0x66, 0x28, 0xD9, 0x24, 0xB2, 0x76, 0x5B, 0xA2, 0x49, 0x6D, 0x8B, 0xD1, 0x25, + 0x72, 0xF8, 0xF6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xD4, 0xA4, 0x5C, 0xCC, 0x5D, 0x65, 0xB6, 0x92, + 0x6C, 0x70, 0x48, 0x50, 0xFD, 0xED, 0xB9, 0xDA, 0x5E, 0x15, 0x46, 0x57, 0xA7, 0x8D, 0x9D, 0x84, + 0x90, 0xD8, 0xAB, 0x00, 0x8C, 0xBC, 0xD3, 0x0A, 0xF7, 0xE4, 0x58, 0x05, 0xB8, 0xB3, 0x45, 0x06, + 0xD0, 0x2C, 0x1E, 0x8F, 0xCA, 0x3F, 0x0F, 0x02, 0xC1, 0xAF, 0xBD, 0x03, 0x01, 0x13, 0x8A, 0x6B, + 0x3A, 0x91, 0x11, 0x41, 0x4F, 0x67, 0xDC, 0xEA, 0x97, 0xF2, 0xCF, 0xCE, 0xF0, 0xB4, 0xE6, 0x73, + 0x96, 0xAC, 0x74, 0x22, 0xE7, 0xAD, 0x35, 0x85, 0xE2, 0xF9, 0x37, 0xE8, 0x1C, 0x75, 0xDF, 0x6E, + 0x47, 0xF1, 0x1A, 0x71, 0x1D, 0x29, 0xC5, 0x89, 0x6F, 0xB7, 0x62, 0x0E, 0xAA, 0x18, 0xBE, 0x1B, + 0xFC, 0x56, 0x3E, 0x4B, 0xC6, 0xD2, 0x79, 0x20, 0x9A, 0xDB, 0xC0, 0xFE, 0x78, 0xCD, 0x5A, 0xF4, + 0x1F, 0xDD, 0xA8, 0x33, 0x88, 0x07, 0xC7, 0x31, 0xB1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xEC, 0x5F, + 0x60, 0x51, 0x7F, 0xA9, 0x19, 0xB5, 0x4A, 0x0D, 0x2D, 0xE5, 0x7A, 0x9F, 0x93, 0xC9, 0x9C, 0xEF, + 0xA0, 0xE0, 0x3B, 0x4D, 0xAE, 0x2A, 0xF5, 0xB0, 0xC8, 0xEB, 0xBB, 0x3C, 0x83, 0x53, 0x99, 0x61, + 0x17, 0x2B, 0x04, 0x7E, 0xBA, 0x77, 0xD6, 0x26, 0xE1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0C, 0x7D + ); + + $sbox1 = array(); + $sbox2 = array(); + $sbox3 = array(); + + for ($i = 0; $i < 256; $i++) { + $sbox1[$i << 8] = $sbox0[$i] << 8; + $sbox2[$i << 16] = $sbox0[$i] << 16; + $sbox3[$i << 24] = $sbox0[$i] << 24; + } + } + + return $sbox0[$word & 0x000000FF] | + $sbox1[$word & 0x0000FF00] | + $sbox2[$word & 0x00FF0000] | + $sbox3[$word & 0xFF000000]; + } + + /** + * Pad "packets". + * + * Rijndael works by encrypting between sixteen and thirty-two bytes at a time, provided that number is also a multiple + * of four. If you ever need to encrypt or decrypt something that isn't of the proper length, it becomes necessary to + * pad the input so that it is of the proper length. + * + * Padding is enabled by default. Sometimes, however, it is undesirable to pad strings. Such is the case in SSH, + * where "packets" are padded with random bytes before being encrypted. Unpad these packets and you risk stripping + * away characters that shouldn't be stripped away. (SSH knows how many bytes are added because the length is + * transmitted separately) + * + * @see Crypt_Rijndael::disablePadding() + * @access public + */ + function enablePadding() + { + $this->padding = true; + } + + /** + * Do not pad packets. + * + * @see Crypt_Rijndael::enablePadding() + * @access public + */ + function disablePadding() + { + $this->padding = false; + } + + /** + * Pads a string + * + * Pads a string using the RSA PKCS padding standards so that its length is a multiple of the blocksize. + * $block_size - (strlen($text) % $block_size) bytes are added, each of which is equal to + * chr($block_size - (strlen($text) % $block_size) + * + * If padding is disabled and $text is not a multiple of the blocksize, the string will be padded regardless + * and padding will, hence forth, be enabled. + * + * @see Crypt_Rijndael::_unpad() + * @access private + */ + function _pad($text) + { + $length = strlen($text); + + if (!$this->padding) { + if ($length % $this->block_size == 0) { + return $text; + } else { + user_error("The plaintext's length ($length) is not a multiple of the block size ({$this->block_size})", E_USER_NOTICE); + $this->padding = true; + } + } + + $pad = $this->block_size - ($length % $this->block_size); + + return str_pad($text, $length + $pad, chr($pad)); + } + + /** + * Unpads a string. + * + * If padding is enabled and the reported padding length is invalid, padding will be, hence forth, disabled. + * + * @see Crypt_Rijndael::_pad() + * @access private + */ + function _unpad($text) + { + if (!$this->padding) { + return $text; + } + + $length = ord($text[strlen($text) - 1]); + + if (!$length || $length > $this->block_size) { + user_error("The number of bytes reported as being padded ($length) is invalid (block size = {$this->block_size})", E_USER_NOTICE); + $this->padding = false; + return $text; + } + + return substr($text, 0, -$length); + } + + /** + * Treat consecutive "packets" as if they are a continuous buffer. + * + * Say you have a 32-byte plaintext $plaintext. Using the default behavior, the two following code snippets + * will yield different outputs: + * + * + * echo $rijndael->encrypt(substr($plaintext, 0, 16)); + * echo $rijndael->encrypt(substr($plaintext, 16, 16)); + * + * + * echo $rijndael->encrypt($plaintext); + * + * + * The solution is to enable the continuous buffer. Although this will resolve the above discrepancy, it creates + * another, as demonstrated with the following: + * + * + * $rijndael->encrypt(substr($plaintext, 0, 16)); + * echo $rijndael->decrypt($des->encrypt(substr($plaintext, 16, 16))); + * + * + * echo $rijndael->decrypt($des->encrypt(substr($plaintext, 16, 16))); + * + * + * With the continuous buffer disabled, these would yield the same output. With it enabled, they yield different + * outputs. The reason is due to the fact that the initialization vector's change after every encryption / + * decryption round when the continuous buffer is enabled. When it's disabled, they remain constant. + * + * Put another way, when the continuous buffer is enabled, the state of the Crypt_Rijndael() object changes after each + * encryption / decryption round, whereas otherwise, it'd remain constant. For this reason, it's recommended that + * continuous buffers not be used. They do offer better security and are, in fact, sometimes required (SSH uses them), + * however, they are also less intuitive and more likely to cause you problems. + * + * @see Crypt_Rijndael::disableContinuousBuffer() + * @access public + */ + function enableContinuousBuffer() + { + $this->continuousBuffer = true; + } + + /** + * Treat consecutive packets as if they are a discontinuous buffer. + * + * The default behavior. + * + * @see Crypt_Rijndael::enableContinuousBuffer() + * @access public + */ + function disableContinuousBuffer() + { + $this->continuousBuffer = false; + $this->encryptIV = $this->iv; + $this->decryptIV = $this->iv; + } + + /** + * String Shift + * + * Inspired by array_shift + * + * @param String $string + * @param optional Integer $index + * @return String + * @access private + */ + function _string_shift(&$string, $index = 1) + { + $substr = substr($string, 0, $index); + $string = substr($string, $index); + return $substr; + } +} + +// vim: ts=4:sw=4:et: +// vim6: fdl=1: \ No newline at end of file diff --git a/plugins/OStatus/extlib/Crypt/TripleDES.php b/plugins/OStatus/extlib/Crypt/TripleDES.php new file mode 100644 index 000000000..03050e5d6 --- /dev/null +++ b/plugins/OStatus/extlib/Crypt/TripleDES.php @@ -0,0 +1,603 @@ + + * setKey('abcdefghijklmnopqrstuvwx'); + * + * $size = 10 * 1024; + * $plaintext = ''; + * for ($i = 0; $i < $size; $i++) { + * $plaintext.= 'a'; + * } + * + * echo $des->decrypt($des->encrypt($plaintext)); + * ?> + * + * + * LICENSE: This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * @category Crypt + * @package Crypt_TripleDES + * @author Jim Wigginton + * @copyright MMVII Jim Wigginton + * @license http://www.gnu.org/licenses/lgpl.txt + * @version $Id: TripleDES.php,v 1.9 2009/11/23 19:06:07 terrafrost Exp $ + * @link http://phpseclib.sourceforge.net + */ + +/** + * Include Crypt_DES + */ +require_once 'DES.php'; + +/** + * Encrypt / decrypt using inner chaining + * + * Inner chaining is used by SSH-1 and is generally considered to be less secure then outer chaining (CRYPT_DES_MODE_CBC3). + */ +define('CRYPT_DES_MODE_3CBC', 3); + +/** + * Encrypt / decrypt using outer chaining + * + * Outer chaining is used by SSH-2 and when the mode is set to CRYPT_DES_MODE_CBC. + */ +define('CRYPT_DES_MODE_CBC3', CRYPT_DES_MODE_CBC); + +/** + * Pure-PHP implementation of Triple DES. + * + * @author Jim Wigginton + * @version 0.1.0 + * @access public + * @package Crypt_TerraDES + */ +class Crypt_TripleDES { + /** + * The Three Keys + * + * @see Crypt_TripleDES::setKey() + * @var String + * @access private + */ + var $key = "\0\0\0\0\0\0\0\0"; + + /** + * The Encryption Mode + * + * @see Crypt_TripleDES::Crypt_TripleDES() + * @var Integer + * @access private + */ + var $mode = CRYPT_DES_MODE_CBC; + + /** + * Continuous Buffer status + * + * @see Crypt_TripleDES::enableContinuousBuffer() + * @var Boolean + * @access private + */ + var $continuousBuffer = false; + + /** + * Padding status + * + * @see Crypt_TripleDES::enablePadding() + * @var Boolean + * @access private + */ + var $padding = true; + + /** + * The Initialization Vector + * + * @see Crypt_TripleDES::setIV() + * @var String + * @access private + */ + var $iv = "\0\0\0\0\0\0\0\0"; + + /** + * A "sliding" Initialization Vector + * + * @see Crypt_TripleDES::enableContinuousBuffer() + * @var String + * @access private + */ + var $encryptIV = "\0\0\0\0\0\0\0\0"; + + /** + * A "sliding" Initialization Vector + * + * @see Crypt_TripleDES::enableContinuousBuffer() + * @var String + * @access private + */ + var $decryptIV = "\0\0\0\0\0\0\0\0"; + + /** + * MCrypt parameters + * + * @see Crypt_TripleDES::setMCrypt() + * @var Array + * @access private + */ + var $mcrypt = array('', ''); + + /** + * The Crypt_DES objects + * + * @var Array + * @access private + */ + var $des; + + /** + * Default Constructor. + * + * Determines whether or not the mcrypt extension should be used. $mode should only, at present, be + * CRYPT_DES_MODE_ECB or CRYPT_DES_MODE_CBC. If not explictly set, CRYPT_DES_MODE_CBC will be used. + * + * @param optional Integer $mode + * @return Crypt_TripleDES + * @access public + */ + function Crypt_TripleDES($mode = CRYPT_DES_MODE_CBC) + { + if ( !defined('CRYPT_DES_MODE') ) { + switch (true) { + case extension_loaded('mcrypt'): + // i'd check to see if des was supported, by doing in_array('des', mcrypt_list_algorithms('')), + // but since that can be changed after the object has been created, there doesn't seem to be + // a lot of point... + define('CRYPT_DES_MODE', CRYPT_DES_MODE_MCRYPT); + break; + default: + define('CRYPT_DES_MODE', CRYPT_DES_MODE_INTERNAL); + } + } + + if ( $mode == CRYPT_DES_MODE_3CBC ) { + $this->mode = CRYPT_DES_MODE_3CBC; + $this->des = array( + new Crypt_DES(CRYPT_DES_MODE_CBC), + new Crypt_DES(CRYPT_DES_MODE_CBC), + new Crypt_DES(CRYPT_DES_MODE_CBC) + ); + + // we're going to be doing the padding, ourselves, so disable it in the Crypt_DES objects + $this->des[0]->disablePadding(); + $this->des[1]->disablePadding(); + $this->des[2]->disablePadding(); + + return; + } + + switch ( CRYPT_DES_MODE ) { + case CRYPT_DES_MODE_MCRYPT: + switch ($mode) { + case CRYPT_DES_MODE_ECB: + $this->mode = MCRYPT_MODE_ECB; break; + case CRYPT_DES_MODE_CBC: + default: + $this->mode = MCRYPT_MODE_CBC; + } + + break; + default: + $this->des = array( + new Crypt_DES(CRYPT_DES_MODE_ECB), + new Crypt_DES(CRYPT_DES_MODE_ECB), + new Crypt_DES(CRYPT_DES_MODE_ECB) + ); + + // we're going to be doing the padding, ourselves, so disable it in the Crypt_DES objects + $this->des[0]->disablePadding(); + $this->des[1]->disablePadding(); + $this->des[2]->disablePadding(); + + switch ($mode) { + case CRYPT_DES_MODE_ECB: + case CRYPT_DES_MODE_CBC: + $this->mode = $mode; + break; + default: + $this->mode = CRYPT_DES_MODE_CBC; + } + } + } + + /** + * Sets the key. + * + * Keys can be of any length. Triple DES, itself, can use 128-bit (eg. strlen($key) == 16) or + * 192-bit (eg. strlen($key) == 24) keys. This function pads and truncates $key as appropriate. + * + * DES also requires that every eighth bit be a parity bit, however, we'll ignore that. + * + * If the key is not explicitly set, it'll be assumed to be all zero's. + * + * @access public + * @param String $key + */ + function setKey($key) + { + $length = strlen($key); + if ($length > 8) { + $key = str_pad($key, 24, chr(0)); + // if $key is between 64 and 128-bits, use the first 64-bits as the last, per this: + // http://php.net/function.mcrypt-encrypt#47973 + $key = $length <= 16 ? substr_replace($key, substr($key, 0, 8), 16) : substr($key, 0, 24); + } + $this->key = $key; + switch (true) { + case CRYPT_DES_MODE == CRYPT_DES_MODE_INTERNAL: + case $this->mode == CRYPT_DES_MODE_3CBC: + $this->des[0]->setKey(substr($key, 0, 8)); + $this->des[1]->setKey(substr($key, 8, 8)); + $this->des[2]->setKey(substr($key, 16, 8)); + } + } + + /** + * Sets the initialization vector. (optional) + * + * SetIV is not required when CRYPT_DES_MODE_ECB is being used. If not explictly set, it'll be assumed + * to be all zero's. + * + * @access public + * @param String $iv + */ + function setIV($iv) + { + $this->encryptIV = $this->decryptIV = $this->iv = str_pad(substr($iv, 0, 8), 8, chr(0)); + if ($this->mode == CRYPT_DES_MODE_3CBC) { + $this->des[0]->setIV($iv); + $this->des[1]->setIV($iv); + $this->des[2]->setIV($iv); + } + } + + /** + * Sets MCrypt parameters. (optional) + * + * If MCrypt is being used, empty strings will be used, unless otherwise specified. + * + * @link http://php.net/function.mcrypt-module-open#function.mcrypt-module-open + * @access public + * @param optional Integer $algorithm_directory + * @param optional Integer $mode_directory + */ + function setMCrypt($algorithm_directory = '', $mode_directory = '') + { + $this->mcrypt = array($algorithm_directory, $mode_directory); + if ( $this->mode == CRYPT_DES_MODE_3CBC ) { + $this->des[0]->setMCrypt($algorithm_directory, $mode_directory); + $this->des[1]->setMCrypt($algorithm_directory, $mode_directory); + $this->des[2]->setMCrypt($algorithm_directory, $mode_directory); + } + } + + /** + * Encrypts a message. + * + * @access public + * @param String $plaintext + */ + function encrypt($plaintext) + { + $plaintext = $this->_pad($plaintext); + + // if the key is smaller then 8, do what we'd normally do + if ($this->mode == CRYPT_DES_MODE_3CBC && strlen($this->key) > 8) { + $ciphertext = $this->des[2]->encrypt($this->des[1]->decrypt($this->des[0]->encrypt($plaintext))); + + return $ciphertext; + } + + if ( CRYPT_DES_MODE == CRYPT_DES_MODE_MCRYPT ) { + $td = mcrypt_module_open(MCRYPT_3DES, $this->mcrypt[0], $this->mode, $this->mcrypt[1]); + mcrypt_generic_init($td, $this->key, $this->encryptIV); + + $ciphertext = mcrypt_generic($td, $plaintext); + + mcrypt_generic_deinit($td); + mcrypt_module_close($td); + + if ($this->continuousBuffer) { + $this->encryptIV = substr($ciphertext, -8); + } + + return $ciphertext; + } + + if (strlen($this->key) <= 8) { + $this->des[0]->mode = $this->mode; + + return $this->des[0]->encrypt($plaintext); + } + + // we pad with chr(0) since that's what mcrypt_generic does. to quote from http://php.net/function.mcrypt-generic : + // "The data is padded with "\0" to make sure the length of the data is n * blocksize." + $plaintext = str_pad($plaintext, ceil(strlen($plaintext) / 8) * 8, chr(0)); + + $ciphertext = ''; + switch ($this->mode) { + case CRYPT_DES_MODE_ECB: + for ($i = 0; $i < strlen($plaintext); $i+=8) { + $block = substr($plaintext, $i, 8); + $block = $this->des[0]->_processBlock($block, CRYPT_DES_ENCRYPT); + $block = $this->des[1]->_processBlock($block, CRYPT_DES_DECRYPT); + $block = $this->des[2]->_processBlock($block, CRYPT_DES_ENCRYPT); + $ciphertext.= $block; + } + break; + case CRYPT_DES_MODE_CBC: + $xor = $this->encryptIV; + for ($i = 0; $i < strlen($plaintext); $i+=8) { + $block = substr($plaintext, $i, 8) ^ $xor; + $block = $this->des[0]->_processBlock($block, CRYPT_DES_ENCRYPT); + $block = $this->des[1]->_processBlock($block, CRYPT_DES_DECRYPT); + $block = $this->des[2]->_processBlock($block, CRYPT_DES_ENCRYPT); + $xor = $block; + $ciphertext.= $block; + } + if ($this->continuousBuffer) { + $this->encryptIV = $xor; + } + } + + return $ciphertext; + } + + /** + * Decrypts a message. + * + * @access public + * @param String $ciphertext + */ + function decrypt($ciphertext) + { + if ($this->mode == CRYPT_DES_MODE_3CBC && strlen($this->key) > 8) { + $plaintext = $this->des[0]->decrypt($this->des[1]->encrypt($this->des[2]->decrypt($ciphertext))); + + return $this->_unpad($plaintext); + } + + // we pad with chr(0) since that's what mcrypt_generic does. to quote from http://php.net/function.mcrypt-generic : + // "The data is padded with "\0" to make sure the length of the data is n * blocksize." + $ciphertext = str_pad($ciphertext, (strlen($ciphertext) + 7) & 0xFFFFFFF8, chr(0)); + + if ( CRYPT_DES_MODE == CRYPT_DES_MODE_MCRYPT ) { + $td = mcrypt_module_open(MCRYPT_3DES, $this->mcrypt[0], $this->mode, $this->mcrypt[1]); + mcrypt_generic_init($td, $this->key, $this->decryptIV); + + $plaintext = mdecrypt_generic($td, $ciphertext); + + mcrypt_generic_deinit($td); + mcrypt_module_close($td); + + if ($this->continuousBuffer) { + $this->decryptIV = substr($ciphertext, -8); + } + + return $this->_unpad($plaintext); + } + + if (strlen($this->key) <= 8) { + $this->des[0]->mode = $this->mode; + + return $this->_unpad($this->des[0]->decrypt($plaintext)); + } + + $plaintext = ''; + switch ($this->mode) { + case CRYPT_DES_MODE_ECB: + for ($i = 0; $i < strlen($ciphertext); $i+=8) { + $block = substr($ciphertext, $i, 8); + $block = $this->des[2]->_processBlock($block, CRYPT_DES_DECRYPT); + $block = $this->des[1]->_processBlock($block, CRYPT_DES_ENCRYPT); + $block = $this->des[0]->_processBlock($block, CRYPT_DES_DECRYPT); + $plaintext.= $block; + } + break; + case CRYPT_DES_MODE_CBC: + $xor = $this->decryptIV; + for ($i = 0; $i < strlen($ciphertext); $i+=8) { + $orig = $block = substr($ciphertext, $i, 8); + $block = $this->des[2]->_processBlock($block, CRYPT_DES_DECRYPT); + $block = $this->des[1]->_processBlock($block, CRYPT_DES_ENCRYPT); + $block = $this->des[0]->_processBlock($block, CRYPT_DES_DECRYPT); + $plaintext.= $block ^ $xor; + $xor = $orig; + } + if ($this->continuousBuffer) { + $this->decryptIV = $xor; + } + } + + return $this->_unpad($plaintext); + } + + /** + * Treat consecutive "packets" as if they are a continuous buffer. + * + * Say you have a 16-byte plaintext $plaintext. Using the default behavior, the two following code snippets + * will yield different outputs: + * + * + * echo $des->encrypt(substr($plaintext, 0, 8)); + * echo $des->encrypt(substr($plaintext, 8, 8)); + * + * + * echo $des->encrypt($plaintext); + * + * + * The solution is to enable the continuous buffer. Although this will resolve the above discrepancy, it creates + * another, as demonstrated with the following: + * + * + * $des->encrypt(substr($plaintext, 0, 8)); + * echo $des->decrypt($des->encrypt(substr($plaintext, 8, 8))); + * + * + * echo $des->decrypt($des->encrypt(substr($plaintext, 8, 8))); + * + * + * With the continuous buffer disabled, these would yield the same output. With it enabled, they yield different + * outputs. The reason is due to the fact that the initialization vector's change after every encryption / + * decryption round when the continuous buffer is enabled. When it's disabled, they remain constant. + * + * Put another way, when the continuous buffer is enabled, the state of the Crypt_DES() object changes after each + * encryption / decryption round, whereas otherwise, it'd remain constant. For this reason, it's recommended that + * continuous buffers not be used. They do offer better security and are, in fact, sometimes required (SSH uses them), + * however, they are also less intuitive and more likely to cause you problems. + * + * @see Crypt_TripleDES::disableContinuousBuffer() + * @access public + */ + function enableContinuousBuffer() + { + $this->continuousBuffer = true; + if ($this->mode == CRYPT_DES_MODE_3CBC) { + $this->des[0]->enableContinuousBuffer(); + $this->des[1]->enableContinuousBuffer(); + $this->des[2]->enableContinuousBuffer(); + } + } + + /** + * Treat consecutive packets as if they are a discontinuous buffer. + * + * The default behavior. + * + * @see Crypt_TripleDES::enableContinuousBuffer() + * @access public + */ + function disableContinuousBuffer() + { + $this->continuousBuffer = false; + $this->encryptIV = $this->iv; + $this->decryptIV = $this->iv; + + if ($this->mode == CRYPT_DES_MODE_3CBC) { + $this->des[0]->disableContinuousBuffer(); + $this->des[1]->disableContinuousBuffer(); + $this->des[2]->disableContinuousBuffer(); + } + } + + /** + * Pad "packets". + * + * DES works by encrypting eight bytes at a time. If you ever need to encrypt or decrypt something that's not + * a multiple of eight, it becomes necessary to pad the input so that it's length is a multiple of eight. + * + * Padding is enabled by default. Sometimes, however, it is undesirable to pad strings. Such is the case in SSH1, + * where "packets" are padded with random bytes before being encrypted. Unpad these packets and you risk stripping + * away characters that shouldn't be stripped away. (SSH knows how many bytes are added because the length is + * transmitted separately) + * + * @see Crypt_TripleDES::disablePadding() + * @access public + */ + function enablePadding() + { + $this->padding = true; + } + + /** + * Do not pad packets. + * + * @see Crypt_TripleDES::enablePadding() + * @access public + */ + function disablePadding() + { + $this->padding = false; + } + + /** + * Pads a string + * + * Pads a string using the RSA PKCS padding standards so that its length is a multiple of the blocksize (8). + * 8 - (strlen($text) & 7) bytes are added, each of which is equal to chr(8 - (strlen($text) & 7) + * + * If padding is disabled and $text is not a multiple of the blocksize, the string will be padded regardless + * and padding will, hence forth, be enabled. + * + * @see Crypt_TripleDES::_unpad() + * @access private + */ + function _pad($text) + { + $length = strlen($text); + + if (!$this->padding) { + if (($length & 7) == 0) { + return $text; + } else { + user_error("The plaintext's length ($length) is not a multiple of the block size (8)", E_USER_NOTICE); + $this->padding = true; + } + } + + $pad = 8 - ($length & 7); + return str_pad($text, $length + $pad, chr($pad)); + } + + /** + * Unpads a string + * + * If padding is enabled and the reported padding length is invalid, padding will be, hence forth, disabled. + * + * @see Crypt_TripleDES::_pad() + * @access private + */ + function _unpad($text) + { + if (!$this->padding) { + return $text; + } + + $length = ord($text[strlen($text) - 1]); + + if (!$length || $length > 8) { + user_error("The number of bytes reported as being padded ($length) is invalid (block size = 8)", E_USER_NOTICE); + $this->padding = false; + return $text; + } + + return substr($text, 0, -$length); + } +} + +// vim: ts=4:sw=4:et: +// vim6: fdl=1: \ No newline at end of file diff --git a/plugins/OStatus/extlib/Math/BigInteger.php b/plugins/OStatus/extlib/Math/BigInteger.php new file mode 100644 index 000000000..ce0e08354 --- /dev/null +++ b/plugins/OStatus/extlib/Math/BigInteger.php @@ -0,0 +1,3060 @@ +> and << cannot be used, nor can the modulo operator %, + * which only supports integers. Although this fact will slow this library down, the fact that such a high + * base is being used should more than compensate. + * + * When PHP version 6 is officially released, we'll be able to use 64-bit integers. This should, once again, + * allow bitwise operators, and will increase the maximum possible base to 2**31 (or 2**62 for addition / + * subtraction). + * + * Useful resources are as follows: + * + * - {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf Handbook of Applied Cryptography (HAC)} + * - {@link http://math.libtomcrypt.com/files/tommath.pdf Multi-Precision Math (MPM)} + * - Java's BigInteger classes. See /j2se/src/share/classes/java/math in jdk-1_5_0-src-jrl.zip + * + * One idea for optimization is to use the comba method to reduce the number of operations performed. + * MPM uses this quite extensively. The following URL elaborates: + * + * {@link http://www.everything2.com/index.pl?node_id=1736418}}} + * + * Here's an example of how to use this library: + * + * add($b); + * + * echo $c->toString(); // outputs 5 + * ?> + * + * + * LICENSE: This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * @category Math + * @package Math_BigInteger + * @author Jim Wigginton + * @copyright MMVI Jim Wigginton + * @license http://www.gnu.org/licenses/lgpl.txt + * @version $Id: BigInteger.php,v 1.18 2009/12/04 19:12:18 terrafrost Exp $ + * @link http://pear.php.net/package/Math_BigInteger + */ + +/**#@+ + * @access private + * @see Math_BigInteger::_slidingWindow() + */ +/** + * @see Math_BigInteger::_montgomery() + * @see Math_BigInteger::_prepMontgomery() + */ +define('MATH_BIGINTEGER_MONTGOMERY', 0); +/** + * @see Math_BigInteger::_barrett() + */ +define('MATH_BIGINTEGER_BARRETT', 1); +/** + * @see Math_BigInteger::_mod2() + */ +define('MATH_BIGINTEGER_POWEROF2', 2); +/** + * @see Math_BigInteger::_remainder() + */ +define('MATH_BIGINTEGER_CLASSIC', 3); +/** + * @see Math_BigInteger::__clone() + */ +define('MATH_BIGINTEGER_NONE', 4); +/**#@-*/ + +/**#@+ + * @access private + * @see Math_BigInteger::_montgomery() + * @see Math_BigInteger::_barrett() + */ +/** + * $cache[MATH_BIGINTEGER_VARIABLE] tells us whether or not the cached data is still valid. + */ +define('MATH_BIGINTEGER_VARIABLE', 0); +/** + * $cache[MATH_BIGINTEGER_DATA] contains the cached data. + */ +define('MATH_BIGINTEGER_DATA', 1); +/**#@-*/ + +/**#@+ + * @access private + * @see Math_BigInteger::Math_BigInteger() + */ +/** + * To use the pure-PHP implementation + */ +define('MATH_BIGINTEGER_MODE_INTERNAL', 1); +/** + * To use the BCMath library + * + * (if enabled; otherwise, the internal implementation will be used) + */ +define('MATH_BIGINTEGER_MODE_BCMATH', 2); +/** + * To use the GMP library + * + * (if present; otherwise, either the BCMath or the internal implementation will be used) + */ +define('MATH_BIGINTEGER_MODE_GMP', 3); +/**#@-*/ + +/** + * The largest digit that may be used in addition / subtraction + * + * (we do pow(2, 52) instead of using 4503599627370496, directly, because some PHP installations + * will truncate 4503599627370496) + * + * @access private + */ +define('MATH_BIGINTEGER_MAX_DIGIT52', pow(2, 52)); + +/** + * Karatsuba Cutoff + * + * At what point do we switch between Karatsuba multiplication and schoolbook long multiplication? + * + * @access private + */ +define('MATH_BIGINTEGER_KARATSUBA_CUTOFF', 15); + +/** + * Pure-PHP arbitrary precision integer arithmetic library. Supports base-2, base-10, base-16, and base-256 + * numbers. + * + * @author Jim Wigginton + * @version 1.0.0RC3 + * @access public + * @package Math_BigInteger + */ +class Math_BigInteger { + /** + * Holds the BigInteger's value. + * + * @var Array + * @access private + */ + var $value; + + /** + * Holds the BigInteger's magnitude. + * + * @var Boolean + * @access private + */ + var $is_negative = false; + + /** + * Random number generator function + * + * @see setRandomGenerator() + * @access private + */ + var $generator = 'mt_rand'; + + /** + * Precision + * + * @see setPrecision() + * @access private + */ + var $precision = -1; + + /** + * Precision Bitmask + * + * @see setPrecision() + * @access private + */ + var $bitmask = false; + + /** + * Converts base-2, base-10, base-16, and binary strings (eg. base-256) to BigIntegers. + * + * If the second parameter - $base - is negative, then it will be assumed that the number's are encoded using + * two's compliment. The sole exception to this is -10, which is treated the same as 10 is. + * + * Here's an example: + * + * toString(); // outputs 50 + * ?> + * + * + * @param optional $x base-10 number or base-$base number if $base set. + * @param optional integer $base + * @return Math_BigInteger + * @access public + */ + function Math_BigInteger($x = 0, $base = 10) + { + if ( !defined('MATH_BIGINTEGER_MODE') ) { + switch (true) { + case extension_loaded('gmp'): + define('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_GMP); + break; + case extension_loaded('bcmath'): + define('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_BCMATH); + break; + default: + define('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_INTERNAL); + } + } + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + if (is_resource($x) && get_resource_type($x) == 'GMP integer') { + $this->value = $x; + return; + } + $this->value = gmp_init(0); + break; + case MATH_BIGINTEGER_MODE_BCMATH: + $this->value = '0'; + break; + default: + $this->value = array(); + } + + if ($x === 0) { + return; + } + + switch ($base) { + case -256: + if (ord($x[0]) & 0x80) { + $x = ~$x; + $this->is_negative = true; + } + case 256: + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $sign = $this->is_negative ? '-' : ''; + $this->value = gmp_init($sign . '0x' . bin2hex($x)); + break; + case MATH_BIGINTEGER_MODE_BCMATH: + // round $len to the nearest 4 (thanks, DavidMJ!) + $len = (strlen($x) + 3) & 0xFFFFFFFC; + + $x = str_pad($x, $len, chr(0), STR_PAD_LEFT); + + for ($i = 0; $i < $len; $i+= 4) { + $this->value = bcmul($this->value, '4294967296'); // 4294967296 == 2**32 + $this->value = bcadd($this->value, 0x1000000 * ord($x[$i]) + ((ord($x[$i + 1]) << 16) | (ord($x[$i + 2]) << 8) | ord($x[$i + 3]))); + } + + if ($this->is_negative) { + $this->value = '-' . $this->value; + } + + break; + // converts a base-2**8 (big endian / msb) number to base-2**26 (little endian / lsb) + default: + while (strlen($x)) { + $this->value[] = $this->_bytes2int($this->_base256_rshift($x, 26)); + } + } + + if ($this->is_negative) { + if (MATH_BIGINTEGER_MODE != MATH_BIGINTEGER_MODE_INTERNAL) { + $this->is_negative = false; + } + $temp = $this->add(new Math_BigInteger('-1')); + $this->value = $temp->value; + } + break; + case 16: + case -16: + if ($base > 0 && $x[0] == '-') { + $this->is_negative = true; + $x = substr($x, 1); + } + + $x = preg_replace('#^(?:0x)?([A-Fa-f0-9]*).*#', '$1', $x); + + $is_negative = false; + if ($base < 0 && hexdec($x[0]) >= 8) { + $this->is_negative = $is_negative = true; + $x = bin2hex(~pack('H*', $x)); + } + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = $this->is_negative ? '-0x' . $x : '0x' . $x; + $this->value = gmp_init($temp); + $this->is_negative = false; + break; + case MATH_BIGINTEGER_MODE_BCMATH: + $x = ( strlen($x) & 1 ) ? '0' . $x : $x; + $temp = new Math_BigInteger(pack('H*', $x), 256); + $this->value = $this->is_negative ? '-' . $temp->value : $temp->value; + $this->is_negative = false; + break; + default: + $x = ( strlen($x) & 1 ) ? '0' . $x : $x; + $temp = new Math_BigInteger(pack('H*', $x), 256); + $this->value = $temp->value; + } + + if ($is_negative) { + $temp = $this->add(new Math_BigInteger('-1')); + $this->value = $temp->value; + } + break; + case 10: + case -10: + $x = preg_replace('#^(-?[0-9]*).*#', '$1', $x); + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $this->value = gmp_init($x); + break; + case MATH_BIGINTEGER_MODE_BCMATH: + // explicitly casting $x to a string is necessary, here, since doing $x[0] on -1 yields different + // results then doing it on '-1' does (modInverse does $x[0]) + $this->value = (string) $x; + break; + default: + $temp = new Math_BigInteger(); + + // array(10000000) is 10**7 in base-2**26. 10**7 is the closest to 2**26 we can get without passing it. + $multiplier = new Math_BigInteger(); + $multiplier->value = array(10000000); + + if ($x[0] == '-') { + $this->is_negative = true; + $x = substr($x, 1); + } + + $x = str_pad($x, strlen($x) + (6 * strlen($x)) % 7, 0, STR_PAD_LEFT); + + while (strlen($x)) { + $temp = $temp->multiply($multiplier); + $temp = $temp->add(new Math_BigInteger($this->_int2bytes(substr($x, 0, 7)), 256)); + $x = substr($x, 7); + } + + $this->value = $temp->value; + } + break; + case 2: // base-2 support originally implemented by Lluis Pamies - thanks! + case -2: + if ($base > 0 && $x[0] == '-') { + $this->is_negative = true; + $x = substr($x, 1); + } + + $x = preg_replace('#^([01]*).*#', '$1', $x); + $x = str_pad($x, strlen($x) + (3 * strlen($x)) % 4, 0, STR_PAD_LEFT); + + $str = '0x'; + while (strlen($x)) { + $part = substr($x, 0, 4); + $str.= dechex(bindec($part)); + $x = substr($x, 4); + } + + if ($this->is_negative) { + $str = '-' . $str; + } + + $temp = new Math_BigInteger($str, 8 * $base); // ie. either -16 or +16 + $this->value = $temp->value; + $this->is_negative = $temp->is_negative; + + break; + default: + // base not supported, so we'll let $this == 0 + } + } + + /** + * Converts a BigInteger to a byte string (eg. base-256). + * + * Negative numbers are saved as positive numbers, unless $twos_compliment is set to true, at which point, they're + * saved as two's compliment. + * + * Here's an example: + * + * toBytes(); // outputs chr(65) + * ?> + * + * + * @param Boolean $twos_compliment + * @return String + * @access public + * @internal Converts a base-2**26 number to base-2**8 + */ + function toBytes($twos_compliment = false) + { + if ($twos_compliment) { + $comparison = $this->compare(new Math_BigInteger()); + if ($comparison == 0) { + return $this->precision > 0 ? str_repeat(chr(0), ($this->precision + 1) >> 3) : ''; + } + + $temp = $comparison < 0 ? $this->add(new Math_BigInteger(1)) : $this->copy(); + $bytes = $temp->toBytes(); + + if (empty($bytes)) { // eg. if the number we're trying to convert is -1 + $bytes = chr(0); + } + + if (ord($bytes[0]) & 0x80) { + $bytes = chr(0) . $bytes; + } + + return $comparison < 0 ? ~$bytes : $bytes; + } + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + if (gmp_cmp($this->value, gmp_init(0)) == 0) { + return $this->precision > 0 ? str_repeat(chr(0), ($this->precision + 1) >> 3) : ''; + } + + $temp = gmp_strval(gmp_abs($this->value), 16); + $temp = ( strlen($temp) & 1 ) ? '0' . $temp : $temp; + $temp = pack('H*', $temp); + + return $this->precision > 0 ? + substr(str_pad($temp, $this->precision >> 3, chr(0), STR_PAD_LEFT), -($this->precision >> 3)) : + ltrim($temp, chr(0)); + case MATH_BIGINTEGER_MODE_BCMATH: + if ($this->value === '0') { + return $this->precision > 0 ? str_repeat(chr(0), ($this->precision + 1) >> 3) : ''; + } + + $value = ''; + $current = $this->value; + + if ($current[0] == '-') { + $current = substr($current, 1); + } + + // we don't do four bytes at a time because then numbers larger than 1<<31 would be negative + // two's complimented numbers, which would break chr. + while (bccomp($current, '0') > 0) { + $temp = bcmod($current, 0x1000000); + $value = chr($temp >> 16) . chr($temp >> 8) . chr($temp) . $value; + $current = bcdiv($current, 0x1000000); + } + + return $this->precision > 0 ? + substr(str_pad($value, $this->precision >> 3, chr(0), STR_PAD_LEFT), -($this->precision >> 3)) : + ltrim($value, chr(0)); + } + + if (!count($this->value)) { + return $this->precision > 0 ? str_repeat(chr(0), ($this->precision + 1) >> 3) : ''; + } + $result = $this->_int2bytes($this->value[count($this->value) - 1]); + + $temp = $this->copy(); + + for ($i = count($temp->value) - 2; $i >= 0; $i--) { + $temp->_base256_lshift($result, 26); + $result = $result | str_pad($temp->_int2bytes($temp->value[$i]), strlen($result), chr(0), STR_PAD_LEFT); + } + + return $this->precision > 0 ? + substr(str_pad($result, $this->precision >> 3, chr(0), STR_PAD_LEFT), -($this->precision >> 3)) : + $result; + } + + /** + * Converts a BigInteger to a hex string (eg. base-16)). + * + * Negative numbers are saved as positive numbers, unless $twos_compliment is set to true, at which point, they're + * saved as two's compliment. + * + * Here's an example: + * + * toHex(); // outputs '41' + * ?> + * + * + * @param Boolean $twos_compliment + * @return String + * @access public + * @internal Converts a base-2**26 number to base-2**8 + */ + function toHex($twos_compliment = false) + { + return bin2hex($this->toBytes($twos_compliment)); + } + + /** + * Converts a BigInteger to a bit string (eg. base-2). + * + * Negative numbers are saved as positive numbers, unless $twos_compliment is set to true, at which point, they're + * saved as two's compliment. + * + * Here's an example: + * + * toBits(); // outputs '1000001' + * ?> + * + * + * @param Boolean $twos_compliment + * @return String + * @access public + * @internal Converts a base-2**26 number to base-2**2 + */ + function toBits($twos_compliment = false) + { + $hex = $this->toHex($twos_compliment); + $bits = ''; + for ($i = 0; $i < strlen($hex); $i+=8) { + $bits.= str_pad(decbin(hexdec(substr($hex, $i, 8))), 32, '0', STR_PAD_LEFT); + } + return $this->precision > 0 ? substr($bits, -$this->precision) : ltrim($bits, '0'); + } + + /** + * Converts a BigInteger to a base-10 number. + * + * Here's an example: + * + * toString(); // outputs 50 + * ?> + * + * + * @return String + * @access public + * @internal Converts a base-2**26 number to base-10**7 (which is pretty much base-10) + */ + function toString() + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + return gmp_strval($this->value); + case MATH_BIGINTEGER_MODE_BCMATH: + if ($this->value === '0') { + return '0'; + } + + return ltrim($this->value, '0'); + } + + if (!count($this->value)) { + return '0'; + } + + $temp = $this->copy(); + $temp->is_negative = false; + + $divisor = new Math_BigInteger(); + $divisor->value = array(10000000); // eg. 10**7 + $result = ''; + while (count($temp->value)) { + list($temp, $mod) = $temp->divide($divisor); + $result = str_pad($mod->value[0], 7, '0', STR_PAD_LEFT) . $result; + } + $result = ltrim($result, '0'); + + if ($this->is_negative) { + $result = '-' . $result; + } + + return $result; + } + + /** + * Copy an object + * + * PHP5 passes objects by reference while PHP4 passes by value. As such, we need a function to guarantee + * that all objects are passed by value, when appropriate. More information can be found here: + * + * {@link http://php.net/language.oop5.basic#51624} + * + * @access public + * @see __clone() + * @return Math_BigInteger + */ + function copy() + { + $temp = new Math_BigInteger(); + $temp->value = $this->value; + $temp->is_negative = $this->is_negative; + $temp->generator = $this->generator; + $temp->precision = $this->precision; + $temp->bitmask = $this->bitmask; + return $temp; + } + + /** + * __toString() magic method + * + * Will be called, automatically, if you're supporting just PHP5. If you're supporting PHP4, you'll need to call + * toString(). + * + * @access public + * @internal Implemented per a suggestion by Techie-Michael - thanks! + */ + function __toString() + { + return $this->toString(); + } + + /** + * __clone() magic method + * + * Although you can call Math_BigInteger::__toString() directly in PHP5, you cannot call Math_BigInteger::__clone() + * directly in PHP5. You can in PHP4 since it's not a magic method, but in PHP5, you have to call it by using the PHP5 + * only syntax of $y = clone $x. As such, if you're trying to write an application that works on both PHP4 and PHP5, + * call Math_BigInteger::copy(), instead. + * + * @access public + * @see copy() + * @return Math_BigInteger + */ + function __clone() + { + return $this->copy(); + } + + /** + * Adds two BigIntegers. + * + * Here's an example: + * + * add($b); + * + * echo $c->toString(); // outputs 30 + * ?> + * + * + * @param Math_BigInteger $y + * @return Math_BigInteger + * @access public + * @internal Performs base-2**52 addition + */ + function add($y) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = new Math_BigInteger(); + $temp->value = gmp_add($this->value, $y->value); + + return $this->_normalize($temp); + case MATH_BIGINTEGER_MODE_BCMATH: + $temp = new Math_BigInteger(); + $temp->value = bcadd($this->value, $y->value); + + return $this->_normalize($temp); + } + + $this_size = count($this->value); + $y_size = count($y->value); + + if ($this_size == 0) { + return $y->copy(); + } else if ($y_size == 0) { + return $this->copy(); + } + + // subtract, if appropriate + if ( $this->is_negative != $y->is_negative ) { + // is $y the negative number? + $y_negative = $this->compare($y) > 0; + + $temp = $this->copy(); + $y = $y->copy(); + $temp->is_negative = $y->is_negative = false; + + $diff = $temp->compare($y); + if ( !$diff ) { + $temp = new Math_BigInteger(); + return $this->_normalize($temp); + } + + $temp = $temp->subtract($y); + + $temp->is_negative = ($diff > 0) ? !$y_negative : $y_negative; + + return $this->_normalize($temp); + } + + $result = new Math_BigInteger(); + $carry = 0; + + $size = max($this_size, $y_size); + $size+= $size & 1; // rounds $size to the nearest 2. + + $x = array_pad($this->value, $size, 0); + $y = array_pad($y->value, $size, 0); + + for ($i = 0; $i < $size - 1; $i+=2) { + $sum = $x[$i + 1] * 0x4000000 + $x[$i] + $y[$i + 1] * 0x4000000 + $y[$i] + $carry; + $carry = $sum >= MATH_BIGINTEGER_MAX_DIGIT52; // eg. floor($sum / 2**52); only possible values (in any base) are 0 and 1 + $sum = $carry ? $sum - MATH_BIGINTEGER_MAX_DIGIT52 : $sum; + + $temp = floor($sum / 0x4000000); + + $result->value[] = $sum - 0x4000000 * $temp; // eg. a faster alternative to fmod($sum, 0x4000000) + $result->value[] = $temp; + } + + if ($carry) { + $result->value[] = (int) $carry; + } + + $result->is_negative = $this->is_negative; + + return $this->_normalize($result); + } + + /** + * Subtracts two BigIntegers. + * + * Here's an example: + * + * subtract($b); + * + * echo $c->toString(); // outputs -10 + * ?> + * + * + * @param Math_BigInteger $y + * @return Math_BigInteger + * @access public + * @internal Performs base-2**52 subtraction + */ + function subtract($y) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = new Math_BigInteger(); + $temp->value = gmp_sub($this->value, $y->value); + + return $this->_normalize($temp); + case MATH_BIGINTEGER_MODE_BCMATH: + $temp = new Math_BigInteger(); + $temp->value = bcsub($this->value, $y->value); + + return $this->_normalize($temp); + } + + $this_size = count($this->value); + $y_size = count($y->value); + + if ($this_size == 0) { + $temp = $y->copy(); + $temp->is_negative = !$temp->is_negative; + return $temp; + } else if ($y_size == 0) { + return $this->copy(); + } + + // add, if appropriate (ie. -$x - +$y or +$x - -$y) + if ( $this->is_negative != $y->is_negative ) { + $is_negative = $y->compare($this) > 0; + + $temp = $this->copy(); + $y = $y->copy(); + $temp->is_negative = $y->is_negative = false; + + $temp = $temp->add($y); + + $temp->is_negative = $is_negative; + + return $this->_normalize($temp); + } + + $diff = $this->compare($y); + + if ( !$diff ) { + $temp = new Math_BigInteger(); + return $this->_normalize($temp); + } + + // switch $this and $y around, if appropriate. + if ( (!$this->is_negative && $diff < 0) || ($this->is_negative && $diff > 0) ) { + $is_negative = $y->is_negative; + + $temp = $this->copy(); + $y = $y->copy(); + $temp->is_negative = $y->is_negative = false; + + $temp = $y->subtract($temp); + $temp->is_negative = !$is_negative; + + return $this->_normalize($temp); + } + + $result = new Math_BigInteger(); + $carry = 0; + + $size = max($this_size, $y_size); + $size+= $size % 2; + + $x = array_pad($this->value, $size, 0); + $y = array_pad($y->value, $size, 0); + + for ($i = 0; $i < $size - 1; $i+=2) { + $sum = $x[$i + 1] * 0x4000000 + $x[$i] - $y[$i + 1] * 0x4000000 - $y[$i] + $carry; + $carry = $sum < 0 ? -1 : 0; // eg. floor($sum / 2**52); only possible values (in any base) are 0 and 1 + $sum = $carry ? $sum + MATH_BIGINTEGER_MAX_DIGIT52 : $sum; + + $temp = floor($sum / 0x4000000); + + $result->value[] = $sum - 0x4000000 * $temp; + $result->value[] = $temp; + } + + // $carry shouldn't be anything other than zero, at this point, since we already made sure that $this + // was bigger than $y. + + $result->is_negative = $this->is_negative; + + return $this->_normalize($result); + } + + /** + * Multiplies two BigIntegers + * + * Here's an example: + * + * multiply($b); + * + * echo $c->toString(); // outputs 200 + * ?> + * + * + * @param Math_BigInteger $x + * @return Math_BigInteger + * @access public + */ + function multiply($x) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = new Math_BigInteger(); + $temp->value = gmp_mul($this->value, $x->value); + + return $this->_normalize($temp); + case MATH_BIGINTEGER_MODE_BCMATH: + $temp = new Math_BigInteger(); + $temp->value = bcmul($this->value, $x->value); + + return $this->_normalize($temp); + } + + static $cutoff = false; + if ($cutoff === false) { + $cutoff = 2 * MATH_BIGINTEGER_KARATSUBA_CUTOFF; + } + + if ( $this->equals($x) ) { + return $this->_square(); + } + + $this_length = count($this->value); + $x_length = count($x->value); + + if ( !$this_length || !$x_length ) { // a 0 is being multiplied + $temp = new Math_BigInteger(); + return $this->_normalize($temp); + } + + $product = min($this_length, $x_length) < $cutoff ? $this->_multiply($x) : $this->_karatsuba($x); + + $product->is_negative = $this->is_negative != $x->is_negative; + + return $this->_normalize($product); + } + + /** + * Performs long multiplication up to $stop digits + * + * If you're going to be doing array_slice($product->value, 0, $stop), some cycles can be saved. + * + * @see _barrett() + * @param Math_BigInteger $x + * @return Math_BigInteger + * @access private + */ + function _multiplyLower($x, $stop) + { + $this_length = count($this->value); + $x_length = count($x->value); + + if ( !$this_length || !$x_length ) { // a 0 is being multiplied + return new Math_BigInteger(); + } + + if ( $this_length < $x_length ) { + return $x->_multiplyLower($this, $stop); + } + + $product = new Math_BigInteger(); + $product->value = $this->_array_repeat(0, $this_length + $x_length); + + // the following for loop could be removed if the for loop following it + // (the one with nested for loops) initially set $i to 0, but + // doing so would also make the result in one set of unnecessary adds, + // since on the outermost loops first pass, $product->value[$k] is going + // to always be 0 + + $carry = 0; + + for ($j = 0; $j < $this_length; $j++) { // ie. $i = 0, $k = $i + $temp = $this->value[$j] * $x->value[0] + $carry; // $product->value[$k] == 0 + $carry = floor($temp / 0x4000000); + $product->value[$j] = $temp - 0x4000000 * $carry; + } + + if ($j < $stop) { + $product->value[$j] = $carry; + } + + // the above for loop is what the previous comment was talking about. the + // following for loop is the "one with nested for loops" + + for ($i = 1; $i < $x_length; $i++) { + $carry = 0; + + for ($j = 0, $k = $i; $j < $this_length && $k < $stop; $j++, $k++) { + $temp = $product->value[$k] + $this->value[$j] * $x->value[$i] + $carry; + $carry = floor($temp / 0x4000000); + $product->value[$k] = $temp - 0x4000000 * $carry; + } + + if ($k < $stop) { + $product->value[$k] = $carry; + } + } + + $product->is_negative = $this->is_negative != $x->is_negative; + + return $product; + } + + /** + * Performs long multiplication on two BigIntegers + * + * Modeled after 'multiply' in MutableBigInteger.java. + * + * @param Math_BigInteger $x + * @return Math_BigInteger + * @access private + */ + function _multiply($x) + { + $this_length = count($this->value); + $x_length = count($x->value); + + if ( !$this_length || !$x_length ) { // a 0 is being multiplied + return new Math_BigInteger(); + } + + if ( $this_length < $x_length ) { + return $x->_multiply($this); + } + + $product = new Math_BigInteger(); + $product->value = $this->_array_repeat(0, $this_length + $x_length); + + // the following for loop could be removed if the for loop following it + // (the one with nested for loops) initially set $i to 0, but + // doing so would also make the result in one set of unnecessary adds, + // since on the outermost loops first pass, $product->value[$k] is going + // to always be 0 + + $carry = 0; + + for ($j = 0; $j < $this_length; $j++) { // ie. $i = 0 + $temp = $this->value[$j] * $x->value[0] + $carry; // $product->value[$k] == 0 + $carry = floor($temp / 0x4000000); + $product->value[$j] = $temp - 0x4000000 * $carry; + } + + $product->value[$j] = $carry; + + // the above for loop is what the previous comment was talking about. the + // following for loop is the "one with nested for loops" + for ($i = 1; $i < $x_length; $i++) { + $carry = 0; + + for ($j = 0, $k = $i; $j < $this_length; $j++, $k++) { + $temp = $product->value[$k] + $this->value[$j] * $x->value[$i] + $carry; + $carry = floor($temp / 0x4000000); + $product->value[$k] = $temp - 0x4000000 * $carry; + } + + $product->value[$k] = $carry; + } + + $product->is_negative = $this->is_negative != $x->is_negative; + + return $this->_normalize($product); + } + + /** + * Performs Karatsuba multiplication on two BigIntegers + * + * See {@link http://en.wikipedia.org/wiki/Karatsuba_algorithm Karatsuba algorithm} and + * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=120 MPM 5.2.3}. + * + * @param Math_BigInteger $y + * @return Math_BigInteger + * @access private + */ + function _karatsuba($y) + { + $x = $this->copy(); + + $m = min(count($x->value) >> 1, count($y->value) >> 1); + + if ($m < MATH_BIGINTEGER_KARATSUBA_CUTOFF) { + return $x->_multiply($y); + } + + $x1 = new Math_BigInteger(); + $x0 = new Math_BigInteger(); + $y1 = new Math_BigInteger(); + $y0 = new Math_BigInteger(); + + $x1->value = array_slice($x->value, $m); + $x0->value = array_slice($x->value, 0, $m); + $y1->value = array_slice($y->value, $m); + $y0->value = array_slice($y->value, 0, $m); + + $z2 = $x1->_karatsuba($y1); + $z0 = $x0->_karatsuba($y0); + + $z1 = $x1->add($x0); + $z1 = $z1->_karatsuba($y1->add($y0)); + $z1 = $z1->subtract($z2->add($z0)); + + $z2->value = array_merge(array_fill(0, 2 * $m, 0), $z2->value); + $z1->value = array_merge(array_fill(0, $m, 0), $z1->value); + + $xy = $z2->add($z1); + $xy = $xy->add($z0); + + return $xy; + } + + /** + * Squares a BigInteger + * + * @return Math_BigInteger + * @access private + */ + function _square() + { + static $cutoff = false; + if ($cutoff === false) { + $cutoff = 2 * MATH_BIGINTEGER_KARATSUBA_CUTOFF; + } + + return count($this->value) < $cutoff ? $this->_baseSquare() : $this->_karatsubaSquare(); + } + + /** + * Performs traditional squaring on two BigIntegers + * + * Squaring can be done faster than multiplying a number by itself can be. See + * {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=7 HAC 14.2.4} / + * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=141 MPM 5.3} for more information. + * + * @return Math_BigInteger + * @access private + */ + function _baseSquare() + { + if ( empty($this->value) ) { + return new Math_BigInteger(); + } + + $square = new Math_BigInteger(); + $square->value = $this->_array_repeat(0, 2 * count($this->value)); + + for ($i = 0, $max_index = count($this->value) - 1; $i <= $max_index; $i++) { + $i2 = 2 * $i; + + $temp = $square->value[$i2] + $this->value[$i] * $this->value[$i]; + $carry = floor($temp / 0x4000000); + $square->value[$i2] = $temp - 0x4000000 * $carry; + + // note how we start from $i+1 instead of 0 as we do in multiplication. + for ($j = $i + 1, $k = $i2 + 1; $j <= $max_index; $j++, $k++) { + $temp = $square->value[$k] + 2 * $this->value[$j] * $this->value[$i] + $carry; + $carry = floor($temp / 0x4000000); + $square->value[$k] = $temp - 0x4000000 * $carry; + } + + // the following line can yield values larger 2**15. at this point, PHP should switch + // over to floats. + $square->value[$i + $max_index + 1] = $carry; + } + + return $square; + } + + /** + * Performs Karatsuba "squaring" on two BigIntegers + * + * See {@link http://en.wikipedia.org/wiki/Karatsuba_algorithm Karatsuba algorithm} and + * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=151 MPM 5.3.4}. + * + * @param Math_BigInteger $y + * @return Math_BigInteger + * @access private + */ + function _karatsubaSquare() + { + $m = count($this->value) >> 1; + + if ($m < MATH_BIGINTEGER_KARATSUBA_CUTOFF) { + return $this->_square(); + } + + $x1 = new Math_BigInteger(); + $x0 = new Math_BigInteger(); + + $x1->value = array_slice($this->value, $m); + $x0->value = array_slice($this->value, 0, $m); + + $z2 = $x1->_karatsubaSquare(); + $z0 = $x0->_karatsubaSquare(); + + $z1 = $x1->add($x0); + $z1 = $z1->_karatsubaSquare(); + $z1 = $z1->subtract($z2->add($z0)); + + $z2->value = array_merge(array_fill(0, 2 * $m, 0), $z2->value); + $z1->value = array_merge(array_fill(0, $m, 0), $z1->value); + + $xx = $z2->add($z1); + $xx = $xx->add($z0); + + return $xx; + } + + /** + * Divides two BigIntegers. + * + * Returns an array whose first element contains the quotient and whose second element contains the + * "common residue". If the remainder would be positive, the "common residue" and the remainder are the + * same. If the remainder would be negative, the "common residue" is equal to the sum of the remainder + * and the divisor (basically, the "common residue" is the first positive modulo). + * + * Here's an example: + * + * divide($b); + * + * echo $quotient->toString(); // outputs 0 + * echo "\r\n"; + * echo $remainder->toString(); // outputs 10 + * ?> + * + * + * @param Math_BigInteger $y + * @return Array + * @access public + * @internal This function is based off of {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=9 HAC 14.20}. + */ + function divide($y) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $quotient = new Math_BigInteger(); + $remainder = new Math_BigInteger(); + + list($quotient->value, $remainder->value) = gmp_div_qr($this->value, $y->value); + + if (gmp_sign($remainder->value) < 0) { + $remainder->value = gmp_add($remainder->value, gmp_abs($y->value)); + } + + return array($this->_normalize($quotient), $this->_normalize($remainder)); + case MATH_BIGINTEGER_MODE_BCMATH: + $quotient = new Math_BigInteger(); + $remainder = new Math_BigInteger(); + + $quotient->value = bcdiv($this->value, $y->value); + $remainder->value = bcmod($this->value, $y->value); + + if ($remainder->value[0] == '-') { + $remainder->value = bcadd($remainder->value, $y->value[0] == '-' ? substr($y->value, 1) : $y->value); + } + + return array($this->_normalize($quotient), $this->_normalize($remainder)); + } + + if (count($y->value) == 1) { + $temp = $this->_divide_digit($y->value[0]); + $temp[0]->is_negative = $this->is_negative != $y->is_negative; + return array($this->_normalize($temp[0]), $this->_normalize($temp[1])); + } + + static $zero; + if (!isset($zero)) { + $zero = new Math_BigInteger(); + } + + $x = $this->copy(); + $y = $y->copy(); + + $x_sign = $x->is_negative; + $y_sign = $y->is_negative; + + $x->is_negative = $y->is_negative = false; + + $diff = $x->compare($y); + + if ( !$diff ) { + $temp = new Math_BigInteger(); + $temp->value = array(1); + $temp->is_negative = $x_sign != $y_sign; + return array($this->_normalize($temp), $this->_normalize(new Math_BigInteger())); + } + + if ( $diff < 0 ) { + // if $x is negative, "add" $y. + if ( $x_sign ) { + $x = $y->subtract($x); + } + return array($this->_normalize(new Math_BigInteger()), $this->_normalize($x)); + } + + // normalize $x and $y as described in HAC 14.23 / 14.24 + $msb = $y->value[count($y->value) - 1]; + for ($shift = 0; !($msb & 0x2000000); $shift++) { + $msb <<= 1; + } + $x->_lshift($shift); + $y->_lshift($shift); + + $x_max = count($x->value) - 1; + $y_max = count($y->value) - 1; + + $quotient = new Math_BigInteger(); + $quotient->value = $this->_array_repeat(0, $x_max - $y_max + 1); + + // $temp = $y << ($x_max - $y_max-1) in base 2**26 + $temp = new Math_BigInteger(); + $temp->value = array_merge($this->_array_repeat(0, $x_max - $y_max), $y->value); + + while ( $x->compare($temp) >= 0 ) { + // calculate the "common residue" + $quotient->value[$x_max - $y_max]++; + $x = $x->subtract($temp); + $x_max = count($x->value) - 1; + } + + for ($i = $x_max; $i >= $y_max + 1; $i--) { + $x_value = array( + $x->value[$i], + ( $i > 0 ) ? $x->value[$i - 1] : 0, + ( $i > 1 ) ? $x->value[$i - 2] : 0 + ); + $y_value = array( + $y->value[$y_max], + ( $y_max > 0 ) ? $y->value[$y_max - 1] : 0 + ); + + $q_index = $i - $y_max - 1; + if ($x_value[0] == $y_value[0]) { + $quotient->value[$q_index] = 0x3FFFFFF; + } else { + $quotient->value[$q_index] = floor( + ($x_value[0] * 0x4000000 + $x_value[1]) + / + $y_value[0] + ); + } + + $temp = new Math_BigInteger(); + $temp->value = array($y_value[1], $y_value[0]); + + $lhs = new Math_BigInteger(); + $lhs->value = array($quotient->value[$q_index]); + $lhs = $lhs->multiply($temp); + + $rhs = new Math_BigInteger(); + $rhs->value = array($x_value[2], $x_value[1], $x_value[0]); + + while ( $lhs->compare($rhs) > 0 ) { + $quotient->value[$q_index]--; + + $lhs = new Math_BigInteger(); + $lhs->value = array($quotient->value[$q_index]); + $lhs = $lhs->multiply($temp); + } + + $adjust = $this->_array_repeat(0, $q_index); + $temp = new Math_BigInteger(); + $temp->value = array($quotient->value[$q_index]); + $temp = $temp->multiply($y); + $temp->value = array_merge($adjust, $temp->value); + + $x = $x->subtract($temp); + + if ($x->compare($zero) < 0) { + $temp->value = array_merge($adjust, $y->value); + $x = $x->add($temp); + + $quotient->value[$q_index]--; + } + + $x_max = count($x->value) - 1; + } + + // unnormalize the remainder + $x->_rshift($shift); + + $quotient->is_negative = $x_sign != $y_sign; + + // calculate the "common residue", if appropriate + if ( $x_sign ) { + $y->_rshift($shift); + $x = $y->subtract($x); + } + + return array($this->_normalize($quotient), $this->_normalize($x)); + } + + /** + * Divides a BigInteger by a regular integer + * + * abc / x = a00 / x + b0 / x + c / x + * + * @param Math_BigInteger $divisor + * @return Array + * @access public + */ + function _divide_digit($divisor) + { + $carry = 0; + $result = new Math_BigInteger(); + + for ($i = count($this->value) - 1; $i >= 0; $i--) { + $temp = 0x4000000 * $carry + $this->value[$i]; + $result->value[$i] = floor($temp / $divisor); + $carry = fmod($temp, $divisor); + } + + $remainder = new Math_BigInteger(); + $remainder->value = array($carry); + + return array($result, $remainder); + } + + /** + * Performs modular exponentiation. + * + * Here's an example: + * + * modPow($b, $c); + * + * echo $c->toString(); // outputs 10 + * ?> + * + * + * @param Math_BigInteger $e + * @param Math_BigInteger $n + * @return Math_BigInteger + * @access public + * @internal The most naive approach to modular exponentiation has very unreasonable requirements, and + * and although the approach involving repeated squaring does vastly better, it, too, is impractical + * for our purposes. The reason being that division - by far the most complicated and time-consuming + * of the basic operations (eg. +,-,*,/) - occurs multiple times within it. + * + * Modular reductions resolve this issue. Although an individual modular reduction takes more time + * then an individual division, when performed in succession (with the same modulo), they're a lot faster. + * + * The two most commonly used modular reductions are Barrett and Montgomery reduction. Montgomery reduction, + * although faster, only works when the gcd of the modulo and of the base being used is 1. In RSA, when the + * base is a power of two, the modulo - a product of two primes - is always going to have a gcd of 1 (because + * the product of two odd numbers is odd), but what about when RSA isn't used? + * + * In contrast, Barrett reduction has no such constraint. As such, some bigint implementations perform a + * Barrett reduction after every operation in the modpow function. Others perform Barrett reductions when the + * modulo is even and Montgomery reductions when the modulo is odd. BigInteger.java's modPow method, however, + * uses a trick involving the Chinese Remainder Theorem to factor the even modulo into two numbers - one odd and + * the other, a power of two - and recombine them, later. This is the method that this modPow function uses. + * {@link http://islab.oregonstate.edu/papers/j34monex.pdf Montgomery Reduction with Even Modulus} elaborates. + */ + function modPow($e, $n) + { + $n = $this->bitmask !== false && $this->bitmask->compare($n) < 0 ? $this->bitmask : $n->abs(); + + if ($e->compare(new Math_BigInteger()) < 0) { + $e = $e->abs(); + + $temp = $this->modInverse($n); + if ($temp === false) { + return false; + } + + return $this->_normalize($temp->modPow($e, $n)); + } + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = new Math_BigInteger(); + $temp->value = gmp_powm($this->value, $e->value, $n->value); + + return $this->_normalize($temp); + case MATH_BIGINTEGER_MODE_BCMATH: + $temp = new Math_BigInteger(); + $temp->value = bcpowmod($this->value, $e->value, $n->value); + + return $this->_normalize($temp); + } + + if ( empty($e->value) ) { + $temp = new Math_BigInteger(); + $temp->value = array(1); + return $this->_normalize($temp); + } + + if ( $e->value == array(1) ) { + list(, $temp) = $this->divide($n); + return $this->_normalize($temp); + } + + if ( $e->value == array(2) ) { + $temp = $this->_square(); + list(, $temp) = $temp->divide($n); + return $this->_normalize($temp); + } + + return $this->_normalize($this->_slidingWindow($e, $n, MATH_BIGINTEGER_BARRETT)); + + // is the modulo odd? + if ( $n->value[0] & 1 ) { + return $this->_normalize($this->_slidingWindow($e, $n, MATH_BIGINTEGER_MONTGOMERY)); + } + // if it's not, it's even + + // find the lowest set bit (eg. the max pow of 2 that divides $n) + for ($i = 0; $i < count($n->value); $i++) { + if ( $n->value[$i] ) { + $temp = decbin($n->value[$i]); + $j = strlen($temp) - strrpos($temp, '1') - 1; + $j+= 26 * $i; + break; + } + } + // at this point, 2^$j * $n/(2^$j) == $n + + $mod1 = $n->copy(); + $mod1->_rshift($j); + $mod2 = new Math_BigInteger(); + $mod2->value = array(1); + $mod2->_lshift($j); + + $part1 = ( $mod1->value != array(1) ) ? $this->_slidingWindow($e, $mod1, MATH_BIGINTEGER_MONTGOMERY) : new Math_BigInteger(); + $part2 = $this->_slidingWindow($e, $mod2, MATH_BIGINTEGER_POWEROF2); + + $y1 = $mod2->modInverse($mod1); + $y2 = $mod1->modInverse($mod2); + + $result = $part1->multiply($mod2); + $result = $result->multiply($y1); + + $temp = $part2->multiply($mod1); + $temp = $temp->multiply($y2); + + $result = $result->add($temp); + list(, $result) = $result->divide($n); + + return $this->_normalize($result); + } + + /** + * Performs modular exponentiation. + * + * Alias for Math_BigInteger::modPow() + * + * @param Math_BigInteger $e + * @param Math_BigInteger $n + * @return Math_BigInteger + * @access public + */ + function powMod($e, $n) + { + return $this->modPow($e, $n); + } + + /** + * Sliding Window k-ary Modular Exponentiation + * + * Based on {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=27 HAC 14.85} / + * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=210 MPM 7.7}. In a departure from those algorithims, + * however, this function performs a modular reduction after every multiplication and squaring operation. + * As such, this function has the same preconditions that the reductions being used do. + * + * @param Math_BigInteger $e + * @param Math_BigInteger $n + * @param Integer $mode + * @return Math_BigInteger + * @access private + */ + function _slidingWindow($e, $n, $mode) + { + static $window_ranges = array(7, 25, 81, 241, 673, 1793); // from BigInteger.java's oddModPow function + //static $window_ranges = array(0, 7, 36, 140, 450, 1303, 3529); // from MPM 7.3.1 + + $e_length = count($e->value) - 1; + $e_bits = decbin($e->value[$e_length]); + for ($i = $e_length - 1; $i >= 0; $i--) { + $e_bits.= str_pad(decbin($e->value[$i]), 26, '0', STR_PAD_LEFT); + } + + $e_length = strlen($e_bits); + + // calculate the appropriate window size. + // $window_size == 3 if $window_ranges is between 25 and 81, for example. + for ($i = 0, $window_size = 1; $e_length > $window_ranges[$i] && $i < count($window_ranges); $window_size++, $i++); + switch ($mode) { + case MATH_BIGINTEGER_MONTGOMERY: + $reduce = '_montgomery'; + $prep = '_prepMontgomery'; + break; + case MATH_BIGINTEGER_BARRETT: + $reduce = '_barrett'; + $prep = '_barrett'; + break; + case MATH_BIGINTEGER_POWEROF2: + $reduce = '_mod2'; + $prep = '_mod2'; + break; + case MATH_BIGINTEGER_CLASSIC: + $reduce = '_remainder'; + $prep = '_remainder'; + break; + case MATH_BIGINTEGER_NONE: + // ie. do no modular reduction. useful if you want to just do pow as opposed to modPow. + $reduce = 'copy'; + $prep = 'copy'; + break; + default: + // an invalid $mode was provided + } + + // precompute $this^0 through $this^$window_size + $powers = array(); + $powers[1] = $this->$prep($n); + $powers[2] = $powers[1]->_square(); + $powers[2] = $powers[2]->$reduce($n); + + // we do every other number since substr($e_bits, $i, $j+1) (see below) is supposed to end + // in a 1. ie. it's supposed to be odd. + $temp = 1 << ($window_size - 1); + for ($i = 1; $i < $temp; $i++) { + $powers[2 * $i + 1] = $powers[2 * $i - 1]->multiply($powers[2]); + $powers[2 * $i + 1] = $powers[2 * $i + 1]->$reduce($n); + } + + $result = new Math_BigInteger(); + $result->value = array(1); + $result = $result->$prep($n); + + for ($i = 0; $i < $e_length; ) { + if ( !$e_bits[$i] ) { + $result = $result->_square(); + $result = $result->$reduce($n); + $i++; + } else { + for ($j = $window_size - 1; $j > 0; $j--) { + if ( !empty($e_bits[$i + $j]) ) { + break; + } + } + + for ($k = 0; $k <= $j; $k++) {// eg. the length of substr($e_bits, $i, $j+1) + $result = $result->_square(); + $result = $result->$reduce($n); + } + + $result = $result->multiply($powers[bindec(substr($e_bits, $i, $j + 1))]); + $result = $result->$reduce($n); + + $i+=$j + 1; + } + } + + $result = $result->$reduce($n); + + return $result; + } + + /** + * Remainder + * + * A wrapper for the divide function. + * + * @see divide() + * @see _slidingWindow() + * @access private + * @param Math_BigInteger + * @return Math_BigInteger + */ + function _remainder($n) + { + list(, $temp) = $this->divide($n); + return $temp; + } + + /** + * Modulos for Powers of Two + * + * Calculates $x%$n, where $n = 2**$e, for some $e. Since this is basically the same as doing $x & ($n-1), + * we'll just use this function as a wrapper for doing that. + * + * @see _slidingWindow() + * @access private + * @param Math_BigInteger + * @return Math_BigInteger + */ + function _mod2($n) + { + $temp = new Math_BigInteger(); + $temp->value = array(1); + return $this->bitwise_and($n->subtract($temp)); + } + + /** + * Barrett Modular Reduction + * + * See {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=14 HAC 14.3.3} / + * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=165 MPM 6.2.5} for more information. Modified slightly, + * so as not to require negative numbers (initially, this script didn't support negative numbers). + * + * @see _slidingWindow() + * @access private + * @param Math_BigInteger + * @return Math_BigInteger + */ + function _barrett($n) + { + static $cache = array( + MATH_BIGINTEGER_VARIABLE => array(), + MATH_BIGINTEGER_DATA => array() + ); + + $n_length = count($n->value); + + if (count($this->value) > 2 * $n_length) { + list(, $temp) = $this->divide($n); + return $temp; + } + + if ( ($key = array_search($n->value, $cache[MATH_BIGINTEGER_VARIABLE])) === false ) { + $key = count($cache[MATH_BIGINTEGER_VARIABLE]); + $cache[MATH_BIGINTEGER_VARIABLE][] = $n->value; + $temp = new Math_BigInteger(); + $temp->value = $this->_array_repeat(0, 2 * $n_length); + $temp->value[] = 1; + list($cache[MATH_BIGINTEGER_DATA][], ) = $temp->divide($n); + } + + $temp = new Math_BigInteger(); + $temp->value = array_slice($this->value, $n_length - 1); + $temp = $temp->multiply($cache[MATH_BIGINTEGER_DATA][$key]); + $temp->value = array_slice($temp->value, $n_length + 1); + + $result = new Math_BigInteger(); + $result->value = array_slice($this->value, 0, $n_length + 1); + $temp = $temp->_multiplyLower($n, $n_length + 1); + // $temp->value == array_slice($temp->multiply($n)->value, 0, $n_length + 1) + + if ($result->compare($temp) < 0) { + $corrector = new Math_BigInteger(); + $corrector->value = $this->_array_repeat(0, $n_length + 1); + $corrector->value[] = 1; + $result = $result->add($corrector); + } + + $result = $result->subtract($temp); + while ($result->compare($n) > 0) { + $result = $result->subtract($n); + } + + return $result; + } + + /** + * Montgomery Modular Reduction + * + * ($this->_prepMontgomery($n))->_montgomery($n) yields $x%$n. + * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=170 MPM 6.3} provides insights on how this can be + * improved upon (basically, by using the comba method). gcd($n, 2) must be equal to one for this function + * to work correctly. + * + * @see _prepMontgomery() + * @see _slidingWindow() + * @access private + * @param Math_BigInteger + * @return Math_BigInteger + */ + function _montgomery($n) + { + static $cache = array( + MATH_BIGINTEGER_VARIABLE => array(), + MATH_BIGINTEGER_DATA => array() + ); + + if ( ($key = array_search($n->value, $cache[MATH_BIGINTEGER_VARIABLE])) === false ) { + $key = count($cache[MATH_BIGINTEGER_VARIABLE]); + $cache[MATH_BIGINTEGER_VARIABLE][] = $n->value; + $cache[MATH_BIGINTEGER_DATA][] = $n->_modInverse67108864(); + } + + $k = count($n->value); + + $result = $this->copy(); + + for ($i = 0; $i < $k; $i++) { + $temp = new Math_BigInteger(); + $temp->value = array( + ($result->value[$i] * $cache[MATH_BIGINTEGER_DATA][$key]) & 0x3FFFFFF + ); + + $temp = $temp->multiply($n); + $temp->value = array_merge($this->_array_repeat(0, $i), $temp->value); + $result = $result->add($temp); + } + + $result->value = array_slice($result->value, $k); + + if ($result->compare($n) >= 0) { + $result = $result->subtract($n); + } + + return $result; + } + + /** + * Prepare a number for use in Montgomery Modular Reductions + * + * @see _montgomery() + * @see _slidingWindow() + * @access private + * @param Math_BigInteger + * @return Math_BigInteger + */ + function _prepMontgomery($n) + { + $k = count($n->value); + + $temp = new Math_BigInteger(); + $temp->value = array_merge($this->_array_repeat(0, $k), $this->value); + + list(, $temp) = $temp->divide($n); + return $temp; + } + + /** + * Modular Inverse of a number mod 2**26 (eg. 67108864) + * + * Based off of the bnpInvDigit function implemented and justified in the following URL: + * + * {@link http://www-cs-students.stanford.edu/~tjw/jsbn/jsbn.js} + * + * The following URL provides more info: + * + * {@link http://groups.google.com/group/sci.crypt/msg/7a137205c1be7d85} + * + * As for why we do all the bitmasking... strange things can happen when converting from floats to ints. For + * instance, on some computers, var_dump((int) -4294967297) yields int(-1) and on others, it yields + * int(-2147483648). To avoid problems stemming from this, we use bitmasks to guarantee that ints aren't + * auto-converted to floats. The outermost bitmask is present because without it, there's no guarantee that + * the "residue" returned would be the so-called "common residue". We use fmod, in the last step, because the + * maximum possible $x is 26 bits and the maximum $result is 16 bits. Thus, we have to be able to handle up to + * 40 bits, which only 64-bit floating points will support. + * + * Thanks to Pedro Gimeno Fortea for input! + * + * @see _montgomery() + * @access private + * @return Integer + */ + function _modInverse67108864() // 2**26 == 67108864 + { + $x = -$this->value[0]; + $result = $x & 0x3; // x**-1 mod 2**2 + $result = ($result * (2 - $x * $result)) & 0xF; // x**-1 mod 2**4 + $result = ($result * (2 - ($x & 0xFF) * $result)) & 0xFF; // x**-1 mod 2**8 + $result = ($result * ((2 - ($x & 0xFFFF) * $result) & 0xFFFF)) & 0xFFFF; // x**-1 mod 2**16 + $result = fmod($result * (2 - fmod($x * $result, 0x4000000)), 0x4000000); // x**-1 mod 2**26 + return $result & 0x3FFFFFF; + } + + /** + * Calculates modular inverses. + * + * Say you have (30 mod 17 * x mod 17) mod 17 == 1. x can be found using modular inverses. + * + * Here's an example: + * + * modInverse($b); + * echo $c->toString(); // outputs 4 + * + * echo "\r\n"; + * + * $d = $a->multiply($c); + * list(, $d) = $d->divide($b); + * echo $d; // outputs 1 (as per the definition of modular inverse) + * ?> + * + * + * @param Math_BigInteger $n + * @return mixed false, if no modular inverse exists, Math_BigInteger, otherwise. + * @access public + * @internal See {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=21 HAC 14.64} for more information. + */ + function modInverse($n) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = new Math_BigInteger(); + $temp->value = gmp_invert($this->value, $n->value); + + return ( $temp->value === false ) ? false : $this->_normalize($temp); + } + + static $zero, $one; + if (!isset($zero)) { + $zero = new Math_BigInteger(); + $one = new Math_BigInteger(1); + } + + // $x mod $n == $x mod -$n. + $n = $n->abs(); + + if ($this->compare($zero) < 0) { + $temp = $this->abs(); + $temp = $temp->modInverse($n); + return $negated === false ? false : $this->_normalize($n->subtract($temp)); + } + + extract($this->extendedGCD($n)); + + if (!$gcd->equals($one)) { + return false; + } + + $x = $x->compare($zero) < 0 ? $x->add($n) : $x; + + return $this->compare($zero) < 0 ? $this->_normalize($n->subtract($x)) : $this->_normalize($x); + } + + /** + * Calculates the greatest common divisor and Bzout's identity. + * + * Say you have 693 and 609. The GCD is 21. Bzout's identity states that there exist integers x and y such that + * 693*x + 609*y == 21. In point of fact, there are actually an infinite number of x and y combinations and which + * combination is returned is dependant upon which mode is in use. See + * {@link http://en.wikipedia.org/wiki/B%C3%A9zout%27s_identity Bzout's identity - Wikipedia} for more information. + * + * Here's an example: + * + * extendedGCD($b)); + * + * echo $gcd->toString() . "\r\n"; // outputs 21 + * echo $a->toString() * $x->toString() + $b->toString() * $y->toString(); // outputs 21 + * ?> + * + * + * @param Math_BigInteger $n + * @return Math_BigInteger + * @access public + * @internal Calculates the GCD using the binary xGCD algorithim described in + * {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=19 HAC 14.61}. As the text above 14.61 notes, + * the more traditional algorithim requires "relatively costly multiple-precision divisions". + */ + function extendedGCD($n) { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + extract(gmp_gcdext($this->value, $n->value)); + + return array( + 'gcd' => $this->_normalize(new Math_BigInteger($g)), + 'x' => $this->_normalize(new Math_BigInteger($s)), + 'y' => $this->_normalize(new Math_BigInteger($t)) + ); + case MATH_BIGINTEGER_MODE_BCMATH: + // it might be faster to use the binary xGCD algorithim here, as well, but (1) that algorithim works + // best when the base is a power of 2 and (2) i don't think it'd make much difference, anyway. as is, + // the basic extended euclidean algorithim is what we're using. + + $u = $this->value; + $v = $n->value; + + $a = '1'; + $b = '0'; + $c = '0'; + $d = '1'; + + while (bccomp($v, '0') != 0) { + $q = bcdiv($u, $v); + + $temp = $u; + $u = $v; + $v = bcsub($temp, bcmul($v, $q)); + + $temp = $a; + $a = $c; + $c = bcsub($temp, bcmul($a, $q)); + + $temp = $b; + $b = $d; + $d = bcsub($temp, bcmul($b, $q)); + } + + return array( + 'gcd' => $this->_normalize(new Math_BigInteger($u)), + 'x' => $this->_normalize(new Math_BigInteger($a)), + 'y' => $this->_normalize(new Math_BigInteger($b)) + ); + } + + $y = $n->copy(); + $x = $this->copy(); + $g = new Math_BigInteger(); + $g->value = array(1); + + while ( !(($x->value[0] & 1)|| ($y->value[0] & 1)) ) { + $x->_rshift(1); + $y->_rshift(1); + $g->_lshift(1); + } + + $u = $x->copy(); + $v = $y->copy(); + + $a = new Math_BigInteger(); + $b = new Math_BigInteger(); + $c = new Math_BigInteger(); + $d = new Math_BigInteger(); + + $a->value = $d->value = $g->value = array(1); + + while ( !empty($u->value) ) { + while ( !($u->value[0] & 1) ) { + $u->_rshift(1); + if ( ($a->value[0] & 1) || ($b->value[0] & 1) ) { + $a = $a->add($y); + $b = $b->subtract($x); + } + $a->_rshift(1); + $b->_rshift(1); + } + + while ( !($v->value[0] & 1) ) { + $v->_rshift(1); + if ( ($c->value[0] & 1) || ($d->value[0] & 1) ) { + $c = $c->add($y); + $d = $d->subtract($x); + } + $c->_rshift(1); + $d->_rshift(1); + } + + if ($u->compare($v) >= 0) { + $u = $u->subtract($v); + $a = $a->subtract($c); + $b = $b->subtract($d); + } else { + $v = $v->subtract($u); + $c = $c->subtract($a); + $d = $d->subtract($b); + } + } + + return array( + 'gcd' => $this->_normalize($g->multiply($v)), + 'x' => $this->_normalize($c), + 'y' => $this->_normalize($d) + ); + } + + /** + * Calculates the greatest common divisor + * + * Say you have 693 and 609. The GCD is 21. + * + * Here's an example: + * + * extendedGCD($b); + * + * echo $gcd->toString() . "\r\n"; // outputs 21 + * ?> + * + * + * @param Math_BigInteger $n + * @return Math_BigInteger + * @access public + */ + function gcd($n) + { + extract($this->extendedGCD($n)); + return $gcd; + } + + /** + * Absolute value. + * + * @return Math_BigInteger + * @access public + */ + function abs() + { + $temp = new Math_BigInteger(); + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp->value = gmp_abs($this->value); + break; + case MATH_BIGINTEGER_MODE_BCMATH: + $temp->value = (bccomp($this->value, '0') < 0) ? substr($this->value, 1) : $this->value; + break; + default: + $temp->value = $this->value; + } + + return $temp; + } + + /** + * Compares two numbers. + * + * Although one might think !$x->compare($y) means $x != $y, it, in fact, means the opposite. The reason for this is + * demonstrated thusly: + * + * $x > $y: $x->compare($y) > 0 + * $x < $y: $x->compare($y) < 0 + * $x == $y: $x->compare($y) == 0 + * + * Note how the same comparison operator is used. If you want to test for equality, use $x->equals($y). + * + * @param Math_BigInteger $x + * @return Integer < 0 if $this is less than $x; > 0 if $this is greater than $x, and 0 if they are equal. + * @access public + * @see equals() + * @internal Could return $this->sub($x), but that's not as fast as what we do do. + */ + function compare($y) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + return gmp_cmp($this->value, $y->value); + case MATH_BIGINTEGER_MODE_BCMATH: + return bccomp($this->value, $y->value); + } + + $x = $this->_normalize($this->copy()); + $y = $this->_normalize($y); + + if ( $x->is_negative != $y->is_negative ) { + return ( !$x->is_negative && $y->is_negative ) ? 1 : -1; + } + + $result = $x->is_negative ? -1 : 1; + + if ( count($x->value) != count($y->value) ) { + return ( count($x->value) > count($y->value) ) ? $result : -$result; + } + + for ($i = count($x->value) - 1; $i >= 0; $i--) { + if ($x->value[$i] != $y->value[$i]) { + return ( $x->value[$i] > $y->value[$i] ) ? $result : -$result; + } + } + + return 0; + } + + /** + * Tests the equality of two numbers. + * + * If you need to see if one number is greater than or less than another number, use Math_BigInteger::compare() + * + * @param Math_BigInteger $x + * @return Boolean + * @access public + * @see compare() + */ + function equals($x) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + return gmp_cmp($this->value, $x->value) == 0; + default: + return $this->value == $x->value && $this->is_negative == $x->is_negative; + } + } + + /** + * Set Precision + * + * Some bitwise operations give different results depending on the precision being used. Examples include left + * shift, not, and rotates. + * + * @param Math_BigInteger $x + * @access public + * @return Math_BigInteger + */ + function setPrecision($bits) + { + $this->precision = $bits; + if ( MATH_BIGINTEGER_MODE != MATH_BIGINTEGER_MODE_BCMATH ) { + $this->bitmask = new Math_BigInteger(chr((1 << ($bits & 0x7)) - 1) . str_repeat(chr(0xFF), $bits >> 3), 256); + } else { + $this->bitmask = new Math_BigInteger(bcpow('2', $bits)); + } + } + + /** + * Logical And + * + * @param Math_BigInteger $x + * @access public + * @internal Implemented per a request by Lluis Pamies i Juarez + * @return Math_BigInteger + */ + function bitwise_and($x) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = new Math_BigInteger(); + $temp->value = gmp_and($this->value, $x->value); + + return $this->_normalize($temp); + case MATH_BIGINTEGER_MODE_BCMATH: + $left = $this->toBytes(); + $right = $x->toBytes(); + + $length = max(strlen($left), strlen($right)); + + $left = str_pad($left, $length, chr(0), STR_PAD_LEFT); + $right = str_pad($right, $length, chr(0), STR_PAD_LEFT); + + return $this->_normalize(new Math_BigInteger($left & $right, 256)); + } + + $result = $this->copy(); + + $length = min(count($x->value), count($this->value)); + + $result->value = array_slice($result->value, 0, $length); + + for ($i = 0; $i < $length; $i++) { + $result->value[$i] = $result->value[$i] & $x->value[$i]; + } + + return $this->_normalize($result); + } + + /** + * Logical Or + * + * @param Math_BigInteger $x + * @access public + * @internal Implemented per a request by Lluis Pamies i Juarez + * @return Math_BigInteger + */ + function bitwise_or($x) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = new Math_BigInteger(); + $temp->value = gmp_or($this->value, $x->value); + + return $this->_normalize($temp); + case MATH_BIGINTEGER_MODE_BCMATH: + $left = $this->toBytes(); + $right = $x->toBytes(); + + $length = max(strlen($left), strlen($right)); + + $left = str_pad($left, $length, chr(0), STR_PAD_LEFT); + $right = str_pad($right, $length, chr(0), STR_PAD_LEFT); + + return $this->_normalize(new Math_BigInteger($left | $right, 256)); + } + + $length = max(count($this->value), count($x->value)); + $result = $this->copy(); + $result->value = array_pad($result->value, 0, $length); + $x->value = array_pad($x->value, 0, $length); + + for ($i = 0; $i < $length; $i++) { + $result->value[$i] = $this->value[$i] | $x->value[$i]; + } + + return $this->_normalize($result); + } + + /** + * Logical Exclusive-Or + * + * @param Math_BigInteger $x + * @access public + * @internal Implemented per a request by Lluis Pamies i Juarez + * @return Math_BigInteger + */ + function bitwise_xor($x) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = new Math_BigInteger(); + $temp->value = gmp_xor($this->value, $x->value); + + return $this->_normalize($temp); + case MATH_BIGINTEGER_MODE_BCMATH: + $left = $this->toBytes(); + $right = $x->toBytes(); + + $length = max(strlen($left), strlen($right)); + + $left = str_pad($left, $length, chr(0), STR_PAD_LEFT); + $right = str_pad($right, $length, chr(0), STR_PAD_LEFT); + + return $this->_normalize(new Math_BigInteger($left ^ $right, 256)); + } + + $length = max(count($this->value), count($x->value)); + $result = $this->copy(); + $result->value = array_pad($result->value, 0, $length); + $x->value = array_pad($x->value, 0, $length); + + for ($i = 0; $i < $length; $i++) { + $result->value[$i] = $this->value[$i] ^ $x->value[$i]; + } + + return $this->_normalize($result); + } + + /** + * Logical Not + * + * @access public + * @internal Implemented per a request by Lluis Pamies i Juarez + * @return Math_BigInteger + */ + function bitwise_not() + { + // calculuate "not" without regard to $this->precision + // (will always result in a smaller number. ie. ~1 isn't 1111 1110 - it's 0) + $temp = $this->toBytes(); + $pre_msb = decbin(ord($temp[0])); + $temp = ~$temp; + $msb = decbin(ord($temp[0])); + if (strlen($msb) == 8) { + $msb = substr($msb, strpos($msb, '0')); + } + $temp[0] = chr(bindec($msb)); + + // see if we need to add extra leading 1's + $current_bits = strlen($pre_msb) + 8 * strlen($temp) - 8; + $new_bits = $this->precision - $current_bits; + if ($new_bits <= 0) { + return $this->_normalize(new Math_BigInteger($temp, 256)); + } + + // generate as many leading 1's as we need to. + $leading_ones = chr((1 << ($new_bits & 0x7)) - 1) . str_repeat(chr(0xFF), $new_bits >> 3); + $this->_base256_lshift($leading_ones, $current_bits); + + $temp = str_pad($temp, ceil($this->bits / 8), chr(0), STR_PAD_LEFT); + + return $this->_normalize(new Math_BigInteger($leading_ones | $temp, 256)); + } + + /** + * Logical Right Shift + * + * Shifts BigInteger's by $shift bits, effectively dividing by 2**$shift. + * + * @param Integer $shift + * @return Math_BigInteger + * @access public + * @internal The only version that yields any speed increases is the internal version. + */ + function bitwise_rightShift($shift) + { + $temp = new Math_BigInteger(); + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + static $two; + + if (empty($two)) { + $two = gmp_init('2'); + } + + $temp->value = gmp_div_q($this->value, gmp_pow($two, $shift)); + + break; + case MATH_BIGINTEGER_MODE_BCMATH: + $temp->value = bcdiv($this->value, bcpow('2', $shift)); + + break; + default: // could just replace _lshift with this, but then all _lshift() calls would need to be rewritten + // and I don't want to do that... + $temp->value = $this->value; + $temp->_rshift($shift); + } + + return $this->_normalize($temp); + } + + /** + * Logical Left Shift + * + * Shifts BigInteger's by $shift bits, effectively multiplying by 2**$shift. + * + * @param Integer $shift + * @return Math_BigInteger + * @access public + * @internal The only version that yields any speed increases is the internal version. + */ + function bitwise_leftShift($shift) + { + $temp = new Math_BigInteger(); + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + static $two; + + if (empty($two)) { + $two = gmp_init('2'); + } + + $temp->value = gmp_mul($this->value, gmp_pow($two, $shift)); + + break; + case MATH_BIGINTEGER_MODE_BCMATH: + $temp->value = bcmul($this->value, bcpow('2', $shift)); + + break; + default: // could just replace _rshift with this, but then all _lshift() calls would need to be rewritten + // and I don't want to do that... + $temp->value = $this->value; + $temp->_lshift($shift); + } + + return $this->_normalize($temp); + } + + /** + * Logical Left Rotate + * + * Instead of the top x bits being dropped they're appended to the shifted bit string. + * + * @param Integer $shift + * @return Math_BigInteger + * @access public + */ + function bitwise_leftRotate($shift) + { + $bits = $this->toBytes(); + + if ($this->precision > 0) { + $precision = $this->precision; + if ( MATH_BIGINTEGER_MODE == MATH_BIGINTEGER_MODE_BCMATH ) { + $mask = $this->bitmask->subtract(new Math_BigInteger(1)); + $mask = $mask->toBytes(); + } else { + $mask = $this->bitmask->toBytes(); + } + } else { + $temp = ord($bits[0]); + for ($i = 0; $temp >> $i; $i++); + $precision = 8 * strlen($bits) - 8 + $i; + $mask = chr((1 << ($precision & 0x7)) - 1) . str_repeat(chr(0xFF), $precision >> 3); + } + + if ($shift < 0) { + $shift+= $precision; + } + $shift%= $precision; + + if (!$shift) { + return $this->copy(); + } + + $left = $this->bitwise_leftShift($shift); + $left = $left->bitwise_and(new Math_BigInteger($mask, 256)); + $right = $this->bitwise_rightShift($precision - $shift); + $result = MATH_BIGINTEGER_MODE != MATH_BIGINTEGER_MODE_BCMATH ? $left->bitwise_or($right) : $left->add($right); + return $this->_normalize($result); + } + + /** + * Logical Right Rotate + * + * Instead of the bottom x bits being dropped they're prepended to the shifted bit string. + * + * @param Integer $shift + * @return Math_BigInteger + * @access public + */ + function bitwise_rightRotate($shift) + { + return $this->bitwise_leftRotate(-$shift); + } + + /** + * Set random number generator function + * + * $generator should be the name of a random generating function whose first parameter is the minimum + * value and whose second parameter is the maximum value. If this function needs to be seeded, it should + * be seeded prior to calling Math_BigInteger::random() or Math_BigInteger::randomPrime() + * + * If the random generating function is not explicitly set, it'll be assumed to be mt_rand(). + * + * @see random() + * @see randomPrime() + * @param optional String $generator + * @access public + */ + function setRandomGenerator($generator) + { + $this->generator = $generator; + } + + /** + * Generate a random number + * + * @param optional Integer $min + * @param optional Integer $max + * @return Math_BigInteger + * @access public + */ + function random($min = false, $max = false) + { + if ($min === false) { + $min = new Math_BigInteger(0); + } + + if ($max === false) { + $max = new Math_BigInteger(0x7FFFFFFF); + } + + $compare = $max->compare($min); + + if (!$compare) { + return $this->_normalize($min); + } else if ($compare < 0) { + // if $min is bigger then $max, swap $min and $max + $temp = $max; + $max = $min; + $min = $temp; + } + + $generator = $this->generator; + + $max = $max->subtract($min); + $max = ltrim($max->toBytes(), chr(0)); + $size = strlen($max) - 1; + $random = ''; + + $bytes = $size & 1; + for ($i = 0; $i < $bytes; $i++) { + $random.= chr($generator(0, 255)); + } + + $blocks = $size >> 1; + for ($i = 0; $i < $blocks; $i++) { + // mt_rand(-2147483648, 0x7FFFFFFF) always produces -2147483648 on some systems + $random.= pack('n', $generator(0, 0xFFFF)); + } + + $temp = new Math_BigInteger($random, 256); + if ($temp->compare(new Math_BigInteger(substr($max, 1), 256)) > 0) { + $random = chr($generator(0, ord($max[0]) - 1)) . $random; + } else { + $random = chr($generator(0, ord($max[0]) )) . $random; + } + + $random = new Math_BigInteger($random, 256); + + return $this->_normalize($random->add($min)); + } + + /** + * Generate a random prime number. + * + * If there's not a prime within the given range, false will be returned. If more than $timeout seconds have elapsed, + * give up and return false. + * + * @param optional Integer $min + * @param optional Integer $max + * @param optional Integer $timeout + * @return Math_BigInteger + * @access public + * @internal See {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap4.pdf#page=15 HAC 4.44}. + */ + function randomPrime($min = false, $max = false, $timeout = false) + { + // gmp_nextprime() requires PHP 5 >= 5.2.0 per . + if ( MATH_BIGINTEGER_MODE == MATH_BIGINTEGER_MODE_GMP && function_exists('gmp_nextprime') ) { + // we don't rely on Math_BigInteger::random()'s min / max when gmp_nextprime() is being used since this function + // does its own checks on $max / $min when gmp_nextprime() is used. When gmp_nextprime() is not used, however, + // the same $max / $min checks are not performed. + if ($min === false) { + $min = new Math_BigInteger(0); + } + + if ($max === false) { + $max = new Math_BigInteger(0x7FFFFFFF); + } + + $compare = $max->compare($min); + + if (!$compare) { + return $min; + } else if ($compare < 0) { + // if $min is bigger then $max, swap $min and $max + $temp = $max; + $max = $min; + $min = $temp; + } + + $x = $this->random($min, $max); + + $x->value = gmp_nextprime($x->value); + + if ($x->compare($max) <= 0) { + return $x; + } + + $x->value = gmp_nextprime($min->value); + + if ($x->compare($max) <= 0) { + return $x; + } + + return false; + } + + $repeat1 = $repeat2 = array(); + + $one = new Math_BigInteger(1); + $two = new Math_BigInteger(2); + + $start = time(); + + do { + if ($timeout !== false && time() - $start > $timeout) { + return false; + } + + $x = $this->random($min, $max); + if ($x->equals($two)) { + return $x; + } + + // make the number odd + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + gmp_setbit($x->value, 0); + break; + case MATH_BIGINTEGER_MODE_BCMATH: + if ($x->value[strlen($x->value) - 1] % 2 == 0) { + $x = $x->add($one); + } + break; + default: + $x->value[0] |= 1; + } + + // if we've seen this number twice before, assume there are no prime numbers within the given range + if (in_array($x->value, $repeat1)) { + if (in_array($x->value, $repeat2)) { + return false; + } else { + $repeat2[] = $x->value; + } + } else { + $repeat1[] = $x->value; + } + } while (!$x->isPrime()); + + return $x; + } + + /** + * Checks a numer to see if it's prime + * + * Assuming the $t parameter is not set, this functoin has an error rate of 2**-80. The main motivation for the + * $t parameter is distributability. Math_BigInteger::randomPrime() can be distributed accross multiple pageloads + * on a website instead of just one. + * + * @param optional Integer $t + * @return Boolean + * @access public + * @internal Uses the + * {@link http://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test MillerRabin primality test}. See + * {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap4.pdf#page=8 HAC 4.24}. + */ + function isPrime($t = false) + { + $length = strlen($this->toBytes()); + + if (!$t) { + // see HAC 4.49 "Note (controlling the error probability)" + if ($length >= 163) { $t = 2; } // floor(1300 / 8) + else if ($length >= 106) { $t = 3; } // floor( 850 / 8) + else if ($length >= 81 ) { $t = 4; } // floor( 650 / 8) + else if ($length >= 68 ) { $t = 5; } // floor( 550 / 8) + else if ($length >= 56 ) { $t = 6; } // floor( 450 / 8) + else if ($length >= 50 ) { $t = 7; } // floor( 400 / 8) + else if ($length >= 43 ) { $t = 8; } // floor( 350 / 8) + else if ($length >= 37 ) { $t = 9; } // floor( 300 / 8) + else if ($length >= 31 ) { $t = 12; } // floor( 250 / 8) + else if ($length >= 25 ) { $t = 15; } // floor( 200 / 8) + else if ($length >= 18 ) { $t = 18; } // floor( 150 / 8) + else { $t = 27; } + } + + // ie. gmp_testbit($this, 0) + // ie. isEven() or !isOdd() + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + return gmp_prob_prime($this->value, $t) != 0; + case MATH_BIGINTEGER_MODE_BCMATH: + if ($this->value == '2') { + return true; + } + if ($this->value[strlen($this->value) - 1] % 2 == 0) { + return false; + } + break; + default: + if ($this->value == array(2)) { + return true; + } + if (~$this->value[0] & 1) { + return false; + } + } + + static $primes, $zero, $one, $two; + + if (!isset($primes)) { + $primes = array( + 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, + 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, + 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, + 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, + 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, + 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, + 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, + 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, + 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, + 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, + 953, 967, 971, 977, 983, 991, 997 + ); + + for ($i = 0; $i < count($primes); $i++) { + $primes[$i] = new Math_BigInteger($primes[$i]); + } + + $zero = new Math_BigInteger(); + $one = new Math_BigInteger(1); + $two = new Math_BigInteger(2); + } + + // see HAC 4.4.1 "Random search for probable primes" + for ($i = 0; $i < count($primes); $i++) { + list(, $r) = $this->divide($primes[$i]); + if ($r->equals($zero)) { + return false; + } + } + + $n = $this->copy(); + $n_1 = $n->subtract($one); + $n_2 = $n->subtract($two); + + $r = $n_1->copy(); + // ie. $s = gmp_scan1($n, 0) and $r = gmp_div_q($n, gmp_pow(gmp_init('2'), $s)); + if ( MATH_BIGINTEGER_MODE == MATH_BIGINTEGER_MODE_BCMATH ) { + $s = 0; + while ($r->value[strlen($r->value) - 1] % 2 == 0) { + $r->value = bcdiv($r->value, 2); + $s++; + } + } else { + for ($i = 0; $i < count($r->value); $i++) { + $temp = ~$r->value[$i] & 0xFFFFFF; + for ($j = 1; ($temp >> $j) & 1; $j++); + if ($j != 25) { + break; + } + } + $s = 26 * $i + $j - 1; + $r->_rshift($s); + } + + for ($i = 0; $i < $t; $i++) { + $a = new Math_BigInteger(); + $a = $a->random($two, $n_2); + $y = $a->modPow($r, $n); + + if (!$y->equals($one) && !$y->equals($n_1)) { + for ($j = 1; $j < $s && !$y->equals($n_1); $j++) { + $y = $y->modPow($two, $n); + if ($y->equals($one)) { + return false; + } + } + + if (!$y->equals($n_1)) { + return false; + } + } + } + return true; + } + + /** + * Logical Left Shift + * + * Shifts BigInteger's by $shift bits. + * + * @param Integer $shift + * @access private + */ + function _lshift($shift) + { + if ( $shift == 0 ) { + return; + } + + $num_digits = floor($shift / 26); + $shift %= 26; + $shift = 1 << $shift; + + $carry = 0; + + for ($i = 0; $i < count($this->value); $i++) { + $temp = $this->value[$i] * $shift + $carry; + $carry = floor($temp / 0x4000000); + $this->value[$i] = $temp - $carry * 0x4000000; + } + + if ( $carry ) { + $this->value[] = $carry; + } + + while ($num_digits--) { + array_unshift($this->value, 0); + } + } + + /** + * Logical Right Shift + * + * Shifts BigInteger's by $shift bits. + * + * @param Integer $shift + * @access private + */ + function _rshift($shift) + { + if ($shift == 0) { + return; + } + + $num_digits = floor($shift / 26); + $shift %= 26; + $carry_shift = 26 - $shift; + $carry_mask = (1 << $shift) - 1; + + if ( $num_digits ) { + $this->value = array_slice($this->value, $num_digits); + } + + $carry = 0; + + for ($i = count($this->value) - 1; $i >= 0; $i--) { + $temp = $this->value[$i] >> $shift | $carry; + $carry = ($this->value[$i] & $carry_mask) << $carry_shift; + $this->value[$i] = $temp; + } + } + + /** + * Normalize + * + * Deletes leading zeros and truncates (if necessary) to maintain the appropriate precision + * + * @return Math_BigInteger + * @access private + */ + function _normalize($result) + { + $result->precision = $this->precision; + $result->bitmask = $this->bitmask; + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + if (!empty($result->bitmask->value)) { + $result->value = gmp_and($result->value, $result->bitmask->value); + } + + return $result; + case MATH_BIGINTEGER_MODE_BCMATH: + if (!empty($result->bitmask->value)) { + $result->value = bcmod($result->value, $result->bitmask->value); + } + + return $result; + } + + if ( !count($result->value) ) { + return $result; + } + + for ($i = count($result->value) - 1; $i >= 0; $i--) { + if ( $result->value[$i] ) { + break; + } + unset($result->value[$i]); + } + + if (!empty($result->bitmask->value)) { + $length = min(count($result->value), count($this->bitmask->value)); + $result->value = array_slice($result->value, 0, $length); + + for ($i = 0; $i < $length; $i++) { + $result->value[$i] = $result->value[$i] & $this->bitmask->value[$i]; + } + } + + return $result; + } + + /** + * Array Repeat + * + * @param $input Array + * @param $multiplier mixed + * @return Array + * @access private + */ + function _array_repeat($input, $multiplier) + { + return ($multiplier) ? array_fill(0, $multiplier, $input) : array(); + } + + /** + * Logical Left Shift + * + * Shifts binary strings $shift bits, essentially multiplying by 2**$shift. + * + * @param $x String + * @param $shift Integer + * @return String + * @access private + */ + function _base256_lshift(&$x, $shift) + { + if ($shift == 0) { + return; + } + + $num_bytes = $shift >> 3; // eg. floor($shift/8) + $shift &= 7; // eg. $shift % 8 + + $carry = 0; + for ($i = strlen($x) - 1; $i >= 0; $i--) { + $temp = ord($x[$i]) << $shift | $carry; + $x[$i] = chr($temp); + $carry = $temp >> 8; + } + $carry = ($carry != 0) ? chr($carry) : ''; + $x = $carry . $x . str_repeat(chr(0), $num_bytes); + } + + /** + * Logical Right Shift + * + * Shifts binary strings $shift bits, essentially dividing by 2**$shift and returning the remainder. + * + * @param $x String + * @param $shift Integer + * @return String + * @access private + */ + function _base256_rshift(&$x, $shift) + { + if ($shift == 0) { + $x = ltrim($x, chr(0)); + return ''; + } + + $num_bytes = $shift >> 3; // eg. floor($shift/8) + $shift &= 7; // eg. $shift % 8 + + $remainder = ''; + if ($num_bytes) { + $start = $num_bytes > strlen($x) ? -strlen($x) : -$num_bytes; + $remainder = substr($x, $start); + $x = substr($x, 0, -$num_bytes); + } + + $carry = 0; + $carry_shift = 8 - $shift; + for ($i = 0; $i < strlen($x); $i++) { + $temp = (ord($x[$i]) >> $shift) | $carry; + $carry = (ord($x[$i]) << $carry_shift) & 0xFF; + $x[$i] = chr($temp); + } + $x = ltrim($x, chr(0)); + + $remainder = chr($carry >> $carry_shift) . $remainder; + + return ltrim($remainder, chr(0)); + } + + // one quirk about how the following functions are implemented is that PHP defines N to be an unsigned long + // at 32-bits, while java's longs are 64-bits. + + /** + * Converts 32-bit integers to bytes. + * + * @param Integer $x + * @return String + * @access private + */ + function _int2bytes($x) + { + return ltrim(pack('N', $x), chr(0)); + } + + /** + * Converts bytes to 32-bit integers + * + * @param String $x + * @return Integer + * @access private + */ + function _bytes2int($x) + { + $temp = unpack('Nint', str_pad($x, 4, chr(0), STR_PAD_LEFT)); + return $temp['int']; + } +} \ No newline at end of file -- cgit v1.2.3-54-g00ecf From 23d44c7d5980fb096aeec62c600b71cfb9fac167 Mon Sep 17 00:00:00 2001 From: James Walker Date: Fri, 12 Mar 2010 19:34:45 -0500 Subject: converted sign, verify and fromString to new crypt lib --- plugins/OStatus/classes/Magicsig.php | 86 +++++++++++++----------------------- 1 file changed, 31 insertions(+), 55 deletions(-) diff --git a/plugins/OStatus/classes/Magicsig.php b/plugins/OStatus/classes/Magicsig.php index b0a411e5d..d25b150e8 100644 --- a/plugins/OStatus/classes/Magicsig.php +++ b/plugins/OStatus/classes/Magicsig.php @@ -40,8 +40,9 @@ class Magicsig extends Memcached_DataObject public $keypair; public $alg; - private $_rsa; - + private $publicKey; + private $privateKey; + public function __construct($alg = 'RSA-SHA256') { $this->alg = $alg; @@ -101,15 +102,7 @@ class Magicsig extends Memcached_DataObject public function generate($user_id, $key_length = 512) { - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - - $keypair = new Crypt_RSA_KeyPair($key_length); - $params['public_key'] = $keypair->getPublicKey(); - $params['private_key'] = $keypair->getPrivateKey(); - - $this->_rsa = new Crypt_RSA($params); - PEAR::popErrorHandling(); - + // @fixme new key generation $this->user_id = $user_id; $this->insert(); } @@ -132,8 +125,6 @@ class Magicsig extends Memcached_DataObject public static function fromString($text) { - PEAR::pushErrorHandling(PEAR_ERROR_RETURN); - $magic_sig = new Magicsig(); // remove whitespace @@ -144,35 +135,40 @@ class Magicsig extends Memcached_DataObject return false; } - $mod = base64_url_decode($matches[1]); - $exp = base64_url_decode($matches[2]); + $mod = $matches[1]; + $exp = $matches[2]; if (!empty($matches[4])) { - $private_exp = base64_url_decode($matches[4]); + $private_exp = $matches[4]; } else { $private_exp = false; } - $params['public_key'] = new Crypt_RSA_KEY($mod, $exp, 'public'); - if ($params['public_key']->isError()) { - $error = $params['public_key']->getLastError(); - common_log(LOG_DEBUG, 'RSA Error: '. $error->getMessage()); - return false; - } + $magic_sig->loadKey($mod, $exp, 'public'); if ($private_exp) { - $params['private_key'] = new Crypt_RSA_KEY($mod, $private_exp, 'private'); - if ($params['private_key']->isError()) { - $error = $params['private_key']->getLastError(); - common_log(LOG_DEBUG, 'RSA Error: '. $error->getMessage()); - return false; - } + $magic_sig->loadKey($mod, $private_exp, 'private'); } - $magic_sig->_rsa = new Crypt_RSA($params); - PEAR::popErrorHandling(); - return $magic_sig; } + public function loadKey($mod, $exp, $type = 'public') + { + common_log(LOG_DEBUG, "Adding ".$type." key: (".$mod .', '. $exp .")"); + + $rsa = new Crypt_RSA(); + $rsa->signatureMode = CRYPT_RSA_SIGNATURE_PKCS1; + $rsa->setHash('sha256'); + $rsa->modulus = new Math_BigInteger(base64_url_decode($mod), 256); + $rsa->k = strlen($rsa->modulus->toBytes()); + $rsa->exponent = new Math_BigInteger(base64_url_decode($exp), 256); + + if ($type == 'private') { + $this->privateKey = $rsa; + } else { + $this->publicKey = $rsa; + } + } + public function getName() { return $this->alg; @@ -190,38 +186,18 @@ class Magicsig extends Memcached_DataObject public function sign($bytes) { - $hash = $this->getHash(); - $sig = $this->_rsa->createSign($bytes, null, $hash); - if ($this->_rsa->isError()) { - $error = $this->_rsa->getLastError(); - common_log(LOG_DEBUG, 'RSA Error: '. $error->getMessage()); - return false; - } - - return $sig; + $sig = $this->privateKey->sign($bytes); + return base64_url_encode($sig); } public function verify($signed_bytes, $signature) { - $hash = $this->getHash(); - $result = $this->_rsa->validateSign($signed_bytes, $signature, null, $hash); - if ($this->_rsa->isError()) { - $error = $this->keypair->getLastError(); - common_log(LOG_DEBUG, 'RSA Error: '. $error->getMessage()); - return false; - } - return $result; + $signature = base64_url_decode($signature); + return $this->publicKey->verify($signed_bytes, $signature); } } -// Define a sha256 function for hashing -// (Crypt_RSA should really be updated to use hash() ) -function magicsig_sha256($bytes) -{ - return hash('sha256', $bytes); -} - function base64_url_encode($input) { return strtr(base64_encode($input), '+/', '-_'); -- cgit v1.2.3-54-g00ecf From c5bb41176ee246369e05b932f031f40e38087f23 Mon Sep 17 00:00:00 2001 From: James Walker Date: Fri, 12 Mar 2010 19:42:48 -0500 Subject: converted toString to new crypt library --- plugins/OStatus/classes/Magicsig.php | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/plugins/OStatus/classes/Magicsig.php b/plugins/OStatus/classes/Magicsig.php index d25b150e8..d1d6a6d45 100644 --- a/plugins/OStatus/classes/Magicsig.php +++ b/plugins/OStatus/classes/Magicsig.php @@ -110,14 +110,11 @@ class Magicsig extends Memcached_DataObject public function toString($full_pair = true) { - $public_key = $this->_rsa->_public_key; - $private_key = $this->_rsa->_private_key; - - $mod = base64_url_encode($public_key->getModulus()); - $exp = base64_url_encode($public_key->getExponent()); + $mod = base64_url_encode($this->publicKey->modulus->toBytes()); + $exp = base64_url_encode($this->publicKey->exponent->toBytes()); $private_exp = ''; if ($full_pair && $private_key->getExponent()) { - $private_exp = '.' . base64_url_encode($private_key->getExponent()); + $private_exp = '.' . base64_url_encode($this->privateKey->exponent->toBytes()); } return 'RSA.' . $mod . '.' . $exp . $private_exp; -- cgit v1.2.3-54-g00ecf From 520faaf67d7bd7bb0a87322d3f2e244c22d0c994 Mon Sep 17 00:00:00 2001 From: James Walker Date: Fri, 12 Mar 2010 20:01:34 -0500 Subject: updating phpseclib to latest cvs - fixes a bunch of key generation issues --- plugins/OStatus/extlib/Crypt/AES.php | 898 ++-- plugins/OStatus/extlib/Crypt/DES.php | 1794 ++++---- plugins/OStatus/extlib/Crypt/Hash.php | 1630 +++---- plugins/OStatus/extlib/Crypt/RC4.php | 984 ++--- plugins/OStatus/extlib/Crypt/RSA.php | 4035 +++++++++-------- plugins/OStatus/extlib/Crypt/Random.php | 193 +- plugins/OStatus/extlib/Crypt/Rijndael.php | 2375 +++++----- plugins/OStatus/extlib/Crypt/TripleDES.php | 1291 +++--- plugins/OStatus/extlib/Math/BigInteger.php | 6603 +++++++++++++++------------- 9 files changed, 10434 insertions(+), 9369 deletions(-) diff --git a/plugins/OStatus/extlib/Crypt/AES.php b/plugins/OStatus/extlib/Crypt/AES.php index 4b062c4f2..68ab4db09 100644 --- a/plugins/OStatus/extlib/Crypt/AES.php +++ b/plugins/OStatus/extlib/Crypt/AES.php @@ -1,421 +1,479 @@ - - * setKey('abcdefghijklmnop'); - * - * $size = 10 * 1024; - * $plaintext = ''; - * for ($i = 0; $i < $size; $i++) { - * $plaintext.= 'a'; - * } - * - * echo $aes->decrypt($aes->encrypt($plaintext)); - * ?> - * - * - * LICENSE: This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - * - * @category Crypt - * @package Crypt_AES - * @author Jim Wigginton - * @copyright MMVIII Jim Wigginton - * @license http://www.gnu.org/licenses/lgpl.txt - * @version $Id: AES.php,v 1.5 2009/11/23 19:06:06 terrafrost Exp $ - * @link http://phpseclib.sourceforge.net - */ - -/** - * Include Crypt_Rijndael - */ -require_once 'Rijndael.php'; - -/**#@+ - * @access public - * @see Crypt_AES::encrypt() - * @see Crypt_AES::decrypt() - */ -/** - * Encrypt / decrypt using the Electronic Code Book mode. - * - * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29 - */ -define('CRYPT_AES_MODE_ECB', 1); -/** - * Encrypt / decrypt using the Code Book Chaining mode. - * - * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29 - */ -define('CRYPT_AES_MODE_CBC', 2); -/**#@-*/ - -/**#@+ - * @access private - * @see Crypt_AES::Crypt_AES() - */ -/** - * Toggles the internal implementation - */ -define('CRYPT_AES_MODE_INTERNAL', 1); -/** - * Toggles the mcrypt implementation - */ -define('CRYPT_AES_MODE_MCRYPT', 2); -/**#@-*/ - -/** - * Pure-PHP implementation of AES. - * - * @author Jim Wigginton - * @version 0.1.0 - * @access public - * @package Crypt_AES - */ -class Crypt_AES extends Crypt_Rijndael { - /** - * MCrypt parameters - * - * @see Crypt_AES::setMCrypt() - * @var Array - * @access private - */ - var $mcrypt = array('', ''); - - /** - * Default Constructor. - * - * Determines whether or not the mcrypt extension should be used. $mode should only, at present, be - * CRYPT_AES_MODE_ECB or CRYPT_AES_MODE_CBC. If not explictly set, CRYPT_AES_MODE_CBC will be used. - * - * @param optional Integer $mode - * @return Crypt_AES - * @access public - */ - function Crypt_AES($mode = CRYPT_AES_MODE_CBC) - { - if ( !defined('CRYPT_AES_MODE') ) { - switch (true) { - case extension_loaded('mcrypt'): - // i'd check to see if aes was supported, by doing in_array('des', mcrypt_list_algorithms('')), - // but since that can be changed after the object has been created, there doesn't seem to be - // a lot of point... - define('CRYPT_AES_MODE', CRYPT_AES_MODE_MCRYPT); - break; - default: - define('CRYPT_AES_MODE', CRYPT_AES_MODE_INTERNAL); - } - } - - switch ( CRYPT_AES_MODE ) { - case CRYPT_AES_MODE_MCRYPT: - switch ($mode) { - case CRYPT_AES_MODE_ECB: - $this->mode = MCRYPT_MODE_ECB; - break; - case CRYPT_AES_MODE_CBC: - default: - $this->mode = MCRYPT_MODE_CBC; - } - - break; - default: - switch ($mode) { - case CRYPT_AES_MODE_ECB: - $this->mode = CRYPT_RIJNDAEL_MODE_ECB; - break; - case CRYPT_AES_MODE_CBC: - default: - $this->mode = CRYPT_RIJNDAEL_MODE_CBC; - } - } - - if (CRYPT_AES_MODE == CRYPT_AES_MODE_INTERNAL) { - parent::Crypt_Rijndael($this->mode); - } - } - - /** - * Dummy function - * - * Since Crypt_AES extends Crypt_Rijndael, this function is, technically, available, but it doesn't do anything. - * - * @access public - * @param Integer $length - */ - function setBlockLength($length) - { - return; - } - - /** - * Encrypts a message. - * - * $plaintext will be padded with up to 16 additional bytes. Other AES implementations may or may not pad in the - * same manner. Other common approaches to padding and the reasons why it's necessary are discussed in the following - * URL: - * - * {@link http://www.di-mgt.com.au/cryptopad.html http://www.di-mgt.com.au/cryptopad.html} - * - * An alternative to padding is to, separately, send the length of the file. This is what SSH, in fact, does. - * strlen($plaintext) will still need to be a multiple of 16, however, arbitrary values can be added to make it that - * length. - * - * @see Crypt_AES::decrypt() - * @access public - * @param String $plaintext - */ - function encrypt($plaintext) - { - if ( CRYPT_AES_MODE == CRYPT_AES_MODE_MCRYPT ) { - $this->_mcryptSetup(); - $plaintext = $this->_pad($plaintext); - - $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, $this->mcrypt[0], $this->mode, $this->mcrypt[1]); - mcrypt_generic_init($td, $this->key, $this->encryptIV); - - $ciphertext = mcrypt_generic($td, $plaintext); - - mcrypt_generic_deinit($td); - mcrypt_module_close($td); - - if ($this->continuousBuffer) { - $this->encryptIV = substr($ciphertext, -16); - } - - return $ciphertext; - } - - return parent::encrypt($plaintext); - } - - /** - * Decrypts a message. - * - * If strlen($ciphertext) is not a multiple of 16, null bytes will be added to the end of the string until it is. - * - * @see Crypt_AES::encrypt() - * @access public - * @param String $ciphertext - */ - function decrypt($ciphertext) - { - // we pad with chr(0) since that's what mcrypt_generic does. to quote from http://php.net/function.mcrypt-generic : - // "The data is padded with "\0" to make sure the length of the data is n * blocksize." - $ciphertext = str_pad($ciphertext, (strlen($ciphertext) + 15) & 0xFFFFFFF0, chr(0)); - - if ( CRYPT_AES_MODE == CRYPT_AES_MODE_MCRYPT ) { - $this->_mcryptSetup(); - - $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, $this->mcrypt[0], $this->mode, $this->mcrypt[1]); - mcrypt_generic_init($td, $this->key, $this->decryptIV); - - $plaintext = mdecrypt_generic($td, $ciphertext); - - mcrypt_generic_deinit($td); - mcrypt_module_close($td); - - if ($this->continuousBuffer) { - $this->decryptIV = substr($ciphertext, -16); - } - - return $this->_unpad($plaintext); - } - - return parent::decrypt($ciphertext); - } - - /** - * Sets MCrypt parameters. (optional) - * - * If MCrypt is being used, empty strings will be used, unless otherwise specified. - * - * @link http://php.net/function.mcrypt-module-open#function.mcrypt-module-open - * @access public - * @param optional Integer $algorithm_directory - * @param optional Integer $mode_directory - */ - function setMCrypt($algorithm_directory = '', $mode_directory = '') - { - $this->mcrypt = array($algorithm_directory, $mode_directory); - } - - /** - * Setup mcrypt - * - * Validates all the variables. - * - * @access private - */ - function _mcryptSetup() - { - if (!$this->changed) { - return; - } - - if (!$this->explicit_key_length) { - // this just copied from Crypt_Rijndael::_setup() - $length = strlen($this->key) >> 2; - if ($length > 8) { - $length = 8; - } else if ($length < 4) { - $length = 4; - } - $this->Nk = $length; - $this->key_size = $length << 2; - } - - switch ($this->Nk) { - case 4: // 128 - $this->key_size = 16; - break; - case 5: // 160 - case 6: // 192 - $this->key_size = 24; - break; - case 7: // 224 - case 8: // 256 - $this->key_size = 32; - } - - $this->key = substr($this->key, 0, $this->key_size); - $this->encryptIV = $this->decryptIV = $this->iv = str_pad(substr($this->iv, 0, 16), 16, chr(0)); - - $this->changed = false; - } - - /** - * Encrypts a block - * - * Optimized over Crypt_Rijndael's implementation by means of loop unrolling. - * - * @see Crypt_Rijndael::_encryptBlock() - * @access private - * @param String $in - * @return String - */ - function _encryptBlock($in) - { - $state = unpack('N*word', $in); - - // addRoundKey and reindex $state - $state = array( - $state['word1'] ^ $this->w[0][0], - $state['word2'] ^ $this->w[0][1], - $state['word3'] ^ $this->w[0][2], - $state['word4'] ^ $this->w[0][3] - ); - - // shiftRows + subWord + mixColumns + addRoundKey - // we could loop unroll this and use if statements to do more rounds as necessary, but, in my tests, that yields - // only a marginal improvement. since that also, imho, hinders the readability of the code, i've opted not to do it. - for ($round = 1; $round < $this->Nr; $round++) { - $state = array( - $this->t0[$state[0] & 0xFF000000] ^ $this->t1[$state[1] & 0x00FF0000] ^ $this->t2[$state[2] & 0x0000FF00] ^ $this->t3[$state[3] & 0x000000FF] ^ $this->w[$round][0], - $this->t0[$state[1] & 0xFF000000] ^ $this->t1[$state[2] & 0x00FF0000] ^ $this->t2[$state[3] & 0x0000FF00] ^ $this->t3[$state[0] & 0x000000FF] ^ $this->w[$round][1], - $this->t0[$state[2] & 0xFF000000] ^ $this->t1[$state[3] & 0x00FF0000] ^ $this->t2[$state[0] & 0x0000FF00] ^ $this->t3[$state[1] & 0x000000FF] ^ $this->w[$round][2], - $this->t0[$state[3] & 0xFF000000] ^ $this->t1[$state[0] & 0x00FF0000] ^ $this->t2[$state[1] & 0x0000FF00] ^ $this->t3[$state[2] & 0x000000FF] ^ $this->w[$round][3] - ); - - } - - // subWord - $state = array( - $this->_subWord($state[0]), - $this->_subWord($state[1]), - $this->_subWord($state[2]), - $this->_subWord($state[3]) - ); - - // shiftRows + addRoundKey - $state = array( - ($state[0] & 0xFF000000) ^ ($state[1] & 0x00FF0000) ^ ($state[2] & 0x0000FF00) ^ ($state[3] & 0x000000FF) ^ $this->w[$this->Nr][0], - ($state[1] & 0xFF000000) ^ ($state[2] & 0x00FF0000) ^ ($state[3] & 0x0000FF00) ^ ($state[0] & 0x000000FF) ^ $this->w[$this->Nr][1], - ($state[2] & 0xFF000000) ^ ($state[3] & 0x00FF0000) ^ ($state[0] & 0x0000FF00) ^ ($state[1] & 0x000000FF) ^ $this->w[$this->Nr][2], - ($state[3] & 0xFF000000) ^ ($state[0] & 0x00FF0000) ^ ($state[1] & 0x0000FF00) ^ ($state[2] & 0x000000FF) ^ $this->w[$this->Nr][3] - ); - - return pack('N*', $state[0], $state[1], $state[2], $state[3]); - } - - /** - * Decrypts a block - * - * Optimized over Crypt_Rijndael's implementation by means of loop unrolling. - * - * @see Crypt_Rijndael::_decryptBlock() - * @access private - * @param String $in - * @return String - */ - function _decryptBlock($in) - { - $state = unpack('N*word', $in); - - // addRoundKey and reindex $state - $state = array( - $state['word1'] ^ $this->dw[$this->Nr][0], - $state['word2'] ^ $this->dw[$this->Nr][1], - $state['word3'] ^ $this->dw[$this->Nr][2], - $state['word4'] ^ $this->dw[$this->Nr][3] - ); - - - // invShiftRows + invSubBytes + invMixColumns + addRoundKey - for ($round = $this->Nr - 1; $round > 0; $round--) { - $state = array( - $this->dt0[$state[0] & 0xFF000000] ^ $this->dt1[$state[3] & 0x00FF0000] ^ $this->dt2[$state[2] & 0x0000FF00] ^ $this->dt3[$state[1] & 0x000000FF] ^ $this->dw[$round][0], - $this->dt0[$state[1] & 0xFF000000] ^ $this->dt1[$state[0] & 0x00FF0000] ^ $this->dt2[$state[3] & 0x0000FF00] ^ $this->dt3[$state[2] & 0x000000FF] ^ $this->dw[$round][1], - $this->dt0[$state[2] & 0xFF000000] ^ $this->dt1[$state[1] & 0x00FF0000] ^ $this->dt2[$state[0] & 0x0000FF00] ^ $this->dt3[$state[3] & 0x000000FF] ^ $this->dw[$round][2], - $this->dt0[$state[3] & 0xFF000000] ^ $this->dt1[$state[2] & 0x00FF0000] ^ $this->dt2[$state[1] & 0x0000FF00] ^ $this->dt3[$state[0] & 0x000000FF] ^ $this->dw[$round][3] - ); - } - - // invShiftRows + invSubWord + addRoundKey - $state = array( - $this->_invSubWord(($state[0] & 0xFF000000) ^ ($state[3] & 0x00FF0000) ^ ($state[2] & 0x0000FF00) ^ ($state[1] & 0x000000FF)) ^ $this->dw[0][0], - $this->_invSubWord(($state[1] & 0xFF000000) ^ ($state[0] & 0x00FF0000) ^ ($state[3] & 0x0000FF00) ^ ($state[2] & 0x000000FF)) ^ $this->dw[0][1], - $this->_invSubWord(($state[2] & 0xFF000000) ^ ($state[1] & 0x00FF0000) ^ ($state[0] & 0x0000FF00) ^ ($state[3] & 0x000000FF)) ^ $this->dw[0][2], - $this->_invSubWord(($state[3] & 0xFF000000) ^ ($state[2] & 0x00FF0000) ^ ($state[1] & 0x0000FF00) ^ ($state[0] & 0x000000FF)) ^ $this->dw[0][3] - ); - - return pack('N*', $state[0], $state[1], $state[2], $state[3]); - } -} - -// vim: ts=4:sw=4:et: + + * setKey('abcdefghijklmnop'); + * + * $size = 10 * 1024; + * $plaintext = ''; + * for ($i = 0; $i < $size; $i++) { + * $plaintext.= 'a'; + * } + * + * echo $aes->decrypt($aes->encrypt($plaintext)); + * ?> + * + * + * LICENSE: This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * @category Crypt + * @package Crypt_AES + * @author Jim Wigginton + * @copyright MMVIII Jim Wigginton + * @license http://www.gnu.org/licenses/lgpl.txt + * @version $Id: AES.php,v 1.7 2010/02/09 06:10:25 terrafrost Exp $ + * @link http://phpseclib.sourceforge.net + */ + +/** + * Include Crypt_Rijndael + */ +require_once 'Rijndael.php'; + +/**#@+ + * @access public + * @see Crypt_AES::encrypt() + * @see Crypt_AES::decrypt() + */ +/** + * Encrypt / decrypt using the Counter mode. + * + * Set to -1 since that's what Crypt/Random.php uses to index the CTR mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Counter_.28CTR.29 + */ +define('CRYPT_AES_MODE_CTR', -1); +/** + * Encrypt / decrypt using the Electronic Code Book mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29 + */ +define('CRYPT_AES_MODE_ECB', 1); +/** + * Encrypt / decrypt using the Code Book Chaining mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29 + */ +define('CRYPT_AES_MODE_CBC', 2); +/**#@-*/ + +/**#@+ + * @access private + * @see Crypt_AES::Crypt_AES() + */ +/** + * Toggles the internal implementation + */ +define('CRYPT_AES_MODE_INTERNAL', 1); +/** + * Toggles the mcrypt implementation + */ +define('CRYPT_AES_MODE_MCRYPT', 2); +/**#@-*/ + +/** + * Pure-PHP implementation of AES. + * + * @author Jim Wigginton + * @version 0.1.0 + * @access public + * @package Crypt_AES + */ +class Crypt_AES extends Crypt_Rijndael { + /** + * mcrypt resource for encryption + * + * The mcrypt resource can be recreated every time something needs to be created or it can be created just once. + * Since mcrypt operates in continuous mode, by default, it'll need to be recreated when in non-continuous mode. + * + * @see Crypt_AES::encrypt() + * @var String + * @access private + */ + var $enmcrypt; + + /** + * mcrypt resource for decryption + * + * The mcrypt resource can be recreated every time something needs to be created or it can be created just once. + * Since mcrypt operates in continuous mode, by default, it'll need to be recreated when in non-continuous mode. + * + * @see Crypt_AES::decrypt() + * @var String + * @access private + */ + var $demcrypt; + + /** + * Default Constructor. + * + * Determines whether or not the mcrypt extension should be used. $mode should only, at present, be + * CRYPT_AES_MODE_ECB or CRYPT_AES_MODE_CBC. If not explictly set, CRYPT_AES_MODE_CBC will be used. + * + * @param optional Integer $mode + * @return Crypt_AES + * @access public + */ + function Crypt_AES($mode = CRYPT_AES_MODE_CBC) + { + if ( !defined('CRYPT_AES_MODE') ) { + switch (true) { + case extension_loaded('mcrypt'): + // i'd check to see if aes was supported, by doing in_array('des', mcrypt_list_algorithms('')), + // but since that can be changed after the object has been created, there doesn't seem to be + // a lot of point... + define('CRYPT_AES_MODE', CRYPT_AES_MODE_MCRYPT); + break; + default: + define('CRYPT_AES_MODE', CRYPT_AES_MODE_INTERNAL); + } + } + + switch ( CRYPT_AES_MODE ) { + case CRYPT_AES_MODE_MCRYPT: + switch ($mode) { + case CRYPT_AES_MODE_ECB: + $this->mode = MCRYPT_MODE_ECB; + break; + case CRYPT_AES_MODE_CTR: + // ctr doesn't have a constant associated with it even though it appears to be fairly widely + // supported. in lieu of knowing just how widely supported it is, i've, for now, opted not to + // include a compatibility layer. the layer has been implemented but, for now, is commented out. + $this->mode = 'ctr'; + //$this->mode = in_array('ctr', mcrypt_list_modes()) ? 'ctr' : CRYPT_AES_MODE_CTR; + break; + case CRYPT_AES_MODE_CBC: + default: + $this->mode = MCRYPT_MODE_CBC; + } + + break; + default: + switch ($mode) { + case CRYPT_AES_MODE_ECB: + $this->mode = CRYPT_RIJNDAEL_MODE_ECB; + break; + case CRYPT_AES_MODE_CTR: + $this->mode = CRYPT_RIJNDAEL_MODE_CTR; + break; + case CRYPT_AES_MODE_CBC: + default: + $this->mode = CRYPT_RIJNDAEL_MODE_CBC; + } + } + + if (CRYPT_AES_MODE == CRYPT_AES_MODE_INTERNAL) { + parent::Crypt_Rijndael($this->mode); + } + } + + /** + * Dummy function + * + * Since Crypt_AES extends Crypt_Rijndael, this function is, technically, available, but it doesn't do anything. + * + * @access public + * @param Integer $length + */ + function setBlockLength($length) + { + return; + } + + /** + * Encrypts a message. + * + * $plaintext will be padded with up to 16 additional bytes. Other AES implementations may or may not pad in the + * same manner. Other common approaches to padding and the reasons why it's necessary are discussed in the following + * URL: + * + * {@link http://www.di-mgt.com.au/cryptopad.html http://www.di-mgt.com.au/cryptopad.html} + * + * An alternative to padding is to, separately, send the length of the file. This is what SSH, in fact, does. + * strlen($plaintext) will still need to be a multiple of 16, however, arbitrary values can be added to make it that + * length. + * + * @see Crypt_AES::decrypt() + * @access public + * @param String $plaintext + */ + function encrypt($plaintext) + { + if ( CRYPT_AES_MODE == CRYPT_AES_MODE_MCRYPT ) { + $this->_mcryptSetup(); + /* + if ($this->mode == CRYPT_AES_MODE_CTR) { + $iv = $this->encryptIV; + $xor = mcrypt_generic($this->enmcrypt, $this->_generate_xor(strlen($plaintext), $iv)); + $ciphertext = $plaintext ^ $xor; + if ($this->continuousBuffer) { + $this->encryptIV = $iv; + } + return $ciphertext; + } + */ + + if ($this->mode != 'ctr') { + $plaintext = $this->_pad($plaintext); + } + + $ciphertext = mcrypt_generic($this->enmcrypt, $plaintext); + + if (!$this->continuousBuffer) { + mcrypt_generic_init($this->enmcrypt, $this->key, $this->iv); + } + + return $ciphertext; + } + + return parent::encrypt($plaintext); + } + + /** + * Decrypts a message. + * + * If strlen($ciphertext) is not a multiple of 16, null bytes will be added to the end of the string until it is. + * + * @see Crypt_AES::encrypt() + * @access public + * @param String $ciphertext + */ + function decrypt($ciphertext) + { + if ( CRYPT_AES_MODE == CRYPT_AES_MODE_MCRYPT ) { + $this->_mcryptSetup(); + /* + if ($this->mode == CRYPT_AES_MODE_CTR) { + $iv = $this->decryptIV; + $xor = mcrypt_generic($this->enmcrypt, $this->_generate_xor(strlen($ciphertext), $iv)); + $plaintext = $ciphertext ^ $xor; + if ($this->continuousBuffer) { + $this->decryptIV = $iv; + } + return $plaintext; + } + */ + + if ($this->mode != 'ctr') { + // we pad with chr(0) since that's what mcrypt_generic does. to quote from http://php.net/function.mcrypt-generic : + // "The data is padded with "\0" to make sure the length of the data is n * blocksize." + $ciphertext = str_pad($ciphertext, (strlen($ciphertext) + 15) & 0xFFFFFFF0, chr(0)); + } + + $plaintext = mdecrypt_generic($this->demcrypt, $ciphertext); + + if (!$this->continuousBuffer) { + mcrypt_generic_init($this->demcrypt, $this->key, $this->iv); + } + + return $this->mode != 'ctr' ? $this->_unpad($plaintext) : $plaintext; + } + + return parent::decrypt($ciphertext); + } + + /** + * Setup mcrypt + * + * Validates all the variables. + * + * @access private + */ + function _mcryptSetup() + { + if (!$this->changed) { + return; + } + + if (!$this->explicit_key_length) { + // this just copied from Crypt_Rijndael::_setup() + $length = strlen($this->key) >> 2; + if ($length > 8) { + $length = 8; + } else if ($length < 4) { + $length = 4; + } + $this->Nk = $length; + $this->key_size = $length << 2; + } + + switch ($this->Nk) { + case 4: // 128 + $this->key_size = 16; + break; + case 5: // 160 + case 6: // 192 + $this->key_size = 24; + break; + case 7: // 224 + case 8: // 256 + $this->key_size = 32; + } + + $this->key = substr($this->key, 0, $this->key_size); + $this->encryptIV = $this->decryptIV = $this->iv = str_pad(substr($this->iv, 0, 16), 16, chr(0)); + + if (!isset($this->enmcrypt)) { + $mode = $this->mode; + //$mode = $this->mode == CRYPT_AES_MODE_CTR ? MCRYPT_MODE_ECB : $this->mode; + + $this->demcrypt = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', $mode, ''); + $this->enmcrypt = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', $mode, ''); + } // else should mcrypt_generic_deinit be called? + + mcrypt_generic_init($this->demcrypt, $this->key, $this->iv); + mcrypt_generic_init($this->enmcrypt, $this->key, $this->iv); + + $this->changed = false; + } + + /** + * Encrypts a block + * + * Optimized over Crypt_Rijndael's implementation by means of loop unrolling. + * + * @see Crypt_Rijndael::_encryptBlock() + * @access private + * @param String $in + * @return String + */ + function _encryptBlock($in) + { + $state = unpack('N*word', $in); + + $Nr = $this->Nr; + $w = $this->w; + $t0 = $this->t0; + $t1 = $this->t1; + $t2 = $this->t2; + $t3 = $this->t3; + + // addRoundKey and reindex $state + $state = array( + $state['word1'] ^ $w[0][0], + $state['word2'] ^ $w[0][1], + $state['word3'] ^ $w[0][2], + $state['word4'] ^ $w[0][3] + ); + + // shiftRows + subWord + mixColumns + addRoundKey + // we could loop unroll this and use if statements to do more rounds as necessary, but, in my tests, that yields + // only a marginal improvement. since that also, imho, hinders the readability of the code, i've opted not to do it. + for ($round = 1; $round < $this->Nr; $round++) { + $state = array( + $t0[$state[0] & 0xFF000000] ^ $t1[$state[1] & 0x00FF0000] ^ $t2[$state[2] & 0x0000FF00] ^ $t3[$state[3] & 0x000000FF] ^ $w[$round][0], + $t0[$state[1] & 0xFF000000] ^ $t1[$state[2] & 0x00FF0000] ^ $t2[$state[3] & 0x0000FF00] ^ $t3[$state[0] & 0x000000FF] ^ $w[$round][1], + $t0[$state[2] & 0xFF000000] ^ $t1[$state[3] & 0x00FF0000] ^ $t2[$state[0] & 0x0000FF00] ^ $t3[$state[1] & 0x000000FF] ^ $w[$round][2], + $t0[$state[3] & 0xFF000000] ^ $t1[$state[0] & 0x00FF0000] ^ $t2[$state[1] & 0x0000FF00] ^ $t3[$state[2] & 0x000000FF] ^ $w[$round][3] + ); + + } + + // subWord + $state = array( + $this->_subWord($state[0]), + $this->_subWord($state[1]), + $this->_subWord($state[2]), + $this->_subWord($state[3]) + ); + + // shiftRows + addRoundKey + $state = array( + ($state[0] & 0xFF000000) ^ ($state[1] & 0x00FF0000) ^ ($state[2] & 0x0000FF00) ^ ($state[3] & 0x000000FF) ^ $this->w[$this->Nr][0], + ($state[1] & 0xFF000000) ^ ($state[2] & 0x00FF0000) ^ ($state[3] & 0x0000FF00) ^ ($state[0] & 0x000000FF) ^ $this->w[$this->Nr][1], + ($state[2] & 0xFF000000) ^ ($state[3] & 0x00FF0000) ^ ($state[0] & 0x0000FF00) ^ ($state[1] & 0x000000FF) ^ $this->w[$this->Nr][2], + ($state[3] & 0xFF000000) ^ ($state[0] & 0x00FF0000) ^ ($state[1] & 0x0000FF00) ^ ($state[2] & 0x000000FF) ^ $this->w[$this->Nr][3] + ); + + return pack('N*', $state[0], $state[1], $state[2], $state[3]); + } + + /** + * Decrypts a block + * + * Optimized over Crypt_Rijndael's implementation by means of loop unrolling. + * + * @see Crypt_Rijndael::_decryptBlock() + * @access private + * @param String $in + * @return String + */ + function _decryptBlock($in) + { + $state = unpack('N*word', $in); + + $Nr = $this->Nr; + $dw = $this->dw; + $dt0 = $this->dt0; + $dt1 = $this->dt1; + $dt2 = $this->dt2; + $dt3 = $this->dt3; + + // addRoundKey and reindex $state + $state = array( + $state['word1'] ^ $dw[$this->Nr][0], + $state['word2'] ^ $dw[$this->Nr][1], + $state['word3'] ^ $dw[$this->Nr][2], + $state['word4'] ^ $dw[$this->Nr][3] + ); + + + // invShiftRows + invSubBytes + invMixColumns + addRoundKey + for ($round = $this->Nr - 1; $round > 0; $round--) { + $state = array( + $dt0[$state[0] & 0xFF000000] ^ $dt1[$state[3] & 0x00FF0000] ^ $dt2[$state[2] & 0x0000FF00] ^ $dt3[$state[1] & 0x000000FF] ^ $dw[$round][0], + $dt0[$state[1] & 0xFF000000] ^ $dt1[$state[0] & 0x00FF0000] ^ $dt2[$state[3] & 0x0000FF00] ^ $dt3[$state[2] & 0x000000FF] ^ $dw[$round][1], + $dt0[$state[2] & 0xFF000000] ^ $dt1[$state[1] & 0x00FF0000] ^ $dt2[$state[0] & 0x0000FF00] ^ $dt3[$state[3] & 0x000000FF] ^ $dw[$round][2], + $dt0[$state[3] & 0xFF000000] ^ $dt1[$state[2] & 0x00FF0000] ^ $dt2[$state[1] & 0x0000FF00] ^ $dt3[$state[0] & 0x000000FF] ^ $dw[$round][3] + ); + } + + // invShiftRows + invSubWord + addRoundKey + $state = array( + $this->_invSubWord(($state[0] & 0xFF000000) ^ ($state[3] & 0x00FF0000) ^ ($state[2] & 0x0000FF00) ^ ($state[1] & 0x000000FF)) ^ $dw[0][0], + $this->_invSubWord(($state[1] & 0xFF000000) ^ ($state[0] & 0x00FF0000) ^ ($state[3] & 0x0000FF00) ^ ($state[2] & 0x000000FF)) ^ $dw[0][1], + $this->_invSubWord(($state[2] & 0xFF000000) ^ ($state[1] & 0x00FF0000) ^ ($state[0] & 0x0000FF00) ^ ($state[3] & 0x000000FF)) ^ $dw[0][2], + $this->_invSubWord(($state[3] & 0xFF000000) ^ ($state[2] & 0x00FF0000) ^ ($state[1] & 0x0000FF00) ^ ($state[0] & 0x000000FF)) ^ $dw[0][3] + ); + + return pack('N*', $state[0], $state[1], $state[2], $state[3]); + } +} + +// vim: ts=4:sw=4:et: // vim6: fdl=1: \ No newline at end of file diff --git a/plugins/OStatus/extlib/Crypt/DES.php b/plugins/OStatus/extlib/Crypt/DES.php index 3fd0b65ec..985ed25b5 100644 --- a/plugins/OStatus/extlib/Crypt/DES.php +++ b/plugins/OStatus/extlib/Crypt/DES.php @@ -1,851 +1,945 @@ - - * setKey('abcdefgh'); - * - * $size = 10 * 1024; - * $plaintext = ''; - * for ($i = 0; $i < $size; $i++) { - * $plaintext.= 'a'; - * } - * - * echo $des->decrypt($des->encrypt($plaintext)); - * ?> - * - * - * LICENSE: This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - * - * @category Crypt - * @package Crypt_DES - * @author Jim Wigginton - * @copyright MMVII Jim Wigginton - * @license http://www.gnu.org/licenses/lgpl.txt - * @version $Id: DES.php,v 1.9 2009/11/23 19:06:06 terrafrost Exp $ - * @link http://phpseclib.sourceforge.net - */ - -/**#@+ - * @access private - * @see Crypt_DES::_prepareKey() - * @see Crypt_DES::_processBlock() - */ -/** - * Contains array_reverse($keys[CRYPT_DES_DECRYPT]) - */ -define('CRYPT_DES_ENCRYPT', 0); -/** - * Contains array_reverse($keys[CRYPT_DES_ENCRYPT]) - */ -define('CRYPT_DES_DECRYPT', 1); -/**#@-*/ - -/**#@+ - * @access public - * @see Crypt_DES::encrypt() - * @see Crypt_DES::decrypt() - */ -/** - * Encrypt / decrypt using the Electronic Code Book mode. - * - * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29 - */ -define('CRYPT_DES_MODE_ECB', 1); -/** - * Encrypt / decrypt using the Code Book Chaining mode. - * - * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29 - */ -define('CRYPT_DES_MODE_CBC', 2); -/**#@-*/ - -/**#@+ - * @access private - * @see Crypt_DES::Crypt_DES() - */ -/** - * Toggles the internal implementation - */ -define('CRYPT_DES_MODE_INTERNAL', 1); -/** - * Toggles the mcrypt implementation - */ -define('CRYPT_DES_MODE_MCRYPT', 2); -/**#@-*/ - -/** - * Pure-PHP implementation of DES. - * - * @author Jim Wigginton - * @version 0.1.0 - * @access public - * @package Crypt_DES - */ -class Crypt_DES { - /** - * The Key Schedule - * - * @see Crypt_DES::setKey() - * @var Array - * @access private - */ - var $keys = "\0\0\0\0\0\0\0\0"; - - /** - * The Encryption Mode - * - * @see Crypt_DES::Crypt_DES() - * @var Integer - * @access private - */ - var $mode; - - /** - * Continuous Buffer status - * - * @see Crypt_DES::enableContinuousBuffer() - * @var Boolean - * @access private - */ - var $continuousBuffer = false; - - /** - * Padding status - * - * @see Crypt_DES::enablePadding() - * @var Boolean - * @access private - */ - var $padding = true; - - /** - * The Initialization Vector - * - * @see Crypt_DES::setIV() - * @var String - * @access private - */ - var $iv = "\0\0\0\0\0\0\0\0"; - - /** - * A "sliding" Initialization Vector - * - * @see Crypt_DES::enableContinuousBuffer() - * @var String - * @access private - */ - var $encryptIV = "\0\0\0\0\0\0\0\0"; - - /** - * A "sliding" Initialization Vector - * - * @see Crypt_DES::enableContinuousBuffer() - * @var String - * @access private - */ - var $decryptIV = "\0\0\0\0\0\0\0\0"; - - /** - * MCrypt parameters - * - * @see Crypt_DES::setMCrypt() - * @var Array - * @access private - */ - var $mcrypt = array('', ''); - - /** - * Default Constructor. - * - * Determines whether or not the mcrypt extension should be used. $mode should only, at present, be - * CRYPT_DES_MODE_ECB or CRYPT_DES_MODE_CBC. If not explictly set, CRYPT_DES_MODE_CBC will be used. - * - * @param optional Integer $mode - * @return Crypt_DES - * @access public - */ - function Crypt_DES($mode = CRYPT_MODE_DES_CBC) - { - if ( !defined('CRYPT_DES_MODE') ) { - switch (true) { - case extension_loaded('mcrypt'): - // i'd check to see if des was supported, by doing in_array('des', mcrypt_list_algorithms('')), - // but since that can be changed after the object has been created, there doesn't seem to be - // a lot of point... - define('CRYPT_DES_MODE', CRYPT_DES_MODE_MCRYPT); - break; - default: - define('CRYPT_DES_MODE', CRYPT_DES_MODE_INTERNAL); - } - } - - switch ( CRYPT_DES_MODE ) { - case CRYPT_DES_MODE_MCRYPT: - switch ($mode) { - case CRYPT_DES_MODE_ECB: - $this->mode = MCRYPT_MODE_ECB; - break; - case CRYPT_DES_MODE_CBC: - default: - $this->mode = MCRYPT_MODE_CBC; - } - - break; - default: - switch ($mode) { - case CRYPT_DES_MODE_ECB: - case CRYPT_DES_MODE_CBC: - $this->mode = $mode; - break; - default: - $this->mode = CRYPT_DES_MODE_CBC; - } - } - } - - /** - * Sets the key. - * - * Keys can be of any length. DES, itself, uses 64-bit keys (eg. strlen($key) == 8), however, we - * only use the first eight, if $key has more then eight characters in it, and pad $key with the - * null byte if it is less then eight characters long. - * - * DES also requires that every eighth bit be a parity bit, however, we'll ignore that. - * - * If the key is not explicitly set, it'll be assumed to be all zero's. - * - * @access public - * @param String $key - */ - function setKey($key) - { - $this->keys = ( CRYPT_DES_MODE == CRYPT_DES_MODE_MCRYPT ) ? substr($key, 0, 8) : $this->_prepareKey($key); - } - - /** - * Sets the initialization vector. (optional) - * - * SetIV is not required when CRYPT_DES_MODE_ECB is being used. If not explictly set, it'll be assumed - * to be all zero's. - * - * @access public - * @param String $iv - */ - function setIV($iv) - { - $this->encryptIV = $this->decryptIV = $this->iv = str_pad(substr($iv, 0, 8), 8, chr(0));; - } - - /** - * Sets MCrypt parameters. (optional) - * - * If MCrypt is being used, empty strings will be used, unless otherwise specified. - * - * @link http://php.net/function.mcrypt-module-open#function.mcrypt-module-open - * @access public - * @param optional Integer $algorithm_directory - * @param optional Integer $mode_directory - */ - function setMCrypt($algorithm_directory = '', $mode_directory = '') - { - $this->mcrypt = array($algorithm_directory, $mode_directory); - } - - /** - * Encrypts a message. - * - * $plaintext will be padded with up to 8 additional bytes. Other DES implementations may or may not pad in the - * same manner. Other common approaches to padding and the reasons why it's necessary are discussed in the following - * URL: - * - * {@link http://www.di-mgt.com.au/cryptopad.html http://www.di-mgt.com.au/cryptopad.html} - * - * An alternative to padding is to, separately, send the length of the file. This is what SSH, in fact, does. - * strlen($plaintext) will still need to be a multiple of 8, however, arbitrary values can be added to make it that - * length. - * - * @see Crypt_DES::decrypt() - * @access public - * @param String $plaintext - */ - function encrypt($plaintext) - { - $plaintext = $this->_pad($plaintext); - - if ( CRYPT_DES_MODE == CRYPT_DES_MODE_MCRYPT ) { - $td = mcrypt_module_open(MCRYPT_DES, $this->mcrypt[0], $this->mode, $this->mcrypt[1]); - mcrypt_generic_init($td, $this->keys, $this->encryptIV); - - $ciphertext = mcrypt_generic($td, $plaintext); - - mcrypt_generic_deinit($td); - mcrypt_module_close($td); - - if ($this->continuousBuffer) { - $this->encryptIV = substr($ciphertext, -8); - } - - return $ciphertext; - } - - if (!is_array($this->keys)) { - $this->keys = $this->_prepareKey("\0\0\0\0\0\0\0\0"); - } - - $ciphertext = ''; - switch ($this->mode) { - case CRYPT_DES_MODE_ECB: - for ($i = 0; $i < strlen($plaintext); $i+=8) { - $ciphertext.= $this->_processBlock(substr($plaintext, $i, 8), CRYPT_DES_ENCRYPT); - } - break; - case CRYPT_DES_MODE_CBC: - $xor = $this->encryptIV; - for ($i = 0; $i < strlen($plaintext); $i+=8) { - $block = substr($plaintext, $i, 8); - $block = $this->_processBlock($block ^ $xor, CRYPT_DES_ENCRYPT); - $xor = $block; - $ciphertext.= $block; - } - if ($this->continuousBuffer) { - $this->encryptIV = $xor; - } - } - - return $ciphertext; - } - - /** - * Decrypts a message. - * - * If strlen($ciphertext) is not a multiple of 8, null bytes will be added to the end of the string until it is. - * - * @see Crypt_DES::encrypt() - * @access public - * @param String $ciphertext - */ - function decrypt($ciphertext) - { - // we pad with chr(0) since that's what mcrypt_generic does. to quote from http://php.net/function.mcrypt-generic : - // "The data is padded with "\0" to make sure the length of the data is n * blocksize." - $ciphertext = str_pad($ciphertext, (strlen($ciphertext) + 7) & 0xFFFFFFF8, chr(0)); - - if ( CRYPT_DES_MODE == CRYPT_DES_MODE_MCRYPT ) { - $td = mcrypt_module_open(MCRYPT_DES, $this->mcrypt[0], $this->mode, $this->mcrypt[1]); - mcrypt_generic_init($td, $this->keys, $this->decryptIV); - - $plaintext = mdecrypt_generic($td, $ciphertext); - - mcrypt_generic_deinit($td); - mcrypt_module_close($td); - - if ($this->continuousBuffer) { - $this->decryptIV = substr($ciphertext, -8); - } - - return $this->_unpad($plaintext); - } - - if (!is_array($this->keys)) { - $this->keys = $this->_prepareKey("\0\0\0\0\0\0\0\0"); - } - - $plaintext = ''; - switch ($this->mode) { - case CRYPT_DES_MODE_ECB: - for ($i = 0; $i < strlen($ciphertext); $i+=8) { - $plaintext.= $this->_processBlock(substr($ciphertext, $i, 8), CRYPT_DES_DECRYPT); - } - break; - case CRYPT_DES_MODE_CBC: - $xor = $this->decryptIV; - for ($i = 0; $i < strlen($ciphertext); $i+=8) { - $block = substr($ciphertext, $i, 8); - $plaintext.= $this->_processBlock($block, CRYPT_DES_DECRYPT) ^ $xor; - $xor = $block; - } - if ($this->continuousBuffer) { - $this->decryptIV = $xor; - } - } - - return $this->_unpad($plaintext); - } - - /** - * Treat consecutive "packets" as if they are a continuous buffer. - * - * Say you have a 16-byte plaintext $plaintext. Using the default behavior, the two following code snippets - * will yield different outputs: - * - * - * echo $des->encrypt(substr($plaintext, 0, 8)); - * echo $des->encrypt(substr($plaintext, 8, 8)); - * - * - * echo $des->encrypt($plaintext); - * - * - * The solution is to enable the continuous buffer. Although this will resolve the above discrepancy, it creates - * another, as demonstrated with the following: - * - * - * $des->encrypt(substr($plaintext, 0, 8)); - * echo $des->decrypt($des->encrypt(substr($plaintext, 8, 8))); - * - * - * echo $des->decrypt($des->encrypt(substr($plaintext, 8, 8))); - * - * - * With the continuous buffer disabled, these would yield the same output. With it enabled, they yield different - * outputs. The reason is due to the fact that the initialization vector's change after every encryption / - * decryption round when the continuous buffer is enabled. When it's disabled, they remain constant. - * - * Put another way, when the continuous buffer is enabled, the state of the Crypt_DES() object changes after each - * encryption / decryption round, whereas otherwise, it'd remain constant. For this reason, it's recommended that - * continuous buffers not be used. They do offer better security and are, in fact, sometimes required (SSH uses them), - * however, they are also less intuitive and more likely to cause you problems. - * - * @see Crypt_DES::disableContinuousBuffer() - * @access public - */ - function enableContinuousBuffer() - { - $this->continuousBuffer = true; - } - - /** - * Treat consecutive packets as if they are a discontinuous buffer. - * - * The default behavior. - * - * @see Crypt_DES::enableContinuousBuffer() - * @access public - */ - function disableContinuousBuffer() - { - $this->continuousBuffer = false; - $this->encryptIV = $this->iv; - $this->decryptIV = $this->iv; - } - - /** - * Pad "packets". - * - * DES works by encrypting eight bytes at a time. If you ever need to encrypt or decrypt something that's not - * a multiple of eight, it becomes necessary to pad the input so that it's length is a multiple of eight. - * - * Padding is enabled by default. Sometimes, however, it is undesirable to pad strings. Such is the case in SSH1, - * where "packets" are padded with random bytes before being encrypted. Unpad these packets and you risk stripping - * away characters that shouldn't be stripped away. (SSH knows how many bytes are added because the length is - * transmitted separately) - * - * @see Crypt_DES::disablePadding() - * @access public - */ - function enablePadding() - { - $this->padding = true; - } - - /** - * Do not pad packets. - * - * @see Crypt_DES::enablePadding() - * @access public - */ - function disablePadding() - { - $this->padding = false; - } - - /** - * Pads a string - * - * Pads a string using the RSA PKCS padding standards so that its length is a multiple of the blocksize (8). - * 8 - (strlen($text) & 7) bytes are added, each of which is equal to chr(8 - (strlen($text) & 7) - * - * If padding is disabled and $text is not a multiple of the blocksize, the string will be padded regardless - * and padding will, hence forth, be enabled. - * - * @see Crypt_DES::_unpad() - * @access private - */ - function _pad($text) - { - $length = strlen($text); - - if (!$this->padding) { - if (($length & 7) == 0) { - return $text; - } else { - user_error("The plaintext's length ($length) is not a multiple of the block size (8)", E_USER_NOTICE); - $this->padding = true; - } - } - - $pad = 8 - ($length & 7); - return str_pad($text, $length + $pad, chr($pad)); - } - - /** - * Unpads a string - * - * If padding is enabled and the reported padding length is invalid, padding will be, hence forth, disabled. - * - * @see Crypt_DES::_pad() - * @access private - */ - function _unpad($text) - { - if (!$this->padding) { - return $text; - } - - $length = ord($text[strlen($text) - 1]); - - if (!$length || $length > 8) { - user_error("The number of bytes reported as being padded ($length) is invalid (block size = 8)", E_USER_NOTICE); - $this->padding = false; - return $text; - } - - return substr($text, 0, -$length); - } - - /** - * Encrypts or decrypts a 64-bit block - * - * $mode should be either CRYPT_DES_ENCRYPT or CRYPT_DES_DECRYPT. See - * {@link http://en.wikipedia.org/wiki/Image:Feistel.png Feistel.png} to get a general - * idea of what this function does. - * - * @access private - * @param String $block - * @param Integer $mode - * @return String - */ - function _processBlock($block, $mode) - { - // s-boxes. in the official DES docs, they're described as being matrices that - // one accesses by using the first and last bits to determine the row and the - // middle four bits to determine the column. in this implementation, they've - // been converted to vectors - static $sbox = array( - array( - 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1, - 3, 10 ,10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8, - 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7, - 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13 - ), - array( - 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14, - 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5, - 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2, - 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9 - ), - array( - 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10, - 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1, - 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7, - 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12 - ), - array( - 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3, - 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9, - 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8, - 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14 - ), - array( - 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1, - 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6, - 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13, - 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3 - ), - array( - 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5, - 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8, - 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10, - 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13 - ), - array( - 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10, - 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6, - 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7, - 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12 - ), - array( - 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4, - 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2, - 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13, - 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11 - ) - ); - - $temp = unpack('Na/Nb', $block); - $block = array($temp['a'], $temp['b']); - - // because php does arithmetic right shifts, if the most significant bits are set, right - // shifting those into the correct position will add 1's - not 0's. this will intefere - // with the | operation unless a second & is done. so we isolate these bits and left shift - // them into place. we then & each block with 0x7FFFFFFF to prevennt 1's from being added - // for any other shifts. - $msb = array( - ($block[0] >> 31) & 1, - ($block[1] >> 31) & 1 - ); - $block[0] &= 0x7FFFFFFF; - $block[1] &= 0x7FFFFFFF; - - // we isolate the appropriate bit in the appropriate integer and shift as appropriate. in - // some cases, there are going to be multiple bits in the same integer that need to be shifted - // in the same way. we combine those into one shift operation. - $block = array( - (($block[1] & 0x00000040) << 25) | (($block[1] & 0x00004000) << 16) | - (($block[1] & 0x00400001) << 7) | (($block[1] & 0x40000100) >> 2) | - (($block[0] & 0x00000040) << 21) | (($block[0] & 0x00004000) << 12) | - (($block[0] & 0x00400001) << 3) | (($block[0] & 0x40000100) >> 6) | - (($block[1] & 0x00000010) << 19) | (($block[1] & 0x00001000) << 10) | - (($block[1] & 0x00100000) << 1) | (($block[1] & 0x10000000) >> 8) | - (($block[0] & 0x00000010) << 15) | (($block[0] & 0x00001000) << 6) | - (($block[0] & 0x00100000) >> 3) | (($block[0] & 0x10000000) >> 12) | - (($block[1] & 0x00000004) << 13) | (($block[1] & 0x00000400) << 4) | - (($block[1] & 0x00040000) >> 5) | (($block[1] & 0x04000000) >> 14) | - (($block[0] & 0x00000004) << 9) | ( $block[0] & 0x00000400 ) | - (($block[0] & 0x00040000) >> 9) | (($block[0] & 0x04000000) >> 18) | - (($block[1] & 0x00010000) >> 11) | (($block[1] & 0x01000000) >> 20) | - (($block[0] & 0x00010000) >> 15) | (($block[0] & 0x01000000) >> 24) - , - (($block[1] & 0x00000080) << 24) | (($block[1] & 0x00008000) << 15) | - (($block[1] & 0x00800002) << 6) | (($block[0] & 0x00000080) << 20) | - (($block[0] & 0x00008000) << 11) | (($block[0] & 0x00800002) << 2) | - (($block[1] & 0x00000020) << 18) | (($block[1] & 0x00002000) << 9) | - ( $block[1] & 0x00200000 ) | (($block[1] & 0x20000000) >> 9) | - (($block[0] & 0x00000020) << 14) | (($block[0] & 0x00002000) << 5) | - (($block[0] & 0x00200000) >> 4) | (($block[0] & 0x20000000) >> 13) | - (($block[1] & 0x00000008) << 12) | (($block[1] & 0x00000800) << 3) | - (($block[1] & 0x00080000) >> 6) | (($block[1] & 0x08000000) >> 15) | - (($block[0] & 0x00000008) << 8) | (($block[0] & 0x00000800) >> 1) | - (($block[0] & 0x00080000) >> 10) | (($block[0] & 0x08000000) >> 19) | - (($block[1] & 0x00000200) >> 3) | (($block[0] & 0x00000200) >> 7) | - (($block[1] & 0x00020000) >> 12) | (($block[1] & 0x02000000) >> 21) | - (($block[0] & 0x00020000) >> 16) | (($block[0] & 0x02000000) >> 25) | - ($msb[1] << 28) | ($msb[0] << 24) - ); - - for ($i = 0; $i < 16; $i++) { - // start of "the Feistel (F) function" - see the following URL: - // http://en.wikipedia.org/wiki/Image:Data_Encryption_Standard_InfoBox_Diagram.png - $temp = (($sbox[0][((($block[1] >> 27) & 0x1F) | (($block[1] & 1) << 5)) ^ $this->keys[$mode][$i][0]]) << 28) - | (($sbox[1][(($block[1] & 0x1F800000) >> 23) ^ $this->keys[$mode][$i][1]]) << 24) - | (($sbox[2][(($block[1] & 0x01F80000) >> 19) ^ $this->keys[$mode][$i][2]]) << 20) - | (($sbox[3][(($block[1] & 0x001F8000) >> 15) ^ $this->keys[$mode][$i][3]]) << 16) - | (($sbox[4][(($block[1] & 0x0001F800) >> 11) ^ $this->keys[$mode][$i][4]]) << 12) - | (($sbox[5][(($block[1] & 0x00001F80) >> 7) ^ $this->keys[$mode][$i][5]]) << 8) - | (($sbox[6][(($block[1] & 0x000001F8) >> 3) ^ $this->keys[$mode][$i][6]]) << 4) - | ( $sbox[7][((($block[1] & 0x1F) << 1) | (($block[1] >> 31) & 1)) ^ $this->keys[$mode][$i][7]]); - - $msb = ($temp >> 31) & 1; - $temp &= 0x7FFFFFFF; - $newBlock = (($temp & 0x00010000) << 15) | (($temp & 0x02020120) << 5) - | (($temp & 0x00001800) << 17) | (($temp & 0x01000000) >> 10) - | (($temp & 0x00000008) << 24) | (($temp & 0x00100000) << 6) - | (($temp & 0x00000010) << 21) | (($temp & 0x00008000) << 9) - | (($temp & 0x00000200) << 12) | (($temp & 0x10000000) >> 27) - | (($temp & 0x00000040) << 14) | (($temp & 0x08000000) >> 8) - | (($temp & 0x00004000) << 4) | (($temp & 0x00000002) << 16) - | (($temp & 0x00442000) >> 6) | (($temp & 0x40800000) >> 15) - | (($temp & 0x00000001) << 11) | (($temp & 0x20000000) >> 20) - | (($temp & 0x00080000) >> 13) | (($temp & 0x00000004) << 3) - | (($temp & 0x04000000) >> 22) | (($temp & 0x00000480) >> 7) - | (($temp & 0x00200000) >> 19) | ($msb << 23); - // end of "the Feistel (F) function" - $newBlock is F's output - - $temp = $block[1]; - $block[1] = $block[0] ^ $newBlock; - $block[0] = $temp; - } - - $msb = array( - ($block[0] >> 31) & 1, - ($block[1] >> 31) & 1 - ); - $block[0] &= 0x7FFFFFFF; - $block[1] &= 0x7FFFFFFF; - - $block = array( - (($block[0] & 0x01000004) << 7) | (($block[1] & 0x01000004) << 6) | - (($block[0] & 0x00010000) << 13) | (($block[1] & 0x00010000) << 12) | - (($block[0] & 0x00000100) << 19) | (($block[1] & 0x00000100) << 18) | - (($block[0] & 0x00000001) << 25) | (($block[1] & 0x00000001) << 24) | - (($block[0] & 0x02000008) >> 2) | (($block[1] & 0x02000008) >> 3) | - (($block[0] & 0x00020000) << 4) | (($block[1] & 0x00020000) << 3) | - (($block[0] & 0x00000200) << 10) | (($block[1] & 0x00000200) << 9) | - (($block[0] & 0x00000002) << 16) | (($block[1] & 0x00000002) << 15) | - (($block[0] & 0x04000000) >> 11) | (($block[1] & 0x04000000) >> 12) | - (($block[0] & 0x00040000) >> 5) | (($block[1] & 0x00040000) >> 6) | - (($block[0] & 0x00000400) << 1) | ( $block[1] & 0x00000400 ) | - (($block[0] & 0x08000000) >> 20) | (($block[1] & 0x08000000) >> 21) | - (($block[0] & 0x00080000) >> 14) | (($block[1] & 0x00080000) >> 15) | - (($block[0] & 0x00000800) >> 8) | (($block[1] & 0x00000800) >> 9) - , - (($block[0] & 0x10000040) << 3) | (($block[1] & 0x10000040) << 2) | - (($block[0] & 0x00100000) << 9) | (($block[1] & 0x00100000) << 8) | - (($block[0] & 0x00001000) << 15) | (($block[1] & 0x00001000) << 14) | - (($block[0] & 0x00000010) << 21) | (($block[1] & 0x00000010) << 20) | - (($block[0] & 0x20000080) >> 6) | (($block[1] & 0x20000080) >> 7) | - ( $block[0] & 0x00200000 ) | (($block[1] & 0x00200000) >> 1) | - (($block[0] & 0x00002000) << 6) | (($block[1] & 0x00002000) << 5) | - (($block[0] & 0x00000020) << 12) | (($block[1] & 0x00000020) << 11) | - (($block[0] & 0x40000000) >> 15) | (($block[1] & 0x40000000) >> 16) | - (($block[0] & 0x00400000) >> 9) | (($block[1] & 0x00400000) >> 10) | - (($block[0] & 0x00004000) >> 3) | (($block[1] & 0x00004000) >> 4) | - (($block[0] & 0x00800000) >> 18) | (($block[1] & 0x00800000) >> 19) | - (($block[0] & 0x00008000) >> 12) | (($block[1] & 0x00008000) >> 13) | - ($msb[0] << 7) | ($msb[1] << 6) - ); - - return pack('NN', $block[0], $block[1]); - } - - /** - * Creates the key schedule. - * - * @access private - * @param String $key - * @return Array - */ - function _prepareKey($key) - { - static $shifts = array( // number of key bits shifted per round - 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1 - ); - - // pad the key and remove extra characters as appropriate. - $key = str_pad(substr($key, 0, 8), 8, chr(0)); - - $temp = unpack('Na/Nb', $key); - $key = array($temp['a'], $temp['b']); - $msb = array( - ($key[0] >> 31) & 1, - ($key[1] >> 31) & 1 - ); - $key[0] &= 0x7FFFFFFF; - $key[1] &= 0x7FFFFFFF; - - $key = array( - (($key[1] & 0x00000002) << 26) | (($key[1] & 0x00000204) << 17) | - (($key[1] & 0x00020408) << 8) | (($key[1] & 0x02040800) >> 1) | - (($key[0] & 0x00000002) << 22) | (($key[0] & 0x00000204) << 13) | - (($key[0] & 0x00020408) << 4) | (($key[0] & 0x02040800) >> 5) | - (($key[1] & 0x04080000) >> 10) | (($key[0] & 0x04080000) >> 14) | - (($key[1] & 0x08000000) >> 19) | (($key[0] & 0x08000000) >> 23) | - (($key[0] & 0x00000010) >> 1) | (($key[0] & 0x00001000) >> 10) | - (($key[0] & 0x00100000) >> 19) | (($key[0] & 0x10000000) >> 28) - , - (($key[1] & 0x00000080) << 20) | (($key[1] & 0x00008000) << 11) | - (($key[1] & 0x00800000) << 2) | (($key[0] & 0x00000080) << 16) | - (($key[0] & 0x00008000) << 7) | (($key[0] & 0x00800000) >> 2) | - (($key[1] & 0x00000040) << 13) | (($key[1] & 0x00004000) << 4) | - (($key[1] & 0x00400000) >> 5) | (($key[1] & 0x40000000) >> 14) | - (($key[0] & 0x00000040) << 9) | ( $key[0] & 0x00004000 ) | - (($key[0] & 0x00400000) >> 9) | (($key[0] & 0x40000000) >> 18) | - (($key[1] & 0x00000020) << 6) | (($key[1] & 0x00002000) >> 3) | - (($key[1] & 0x00200000) >> 12) | (($key[1] & 0x20000000) >> 21) | - (($key[0] & 0x00000020) << 2) | (($key[0] & 0x00002000) >> 7) | - (($key[0] & 0x00200000) >> 16) | (($key[0] & 0x20000000) >> 25) | - (($key[1] & 0x00000010) >> 1) | (($key[1] & 0x00001000) >> 10) | - (($key[1] & 0x00100000) >> 19) | (($key[1] & 0x10000000) >> 28) | - ($msb[1] << 24) | ($msb[0] << 20) - ); - - $keys = array(); - for ($i = 0; $i < 16; $i++) { - $key[0] <<= $shifts[$i]; - $temp = ($key[0] & 0xF0000000) >> 28; - $key[0] = ($key[0] | $temp) & 0x0FFFFFFF; - - $key[1] <<= $shifts[$i]; - $temp = ($key[1] & 0xF0000000) >> 28; - $key[1] = ($key[1] | $temp) & 0x0FFFFFFF; - - $temp = array( - (($key[1] & 0x00004000) >> 9) | (($key[1] & 0x00000800) >> 7) | - (($key[1] & 0x00020000) >> 14) | (($key[1] & 0x00000010) >> 2) | - (($key[1] & 0x08000000) >> 26) | (($key[1] & 0x00800000) >> 23) - , - (($key[1] & 0x02400000) >> 20) | (($key[1] & 0x00000001) << 4) | - (($key[1] & 0x00002000) >> 10) | (($key[1] & 0x00040000) >> 18) | - (($key[1] & 0x00000080) >> 6) - , - ( $key[1] & 0x00000020 ) | (($key[1] & 0x00000200) >> 5) | - (($key[1] & 0x00010000) >> 13) | (($key[1] & 0x01000000) >> 22) | - (($key[1] & 0x00000004) >> 1) | (($key[1] & 0x00100000) >> 20) - , - (($key[1] & 0x00001000) >> 7) | (($key[1] & 0x00200000) >> 17) | - (($key[1] & 0x00000002) << 2) | (($key[1] & 0x00000100) >> 6) | - (($key[1] & 0x00008000) >> 14) | (($key[1] & 0x04000000) >> 26) - , - (($key[0] & 0x00008000) >> 10) | ( $key[0] & 0x00000010 ) | - (($key[0] & 0x02000000) >> 22) | (($key[0] & 0x00080000) >> 17) | - (($key[0] & 0x00000200) >> 8) | (($key[0] & 0x00000002) >> 1) - , - (($key[0] & 0x04000000) >> 21) | (($key[0] & 0x00010000) >> 12) | - (($key[0] & 0x00000020) >> 2) | (($key[0] & 0x00000800) >> 9) | - (($key[0] & 0x00800000) >> 22) | (($key[0] & 0x00000100) >> 8) - , - (($key[0] & 0x00001000) >> 7) | (($key[0] & 0x00000088) >> 3) | - (($key[0] & 0x00020000) >> 14) | (($key[0] & 0x00000001) << 2) | - (($key[0] & 0x00400000) >> 21) - , - (($key[0] & 0x00000400) >> 5) | (($key[0] & 0x00004000) >> 10) | - (($key[0] & 0x00000040) >> 3) | (($key[0] & 0x00100000) >> 18) | - (($key[0] & 0x08000000) >> 26) | (($key[0] & 0x01000000) >> 24) - ); - - $keys[] = $temp; - } - - $temp = array( - CRYPT_DES_ENCRYPT => $keys, - CRYPT_DES_DECRYPT => array_reverse($keys) - ); - - return $temp; - } -} - -// vim: ts=4:sw=4:et: + + * setKey('abcdefgh'); + * + * $size = 10 * 1024; + * $plaintext = ''; + * for ($i = 0; $i < $size; $i++) { + * $plaintext.= 'a'; + * } + * + * echo $des->decrypt($des->encrypt($plaintext)); + * ?> + * + * + * LICENSE: This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * @category Crypt + * @package Crypt_DES + * @author Jim Wigginton + * @copyright MMVII Jim Wigginton + * @license http://www.gnu.org/licenses/lgpl.txt + * @version $Id: DES.php,v 1.12 2010/02/09 06:10:26 terrafrost Exp $ + * @link http://phpseclib.sourceforge.net + */ + +/**#@+ + * @access private + * @see Crypt_DES::_prepareKey() + * @see Crypt_DES::_processBlock() + */ +/** + * Contains array_reverse($keys[CRYPT_DES_DECRYPT]) + */ +define('CRYPT_DES_ENCRYPT', 0); +/** + * Contains array_reverse($keys[CRYPT_DES_ENCRYPT]) + */ +define('CRYPT_DES_DECRYPT', 1); +/**#@-*/ + +/**#@+ + * @access public + * @see Crypt_DES::encrypt() + * @see Crypt_DES::decrypt() + */ +/** + * Encrypt / decrypt using the Counter mode. + * + * Set to -1 since that's what Crypt/Random.php uses to index the CTR mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Counter_.28CTR.29 + */ +define('CRYPT_DES_MODE_CTR', -1); +/** + * Encrypt / decrypt using the Electronic Code Book mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29 + */ +define('CRYPT_DES_MODE_ECB', 1); +/** + * Encrypt / decrypt using the Code Book Chaining mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29 + */ +define('CRYPT_DES_MODE_CBC', 2); +/**#@-*/ + +/**#@+ + * @access private + * @see Crypt_DES::Crypt_DES() + */ +/** + * Toggles the internal implementation + */ +define('CRYPT_DES_MODE_INTERNAL', 1); +/** + * Toggles the mcrypt implementation + */ +define('CRYPT_DES_MODE_MCRYPT', 2); +/**#@-*/ + +/** + * Pure-PHP implementation of DES. + * + * @author Jim Wigginton + * @version 0.1.0 + * @access public + * @package Crypt_DES + */ +class Crypt_DES { + /** + * The Key Schedule + * + * @see Crypt_DES::setKey() + * @var Array + * @access private + */ + var $keys = "\0\0\0\0\0\0\0\0"; + + /** + * The Encryption Mode + * + * @see Crypt_DES::Crypt_DES() + * @var Integer + * @access private + */ + var $mode; + + /** + * Continuous Buffer status + * + * @see Crypt_DES::enableContinuousBuffer() + * @var Boolean + * @access private + */ + var $continuousBuffer = false; + + /** + * Padding status + * + * @see Crypt_DES::enablePadding() + * @var Boolean + * @access private + */ + var $padding = true; + + /** + * The Initialization Vector + * + * @see Crypt_DES::setIV() + * @var String + * @access private + */ + var $iv = "\0\0\0\0\0\0\0\0"; + + /** + * A "sliding" Initialization Vector + * + * @see Crypt_DES::enableContinuousBuffer() + * @var String + * @access private + */ + var $encryptIV = "\0\0\0\0\0\0\0\0"; + + /** + * A "sliding" Initialization Vector + * + * @see Crypt_DES::enableContinuousBuffer() + * @var String + * @access private + */ + var $decryptIV = "\0\0\0\0\0\0\0\0"; + + /** + * mcrypt resource for encryption + * + * The mcrypt resource can be recreated every time something needs to be created or it can be created just once. + * Since mcrypt operates in continuous mode, by default, it'll need to be recreated when in non-continuous mode. + * + * @see Crypt_AES::encrypt() + * @var String + * @access private + */ + var $enmcrypt; + + /** + * mcrypt resource for decryption + * + * The mcrypt resource can be recreated every time something needs to be created or it can be created just once. + * Since mcrypt operates in continuous mode, by default, it'll need to be recreated when in non-continuous mode. + * + * @see Crypt_AES::decrypt() + * @var String + * @access private + */ + var $demcrypt; + + /** + * Does the (en|de)mcrypt resource need to be (re)initialized? + * + * @see setKey() + * @see setIV() + * @var Boolean + * @access private + */ + var $changed = true; + + /** + * Default Constructor. + * + * Determines whether or not the mcrypt extension should be used. $mode should only, at present, be + * CRYPT_DES_MODE_ECB or CRYPT_DES_MODE_CBC. If not explictly set, CRYPT_DES_MODE_CBC will be used. + * + * @param optional Integer $mode + * @return Crypt_DES + * @access public + */ + function Crypt_DES($mode = CRYPT_MODE_DES_CBC) + { + if ( !defined('CRYPT_DES_MODE') ) { + switch (true) { + case extension_loaded('mcrypt'): + // i'd check to see if des was supported, by doing in_array('des', mcrypt_list_algorithms('')), + // but since that can be changed after the object has been created, there doesn't seem to be + // a lot of point... + define('CRYPT_DES_MODE', CRYPT_DES_MODE_MCRYPT); + break; + default: + define('CRYPT_DES_MODE', CRYPT_DES_MODE_INTERNAL); + } + } + + switch ( CRYPT_DES_MODE ) { + case CRYPT_DES_MODE_MCRYPT: + switch ($mode) { + case CRYPT_DES_MODE_ECB: + $this->mode = MCRYPT_MODE_ECB; + break; + case CRYPT_DES_MODE_CTR: + $this->mode = 'ctr'; + //$this->mode = in_array('ctr', mcrypt_list_modes()) ? 'ctr' : CRYPT_DES_MODE_CTR; + break; + case CRYPT_DES_MODE_CBC: + default: + $this->mode = MCRYPT_MODE_CBC; + } + + break; + default: + switch ($mode) { + case CRYPT_DES_MODE_ECB: + case CRYPT_DES_MODE_CTR: + case CRYPT_DES_MODE_CBC: + $this->mode = $mode; + break; + default: + $this->mode = CRYPT_DES_MODE_CBC; + } + } + } + + /** + * Sets the key. + * + * Keys can be of any length. DES, itself, uses 64-bit keys (eg. strlen($key) == 8), however, we + * only use the first eight, if $key has more then eight characters in it, and pad $key with the + * null byte if it is less then eight characters long. + * + * DES also requires that every eighth bit be a parity bit, however, we'll ignore that. + * + * If the key is not explicitly set, it'll be assumed to be all zero's. + * + * @access public + * @param String $key + */ + function setKey($key) + { + $this->keys = ( CRYPT_DES_MODE == CRYPT_DES_MODE_MCRYPT ) ? substr($key, 0, 8) : $this->_prepareKey($key); + $this->changed = true; + } + + /** + * Sets the initialization vector. (optional) + * + * SetIV is not required when CRYPT_DES_MODE_ECB is being used. If not explictly set, it'll be assumed + * to be all zero's. + * + * @access public + * @param String $iv + */ + function setIV($iv) + { + $this->encryptIV = $this->decryptIV = $this->iv = str_pad(substr($iv, 0, 8), 8, chr(0)); + $this->changed = true; + } + + /** + * Generate CTR XOR encryption key + * + * Encrypt the output of this and XOR it against the ciphertext / plaintext to get the + * plaintext / ciphertext in CTR mode. + * + * @see Crypt_DES::decrypt() + * @see Crypt_DES::encrypt() + * @access public + * @param Integer $length + * @param String $iv + */ + function _generate_xor($length, &$iv) + { + $xor = ''; + $num_blocks = ($length + 7) >> 3; + for ($i = 0; $i < $num_blocks; $i++) { + $xor.= $iv; + for ($j = 4; $j <= 8; $j+=4) { + $temp = substr($iv, -$j, 4); + switch ($temp) { + case "\xFF\xFF\xFF\xFF": + $iv = substr_replace($iv, "\x00\x00\x00\x00", -$j, 4); + break; + case "\x7F\xFF\xFF\xFF": + $iv = substr_replace($iv, "\x80\x00\x00\x00", -$j, 4); + break 2; + default: + extract(unpack('Ncount', $temp)); + $iv = substr_replace($iv, pack('N', $count + 1), -$j, 4); + break 2; + } + } + } + + return $xor; + } + + /** + * Encrypts a message. + * + * $plaintext will be padded with up to 8 additional bytes. Other DES implementations may or may not pad in the + * same manner. Other common approaches to padding and the reasons why it's necessary are discussed in the following + * URL: + * + * {@link http://www.di-mgt.com.au/cryptopad.html http://www.di-mgt.com.au/cryptopad.html} + * + * An alternative to padding is to, separately, send the length of the file. This is what SSH, in fact, does. + * strlen($plaintext) will still need to be a multiple of 8, however, arbitrary values can be added to make it that + * length. + * + * @see Crypt_DES::decrypt() + * @access public + * @param String $plaintext + */ + function encrypt($plaintext) + { + if ($this->mode != CRYPT_DES_MODE_CTR && $this->mode != 'ctr') { + $plaintext = $this->_pad($plaintext); + } + + if ( CRYPT_DES_MODE == CRYPT_DES_MODE_MCRYPT ) { + if ($this->changed) { + if (!isset($this->enmcrypt)) { + $this->enmcrypt = mcrypt_module_open(MCRYPT_DES, '', $this->mode, ''); + } + mcrypt_generic_init($this->enmcrypt, $this->keys, $this->encryptIV); + $this->changed = false; + } + + $ciphertext = mcrypt_generic($this->enmcrypt, $plaintext); + + if (!$this->continuousBuffer) { + mcrypt_generic_init($this->enmcrypt, $this->keys, $this->encryptIV); + } + + return $ciphertext; + } + + if (!is_array($this->keys)) { + $this->keys = $this->_prepareKey("\0\0\0\0\0\0\0\0"); + } + + $ciphertext = ''; + switch ($this->mode) { + case CRYPT_DES_MODE_ECB: + for ($i = 0; $i < strlen($plaintext); $i+=8) { + $ciphertext.= $this->_processBlock(substr($plaintext, $i, 8), CRYPT_DES_ENCRYPT); + } + break; + case CRYPT_DES_MODE_CBC: + $xor = $this->encryptIV; + for ($i = 0; $i < strlen($plaintext); $i+=8) { + $block = substr($plaintext, $i, 8); + $block = $this->_processBlock($block ^ $xor, CRYPT_DES_ENCRYPT); + $xor = $block; + $ciphertext.= $block; + } + if ($this->continuousBuffer) { + $this->encryptIV = $xor; + } + break; + case CRYPT_DES_MODE_CTR: + $xor = $this->encryptIV; + for ($i = 0; $i < strlen($plaintext); $i+=8) { + $block = substr($plaintext, $i, 8); + $key = $this->_processBlock($this->_generate_xor(8, $xor), CRYPT_DES_ENCRYPT); + $ciphertext.= $block ^ $key; + } + if ($this->continuousBuffer) { + $this->encryptIV = $xor; + } + } + + return $ciphertext; + } + + /** + * Decrypts a message. + * + * If strlen($ciphertext) is not a multiple of 8, null bytes will be added to the end of the string until it is. + * + * @see Crypt_DES::encrypt() + * @access public + * @param String $ciphertext + */ + function decrypt($ciphertext) + { + if ($this->mode != CRYPT_DES_MODE_CTR && $this->mode != 'ctr') { + // we pad with chr(0) since that's what mcrypt_generic does. to quote from http://php.net/function.mcrypt-generic : + // "The data is padded with "\0" to make sure the length of the data is n * blocksize." + $ciphertext = str_pad($ciphertext, (strlen($ciphertext) + 7) & 0xFFFFFFF8, chr(0)); + } + + if ( CRYPT_DES_MODE == CRYPT_DES_MODE_MCRYPT ) { + if ($this->changed) { + if (!isset($this->demcrypt)) { + $this->demcrypt = mcrypt_module_open(MCRYPT_DES, '', $this->mode, ''); + } + mcrypt_generic_init($this->demcrypt, $this->keys, $this->decryptIV); + $this->changed = false; + } + + $plaintext = mdecrypt_generic($this->demcrypt, $ciphertext); + + if (!$this->continuousBuffer) { + mcrypt_generic_init($this->demcrypt, $this->keys, $this->decryptIV); + } + + return $this->mode != 'ctr' ? $this->_unpad($plaintext) : $plaintext; + } + + if (!is_array($this->keys)) { + $this->keys = $this->_prepareKey("\0\0\0\0\0\0\0\0"); + } + + $plaintext = ''; + switch ($this->mode) { + case CRYPT_DES_MODE_ECB: + for ($i = 0; $i < strlen($ciphertext); $i+=8) { + $plaintext.= $this->_processBlock(substr($ciphertext, $i, 8), CRYPT_DES_DECRYPT); + } + break; + case CRYPT_DES_MODE_CBC: + $xor = $this->decryptIV; + for ($i = 0; $i < strlen($ciphertext); $i+=8) { + $block = substr($ciphertext, $i, 8); + $plaintext.= $this->_processBlock($block, CRYPT_DES_DECRYPT) ^ $xor; + $xor = $block; + } + if ($this->continuousBuffer) { + $this->decryptIV = $xor; + } + break; + case CRYPT_DES_MODE_CTR: + $xor = $this->decryptIV; + for ($i = 0; $i < strlen($ciphertext); $i+=8) { + $block = substr($ciphertext, $i, 8); + $key = $this->_processBlock($this->_generate_xor(8, $xor), CRYPT_DES_ENCRYPT); + $plaintext.= $block ^ $key; + } + if ($this->continuousBuffer) { + $this->decryptIV = $xor; + } + } + + return $this->mode != CRYPT_DES_MODE_CTR ? $this->_unpad($plaintext) : $plaintext; + } + + /** + * Treat consecutive "packets" as if they are a continuous buffer. + * + * Say you have a 16-byte plaintext $plaintext. Using the default behavior, the two following code snippets + * will yield different outputs: + * + * + * echo $des->encrypt(substr($plaintext, 0, 8)); + * echo $des->encrypt(substr($plaintext, 8, 8)); + * + * + * echo $des->encrypt($plaintext); + * + * + * The solution is to enable the continuous buffer. Although this will resolve the above discrepancy, it creates + * another, as demonstrated with the following: + * + * + * $des->encrypt(substr($plaintext, 0, 8)); + * echo $des->decrypt($des->encrypt(substr($plaintext, 8, 8))); + * + * + * echo $des->decrypt($des->encrypt(substr($plaintext, 8, 8))); + * + * + * With the continuous buffer disabled, these would yield the same output. With it enabled, they yield different + * outputs. The reason is due to the fact that the initialization vector's change after every encryption / + * decryption round when the continuous buffer is enabled. When it's disabled, they remain constant. + * + * Put another way, when the continuous buffer is enabled, the state of the Crypt_DES() object changes after each + * encryption / decryption round, whereas otherwise, it'd remain constant. For this reason, it's recommended that + * continuous buffers not be used. They do offer better security and are, in fact, sometimes required (SSH uses them), + * however, they are also less intuitive and more likely to cause you problems. + * + * @see Crypt_DES::disableContinuousBuffer() + * @access public + */ + function enableContinuousBuffer() + { + $this->continuousBuffer = true; + } + + /** + * Treat consecutive packets as if they are a discontinuous buffer. + * + * The default behavior. + * + * @see Crypt_DES::enableContinuousBuffer() + * @access public + */ + function disableContinuousBuffer() + { + $this->continuousBuffer = false; + $this->encryptIV = $this->iv; + $this->decryptIV = $this->iv; + } + + /** + * Pad "packets". + * + * DES works by encrypting eight bytes at a time. If you ever need to encrypt or decrypt something that's not + * a multiple of eight, it becomes necessary to pad the input so that it's length is a multiple of eight. + * + * Padding is enabled by default. Sometimes, however, it is undesirable to pad strings. Such is the case in SSH1, + * where "packets" are padded with random bytes before being encrypted. Unpad these packets and you risk stripping + * away characters that shouldn't be stripped away. (SSH knows how many bytes are added because the length is + * transmitted separately) + * + * @see Crypt_DES::disablePadding() + * @access public + */ + function enablePadding() + { + $this->padding = true; + } + + /** + * Do not pad packets. + * + * @see Crypt_DES::enablePadding() + * @access public + */ + function disablePadding() + { + $this->padding = false; + } + + /** + * Pads a string + * + * Pads a string using the RSA PKCS padding standards so that its length is a multiple of the blocksize (8). + * 8 - (strlen($text) & 7) bytes are added, each of which is equal to chr(8 - (strlen($text) & 7) + * + * If padding is disabled and $text is not a multiple of the blocksize, the string will be padded regardless + * and padding will, hence forth, be enabled. + * + * @see Crypt_DES::_unpad() + * @access private + */ + function _pad($text) + { + $length = strlen($text); + + if (!$this->padding) { + if (($length & 7) == 0) { + return $text; + } else { + user_error("The plaintext's length ($length) is not a multiple of the block size (8)", E_USER_NOTICE); + $this->padding = true; + } + } + + $pad = 8 - ($length & 7); + return str_pad($text, $length + $pad, chr($pad)); + } + + /** + * Unpads a string + * + * If padding is enabled and the reported padding length is invalid the encryption key will be assumed to be wrong + * and false will be returned. + * + * @see Crypt_DES::_pad() + * @access private + */ + function _unpad($text) + { + if (!$this->padding) { + return $text; + } + + $length = ord($text[strlen($text) - 1]); + + if (!$length || $length > 8) { + return false; + } + + return substr($text, 0, -$length); + } + + /** + * Encrypts or decrypts a 64-bit block + * + * $mode should be either CRYPT_DES_ENCRYPT or CRYPT_DES_DECRYPT. See + * {@link http://en.wikipedia.org/wiki/Image:Feistel.png Feistel.png} to get a general + * idea of what this function does. + * + * @access private + * @param String $block + * @param Integer $mode + * @return String + */ + function _processBlock($block, $mode) + { + // s-boxes. in the official DES docs, they're described as being matrices that + // one accesses by using the first and last bits to determine the row and the + // middle four bits to determine the column. in this implementation, they've + // been converted to vectors + static $sbox = array( + array( + 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1, + 3, 10 ,10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8, + 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7, + 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13 + ), + array( + 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14, + 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5, + 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2, + 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9 + ), + array( + 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10, + 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1, + 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7, + 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12 + ), + array( + 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3, + 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9, + 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8, + 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14 + ), + array( + 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1, + 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6, + 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13, + 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3 + ), + array( + 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5, + 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8, + 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10, + 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13 + ), + array( + 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10, + 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6, + 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7, + 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12 + ), + array( + 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4, + 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2, + 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13, + 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11 + ) + ); + + $keys = $this->keys; + + $temp = unpack('Na/Nb', $block); + $block = array($temp['a'], $temp['b']); + + // because php does arithmetic right shifts, if the most significant bits are set, right + // shifting those into the correct position will add 1's - not 0's. this will intefere + // with the | operation unless a second & is done. so we isolate these bits and left shift + // them into place. we then & each block with 0x7FFFFFFF to prevennt 1's from being added + // for any other shifts. + $msb = array( + ($block[0] >> 31) & 1, + ($block[1] >> 31) & 1 + ); + $block[0] &= 0x7FFFFFFF; + $block[1] &= 0x7FFFFFFF; + + // we isolate the appropriate bit in the appropriate integer and shift as appropriate. in + // some cases, there are going to be multiple bits in the same integer that need to be shifted + // in the same way. we combine those into one shift operation. + $block = array( + (($block[1] & 0x00000040) << 25) | (($block[1] & 0x00004000) << 16) | + (($block[1] & 0x00400001) << 7) | (($block[1] & 0x40000100) >> 2) | + (($block[0] & 0x00000040) << 21) | (($block[0] & 0x00004000) << 12) | + (($block[0] & 0x00400001) << 3) | (($block[0] & 0x40000100) >> 6) | + (($block[1] & 0x00000010) << 19) | (($block[1] & 0x00001000) << 10) | + (($block[1] & 0x00100000) << 1) | (($block[1] & 0x10000000) >> 8) | + (($block[0] & 0x00000010) << 15) | (($block[0] & 0x00001000) << 6) | + (($block[0] & 0x00100000) >> 3) | (($block[0] & 0x10000000) >> 12) | + (($block[1] & 0x00000004) << 13) | (($block[1] & 0x00000400) << 4) | + (($block[1] & 0x00040000) >> 5) | (($block[1] & 0x04000000) >> 14) | + (($block[0] & 0x00000004) << 9) | ( $block[0] & 0x00000400 ) | + (($block[0] & 0x00040000) >> 9) | (($block[0] & 0x04000000) >> 18) | + (($block[1] & 0x00010000) >> 11) | (($block[1] & 0x01000000) >> 20) | + (($block[0] & 0x00010000) >> 15) | (($block[0] & 0x01000000) >> 24) + , + (($block[1] & 0x00000080) << 24) | (($block[1] & 0x00008000) << 15) | + (($block[1] & 0x00800002) << 6) | (($block[0] & 0x00000080) << 20) | + (($block[0] & 0x00008000) << 11) | (($block[0] & 0x00800002) << 2) | + (($block[1] & 0x00000020) << 18) | (($block[1] & 0x00002000) << 9) | + ( $block[1] & 0x00200000 ) | (($block[1] & 0x20000000) >> 9) | + (($block[0] & 0x00000020) << 14) | (($block[0] & 0x00002000) << 5) | + (($block[0] & 0x00200000) >> 4) | (($block[0] & 0x20000000) >> 13) | + (($block[1] & 0x00000008) << 12) | (($block[1] & 0x00000800) << 3) | + (($block[1] & 0x00080000) >> 6) | (($block[1] & 0x08000000) >> 15) | + (($block[0] & 0x00000008) << 8) | (($block[0] & 0x00000800) >> 1) | + (($block[0] & 0x00080000) >> 10) | (($block[0] & 0x08000000) >> 19) | + (($block[1] & 0x00000200) >> 3) | (($block[0] & 0x00000200) >> 7) | + (($block[1] & 0x00020000) >> 12) | (($block[1] & 0x02000000) >> 21) | + (($block[0] & 0x00020000) >> 16) | (($block[0] & 0x02000000) >> 25) | + ($msb[1] << 28) | ($msb[0] << 24) + ); + + for ($i = 0; $i < 16; $i++) { + // start of "the Feistel (F) function" - see the following URL: + // http://en.wikipedia.org/wiki/Image:Data_Encryption_Standard_InfoBox_Diagram.png + $temp = (($sbox[0][((($block[1] >> 27) & 0x1F) | (($block[1] & 1) << 5)) ^ $keys[$mode][$i][0]]) << 28) + | (($sbox[1][(($block[1] & 0x1F800000) >> 23) ^ $keys[$mode][$i][1]]) << 24) + | (($sbox[2][(($block[1] & 0x01F80000) >> 19) ^ $keys[$mode][$i][2]]) << 20) + | (($sbox[3][(($block[1] & 0x001F8000) >> 15) ^ $keys[$mode][$i][3]]) << 16) + | (($sbox[4][(($block[1] & 0x0001F800) >> 11) ^ $keys[$mode][$i][4]]) << 12) + | (($sbox[5][(($block[1] & 0x00001F80) >> 7) ^ $keys[$mode][$i][5]]) << 8) + | (($sbox[6][(($block[1] & 0x000001F8) >> 3) ^ $keys[$mode][$i][6]]) << 4) + | ( $sbox[7][((($block[1] & 0x1F) << 1) | (($block[1] >> 31) & 1)) ^ $keys[$mode][$i][7]]); + + $msb = ($temp >> 31) & 1; + $temp &= 0x7FFFFFFF; + $newBlock = (($temp & 0x00010000) << 15) | (($temp & 0x02020120) << 5) + | (($temp & 0x00001800) << 17) | (($temp & 0x01000000) >> 10) + | (($temp & 0x00000008) << 24) | (($temp & 0x00100000) << 6) + | (($temp & 0x00000010) << 21) | (($temp & 0x00008000) << 9) + | (($temp & 0x00000200) << 12) | (($temp & 0x10000000) >> 27) + | (($temp & 0x00000040) << 14) | (($temp & 0x08000000) >> 8) + | (($temp & 0x00004000) << 4) | (($temp & 0x00000002) << 16) + | (($temp & 0x00442000) >> 6) | (($temp & 0x40800000) >> 15) + | (($temp & 0x00000001) << 11) | (($temp & 0x20000000) >> 20) + | (($temp & 0x00080000) >> 13) | (($temp & 0x00000004) << 3) + | (($temp & 0x04000000) >> 22) | (($temp & 0x00000480) >> 7) + | (($temp & 0x00200000) >> 19) | ($msb << 23); + // end of "the Feistel (F) function" - $newBlock is F's output + + $temp = $block[1]; + $block[1] = $block[0] ^ $newBlock; + $block[0] = $temp; + } + + $msb = array( + ($block[0] >> 31) & 1, + ($block[1] >> 31) & 1 + ); + $block[0] &= 0x7FFFFFFF; + $block[1] &= 0x7FFFFFFF; + + $block = array( + (($block[0] & 0x01000004) << 7) | (($block[1] & 0x01000004) << 6) | + (($block[0] & 0x00010000) << 13) | (($block[1] & 0x00010000) << 12) | + (($block[0] & 0x00000100) << 19) | (($block[1] & 0x00000100) << 18) | + (($block[0] & 0x00000001) << 25) | (($block[1] & 0x00000001) << 24) | + (($block[0] & 0x02000008) >> 2) | (($block[1] & 0x02000008) >> 3) | + (($block[0] & 0x00020000) << 4) | (($block[1] & 0x00020000) << 3) | + (($block[0] & 0x00000200) << 10) | (($block[1] & 0x00000200) << 9) | + (($block[0] & 0x00000002) << 16) | (($block[1] & 0x00000002) << 15) | + (($block[0] & 0x04000000) >> 11) | (($block[1] & 0x04000000) >> 12) | + (($block[0] & 0x00040000) >> 5) | (($block[1] & 0x00040000) >> 6) | + (($block[0] & 0x00000400) << 1) | ( $block[1] & 0x00000400 ) | + (($block[0] & 0x08000000) >> 20) | (($block[1] & 0x08000000) >> 21) | + (($block[0] & 0x00080000) >> 14) | (($block[1] & 0x00080000) >> 15) | + (($block[0] & 0x00000800) >> 8) | (($block[1] & 0x00000800) >> 9) + , + (($block[0] & 0x10000040) << 3) | (($block[1] & 0x10000040) << 2) | + (($block[0] & 0x00100000) << 9) | (($block[1] & 0x00100000) << 8) | + (($block[0] & 0x00001000) << 15) | (($block[1] & 0x00001000) << 14) | + (($block[0] & 0x00000010) << 21) | (($block[1] & 0x00000010) << 20) | + (($block[0] & 0x20000080) >> 6) | (($block[1] & 0x20000080) >> 7) | + ( $block[0] & 0x00200000 ) | (($block[1] & 0x00200000) >> 1) | + (($block[0] & 0x00002000) << 6) | (($block[1] & 0x00002000) << 5) | + (($block[0] & 0x00000020) << 12) | (($block[1] & 0x00000020) << 11) | + (($block[0] & 0x40000000) >> 15) | (($block[1] & 0x40000000) >> 16) | + (($block[0] & 0x00400000) >> 9) | (($block[1] & 0x00400000) >> 10) | + (($block[0] & 0x00004000) >> 3) | (($block[1] & 0x00004000) >> 4) | + (($block[0] & 0x00800000) >> 18) | (($block[1] & 0x00800000) >> 19) | + (($block[0] & 0x00008000) >> 12) | (($block[1] & 0x00008000) >> 13) | + ($msb[0] << 7) | ($msb[1] << 6) + ); + + return pack('NN', $block[0], $block[1]); + } + + /** + * Creates the key schedule. + * + * @access private + * @param String $key + * @return Array + */ + function _prepareKey($key) + { + static $shifts = array( // number of key bits shifted per round + 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1 + ); + + // pad the key and remove extra characters as appropriate. + $key = str_pad(substr($key, 0, 8), 8, chr(0)); + + $temp = unpack('Na/Nb', $key); + $key = array($temp['a'], $temp['b']); + $msb = array( + ($key[0] >> 31) & 1, + ($key[1] >> 31) & 1 + ); + $key[0] &= 0x7FFFFFFF; + $key[1] &= 0x7FFFFFFF; + + $key = array( + (($key[1] & 0x00000002) << 26) | (($key[1] & 0x00000204) << 17) | + (($key[1] & 0x00020408) << 8) | (($key[1] & 0x02040800) >> 1) | + (($key[0] & 0x00000002) << 22) | (($key[0] & 0x00000204) << 13) | + (($key[0] & 0x00020408) << 4) | (($key[0] & 0x02040800) >> 5) | + (($key[1] & 0x04080000) >> 10) | (($key[0] & 0x04080000) >> 14) | + (($key[1] & 0x08000000) >> 19) | (($key[0] & 0x08000000) >> 23) | + (($key[0] & 0x00000010) >> 1) | (($key[0] & 0x00001000) >> 10) | + (($key[0] & 0x00100000) >> 19) | (($key[0] & 0x10000000) >> 28) + , + (($key[1] & 0x00000080) << 20) | (($key[1] & 0x00008000) << 11) | + (($key[1] & 0x00800000) << 2) | (($key[0] & 0x00000080) << 16) | + (($key[0] & 0x00008000) << 7) | (($key[0] & 0x00800000) >> 2) | + (($key[1] & 0x00000040) << 13) | (($key[1] & 0x00004000) << 4) | + (($key[1] & 0x00400000) >> 5) | (($key[1] & 0x40000000) >> 14) | + (($key[0] & 0x00000040) << 9) | ( $key[0] & 0x00004000 ) | + (($key[0] & 0x00400000) >> 9) | (($key[0] & 0x40000000) >> 18) | + (($key[1] & 0x00000020) << 6) | (($key[1] & 0x00002000) >> 3) | + (($key[1] & 0x00200000) >> 12) | (($key[1] & 0x20000000) >> 21) | + (($key[0] & 0x00000020) << 2) | (($key[0] & 0x00002000) >> 7) | + (($key[0] & 0x00200000) >> 16) | (($key[0] & 0x20000000) >> 25) | + (($key[1] & 0x00000010) >> 1) | (($key[1] & 0x00001000) >> 10) | + (($key[1] & 0x00100000) >> 19) | (($key[1] & 0x10000000) >> 28) | + ($msb[1] << 24) | ($msb[0] << 20) + ); + + $keys = array(); + for ($i = 0; $i < 16; $i++) { + $key[0] <<= $shifts[$i]; + $temp = ($key[0] & 0xF0000000) >> 28; + $key[0] = ($key[0] | $temp) & 0x0FFFFFFF; + + $key[1] <<= $shifts[$i]; + $temp = ($key[1] & 0xF0000000) >> 28; + $key[1] = ($key[1] | $temp) & 0x0FFFFFFF; + + $temp = array( + (($key[1] & 0x00004000) >> 9) | (($key[1] & 0x00000800) >> 7) | + (($key[1] & 0x00020000) >> 14) | (($key[1] & 0x00000010) >> 2) | + (($key[1] & 0x08000000) >> 26) | (($key[1] & 0x00800000) >> 23) + , + (($key[1] & 0x02400000) >> 20) | (($key[1] & 0x00000001) << 4) | + (($key[1] & 0x00002000) >> 10) | (($key[1] & 0x00040000) >> 18) | + (($key[1] & 0x00000080) >> 6) + , + ( $key[1] & 0x00000020 ) | (($key[1] & 0x00000200) >> 5) | + (($key[1] & 0x00010000) >> 13) | (($key[1] & 0x01000000) >> 22) | + (($key[1] & 0x00000004) >> 1) | (($key[1] & 0x00100000) >> 20) + , + (($key[1] & 0x00001000) >> 7) | (($key[1] & 0x00200000) >> 17) | + (($key[1] & 0x00000002) << 2) | (($key[1] & 0x00000100) >> 6) | + (($key[1] & 0x00008000) >> 14) | (($key[1] & 0x04000000) >> 26) + , + (($key[0] & 0x00008000) >> 10) | ( $key[0] & 0x00000010 ) | + (($key[0] & 0x02000000) >> 22) | (($key[0] & 0x00080000) >> 17) | + (($key[0] & 0x00000200) >> 8) | (($key[0] & 0x00000002) >> 1) + , + (($key[0] & 0x04000000) >> 21) | (($key[0] & 0x00010000) >> 12) | + (($key[0] & 0x00000020) >> 2) | (($key[0] & 0x00000800) >> 9) | + (($key[0] & 0x00800000) >> 22) | (($key[0] & 0x00000100) >> 8) + , + (($key[0] & 0x00001000) >> 7) | (($key[0] & 0x00000088) >> 3) | + (($key[0] & 0x00020000) >> 14) | (($key[0] & 0x00000001) << 2) | + (($key[0] & 0x00400000) >> 21) + , + (($key[0] & 0x00000400) >> 5) | (($key[0] & 0x00004000) >> 10) | + (($key[0] & 0x00000040) >> 3) | (($key[0] & 0x00100000) >> 18) | + (($key[0] & 0x08000000) >> 26) | (($key[0] & 0x01000000) >> 24) + ); + + $keys[] = $temp; + } + + $temp = array( + CRYPT_DES_ENCRYPT => $keys, + CRYPT_DES_DECRYPT => array_reverse($keys) + ); + + return $temp; + } +} + +// vim: ts=4:sw=4:et: // vim6: fdl=1: \ No newline at end of file diff --git a/plugins/OStatus/extlib/Crypt/Hash.php b/plugins/OStatus/extlib/Crypt/Hash.php index ef3a85802..e4dfde331 100644 --- a/plugins/OStatus/extlib/Crypt/Hash.php +++ b/plugins/OStatus/extlib/Crypt/Hash.php @@ -1,816 +1,816 @@ - - * setKey('abcdefg'); - * - * echo base64_encode($hash->hash('abcdefg')); - * ?> - * - * - * LICENSE: This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - * - * @category Crypt - * @package Crypt_Hash - * @author Jim Wigginton - * @copyright MMVII Jim Wigginton - * @license http://www.gnu.org/licenses/lgpl.txt - * @version $Id: Hash.php,v 1.6 2009/11/23 23:37:07 terrafrost Exp $ - * @link http://phpseclib.sourceforge.net - */ - -/**#@+ - * @access private - * @see Crypt_Hash::Crypt_Hash() - */ -/** - * Toggles the internal implementation - */ -define('CRYPT_HASH_MODE_INTERNAL', 1); -/** - * Toggles the mhash() implementation, which has been deprecated on PHP 5.3.0+. - */ -define('CRYPT_HASH_MODE_MHASH', 2); -/** - * Toggles the hash() implementation, which works on PHP 5.1.2+. - */ -define('CRYPT_HASH_MODE_HASH', 3); -/**#@-*/ - -/** - * Pure-PHP implementations of keyed-hash message authentication codes (HMACs) and various cryptographic hashing functions. - * - * @author Jim Wigginton - * @version 0.1.0 - * @access public - * @package Crypt_Hash - */ -class Crypt_Hash { - /** - * Byte-length of compression blocks / key (Internal HMAC) - * - * @see Crypt_Hash::setAlgorithm() - * @var Integer - * @access private - */ - var $b; - - /** - * Byte-length of hash output (Internal HMAC) - * - * @see Crypt_Hash::setHash() - * @var Integer - * @access private - */ - var $l = false; - - /** - * Hash Algorithm - * - * @see Crypt_Hash::setHash() - * @var String - * @access private - */ - var $hash; - - /** - * Key - * - * @see Crypt_Hash::setKey() - * @var String - * @access private - */ - var $key = ''; - - /** - * Outer XOR (Internal HMAC) - * - * @see Crypt_Hash::setKey() - * @var String - * @access private - */ - var $opad; - - /** - * Inner XOR (Internal HMAC) - * - * @see Crypt_Hash::setKey() - * @var String - * @access private - */ - var $ipad; - - /** - * Default Constructor. - * - * @param optional String $hash - * @return Crypt_Hash - * @access public - */ - function Crypt_Hash($hash = 'sha1') - { - if ( !defined('CRYPT_HASH_MODE') ) { - switch (true) { - case extension_loaded('hash'): - define('CRYPT_HASH_MODE', CRYPT_HASH_MODE_HASH); - break; - case extension_loaded('mhash'): - define('CRYPT_HASH_MODE', CRYPT_HASH_MODE_MHASH); - break; - default: - define('CRYPT_HASH_MODE', CRYPT_HASH_MODE_INTERNAL); - } - } - - $this->setHash($hash); - } - - /** - * Sets the key for HMACs - * - * Keys can be of any length. - * - * @access public - * @param String $key - */ - function setKey($key) - { - $this->key = $key; - } - - /** - * Sets the hash function. - * - * @access public - * @param String $hash - */ - function setHash($hash) - { - switch ($hash) { - case 'md5-96': - case 'sha1-96': - $this->l = 12; // 96 / 8 = 12 - break; - case 'md2': - case 'md5': - $this->l = 16; - break; - case 'sha1': - $this->l = 20; - break; - case 'sha256': - $this->l = 32; - break; - case 'sha384': - $this->l = 48; - break; - case 'sha512': - $this->l = 64; - } - - switch ($hash) { - case 'md2': - $mode = CRYPT_HASH_MODE_INTERNAL; - break; - case 'sha384': - case 'sha512': - $mode = CRYPT_HASH_MODE == CRYPT_HASH_MODE_MHASH ? CRYPT_HASH_MODE_INTERNAL : CRYPT_HASH_MODE; - break; - default: - $mode = CRYPT_HASH_MODE; - } - - switch ( $mode ) { - case CRYPT_HASH_MODE_MHASH: - switch ($hash) { - case 'md5': - case 'md5-96': - $this->hash = MHASH_MD5; - break; - case 'sha256': - $this->hash = MHASH_SHA256; - break; - case 'sha1': - case 'sha1-96': - default: - $this->hash = MHASH_SHA1; - } - return; - case CRYPT_HASH_MODE_HASH: - switch ($hash) { - case 'md5': - case 'md5-96': - $this->hash = 'md5'; - return; - case 'sha256': - case 'sha384': - case 'sha512': - $this->hash = $hash; - return; - case 'sha1': - case 'sha1-96': - default: - $this->hash = 'sha1'; - } - return; - } - - switch ($hash) { - case 'md2': - $this->b = 16; - $this->hash = array($this, '_md2'); - break; - case 'md5': - case 'md5-96': - $this->b = 64; - $this->hash = array($this, '_md5'); - break; - case 'sha256': - $this->b = 64; - $this->hash = array($this, '_sha256'); - break; - case 'sha384': - case 'sha512': - $this->b = 128; - $this->hash = array($this, '_sha512'); - break; - case 'sha1': - case 'sha1-96': - default: - $this->b = 64; - $this->hash = array($this, '_sha1'); - } - - $this->ipad = str_repeat(chr(0x36), $this->b); - $this->opad = str_repeat(chr(0x5C), $this->b); - } - - /** - * Compute the HMAC. - * - * @access public - * @param String $text - * @return String - */ - function hash($text) - { - $mode = is_array($this->hash) ? CRYPT_HASH_MODE_INTERNAL : CRYPT_HASH_MODE; - - if (!empty($this->key)) { - switch ( $mode ) { - case CRYPT_HASH_MODE_MHASH: - $output = mhash($this->hash, $text, $this->key); - break; - case CRYPT_HASH_MODE_HASH: - $output = hash_hmac($this->hash, $text, $this->key, true); - break; - case CRYPT_HASH_MODE_INTERNAL: - /* "Applications that use keys longer than B bytes will first hash the key using H and then use the - resultant L byte string as the actual key to HMAC." - - -- http://tools.ietf.org/html/rfc2104#section-2 */ - $key = strlen($this->key) > $this->b ? call_user_func($this->$hash, $this->key) : $this->key; - - $key = str_pad($key, $this->b, chr(0)); // step 1 - $temp = $this->ipad ^ $key; // step 2 - $temp .= $text; // step 3 - $temp = call_user_func($this->hash, $temp); // step 4 - $output = $this->opad ^ $key; // step 5 - $output.= $temp; // step 6 - $output = call_user_func($this->hash, $output); // step 7 - } - } else { - switch ( $mode ) { - case CRYPT_HASH_MODE_MHASH: - $output = mhash($this->hash, $text); - break; - case CRYPT_HASH_MODE_HASH: - $output = hash($this->hash, $text, true); - break; - case CRYPT_HASH_MODE_INTERNAL: - $output = call_user_func($this->hash, $text); - } - } - - return substr($output, 0, $this->l); - } - - /** - * Returns the hash length (in bytes) - * - * @access private - * @return Integer - */ - function getLength() - { - return $this->l; - } - - /** - * Wrapper for MD5 - * - * @access private - * @param String $text - */ - function _md5($m) - { - return pack('H*', md5($m)); - } - - /** - * Wrapper for SHA1 - * - * @access private - * @param String $text - */ - function _sha1($m) - { - return pack('H*', sha1($m)); - } - - /** - * Pure-PHP implementation of MD2 - * - * See {@link http://tools.ietf.org/html/rfc1319 RFC1319}. - * - * @access private - * @param String $text - */ - function _md2($m) - { - static $s = array( - 41, 46, 67, 201, 162, 216, 124, 1, 61, 54, 84, 161, 236, 240, 6, - 19, 98, 167, 5, 243, 192, 199, 115, 140, 152, 147, 43, 217, 188, - 76, 130, 202, 30, 155, 87, 60, 253, 212, 224, 22, 103, 66, 111, 24, - 138, 23, 229, 18, 190, 78, 196, 214, 218, 158, 222, 73, 160, 251, - 245, 142, 187, 47, 238, 122, 169, 104, 121, 145, 21, 178, 7, 63, - 148, 194, 16, 137, 11, 34, 95, 33, 128, 127, 93, 154, 90, 144, 50, - 39, 53, 62, 204, 231, 191, 247, 151, 3, 255, 25, 48, 179, 72, 165, - 181, 209, 215, 94, 146, 42, 172, 86, 170, 198, 79, 184, 56, 210, - 150, 164, 125, 182, 118, 252, 107, 226, 156, 116, 4, 241, 69, 157, - 112, 89, 100, 113, 135, 32, 134, 91, 207, 101, 230, 45, 168, 2, 27, - 96, 37, 173, 174, 176, 185, 246, 28, 70, 97, 105, 52, 64, 126, 15, - 85, 71, 163, 35, 221, 81, 175, 58, 195, 92, 249, 206, 186, 197, - 234, 38, 44, 83, 13, 110, 133, 40, 132, 9, 211, 223, 205, 244, 65, - 129, 77, 82, 106, 220, 55, 200, 108, 193, 171, 250, 36, 225, 123, - 8, 12, 189, 177, 74, 120, 136, 149, 139, 227, 99, 232, 109, 233, - 203, 213, 254, 59, 0, 29, 57, 242, 239, 183, 14, 102, 88, 208, 228, - 166, 119, 114, 248, 235, 117, 75, 10, 49, 68, 80, 180, 143, 237, - 31, 26, 219, 153, 141, 51, 159, 17, 131, 20 - ); - - // Step 1. Append Padding Bytes - $pad = 16 - (strlen($m) & 0xF); - $m.= str_repeat(chr($pad), $pad); - - $length = strlen($m); - - // Step 2. Append Checksum - $c = str_repeat(chr(0), 16); - $l = chr(0); - for ($i = 0; $i < $length; $i+= 16) { - for ($j = 0; $j < 16; $j++) { - $c[$j] = chr($s[ord($m[$i + $j] ^ $l)]); - $l = $c[$j]; - } - } - $m.= $c; - - $length+= 16; - - // Step 3. Initialize MD Buffer - $x = str_repeat(chr(0), 48); - - // Step 4. Process Message in 16-Byte Blocks - for ($i = 0; $i < $length; $i+= 16) { - for ($j = 0; $j < 16; $j++) { - $x[$j + 16] = $m[$i + $j]; - $x[$j + 32] = $x[$j + 16] ^ $x[$j]; - } - $t = chr(0); - for ($j = 0; $j < 18; $j++) { - for ($k = 0; $k < 48; $k++) { - $x[$k] = $t = $x[$k] ^ chr($s[ord($t)]); - //$t = $x[$k] = $x[$k] ^ chr($s[ord($t)]); - } - $t = chr(ord($t) + $j); - } - } - - // Step 5. Output - return substr($x, 0, 16); - } - - /** - * Pure-PHP implementation of SHA256 - * - * See {@link http://en.wikipedia.org/wiki/SHA_hash_functions#SHA-256_.28a_SHA-2_variant.29_pseudocode SHA-256 (a SHA-2 variant) pseudocode - Wikipedia}. - * - * @access private - * @param String $text - */ - function _sha256($m) - { - if (extension_loaded('suhosin')) { - return pack('H*', sha256($m)); - } - - // Initialize variables - $hash = array( - 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19 - ); - // Initialize table of round constants - // (first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311) - static $k = array( - 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, - 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, - 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, - 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, - 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, - 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, - 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, - 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 - ); - - // Pre-processing - $length = strlen($m); - // to round to nearest 56 mod 64, we'll add 64 - (length + (64 - 56)) % 64 - $m.= str_repeat(chr(0), 64 - (($length + 8) & 0x3F)); - $m[$length] = chr(0x80); - // we don't support hashing strings 512MB long - $m.= pack('N2', 0, $length << 3); - - // Process the message in successive 512-bit chunks - $chunks = str_split($m, 64); - foreach ($chunks as $chunk) { - $w = array(); - for ($i = 0; $i < 16; $i++) { - extract(unpack('Ntemp', $this->_string_shift($chunk, 4))); - $w[] = $temp; - } - - // Extend the sixteen 32-bit words into sixty-four 32-bit words - for ($i = 16; $i < 64; $i++) { - $s0 = $this->_rightRotate($w[$i - 15], 7) ^ - $this->_rightRotate($w[$i - 15], 18) ^ - $this->_rightShift( $w[$i - 15], 3); - $s1 = $this->_rightRotate($w[$i - 2], 17) ^ - $this->_rightRotate($w[$i - 2], 19) ^ - $this->_rightShift( $w[$i - 2], 10); - $w[$i] = $this->_add($w[$i - 16], $s0, $w[$i - 7], $s1); - - } - - // Initialize hash value for this chunk - list($a, $b, $c, $d, $e, $f, $g, $h) = $hash; - - // Main loop - for ($i = 0; $i < 64; $i++) { - $s0 = $this->_rightRotate($a, 2) ^ - $this->_rightRotate($a, 13) ^ - $this->_rightRotate($a, 22); - $maj = ($a & $b) ^ - ($a & $c) ^ - ($b & $c); - $t2 = $this->_add($s0, $maj); - - $s1 = $this->_rightRotate($e, 6) ^ - $this->_rightRotate($e, 11) ^ - $this->_rightRotate($e, 25); - $ch = ($e & $f) ^ - ($this->_not($e) & $g); - $t1 = $this->_add($h, $s1, $ch, $k[$i], $w[$i]); - - $h = $g; - $g = $f; - $f = $e; - $e = $this->_add($d, $t1); - $d = $c; - $c = $b; - $b = $a; - $a = $this->_add($t1, $t2); - } - - // Add this chunk's hash to result so far - $hash = array( - $this->_add($hash[0], $a), - $this->_add($hash[1], $b), - $this->_add($hash[2], $c), - $this->_add($hash[3], $d), - $this->_add($hash[4], $e), - $this->_add($hash[5], $f), - $this->_add($hash[6], $g), - $this->_add($hash[7], $h) - ); - } - - // Produce the final hash value (big-endian) - return pack('N8', $hash[0], $hash[1], $hash[2], $hash[3], $hash[4], $hash[5], $hash[6], $hash[7]); - } - - /** - * Pure-PHP implementation of SHA384 and SHA512 - * - * @access private - * @param String $text - */ - function _sha512($m) - { - if (!class_exists('Math_BigInteger')) { - require_once('Math/BigInteger.php'); - } - - static $init384, $init512, $k; - - if (!isset($k)) { - // Initialize variables - $init384 = array( // initial values for SHA384 - 'cbbb9d5dc1059ed8', '629a292a367cd507', '9159015a3070dd17', '152fecd8f70e5939', - '67332667ffc00b31', '8eb44a8768581511', 'db0c2e0d64f98fa7', '47b5481dbefa4fa4' - ); - $init512 = array( // initial values for SHA512 - '6a09e667f3bcc908', 'bb67ae8584caa73b', '3c6ef372fe94f82b', 'a54ff53a5f1d36f1', - '510e527fade682d1', '9b05688c2b3e6c1f', '1f83d9abfb41bd6b', '5be0cd19137e2179' - ); - - for ($i = 0; $i < 8; $i++) { - $init384[$i] = new Math_BigInteger($init384[$i], 16); - $init384[$i]->setPrecision(64); - $init512[$i] = new Math_BigInteger($init512[$i], 16); - $init512[$i]->setPrecision(64); - } - - // Initialize table of round constants - // (first 64 bits of the fractional parts of the cube roots of the first 80 primes 2..409) - $k = array( - '428a2f98d728ae22', '7137449123ef65cd', 'b5c0fbcfec4d3b2f', 'e9b5dba58189dbbc', - '3956c25bf348b538', '59f111f1b605d019', '923f82a4af194f9b', 'ab1c5ed5da6d8118', - 'd807aa98a3030242', '12835b0145706fbe', '243185be4ee4b28c', '550c7dc3d5ffb4e2', - '72be5d74f27b896f', '80deb1fe3b1696b1', '9bdc06a725c71235', 'c19bf174cf692694', - 'e49b69c19ef14ad2', 'efbe4786384f25e3', '0fc19dc68b8cd5b5', '240ca1cc77ac9c65', - '2de92c6f592b0275', '4a7484aa6ea6e483', '5cb0a9dcbd41fbd4', '76f988da831153b5', - '983e5152ee66dfab', 'a831c66d2db43210', 'b00327c898fb213f', 'bf597fc7beef0ee4', - 'c6e00bf33da88fc2', 'd5a79147930aa725', '06ca6351e003826f', '142929670a0e6e70', - '27b70a8546d22ffc', '2e1b21385c26c926', '4d2c6dfc5ac42aed', '53380d139d95b3df', - '650a73548baf63de', '766a0abb3c77b2a8', '81c2c92e47edaee6', '92722c851482353b', - 'a2bfe8a14cf10364', 'a81a664bbc423001', 'c24b8b70d0f89791', 'c76c51a30654be30', - 'd192e819d6ef5218', 'd69906245565a910', 'f40e35855771202a', '106aa07032bbd1b8', - '19a4c116b8d2d0c8', '1e376c085141ab53', '2748774cdf8eeb99', '34b0bcb5e19b48a8', - '391c0cb3c5c95a63', '4ed8aa4ae3418acb', '5b9cca4f7763e373', '682e6ff3d6b2b8a3', - '748f82ee5defb2fc', '78a5636f43172f60', '84c87814a1f0ab72', '8cc702081a6439ec', - '90befffa23631e28', 'a4506cebde82bde9', 'bef9a3f7b2c67915', 'c67178f2e372532b', - 'ca273eceea26619c', 'd186b8c721c0c207', 'eada7dd6cde0eb1e', 'f57d4f7fee6ed178', - '06f067aa72176fba', '0a637dc5a2c898a6', '113f9804bef90dae', '1b710b35131c471b', - '28db77f523047d84', '32caab7b40c72493', '3c9ebe0a15c9bebc', '431d67c49c100d4c', - '4cc5d4becb3e42b6', '597f299cfc657e2a', '5fcb6fab3ad6faec', '6c44198c4a475817' - ); - - for ($i = 0; $i < 80; $i++) { - $k[$i] = new Math_BigInteger($k[$i], 16); - } - } - - $hash = $this->l == 48 ? $init384 : $init512; - - // Pre-processing - $length = strlen($m); - // to round to nearest 112 mod 128, we'll add 128 - (length + (128 - 112)) % 128 - $m.= str_repeat(chr(0), 128 - (($length + 16) & 0x7F)); - $m[$length] = chr(0x80); - // we don't support hashing strings 512MB long - $m.= pack('N4', 0, 0, 0, $length << 3); - - // Process the message in successive 1024-bit chunks - $chunks = str_split($m, 128); - foreach ($chunks as $chunk) { - $w = array(); - for ($i = 0; $i < 16; $i++) { - $temp = new Math_BigInteger($this->_string_shift($chunk, 8), 256); - $temp->setPrecision(64); - $w[] = $temp; - } - - // Extend the sixteen 32-bit words into eighty 32-bit words - for ($i = 16; $i < 80; $i++) { - $temp = array( - $w[$i - 15]->bitwise_rightRotate(1), - $w[$i - 15]->bitwise_rightRotate(8), - $w[$i - 15]->bitwise_rightShift(7) - ); - $s0 = $temp[0]->bitwise_xor($temp[1]); - $s0 = $s0->bitwise_xor($temp[2]); - $temp = array( - $w[$i - 2]->bitwise_rightRotate(19), - $w[$i - 2]->bitwise_rightRotate(61), - $w[$i - 2]->bitwise_rightShift(6) - ); - $s1 = $temp[0]->bitwise_xor($temp[1]); - $s1 = $s1->bitwise_xor($temp[2]); - $w[$i] = $w[$i - 16]->copy(); - $w[$i] = $w[$i]->add($s0); - $w[$i] = $w[$i]->add($w[$i - 7]); - $w[$i] = $w[$i]->add($s1); - } - - // Initialize hash value for this chunk - $a = $hash[0]->copy(); - $b = $hash[1]->copy(); - $c = $hash[2]->copy(); - $d = $hash[3]->copy(); - $e = $hash[4]->copy(); - $f = $hash[5]->copy(); - $g = $hash[6]->copy(); - $h = $hash[7]->copy(); - - // Main loop - for ($i = 0; $i < 80; $i++) { - $temp = array( - $a->bitwise_rightRotate(28), - $a->bitwise_rightRotate(34), - $a->bitwise_rightRotate(39) - ); - $s0 = $temp[0]->bitwise_xor($temp[1]); - $s0 = $s0->bitwise_xor($temp[2]); - $temp = array( - $a->bitwise_and($b), - $a->bitwise_and($c), - $b->bitwise_and($c) - ); - $maj = $temp[0]->bitwise_xor($temp[1]); - $maj = $maj->bitwise_xor($temp[2]); - $t2 = $s0->add($maj); - - $temp = array( - $e->bitwise_rightRotate(14), - $e->bitwise_rightRotate(18), - $e->bitwise_rightRotate(41) - ); - $s1 = $temp[0]->bitwise_xor($temp[1]); - $s1 = $s1->bitwise_xor($temp[2]); - $temp = array( - $e->bitwise_and($f), - $g->bitwise_and($e->bitwise_not()) - ); - $ch = $temp[0]->bitwise_xor($temp[1]); - $t1 = $h->add($s1); - $t1 = $t1->add($ch); - $t1 = $t1->add($k[$i]); - $t1 = $t1->add($w[$i]); - - $h = $g->copy(); - $g = $f->copy(); - $f = $e->copy(); - $e = $d->add($t1); - $d = $c->copy(); - $c = $b->copy(); - $b = $a->copy(); - $a = $t1->add($t2); - } - - // Add this chunk's hash to result so far - $hash = array( - $hash[0]->add($a), - $hash[1]->add($b), - $hash[2]->add($c), - $hash[3]->add($d), - $hash[4]->add($e), - $hash[5]->add($f), - $hash[6]->add($g), - $hash[7]->add($h) - ); - } - - // Produce the final hash value (big-endian) - // (Crypt_Hash::hash() trims the output for hashes but not for HMACs. as such, we trim the output here) - $temp = $hash[0]->toBytes() . $hash[1]->toBytes() . $hash[2]->toBytes() . $hash[3]->toBytes() . - $hash[4]->toBytes() . $hash[5]->toBytes(); - if ($this->l != 48) { - $temp.= $hash[6]->toBytes() . $hash[7]->toBytes(); - } - - return $temp; - } - - /** - * Right Rotate - * - * @access private - * @param Integer $int - * @param Integer $amt - * @see _sha256() - * @return Integer - */ - function _rightRotate($int, $amt) - { - $invamt = 32 - $amt; - $mask = (1 << $invamt) - 1; - return (($int << $invamt) & 0xFFFFFFFF) | (($int >> $amt) & $mask); - } - - /** - * Right Shift - * - * @access private - * @param Integer $int - * @param Integer $amt - * @see _sha256() - * @return Integer - */ - function _rightShift($int, $amt) - { - $mask = (1 << (32 - $amt)) - 1; - return ($int >> $amt) & $mask; - } - - /** - * Not - * - * @access private - * @param Integer $int - * @see _sha256() - * @return Integer - */ - function _not($int) - { - return ~$int & 0xFFFFFFFF; - } - - /** - * Add - * - * _sha256() adds multiple unsigned 32-bit integers. Since PHP doesn't support unsigned integers and since the - * possibility of overflow exists, care has to be taken. Math_BigInteger() could be used but this should be faster. - * - * @param String $string - * @param optional Integer $index - * @return String - * @see _sha256() - * @access private - */ - function _add() - { - static $mod; - if (!isset($mod)) { - $mod = pow(2, 32); - } - - $result = 0; - $arguments = func_get_args(); - foreach ($arguments as $argument) { - $result+= $argument < 0 ? ($argument & 0x7FFFFFFF) + 0x80000000 : $argument; - } - - return fmod($result, $mod); - } - - /** - * String Shift - * - * Inspired by array_shift - * - * @param String $string - * @param optional Integer $index - * @return String - * @access private - */ - function _string_shift(&$string, $index = 1) - { - $substr = substr($string, 0, $index); - $string = substr($string, $index); - return $substr; - } + + * setKey('abcdefg'); + * + * echo base64_encode($hash->hash('abcdefg')); + * ?> + * + * + * LICENSE: This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * @category Crypt + * @package Crypt_Hash + * @author Jim Wigginton + * @copyright MMVII Jim Wigginton + * @license http://www.gnu.org/licenses/lgpl.txt + * @version $Id: Hash.php,v 1.6 2009/11/23 23:37:07 terrafrost Exp $ + * @link http://phpseclib.sourceforge.net + */ + +/**#@+ + * @access private + * @see Crypt_Hash::Crypt_Hash() + */ +/** + * Toggles the internal implementation + */ +define('CRYPT_HASH_MODE_INTERNAL', 1); +/** + * Toggles the mhash() implementation, which has been deprecated on PHP 5.3.0+. + */ +define('CRYPT_HASH_MODE_MHASH', 2); +/** + * Toggles the hash() implementation, which works on PHP 5.1.2+. + */ +define('CRYPT_HASH_MODE_HASH', 3); +/**#@-*/ + +/** + * Pure-PHP implementations of keyed-hash message authentication codes (HMACs) and various cryptographic hashing functions. + * + * @author Jim Wigginton + * @version 0.1.0 + * @access public + * @package Crypt_Hash + */ +class Crypt_Hash { + /** + * Byte-length of compression blocks / key (Internal HMAC) + * + * @see Crypt_Hash::setAlgorithm() + * @var Integer + * @access private + */ + var $b; + + /** + * Byte-length of hash output (Internal HMAC) + * + * @see Crypt_Hash::setHash() + * @var Integer + * @access private + */ + var $l = false; + + /** + * Hash Algorithm + * + * @see Crypt_Hash::setHash() + * @var String + * @access private + */ + var $hash; + + /** + * Key + * + * @see Crypt_Hash::setKey() + * @var String + * @access private + */ + var $key = ''; + + /** + * Outer XOR (Internal HMAC) + * + * @see Crypt_Hash::setKey() + * @var String + * @access private + */ + var $opad; + + /** + * Inner XOR (Internal HMAC) + * + * @see Crypt_Hash::setKey() + * @var String + * @access private + */ + var $ipad; + + /** + * Default Constructor. + * + * @param optional String $hash + * @return Crypt_Hash + * @access public + */ + function Crypt_Hash($hash = 'sha1') + { + if ( !defined('CRYPT_HASH_MODE') ) { + switch (true) { + case extension_loaded('hash'): + define('CRYPT_HASH_MODE', CRYPT_HASH_MODE_HASH); + break; + case extension_loaded('mhash'): + define('CRYPT_HASH_MODE', CRYPT_HASH_MODE_MHASH); + break; + default: + define('CRYPT_HASH_MODE', CRYPT_HASH_MODE_INTERNAL); + } + } + + $this->setHash($hash); + } + + /** + * Sets the key for HMACs + * + * Keys can be of any length. + * + * @access public + * @param String $key + */ + function setKey($key) + { + $this->key = $key; + } + + /** + * Sets the hash function. + * + * @access public + * @param String $hash + */ + function setHash($hash) + { + switch ($hash) { + case 'md5-96': + case 'sha1-96': + $this->l = 12; // 96 / 8 = 12 + break; + case 'md2': + case 'md5': + $this->l = 16; + break; + case 'sha1': + $this->l = 20; + break; + case 'sha256': + $this->l = 32; + break; + case 'sha384': + $this->l = 48; + break; + case 'sha512': + $this->l = 64; + } + + switch ($hash) { + case 'md2': + $mode = CRYPT_HASH_MODE_INTERNAL; + break; + case 'sha384': + case 'sha512': + $mode = CRYPT_HASH_MODE == CRYPT_HASH_MODE_MHASH ? CRYPT_HASH_MODE_INTERNAL : CRYPT_HASH_MODE; + break; + default: + $mode = CRYPT_HASH_MODE; + } + + switch ( $mode ) { + case CRYPT_HASH_MODE_MHASH: + switch ($hash) { + case 'md5': + case 'md5-96': + $this->hash = MHASH_MD5; + break; + case 'sha256': + $this->hash = MHASH_SHA256; + break; + case 'sha1': + case 'sha1-96': + default: + $this->hash = MHASH_SHA1; + } + return; + case CRYPT_HASH_MODE_HASH: + switch ($hash) { + case 'md5': + case 'md5-96': + $this->hash = 'md5'; + return; + case 'sha256': + case 'sha384': + case 'sha512': + $this->hash = $hash; + return; + case 'sha1': + case 'sha1-96': + default: + $this->hash = 'sha1'; + } + return; + } + + switch ($hash) { + case 'md2': + $this->b = 16; + $this->hash = array($this, '_md2'); + break; + case 'md5': + case 'md5-96': + $this->b = 64; + $this->hash = array($this, '_md5'); + break; + case 'sha256': + $this->b = 64; + $this->hash = array($this, '_sha256'); + break; + case 'sha384': + case 'sha512': + $this->b = 128; + $this->hash = array($this, '_sha512'); + break; + case 'sha1': + case 'sha1-96': + default: + $this->b = 64; + $this->hash = array($this, '_sha1'); + } + + $this->ipad = str_repeat(chr(0x36), $this->b); + $this->opad = str_repeat(chr(0x5C), $this->b); + } + + /** + * Compute the HMAC. + * + * @access public + * @param String $text + * @return String + */ + function hash($text) + { + $mode = is_array($this->hash) ? CRYPT_HASH_MODE_INTERNAL : CRYPT_HASH_MODE; + + if (!empty($this->key)) { + switch ( $mode ) { + case CRYPT_HASH_MODE_MHASH: + $output = mhash($this->hash, $text, $this->key); + break; + case CRYPT_HASH_MODE_HASH: + $output = hash_hmac($this->hash, $text, $this->key, true); + break; + case CRYPT_HASH_MODE_INTERNAL: + /* "Applications that use keys longer than B bytes will first hash the key using H and then use the + resultant L byte string as the actual key to HMAC." + + -- http://tools.ietf.org/html/rfc2104#section-2 */ + $key = strlen($this->key) > $this->b ? call_user_func($this->$hash, $this->key) : $this->key; + + $key = str_pad($key, $this->b, chr(0)); // step 1 + $temp = $this->ipad ^ $key; // step 2 + $temp .= $text; // step 3 + $temp = call_user_func($this->hash, $temp); // step 4 + $output = $this->opad ^ $key; // step 5 + $output.= $temp; // step 6 + $output = call_user_func($this->hash, $output); // step 7 + } + } else { + switch ( $mode ) { + case CRYPT_HASH_MODE_MHASH: + $output = mhash($this->hash, $text); + break; + case CRYPT_HASH_MODE_HASH: + $output = hash($this->hash, $text, true); + break; + case CRYPT_HASH_MODE_INTERNAL: + $output = call_user_func($this->hash, $text); + } + } + + return substr($output, 0, $this->l); + } + + /** + * Returns the hash length (in bytes) + * + * @access private + * @return Integer + */ + function getLength() + { + return $this->l; + } + + /** + * Wrapper for MD5 + * + * @access private + * @param String $text + */ + function _md5($m) + { + return pack('H*', md5($m)); + } + + /** + * Wrapper for SHA1 + * + * @access private + * @param String $text + */ + function _sha1($m) + { + return pack('H*', sha1($m)); + } + + /** + * Pure-PHP implementation of MD2 + * + * See {@link http://tools.ietf.org/html/rfc1319 RFC1319}. + * + * @access private + * @param String $text + */ + function _md2($m) + { + static $s = array( + 41, 46, 67, 201, 162, 216, 124, 1, 61, 54, 84, 161, 236, 240, 6, + 19, 98, 167, 5, 243, 192, 199, 115, 140, 152, 147, 43, 217, 188, + 76, 130, 202, 30, 155, 87, 60, 253, 212, 224, 22, 103, 66, 111, 24, + 138, 23, 229, 18, 190, 78, 196, 214, 218, 158, 222, 73, 160, 251, + 245, 142, 187, 47, 238, 122, 169, 104, 121, 145, 21, 178, 7, 63, + 148, 194, 16, 137, 11, 34, 95, 33, 128, 127, 93, 154, 90, 144, 50, + 39, 53, 62, 204, 231, 191, 247, 151, 3, 255, 25, 48, 179, 72, 165, + 181, 209, 215, 94, 146, 42, 172, 86, 170, 198, 79, 184, 56, 210, + 150, 164, 125, 182, 118, 252, 107, 226, 156, 116, 4, 241, 69, 157, + 112, 89, 100, 113, 135, 32, 134, 91, 207, 101, 230, 45, 168, 2, 27, + 96, 37, 173, 174, 176, 185, 246, 28, 70, 97, 105, 52, 64, 126, 15, + 85, 71, 163, 35, 221, 81, 175, 58, 195, 92, 249, 206, 186, 197, + 234, 38, 44, 83, 13, 110, 133, 40, 132, 9, 211, 223, 205, 244, 65, + 129, 77, 82, 106, 220, 55, 200, 108, 193, 171, 250, 36, 225, 123, + 8, 12, 189, 177, 74, 120, 136, 149, 139, 227, 99, 232, 109, 233, + 203, 213, 254, 59, 0, 29, 57, 242, 239, 183, 14, 102, 88, 208, 228, + 166, 119, 114, 248, 235, 117, 75, 10, 49, 68, 80, 180, 143, 237, + 31, 26, 219, 153, 141, 51, 159, 17, 131, 20 + ); + + // Step 1. Append Padding Bytes + $pad = 16 - (strlen($m) & 0xF); + $m.= str_repeat(chr($pad), $pad); + + $length = strlen($m); + + // Step 2. Append Checksum + $c = str_repeat(chr(0), 16); + $l = chr(0); + for ($i = 0; $i < $length; $i+= 16) { + for ($j = 0; $j < 16; $j++) { + $c[$j] = chr($s[ord($m[$i + $j] ^ $l)]); + $l = $c[$j]; + } + } + $m.= $c; + + $length+= 16; + + // Step 3. Initialize MD Buffer + $x = str_repeat(chr(0), 48); + + // Step 4. Process Message in 16-Byte Blocks + for ($i = 0; $i < $length; $i+= 16) { + for ($j = 0; $j < 16; $j++) { + $x[$j + 16] = $m[$i + $j]; + $x[$j + 32] = $x[$j + 16] ^ $x[$j]; + } + $t = chr(0); + for ($j = 0; $j < 18; $j++) { + for ($k = 0; $k < 48; $k++) { + $x[$k] = $t = $x[$k] ^ chr($s[ord($t)]); + //$t = $x[$k] = $x[$k] ^ chr($s[ord($t)]); + } + $t = chr(ord($t) + $j); + } + } + + // Step 5. Output + return substr($x, 0, 16); + } + + /** + * Pure-PHP implementation of SHA256 + * + * See {@link http://en.wikipedia.org/wiki/SHA_hash_functions#SHA-256_.28a_SHA-2_variant.29_pseudocode SHA-256 (a SHA-2 variant) pseudocode - Wikipedia}. + * + * @access private + * @param String $text + */ + function _sha256($m) + { + if (extension_loaded('suhosin')) { + return pack('H*', sha256($m)); + } + + // Initialize variables + $hash = array( + 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19 + ); + // Initialize table of round constants + // (first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311) + static $k = array( + 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, + 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, + 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, + 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, + 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, + 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, + 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 + ); + + // Pre-processing + $length = strlen($m); + // to round to nearest 56 mod 64, we'll add 64 - (length + (64 - 56)) % 64 + $m.= str_repeat(chr(0), 64 - (($length + 8) & 0x3F)); + $m[$length] = chr(0x80); + // we don't support hashing strings 512MB long + $m.= pack('N2', 0, $length << 3); + + // Process the message in successive 512-bit chunks + $chunks = str_split($m, 64); + foreach ($chunks as $chunk) { + $w = array(); + for ($i = 0; $i < 16; $i++) { + extract(unpack('Ntemp', $this->_string_shift($chunk, 4))); + $w[] = $temp; + } + + // Extend the sixteen 32-bit words into sixty-four 32-bit words + for ($i = 16; $i < 64; $i++) { + $s0 = $this->_rightRotate($w[$i - 15], 7) ^ + $this->_rightRotate($w[$i - 15], 18) ^ + $this->_rightShift( $w[$i - 15], 3); + $s1 = $this->_rightRotate($w[$i - 2], 17) ^ + $this->_rightRotate($w[$i - 2], 19) ^ + $this->_rightShift( $w[$i - 2], 10); + $w[$i] = $this->_add($w[$i - 16], $s0, $w[$i - 7], $s1); + + } + + // Initialize hash value for this chunk + list($a, $b, $c, $d, $e, $f, $g, $h) = $hash; + + // Main loop + for ($i = 0; $i < 64; $i++) { + $s0 = $this->_rightRotate($a, 2) ^ + $this->_rightRotate($a, 13) ^ + $this->_rightRotate($a, 22); + $maj = ($a & $b) ^ + ($a & $c) ^ + ($b & $c); + $t2 = $this->_add($s0, $maj); + + $s1 = $this->_rightRotate($e, 6) ^ + $this->_rightRotate($e, 11) ^ + $this->_rightRotate($e, 25); + $ch = ($e & $f) ^ + ($this->_not($e) & $g); + $t1 = $this->_add($h, $s1, $ch, $k[$i], $w[$i]); + + $h = $g; + $g = $f; + $f = $e; + $e = $this->_add($d, $t1); + $d = $c; + $c = $b; + $b = $a; + $a = $this->_add($t1, $t2); + } + + // Add this chunk's hash to result so far + $hash = array( + $this->_add($hash[0], $a), + $this->_add($hash[1], $b), + $this->_add($hash[2], $c), + $this->_add($hash[3], $d), + $this->_add($hash[4], $e), + $this->_add($hash[5], $f), + $this->_add($hash[6], $g), + $this->_add($hash[7], $h) + ); + } + + // Produce the final hash value (big-endian) + return pack('N8', $hash[0], $hash[1], $hash[2], $hash[3], $hash[4], $hash[5], $hash[6], $hash[7]); + } + + /** + * Pure-PHP implementation of SHA384 and SHA512 + * + * @access private + * @param String $text + */ + function _sha512($m) + { + if (!class_exists('Math_BigInteger')) { + require_once('Math/BigInteger.php'); + } + + static $init384, $init512, $k; + + if (!isset($k)) { + // Initialize variables + $init384 = array( // initial values for SHA384 + 'cbbb9d5dc1059ed8', '629a292a367cd507', '9159015a3070dd17', '152fecd8f70e5939', + '67332667ffc00b31', '8eb44a8768581511', 'db0c2e0d64f98fa7', '47b5481dbefa4fa4' + ); + $init512 = array( // initial values for SHA512 + '6a09e667f3bcc908', 'bb67ae8584caa73b', '3c6ef372fe94f82b', 'a54ff53a5f1d36f1', + '510e527fade682d1', '9b05688c2b3e6c1f', '1f83d9abfb41bd6b', '5be0cd19137e2179' + ); + + for ($i = 0; $i < 8; $i++) { + $init384[$i] = new Math_BigInteger($init384[$i], 16); + $init384[$i]->setPrecision(64); + $init512[$i] = new Math_BigInteger($init512[$i], 16); + $init512[$i]->setPrecision(64); + } + + // Initialize table of round constants + // (first 64 bits of the fractional parts of the cube roots of the first 80 primes 2..409) + $k = array( + '428a2f98d728ae22', '7137449123ef65cd', 'b5c0fbcfec4d3b2f', 'e9b5dba58189dbbc', + '3956c25bf348b538', '59f111f1b605d019', '923f82a4af194f9b', 'ab1c5ed5da6d8118', + 'd807aa98a3030242', '12835b0145706fbe', '243185be4ee4b28c', '550c7dc3d5ffb4e2', + '72be5d74f27b896f', '80deb1fe3b1696b1', '9bdc06a725c71235', 'c19bf174cf692694', + 'e49b69c19ef14ad2', 'efbe4786384f25e3', '0fc19dc68b8cd5b5', '240ca1cc77ac9c65', + '2de92c6f592b0275', '4a7484aa6ea6e483', '5cb0a9dcbd41fbd4', '76f988da831153b5', + '983e5152ee66dfab', 'a831c66d2db43210', 'b00327c898fb213f', 'bf597fc7beef0ee4', + 'c6e00bf33da88fc2', 'd5a79147930aa725', '06ca6351e003826f', '142929670a0e6e70', + '27b70a8546d22ffc', '2e1b21385c26c926', '4d2c6dfc5ac42aed', '53380d139d95b3df', + '650a73548baf63de', '766a0abb3c77b2a8', '81c2c92e47edaee6', '92722c851482353b', + 'a2bfe8a14cf10364', 'a81a664bbc423001', 'c24b8b70d0f89791', 'c76c51a30654be30', + 'd192e819d6ef5218', 'd69906245565a910', 'f40e35855771202a', '106aa07032bbd1b8', + '19a4c116b8d2d0c8', '1e376c085141ab53', '2748774cdf8eeb99', '34b0bcb5e19b48a8', + '391c0cb3c5c95a63', '4ed8aa4ae3418acb', '5b9cca4f7763e373', '682e6ff3d6b2b8a3', + '748f82ee5defb2fc', '78a5636f43172f60', '84c87814a1f0ab72', '8cc702081a6439ec', + '90befffa23631e28', 'a4506cebde82bde9', 'bef9a3f7b2c67915', 'c67178f2e372532b', + 'ca273eceea26619c', 'd186b8c721c0c207', 'eada7dd6cde0eb1e', 'f57d4f7fee6ed178', + '06f067aa72176fba', '0a637dc5a2c898a6', '113f9804bef90dae', '1b710b35131c471b', + '28db77f523047d84', '32caab7b40c72493', '3c9ebe0a15c9bebc', '431d67c49c100d4c', + '4cc5d4becb3e42b6', '597f299cfc657e2a', '5fcb6fab3ad6faec', '6c44198c4a475817' + ); + + for ($i = 0; $i < 80; $i++) { + $k[$i] = new Math_BigInteger($k[$i], 16); + } + } + + $hash = $this->l == 48 ? $init384 : $init512; + + // Pre-processing + $length = strlen($m); + // to round to nearest 112 mod 128, we'll add 128 - (length + (128 - 112)) % 128 + $m.= str_repeat(chr(0), 128 - (($length + 16) & 0x7F)); + $m[$length] = chr(0x80); + // we don't support hashing strings 512MB long + $m.= pack('N4', 0, 0, 0, $length << 3); + + // Process the message in successive 1024-bit chunks + $chunks = str_split($m, 128); + foreach ($chunks as $chunk) { + $w = array(); + for ($i = 0; $i < 16; $i++) { + $temp = new Math_BigInteger($this->_string_shift($chunk, 8), 256); + $temp->setPrecision(64); + $w[] = $temp; + } + + // Extend the sixteen 32-bit words into eighty 32-bit words + for ($i = 16; $i < 80; $i++) { + $temp = array( + $w[$i - 15]->bitwise_rightRotate(1), + $w[$i - 15]->bitwise_rightRotate(8), + $w[$i - 15]->bitwise_rightShift(7) + ); + $s0 = $temp[0]->bitwise_xor($temp[1]); + $s0 = $s0->bitwise_xor($temp[2]); + $temp = array( + $w[$i - 2]->bitwise_rightRotate(19), + $w[$i - 2]->bitwise_rightRotate(61), + $w[$i - 2]->bitwise_rightShift(6) + ); + $s1 = $temp[0]->bitwise_xor($temp[1]); + $s1 = $s1->bitwise_xor($temp[2]); + $w[$i] = $w[$i - 16]->copy(); + $w[$i] = $w[$i]->add($s0); + $w[$i] = $w[$i]->add($w[$i - 7]); + $w[$i] = $w[$i]->add($s1); + } + + // Initialize hash value for this chunk + $a = $hash[0]->copy(); + $b = $hash[1]->copy(); + $c = $hash[2]->copy(); + $d = $hash[3]->copy(); + $e = $hash[4]->copy(); + $f = $hash[5]->copy(); + $g = $hash[6]->copy(); + $h = $hash[7]->copy(); + + // Main loop + for ($i = 0; $i < 80; $i++) { + $temp = array( + $a->bitwise_rightRotate(28), + $a->bitwise_rightRotate(34), + $a->bitwise_rightRotate(39) + ); + $s0 = $temp[0]->bitwise_xor($temp[1]); + $s0 = $s0->bitwise_xor($temp[2]); + $temp = array( + $a->bitwise_and($b), + $a->bitwise_and($c), + $b->bitwise_and($c) + ); + $maj = $temp[0]->bitwise_xor($temp[1]); + $maj = $maj->bitwise_xor($temp[2]); + $t2 = $s0->add($maj); + + $temp = array( + $e->bitwise_rightRotate(14), + $e->bitwise_rightRotate(18), + $e->bitwise_rightRotate(41) + ); + $s1 = $temp[0]->bitwise_xor($temp[1]); + $s1 = $s1->bitwise_xor($temp[2]); + $temp = array( + $e->bitwise_and($f), + $g->bitwise_and($e->bitwise_not()) + ); + $ch = $temp[0]->bitwise_xor($temp[1]); + $t1 = $h->add($s1); + $t1 = $t1->add($ch); + $t1 = $t1->add($k[$i]); + $t1 = $t1->add($w[$i]); + + $h = $g->copy(); + $g = $f->copy(); + $f = $e->copy(); + $e = $d->add($t1); + $d = $c->copy(); + $c = $b->copy(); + $b = $a->copy(); + $a = $t1->add($t2); + } + + // Add this chunk's hash to result so far + $hash = array( + $hash[0]->add($a), + $hash[1]->add($b), + $hash[2]->add($c), + $hash[3]->add($d), + $hash[4]->add($e), + $hash[5]->add($f), + $hash[6]->add($g), + $hash[7]->add($h) + ); + } + + // Produce the final hash value (big-endian) + // (Crypt_Hash::hash() trims the output for hashes but not for HMACs. as such, we trim the output here) + $temp = $hash[0]->toBytes() . $hash[1]->toBytes() . $hash[2]->toBytes() . $hash[3]->toBytes() . + $hash[4]->toBytes() . $hash[5]->toBytes(); + if ($this->l != 48) { + $temp.= $hash[6]->toBytes() . $hash[7]->toBytes(); + } + + return $temp; + } + + /** + * Right Rotate + * + * @access private + * @param Integer $int + * @param Integer $amt + * @see _sha256() + * @return Integer + */ + function _rightRotate($int, $amt) + { + $invamt = 32 - $amt; + $mask = (1 << $invamt) - 1; + return (($int << $invamt) & 0xFFFFFFFF) | (($int >> $amt) & $mask); + } + + /** + * Right Shift + * + * @access private + * @param Integer $int + * @param Integer $amt + * @see _sha256() + * @return Integer + */ + function _rightShift($int, $amt) + { + $mask = (1 << (32 - $amt)) - 1; + return ($int >> $amt) & $mask; + } + + /** + * Not + * + * @access private + * @param Integer $int + * @see _sha256() + * @return Integer + */ + function _not($int) + { + return ~$int & 0xFFFFFFFF; + } + + /** + * Add + * + * _sha256() adds multiple unsigned 32-bit integers. Since PHP doesn't support unsigned integers and since the + * possibility of overflow exists, care has to be taken. Math_BigInteger() could be used but this should be faster. + * + * @param String $string + * @param optional Integer $index + * @return String + * @see _sha256() + * @access private + */ + function _add() + { + static $mod; + if (!isset($mod)) { + $mod = pow(2, 32); + } + + $result = 0; + $arguments = func_get_args(); + foreach ($arguments as $argument) { + $result+= $argument < 0 ? ($argument & 0x7FFFFFFF) + 0x80000000 : $argument; + } + + return fmod($result, $mod); + } + + /** + * String Shift + * + * Inspired by array_shift + * + * @param String $string + * @param optional Integer $index + * @return String + * @access private + */ + function _string_shift(&$string, $index = 1) + { + $substr = substr($string, 0, $index); + $string = substr($string, $index); + return $substr; + } } \ No newline at end of file diff --git a/plugins/OStatus/extlib/Crypt/RC4.php b/plugins/OStatus/extlib/Crypt/RC4.php index 6f82b2413..1e4d8b489 100644 --- a/plugins/OStatus/extlib/Crypt/RC4.php +++ b/plugins/OStatus/extlib/Crypt/RC4.php @@ -1,493 +1,493 @@ - - * setKey('abcdefgh'); - * - * $size = 10 * 1024; - * $plaintext = ''; - * for ($i = 0; $i < $size; $i++) { - * $plaintext.= 'a'; - * } - * - * echo $rc4->decrypt($rc4->encrypt($plaintext)); - * ?> - * - * - * LICENSE: This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - * - * @category Crypt - * @package Crypt_RC4 - * @author Jim Wigginton - * @copyright MMVII Jim Wigginton - * @license http://www.gnu.org/licenses/lgpl.txt - * @version $Id: RC4.php,v 1.8 2009/06/09 04:00:38 terrafrost Exp $ - * @link http://phpseclib.sourceforge.net - */ - -/**#@+ - * @access private - * @see Crypt_RC4::Crypt_RC4() - */ -/** - * Toggles the internal implementation - */ -define('CRYPT_RC4_MODE_INTERNAL', 1); -/** - * Toggles the mcrypt implementation - */ -define('CRYPT_RC4_MODE_MCRYPT', 2); -/**#@-*/ - -/**#@+ - * @access private - * @see Crypt_RC4::_crypt() - */ -define('CRYPT_RC4_ENCRYPT', 0); -define('CRYPT_RC4_DECRYPT', 1); -/**#@-*/ - -/** - * Pure-PHP implementation of RC4. - * - * @author Jim Wigginton - * @version 0.1.0 - * @access public - * @package Crypt_RC4 - */ -class Crypt_RC4 { - /** - * The Key - * - * @see Crypt_RC4::setKey() - * @var String - * @access private - */ - var $key = "\0"; - - /** - * The Key Stream for encryption - * - * If CRYPT_RC4_MODE == CRYPT_RC4_MODE_MCRYPT, this will be equal to the mcrypt object - * - * @see Crypt_RC4::setKey() - * @var Array - * @access private - */ - var $encryptStream = false; - - /** - * The Key Stream for decryption - * - * If CRYPT_RC4_MODE == CRYPT_RC4_MODE_MCRYPT, this will be equal to the mcrypt object - * - * @see Crypt_RC4::setKey() - * @var Array - * @access private - */ - var $decryptStream = false; - - /** - * The $i and $j indexes for encryption - * - * @see Crypt_RC4::_crypt() - * @var Integer - * @access private - */ - var $encryptIndex = 0; - - /** - * The $i and $j indexes for decryption - * - * @see Crypt_RC4::_crypt() - * @var Integer - * @access private - */ - var $decryptIndex = 0; - - /** - * MCrypt parameters - * - * @see Crypt_RC4::setMCrypt() - * @var Array - * @access private - */ - var $mcrypt = array('', ''); - - /** - * The Encryption Algorithm - * - * Only used if CRYPT_RC4_MODE == CRYPT_RC4_MODE_MCRYPT. Only possible values are MCRYPT_RC4 or MCRYPT_ARCFOUR. - * - * @see Crypt_RC4::Crypt_RC4() - * @var Integer - * @access private - */ - var $mode; - - /** - * Default Constructor. - * - * Determines whether or not the mcrypt extension should be used. - * - * @param optional Integer $mode - * @return Crypt_RC4 - * @access public - */ - function Crypt_RC4() - { - if ( !defined('CRYPT_RC4_MODE') ) { - switch (true) { - case extension_loaded('mcrypt') && (defined('MCRYPT_ARCFOUR') || defined('MCRYPT_RC4')): - // i'd check to see if rc4 was supported, by doing in_array('arcfour', mcrypt_list_algorithms('')), - // but since that can be changed after the object has been created, there doesn't seem to be - // a lot of point... - define('CRYPT_RC4_MODE', CRYPT_RC4_MODE_MCRYPT); - break; - default: - define('CRYPT_RC4_MODE', CRYPT_RC4_MODE_INTERNAL); - } - } - - switch ( CRYPT_RC4_MODE ) { - case CRYPT_RC4_MODE_MCRYPT: - switch (true) { - case defined('MCRYPT_ARCFOUR'): - $this->mode = MCRYPT_ARCFOUR; - break; - case defined('MCRYPT_RC4'); - $this->mode = MCRYPT_RC4; - } - } - } - - /** - * Sets the key. - * - * Keys can be between 1 and 256 bytes long. If they are longer then 256 bytes, the first 256 bytes will - * be used. If no key is explicitly set, it'll be assumed to be a single null byte. - * - * @access public - * @param String $key - */ - function setKey($key) - { - $this->key = $key; - - if ( CRYPT_RC4_MODE == CRYPT_RC4_MODE_MCRYPT ) { - return; - } - - $keyLength = strlen($key); - $keyStream = array(); - for ($i = 0; $i < 256; $i++) { - $keyStream[$i] = $i; - } - $j = 0; - for ($i = 0; $i < 256; $i++) { - $j = ($j + $keyStream[$i] + ord($key[$i % $keyLength])) & 255; - $temp = $keyStream[$i]; - $keyStream[$i] = $keyStream[$j]; - $keyStream[$j] = $temp; - } - - $this->encryptIndex = $this->decryptIndex = array(0, 0); - $this->encryptStream = $this->decryptStream = $keyStream; - } - - /** - * Dummy function. - * - * Some protocols, such as WEP, prepend an "initialization vector" to the key, effectively creating a new key [1]. - * If you need to use an initialization vector in this manner, feel free to prepend it to the key, yourself, before - * calling setKey(). - * - * [1] WEP's initialization vectors (IV's) are used in a somewhat insecure way. Since, in that protocol, - * the IV's are relatively easy to predict, an attack described by - * {@link http://www.drizzle.com/~aboba/IEEE/rc4_ksaproc.pdf Scott Fluhrer, Itsik Mantin, and Adi Shamir} - * can be used to quickly guess at the rest of the key. The following links elaborate: - * - * {@link http://www.rsa.com/rsalabs/node.asp?id=2009 http://www.rsa.com/rsalabs/node.asp?id=2009} - * {@link http://en.wikipedia.org/wiki/Related_key_attack http://en.wikipedia.org/wiki/Related_key_attack} - * - * @param String $iv - * @see Crypt_RC4::setKey() - * @access public - */ - function setIV($iv) - { - } - - /** - * Sets MCrypt parameters. (optional) - * - * If MCrypt is being used, empty strings will be used, unless otherwise specified. - * - * @link http://php.net/function.mcrypt-module-open#function.mcrypt-module-open - * @access public - * @param optional Integer $algorithm_directory - * @param optional Integer $mode_directory - */ - function setMCrypt($algorithm_directory = '', $mode_directory = '') - { - if ( CRYPT_RC4_MODE == CRYPT_RC4_MODE_MCRYPT ) { - $this->mcrypt = array($algorithm_directory, $mode_directory); - $this->_closeMCrypt(); - } - } - - /** - * Encrypts a message. - * - * @see Crypt_RC4::_crypt() - * @access public - * @param String $plaintext - */ - function encrypt($plaintext) - { - return $this->_crypt($plaintext, CRYPT_RC4_ENCRYPT); - } - - /** - * Decrypts a message. - * - * $this->decrypt($this->encrypt($plaintext)) == $this->encrypt($this->encrypt($plaintext)). - * Atleast if the continuous buffer is disabled. - * - * @see Crypt_RC4::_crypt() - * @access public - * @param String $ciphertext - */ - function decrypt($ciphertext) - { - return $this->_crypt($ciphertext, CRYPT_RC4_DECRYPT); - } - - /** - * Encrypts or decrypts a message. - * - * @see Crypt_RC4::encrypt() - * @see Crypt_RC4::decrypt() - * @access private - * @param String $text - * @param Integer $mode - */ - function _crypt($text, $mode) - { - if ( CRYPT_RC4_MODE == CRYPT_RC4_MODE_MCRYPT ) { - $keyStream = $mode == CRYPT_RC4_ENCRYPT ? 'encryptStream' : 'decryptStream'; - - if ($this->$keyStream === false) { - $this->$keyStream = mcrypt_module_open($this->mode, $this->mcrypt[0], MCRYPT_MODE_STREAM, $this->mcrypt[1]); - mcrypt_generic_init($this->$keyStream, $this->key, ''); - } else if (!$this->continuousBuffer) { - mcrypt_generic_init($this->$keyStream, $this->key, ''); - } - $newText = mcrypt_generic($this->$keyStream, $text); - if (!$this->continuousBuffer) { - mcrypt_generic_deinit($this->$keyStream); - } - - return $newText; - } - - if ($this->encryptStream === false) { - $this->setKey($this->key); - } - - switch ($mode) { - case CRYPT_RC4_ENCRYPT: - $keyStream = $this->encryptStream; - list($i, $j) = $this->encryptIndex; - break; - case CRYPT_RC4_DECRYPT: - $keyStream = $this->decryptStream; - list($i, $j) = $this->decryptIndex; - } - - $newText = ''; - for ($k = 0; $k < strlen($text); $k++) { - $i = ($i + 1) & 255; - $j = ($j + $keyStream[$i]) & 255; - $temp = $keyStream[$i]; - $keyStream[$i] = $keyStream[$j]; - $keyStream[$j] = $temp; - $temp = $keyStream[($keyStream[$i] + $keyStream[$j]) & 255]; - $newText.= chr(ord($text[$k]) ^ $temp); - } - - if ($this->continuousBuffer) { - switch ($mode) { - case CRYPT_RC4_ENCRYPT: - $this->encryptStream = $keyStream; - $this->encryptIndex = array($i, $j); - break; - case CRYPT_RC4_DECRYPT: - $this->decryptStream = $keyStream; - $this->decryptIndex = array($i, $j); - } - } - - return $newText; - } - - /** - * Treat consecutive "packets" as if they are a continuous buffer. - * - * Say you have a 16-byte plaintext $plaintext. Using the default behavior, the two following code snippets - * will yield different outputs: - * - * - * echo $rc4->encrypt(substr($plaintext, 0, 8)); - * echo $rc4->encrypt(substr($plaintext, 8, 8)); - * - * - * echo $rc4->encrypt($plaintext); - * - * - * The solution is to enable the continuous buffer. Although this will resolve the above discrepancy, it creates - * another, as demonstrated with the following: - * - * - * $rc4->encrypt(substr($plaintext, 0, 8)); - * echo $rc4->decrypt($des->encrypt(substr($plaintext, 8, 8))); - * - * - * echo $rc4->decrypt($des->encrypt(substr($plaintext, 8, 8))); - * - * - * With the continuous buffer disabled, these would yield the same output. With it enabled, they yield different - * outputs. The reason is due to the fact that the initialization vector's change after every encryption / - * decryption round when the continuous buffer is enabled. When it's disabled, they remain constant. - * - * Put another way, when the continuous buffer is enabled, the state of the Crypt_DES() object changes after each - * encryption / decryption round, whereas otherwise, it'd remain constant. For this reason, it's recommended that - * continuous buffers not be used. They do offer better security and are, in fact, sometimes required (SSH uses them), - * however, they are also less intuitive and more likely to cause you problems. - * - * @see Crypt_RC4::disableContinuousBuffer() - * @access public - */ - function enableContinuousBuffer() - { - $this->continuousBuffer = true; - } - - /** - * Treat consecutive packets as if they are a discontinuous buffer. - * - * The default behavior. - * - * @see Crypt_RC4::enableContinuousBuffer() - * @access public - */ - function disableContinuousBuffer() - { - if ( CRYPT_RC4_MODE == CRYPT_RC4_MODE_INTERNAL ) { - $this->encryptIndex = $this->decryptIndex = array(0, 0); - $this->setKey($this->key); - } - - $this->continuousBuffer = false; - } - - /** - * Dummy function. - * - * Since RC4 is a stream cipher and not a block cipher, no padding is necessary. The only reason this function is - * included is so that you can switch between a block cipher and a stream cipher transparently. - * - * @see Crypt_RC4::disablePadding() - * @access public - */ - function enablePadding() - { - } - - /** - * Dummy function. - * - * @see Crypt_RC4::enablePadding() - * @access public - */ - function disablePadding() - { - } - - /** - * Class destructor. - * - * Will be called, automatically, if you're using PHP5. If you're using PHP4, call it yourself. Only really - * needs to be called if mcrypt is being used. - * - * @access public - */ - function __destruct() - { - if ( CRYPT_RC4_MODE == CRYPT_RC4_MODE_MCRYPT ) { - $this->_closeMCrypt(); - } - } - - /** - * Properly close the MCrypt objects. - * - * @access prviate - */ - function _closeMCrypt() - { - if ( $this->encryptStream !== false ) { - if ( $this->continuousBuffer ) { - mcrypt_generic_deinit($this->encryptStream); - } - - mcrypt_module_close($this->encryptStream); - - $this->encryptStream = false; - } - - if ( $this->decryptStream !== false ) { - if ( $this->continuousBuffer ) { - mcrypt_generic_deinit($this->decryptStream); - } - - mcrypt_module_close($this->decryptStream); - - $this->decryptStream = false; - } - } + + * setKey('abcdefgh'); + * + * $size = 10 * 1024; + * $plaintext = ''; + * for ($i = 0; $i < $size; $i++) { + * $plaintext.= 'a'; + * } + * + * echo $rc4->decrypt($rc4->encrypt($plaintext)); + * ?> + * + * + * LICENSE: This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * @category Crypt + * @package Crypt_RC4 + * @author Jim Wigginton + * @copyright MMVII Jim Wigginton + * @license http://www.gnu.org/licenses/lgpl.txt + * @version $Id: RC4.php,v 1.8 2009/06/09 04:00:38 terrafrost Exp $ + * @link http://phpseclib.sourceforge.net + */ + +/**#@+ + * @access private + * @see Crypt_RC4::Crypt_RC4() + */ +/** + * Toggles the internal implementation + */ +define('CRYPT_RC4_MODE_INTERNAL', 1); +/** + * Toggles the mcrypt implementation + */ +define('CRYPT_RC4_MODE_MCRYPT', 2); +/**#@-*/ + +/**#@+ + * @access private + * @see Crypt_RC4::_crypt() + */ +define('CRYPT_RC4_ENCRYPT', 0); +define('CRYPT_RC4_DECRYPT', 1); +/**#@-*/ + +/** + * Pure-PHP implementation of RC4. + * + * @author Jim Wigginton + * @version 0.1.0 + * @access public + * @package Crypt_RC4 + */ +class Crypt_RC4 { + /** + * The Key + * + * @see Crypt_RC4::setKey() + * @var String + * @access private + */ + var $key = "\0"; + + /** + * The Key Stream for encryption + * + * If CRYPT_RC4_MODE == CRYPT_RC4_MODE_MCRYPT, this will be equal to the mcrypt object + * + * @see Crypt_RC4::setKey() + * @var Array + * @access private + */ + var $encryptStream = false; + + /** + * The Key Stream for decryption + * + * If CRYPT_RC4_MODE == CRYPT_RC4_MODE_MCRYPT, this will be equal to the mcrypt object + * + * @see Crypt_RC4::setKey() + * @var Array + * @access private + */ + var $decryptStream = false; + + /** + * The $i and $j indexes for encryption + * + * @see Crypt_RC4::_crypt() + * @var Integer + * @access private + */ + var $encryptIndex = 0; + + /** + * The $i and $j indexes for decryption + * + * @see Crypt_RC4::_crypt() + * @var Integer + * @access private + */ + var $decryptIndex = 0; + + /** + * MCrypt parameters + * + * @see Crypt_RC4::setMCrypt() + * @var Array + * @access private + */ + var $mcrypt = array('', ''); + + /** + * The Encryption Algorithm + * + * Only used if CRYPT_RC4_MODE == CRYPT_RC4_MODE_MCRYPT. Only possible values are MCRYPT_RC4 or MCRYPT_ARCFOUR. + * + * @see Crypt_RC4::Crypt_RC4() + * @var Integer + * @access private + */ + var $mode; + + /** + * Default Constructor. + * + * Determines whether or not the mcrypt extension should be used. + * + * @param optional Integer $mode + * @return Crypt_RC4 + * @access public + */ + function Crypt_RC4() + { + if ( !defined('CRYPT_RC4_MODE') ) { + switch (true) { + case extension_loaded('mcrypt') && (defined('MCRYPT_ARCFOUR') || defined('MCRYPT_RC4')): + // i'd check to see if rc4 was supported, by doing in_array('arcfour', mcrypt_list_algorithms('')), + // but since that can be changed after the object has been created, there doesn't seem to be + // a lot of point... + define('CRYPT_RC4_MODE', CRYPT_RC4_MODE_MCRYPT); + break; + default: + define('CRYPT_RC4_MODE', CRYPT_RC4_MODE_INTERNAL); + } + } + + switch ( CRYPT_RC4_MODE ) { + case CRYPT_RC4_MODE_MCRYPT: + switch (true) { + case defined('MCRYPT_ARCFOUR'): + $this->mode = MCRYPT_ARCFOUR; + break; + case defined('MCRYPT_RC4'); + $this->mode = MCRYPT_RC4; + } + } + } + + /** + * Sets the key. + * + * Keys can be between 1 and 256 bytes long. If they are longer then 256 bytes, the first 256 bytes will + * be used. If no key is explicitly set, it'll be assumed to be a single null byte. + * + * @access public + * @param String $key + */ + function setKey($key) + { + $this->key = $key; + + if ( CRYPT_RC4_MODE == CRYPT_RC4_MODE_MCRYPT ) { + return; + } + + $keyLength = strlen($key); + $keyStream = array(); + for ($i = 0; $i < 256; $i++) { + $keyStream[$i] = $i; + } + $j = 0; + for ($i = 0; $i < 256; $i++) { + $j = ($j + $keyStream[$i] + ord($key[$i % $keyLength])) & 255; + $temp = $keyStream[$i]; + $keyStream[$i] = $keyStream[$j]; + $keyStream[$j] = $temp; + } + + $this->encryptIndex = $this->decryptIndex = array(0, 0); + $this->encryptStream = $this->decryptStream = $keyStream; + } + + /** + * Dummy function. + * + * Some protocols, such as WEP, prepend an "initialization vector" to the key, effectively creating a new key [1]. + * If you need to use an initialization vector in this manner, feel free to prepend it to the key, yourself, before + * calling setKey(). + * + * [1] WEP's initialization vectors (IV's) are used in a somewhat insecure way. Since, in that protocol, + * the IV's are relatively easy to predict, an attack described by + * {@link http://www.drizzle.com/~aboba/IEEE/rc4_ksaproc.pdf Scott Fluhrer, Itsik Mantin, and Adi Shamir} + * can be used to quickly guess at the rest of the key. The following links elaborate: + * + * {@link http://www.rsa.com/rsalabs/node.asp?id=2009 http://www.rsa.com/rsalabs/node.asp?id=2009} + * {@link http://en.wikipedia.org/wiki/Related_key_attack http://en.wikipedia.org/wiki/Related_key_attack} + * + * @param String $iv + * @see Crypt_RC4::setKey() + * @access public + */ + function setIV($iv) + { + } + + /** + * Sets MCrypt parameters. (optional) + * + * If MCrypt is being used, empty strings will be used, unless otherwise specified. + * + * @link http://php.net/function.mcrypt-module-open#function.mcrypt-module-open + * @access public + * @param optional Integer $algorithm_directory + * @param optional Integer $mode_directory + */ + function setMCrypt($algorithm_directory = '', $mode_directory = '') + { + if ( CRYPT_RC4_MODE == CRYPT_RC4_MODE_MCRYPT ) { + $this->mcrypt = array($algorithm_directory, $mode_directory); + $this->_closeMCrypt(); + } + } + + /** + * Encrypts a message. + * + * @see Crypt_RC4::_crypt() + * @access public + * @param String $plaintext + */ + function encrypt($plaintext) + { + return $this->_crypt($plaintext, CRYPT_RC4_ENCRYPT); + } + + /** + * Decrypts a message. + * + * $this->decrypt($this->encrypt($plaintext)) == $this->encrypt($this->encrypt($plaintext)). + * Atleast if the continuous buffer is disabled. + * + * @see Crypt_RC4::_crypt() + * @access public + * @param String $ciphertext + */ + function decrypt($ciphertext) + { + return $this->_crypt($ciphertext, CRYPT_RC4_DECRYPT); + } + + /** + * Encrypts or decrypts a message. + * + * @see Crypt_RC4::encrypt() + * @see Crypt_RC4::decrypt() + * @access private + * @param String $text + * @param Integer $mode + */ + function _crypt($text, $mode) + { + if ( CRYPT_RC4_MODE == CRYPT_RC4_MODE_MCRYPT ) { + $keyStream = $mode == CRYPT_RC4_ENCRYPT ? 'encryptStream' : 'decryptStream'; + + if ($this->$keyStream === false) { + $this->$keyStream = mcrypt_module_open($this->mode, $this->mcrypt[0], MCRYPT_MODE_STREAM, $this->mcrypt[1]); + mcrypt_generic_init($this->$keyStream, $this->key, ''); + } else if (!$this->continuousBuffer) { + mcrypt_generic_init($this->$keyStream, $this->key, ''); + } + $newText = mcrypt_generic($this->$keyStream, $text); + if (!$this->continuousBuffer) { + mcrypt_generic_deinit($this->$keyStream); + } + + return $newText; + } + + if ($this->encryptStream === false) { + $this->setKey($this->key); + } + + switch ($mode) { + case CRYPT_RC4_ENCRYPT: + $keyStream = $this->encryptStream; + list($i, $j) = $this->encryptIndex; + break; + case CRYPT_RC4_DECRYPT: + $keyStream = $this->decryptStream; + list($i, $j) = $this->decryptIndex; + } + + $newText = ''; + for ($k = 0; $k < strlen($text); $k++) { + $i = ($i + 1) & 255; + $j = ($j + $keyStream[$i]) & 255; + $temp = $keyStream[$i]; + $keyStream[$i] = $keyStream[$j]; + $keyStream[$j] = $temp; + $temp = $keyStream[($keyStream[$i] + $keyStream[$j]) & 255]; + $newText.= chr(ord($text[$k]) ^ $temp); + } + + if ($this->continuousBuffer) { + switch ($mode) { + case CRYPT_RC4_ENCRYPT: + $this->encryptStream = $keyStream; + $this->encryptIndex = array($i, $j); + break; + case CRYPT_RC4_DECRYPT: + $this->decryptStream = $keyStream; + $this->decryptIndex = array($i, $j); + } + } + + return $newText; + } + + /** + * Treat consecutive "packets" as if they are a continuous buffer. + * + * Say you have a 16-byte plaintext $plaintext. Using the default behavior, the two following code snippets + * will yield different outputs: + * + * + * echo $rc4->encrypt(substr($plaintext, 0, 8)); + * echo $rc4->encrypt(substr($plaintext, 8, 8)); + * + * + * echo $rc4->encrypt($plaintext); + * + * + * The solution is to enable the continuous buffer. Although this will resolve the above discrepancy, it creates + * another, as demonstrated with the following: + * + * + * $rc4->encrypt(substr($plaintext, 0, 8)); + * echo $rc4->decrypt($des->encrypt(substr($plaintext, 8, 8))); + * + * + * echo $rc4->decrypt($des->encrypt(substr($plaintext, 8, 8))); + * + * + * With the continuous buffer disabled, these would yield the same output. With it enabled, they yield different + * outputs. The reason is due to the fact that the initialization vector's change after every encryption / + * decryption round when the continuous buffer is enabled. When it's disabled, they remain constant. + * + * Put another way, when the continuous buffer is enabled, the state of the Crypt_DES() object changes after each + * encryption / decryption round, whereas otherwise, it'd remain constant. For this reason, it's recommended that + * continuous buffers not be used. They do offer better security and are, in fact, sometimes required (SSH uses them), + * however, they are also less intuitive and more likely to cause you problems. + * + * @see Crypt_RC4::disableContinuousBuffer() + * @access public + */ + function enableContinuousBuffer() + { + $this->continuousBuffer = true; + } + + /** + * Treat consecutive packets as if they are a discontinuous buffer. + * + * The default behavior. + * + * @see Crypt_RC4::enableContinuousBuffer() + * @access public + */ + function disableContinuousBuffer() + { + if ( CRYPT_RC4_MODE == CRYPT_RC4_MODE_INTERNAL ) { + $this->encryptIndex = $this->decryptIndex = array(0, 0); + $this->setKey($this->key); + } + + $this->continuousBuffer = false; + } + + /** + * Dummy function. + * + * Since RC4 is a stream cipher and not a block cipher, no padding is necessary. The only reason this function is + * included is so that you can switch between a block cipher and a stream cipher transparently. + * + * @see Crypt_RC4::disablePadding() + * @access public + */ + function enablePadding() + { + } + + /** + * Dummy function. + * + * @see Crypt_RC4::enablePadding() + * @access public + */ + function disablePadding() + { + } + + /** + * Class destructor. + * + * Will be called, automatically, if you're using PHP5. If you're using PHP4, call it yourself. Only really + * needs to be called if mcrypt is being used. + * + * @access public + */ + function __destruct() + { + if ( CRYPT_RC4_MODE == CRYPT_RC4_MODE_MCRYPT ) { + $this->_closeMCrypt(); + } + } + + /** + * Properly close the MCrypt objects. + * + * @access prviate + */ + function _closeMCrypt() + { + if ( $this->encryptStream !== false ) { + if ( $this->continuousBuffer ) { + mcrypt_generic_deinit($this->encryptStream); + } + + mcrypt_module_close($this->encryptStream); + + $this->encryptStream = false; + } + + if ( $this->decryptStream !== false ) { + if ( $this->continuousBuffer ) { + mcrypt_generic_deinit($this->decryptStream); + } + + mcrypt_module_close($this->decryptStream); + + $this->decryptStream = false; + } + } } \ No newline at end of file diff --git a/plugins/OStatus/extlib/Crypt/RSA.php b/plugins/OStatus/extlib/Crypt/RSA.php index b9a4e23eb..f0a75962c 100644 --- a/plugins/OStatus/extlib/Crypt/RSA.php +++ b/plugins/OStatus/extlib/Crypt/RSA.php @@ -1,1929 +1,2108 @@ - - * createKey()); - * - * $plaintext = 'terrafrost'; - * - * $rsa->loadKey($privatekey); - * $ciphertext = $rsa->encrypt($plaintext); - * - * $rsa->loadKey($publickey); - * echo $rsa->decrypt($ciphertext); - * ?> - * - * - * Here's an example of how to create signatures and verify signatures with this library: - * - * createKey()); - * - * $plaintext = 'terrafrost'; - * - * $rsa->loadKey($privatekey); - * $signature = $rsa->sign($plaintext); - * - * $rsa->loadKey($publickey); - * echo $rsa->verify($plaintext, $signature) ? 'verified' : 'unverified'; - * ?> - * - * - * LICENSE: This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - * - * @category Crypt - * @package Crypt_RSA - * @author Jim Wigginton - * @copyright MMIX Jim Wigginton - * @license http://www.gnu.org/licenses/lgpl.txt - * @version $Id: RSA.php,v 1.3 2009/12/04 21:05:32 terrafrost Exp $ - * @link http://phpseclib.sourceforge.net - */ - -/** - * Include Math_BigInteger - */ -require_once('Math/BigInteger.php'); - -/** - * Include Crypt_Random - */ -require_once('Crypt/Random.php'); - -/** - * Include Crypt_Hash - */ -require_once('Crypt/Hash.php'); - -/**#@+ - * @access public - * @see Crypt_RSA::encrypt() - * @see Crypt_RSA::decrypt() - */ -/** - * Use {@link http://en.wikipedia.org/wiki/Optimal_Asymmetric_Encryption_Padding Optimal Asymmetric Encryption Padding} - * (OAEP) for encryption / decryption. - * - * Uses sha1 by default. - * - * @see Crypt_RSA::setHash() - * @see Crypt_RSA::setMGFHash() - */ -define('CRYPT_RSA_ENCRYPTION_OAEP', 1); -/** - * Use PKCS#1 padding. - * - * Although CRYPT_RSA_ENCRYPTION_OAEP offers more security, including PKCS#1 padding is necessary for purposes of backwards - * compatability with protocols (like SSH-1) written before OAEP's introduction. - */ -define('CRYPT_RSA_ENCRYPTION_PKCS1', 2); -/**#@-*/ - -/**#@+ - * @access public - * @see Crypt_RSA::sign() - * @see Crypt_RSA::verify() - * @see Crypt_RSA::setHash() - */ -/** - * Use the Probabilistic Signature Scheme for signing - * - * Uses sha1 by default. - * - * @see Crypt_RSA::setSaltLength() - * @see Crypt_RSA::setMGFHash() - */ -define('CRYPT_RSA_SIGNATURE_PSS', 1); -/** - * Use the PKCS#1 scheme by default. - * - * Although CRYPT_RSA_SIGNATURE_PSS offers more security, including PKCS#1 signing is necessary for purposes of backwards - * compatability with protocols (like SSH-2) written before PSS's introduction. - */ -define('CRYPT_RSA_SIGNATURE_PKCS1', 2); -/**#@-*/ - -/**#@+ - * @access private - * @see Crypt_RSA::createKey() - */ -/** - * ASN1 Integer - */ -define('CRYPT_RSA_ASN1_INTEGER', 2); -/** - * ASN1 Sequence (with the constucted bit set) - */ -define('CRYPT_RSA_ASN1_SEQUENCE', 48); -/**#@-*/ - -/**#@+ - * @access private - * @see Crypt_RSA::Crypt_RSA() - */ -/** - * To use the pure-PHP implementation - */ -define('CRYPT_RSA_MODE_INTERNAL', 1); -/** - * To use the OpenSSL library - * - * (if enabled; otherwise, the internal implementation will be used) - */ -define('CRYPT_RSA_MODE_OPENSSL', 2); -/**#@-*/ - -/**#@+ - * @access public - * @see Crypt_RSA::createKey() - * @see Crypt_RSA::setPrivateKeyFormat() - */ -/** - * PKCS#1 formatted private key - * - * Used by OpenSSH - */ -define('CRYPT_RSA_PRIVATE_FORMAT_PKCS1', 0); -/**#@-*/ - -/**#@+ - * @access public - * @see Crypt_RSA::createKey() - * @see Crypt_RSA::setPublicKeyFormat() - */ -/** - * Raw public key - * - * An array containing two Math_BigInteger objects. - * - * The exponent can be indexed with any of the following: - * - * 0, e, exponent, publicExponent - * - * The modulus can be indexed with any of the following: - * - * 1, n, modulo, modulus - */ -define('CRYPT_RSA_PUBLIC_FORMAT_RAW', 1); -/** - * PKCS#1 formatted public key - */ -define('CRYPT_RSA_PUBLIC_FORMAT_PKCS1', 2); -/** - * OpenSSH formatted public key - * - * Place in $HOME/.ssh/authorized_keys - */ -define('CRYPT_RSA_PUBLIC_FORMAT_OPENSSH', 3); -/**#@-*/ - -/** - * Pure-PHP PKCS#1 compliant implementation of RSA. - * - * @author Jim Wigginton - * @version 0.1.0 - * @access public - * @package Crypt_RSA - */ -class Crypt_RSA { - /** - * Precomputed Zero - * - * @var Array - * @access private - */ - var $zero; - - /** - * Precomputed One - * - * @var Array - * @access private - */ - var $one; - - /** - * Private Key Format - * - * @var Integer - * @access private - */ - var $privateKeyFormat = CRYPT_RSA_PRIVATE_FORMAT_PKCS1; - - /** - * Public Key Format - * - * @var Integer - * @access public - */ - var $publicKeyFormat = CRYPT_RSA_PUBLIC_FORMAT_PKCS1; - - /** - * Modulus (ie. n) - * - * @var Math_BigInteger - * @access private - */ - var $modulus; - - /** - * Modulus length - * - * @var Math_BigInteger - * @access private - */ - var $k; - - /** - * Exponent (ie. e or d) - * - * @var Math_BigInteger - * @access private - */ - var $exponent; - - /** - * Primes for Chinese Remainder Theorem (ie. p and q) - * - * @var Array - * @access private - */ - var $primes; - - /** - * Exponents for Chinese Remainder Theorem (ie. dP and dQ) - * - * @var Array - * @access private - */ - var $exponents; - - /** - * Coefficients for Chinese Remainder Theorem (ie. qInv) - * - * @var Array - * @access private - */ - var $coefficients; - - /** - * Hash name - * - * @var String - * @access private - */ - var $hashName; - - /** - * Hash function - * - * @var Crypt_Hash - * @access private - */ - var $hash; - - /** - * Length of hash function output - * - * @var Integer - * @access private - */ - var $hLen; - - /** - * Length of salt - * - * @var Integer - * @access private - */ - var $sLen; - - /** - * Hash function for the Mask Generation Function - * - * @var Crypt_Hash - * @access private - */ - var $mgfHash; - - /** - * Encryption mode - * - * @var Integer - * @access private - */ - var $encryptionMode = CRYPT_RSA_ENCRYPTION_OAEP; - - /** - * Signature mode - * - * @var Integer - * @access private - */ - var $signatureMode = CRYPT_RSA_SIGNATURE_PSS; - - /** - * Public Exponent - * - * @var Mixed - * @access private - */ - var $publicExponent = false; - - /** - * Password - * - * @var String - * @access private - */ - var $password = ''; - - /** - * The constructor - * - * If you want to make use of the openssl extension, you'll need to set the mode manually, yourself. The reason - * Crypt_RSA doesn't do it is because OpenSSL doesn't fail gracefully. openssl_pkey_new(), in particular, requires - * openssl.cnf be present somewhere and, unfortunately, the only real way to find out is too late. - * - * @return Crypt_RSA - * @access public - */ - function Crypt_RSA() - { - if ( !defined('CRYPT_RSA_MODE') ) { - switch (true) { - //case extension_loaded('openssl') && version_compare(PHP_VERSION, '4.2.0', '>='): - // define('CRYPT_RSA_MODE', CRYPT_RSA_MODE_OPENSSL); - // break; - default: - define('CRYPT_RSA_MODE', CRYPT_RSA_MODE_INTERNAL); - } - } - - $this->zero = new Math_BigInteger(); - $this->one = new Math_BigInteger(1); - - $this->hash = new Crypt_Hash('sha1'); - $this->hLen = $this->hash->getLength(); - $this->hashName = 'sha1'; - $this->mgfHash = new Crypt_Hash('sha1'); - } - - /** - * Create public / private key pair - * - * Returns an array with the following three elements: - * - 'privatekey': The private key. - * - 'publickey': The public key. - * - 'partialkey': A partially computed key (if the execution time exceeded $timeout). - * Will need to be passed back to Crypt_RSA::createKey() as the third parameter for further processing. - * - * @access public - * @param optional Integer $bits - * @param optional Integer $timeout - * @param optional Math_BigInteger $p - */ - function createKey($bits = 1024, $timeout = false, $primes = array()) - { - if ( CRYPT_RSA_MODE == CRYPT_RSA_MODE_OPENSSL ) { - $rsa = openssl_pkey_new(array('private_key_bits' => $bits)); - openssl_pkey_export($rsa, $privatekey); - $publickey = openssl_pkey_get_details($rsa); - $publickey = $publickey['key']; - - if ($this->privateKeyFormat != CRYPT_RSA_PRIVATE_FORMAT_PKCS1) { - $privatekey = call_user_func_array(array($this, '_convertPrivateKey'), array_values($this->_parseKey($privatekey, CRYPT_RSA_PRIVATE_FORMAT_PKCS1))); - $publickey = call_user_func_array(array($this, '_convertPublicKey'), array_values($this->_parseKey($publickey, CRYPT_RSA_PUBLIC_FORMAT_PKCS1))); - } - - return array( - 'privatekey' => $privatekey, - 'publickey' => $publickey, - 'partialkey' => false - ); - } - - static $e; - if (!isset($e)) { - if (!defined('CRYPT_RSA_EXPONENT')) { - // http://en.wikipedia.org/wiki/65537_%28number%29 - define('CRYPT_RSA_EXPONENT', '65537'); - } - if (!defined('CRYPT_RSA_COMMENT')) { - define('CRYPT_RSA_COMMENT', 'phpseclib-generated-key'); - } - // per , this number ought not result in primes smaller - // than 256 bits. - if (!defined('CRYPT_RSA_SMALLEST_PRIME')) { - define('CRYPT_RSA_SMALLEST_PRIME', 4096); - } - - $e = new Math_BigInteger(CRYPT_RSA_EXPONENT); - } - - extract($this->_generateMinMax($bits)); - $absoluteMin = $min; - $temp = $bits >> 1; - if ($temp > CRYPT_RSA_SMALLEST_PRIME) { - $num_primes = floor($bits / CRYPT_RSA_SMALLEST_PRIME); - $temp = CRYPT_RSA_SMALLEST_PRIME; - } else { - $num_primes = 2; - } - extract($this->_generateMinMax($temp + $bits % $temp)); - $finalMax = $max; - extract($this->_generateMinMax($temp)); - - $exponents = $coefficients = array(); - $generator = new Math_BigInteger(); - $generator->setRandomGenerator('crypt_random'); - - $n = $this->one->copy(); - $lcm = array( - 'top' => $this->one->copy(), - 'bottom' => false - ); - - $start = time(); - $i0 = count($primes) + 1; - - do { - for ($i = $i0; $i <= $num_primes; $i++) { - if ($timeout !== false) { - $timeout-= time() - $start; - $start = time(); - if ($timeout <= 0) { - return array( - 'privatekey' => '', - 'publickey' => '', - 'partialkey' => $primes - ); - } - } - if ($i == $num_primes) { - list($min, $temp) = $absoluteMin->divide($n); - if (!$temp->equals($this->zero)) { - $min = $min->add($this->one); // ie. ceil() - } - $primes[$i] = $generator->randomPrime($min, $finalMax, $timeout); - } else { - $primes[$i] = $generator->randomPrime($min, $max, $timeout); - } - - if ($primes[$i] === false) { // if we've reached the timeout - return array( - 'privatekey' => '', - 'publickey' => '', - 'partialkey' => array_slice($primes, 0, $i - 1) - ); - } - - // the first coefficient is calculated differently from the rest - // ie. instead of being $primes[1]->modInverse($primes[2]), it's $primes[2]->modInverse($primes[1]) - if ($i > 2) { - $coefficients[$i] = $n->modInverse($primes[$i]); - } - - $n = $n->multiply($primes[$i]); - - $temp = $primes[$i]->subtract($this->one); - - // textbook RSA implementations use Euler's totient function instead of the least common multiple. - // see http://en.wikipedia.org/wiki/Euler%27s_totient_function - $lcm['top'] = $lcm['top']->multiply($temp); - $lcm['bottom'] = $lcm['bottom'] === false ? $temp : $lcm['bottom']->gcd($temp); - - $exponents[$i] = $e->modInverse($temp); - } - - list($lcm) = $lcm['top']->divide($lcm['bottom']); - $gcd = $lcm->gcd($e); - $i0 = 1; - } while (!$gcd->equals($this->one)); - - $d = $e->modInverse($lcm); - - $coefficients[2] = $primes[2]->modInverse($primes[1]); - - // from : - // RSAPrivateKey ::= SEQUENCE { - // version Version, - // modulus INTEGER, -- n - // publicExponent INTEGER, -- e - // privateExponent INTEGER, -- d - // prime1 INTEGER, -- p - // prime2 INTEGER, -- q - // exponent1 INTEGER, -- d mod (p-1) - // exponent2 INTEGER, -- d mod (q-1) - // coefficient INTEGER, -- (inverse of q) mod p - // otherPrimeInfos OtherPrimeInfos OPTIONAL - // } - - return array( - 'privatekey' => $this->_convertPrivateKey($n, $e, $d, $primes, $exponents, $coefficients), - 'publickey' => $this->_convertPublicKey($n, $e), - 'partialkey' => false - ); - } - - /** - * Convert a private key to the appropriate format. - * - * @access private - * @see setPrivateKeyFormat() - * @param String $RSAPrivateKey - * @return String - */ - function _convertPrivateKey($n, $e, $d, $primes, $exponents, $coefficients) - { - $num_primes = count($primes); - - $raw = array( - 'version' => $num_primes == 2 ? chr(0) : chr(1), // two-prime vs. multi - 'modulus' => $n->toBytes(true), - 'publicExponent' => $e->toBytes(true), - 'privateExponent' => $d->toBytes(true), - 'prime1' => $primes[1]->toBytes(true), - 'prime2' => $primes[2]->toBytes(true), - 'exponent1' => $exponents[1]->toBytes(true), - 'exponent2' => $exponents[2]->toBytes(true), - 'coefficient' => $coefficients[2]->toBytes(true) - ); - - // if the format in question does not support multi-prime rsa and multi-prime rsa was used, - // call _convertPublicKey() instead. - switch ($this->privateKeyFormat) { - default: // eg. CRYPT_RSA_PRIVATE_FORMAT_PKCS1 - $components = array(); - foreach ($raw as $name => $value) { - $components[$name] = pack('Ca*a*', CRYPT_RSA_ASN1_INTEGER, $this->_encodeLength(strlen($value)), $value); - } - - $RSAPrivateKey = implode('', $components); - - if ($num_primes > 2) { - $OtherPrimeInfos = ''; - for ($i = 3; $i <= $num_primes; $i++) { - // OtherPrimeInfos ::= SEQUENCE SIZE(1..MAX) OF OtherPrimeInfo - // - // OtherPrimeInfo ::= SEQUENCE { - // prime INTEGER, -- ri - // exponent INTEGER, -- di - // coefficient INTEGER -- ti - // } - $OtherPrimeInfo = pack('Ca*a*', CRYPT_RSA_ASN1_INTEGER, $this->_encodeLength(strlen($primes[$i]->toBytes(true))), $primes[$i]->toBytes(true)); - $OtherPrimeInfo.= pack('Ca*a*', CRYPT_RSA_ASN1_INTEGER, $this->_encodeLength(strlen($exponents[$i]->toBytes(true))), $exponents[$i]->toBytes(true)); - $OtherPrimeInfo.= pack('Ca*a*', CRYPT_RSA_ASN1_INTEGER, $this->_encodeLength(strlen($coefficients[$i]->toBytes(true))), $coefficients[$i]->toBytes(true)); - $OtherPrimeInfos.= pack('Ca*a*', CRYPT_RSA_ASN1_SEQUENCE, $this->_encodeLength(strlen($OtherPrimeInfo)), $OtherPrimeInfo); - } - $RSAPrivateKey.= pack('Ca*a*', CRYPT_RSA_ASN1_SEQUENCE, $this->_encodeLength(strlen($OtherPrimeInfos)), $OtherPrimeInfos); - } - - $RSAPrivateKey = pack('Ca*a*', CRYPT_RSA_ASN1_SEQUENCE, $this->_encodeLength(strlen($RSAPrivateKey)), $RSAPrivateKey); - - if (!empty($this->password)) { - $iv = $this->_random(8); - $symkey = pack('H*', md5($this->password . $iv)); // symkey is short for symmetric key - $symkey.= substr(pack('H*', md5($symkey . $this->password . $iv)), 0, 8); - if (!class_exists('Crypt_TripleDES')) { - require_once('Crypt/TripleDES.php'); - } - $des = new Crypt_TripleDES(); - $des->setKey($symkey); - $des->setIV($iv); - $iv = strtoupper(bin2hex($iv)); - $RSAPrivateKey = "-----BEGIN RSA PRIVATE KEY-----\r\n" . - "Proc-Type: 4,ENCRYPTED\r\n" . - "DEK-Info: DES-EDE3-CBC,$iv\r\n" . - "\r\n" . - chunk_split(base64_encode($des->encrypt($RSAPrivateKey))) . - '-----END RSA PRIVATE KEY-----'; - } else { - $RSAPrivateKey = "-----BEGIN RSA PRIVATE KEY-----\r\n" . - chunk_split(base64_encode($RSAPrivateKey)) . - '-----END RSA PRIVATE KEY-----'; - } - - return $RSAPrivateKey; - } - } - - /** - * Convert a public key to the appropriate format - * - * @access private - * @see setPublicKeyFormat() - * @param String $RSAPrivateKey - * @return String - */ - function _convertPublicKey($n, $e) - { - $modulus = $n->toBytes(true); - $publicExponent = $e->toBytes(true); - - switch ($this->publicKeyFormat) { - case CRYPT_RSA_PUBLIC_FORMAT_RAW: - return array('e' => $e->copy(), 'n' => $n->copy()); - case CRYPT_RSA_PUBLIC_FORMAT_OPENSSH: - // from : - // string "ssh-rsa" - // mpint e - // mpint n - $RSAPublicKey = pack('Na*Na*Na*', strlen('ssh-rsa'), 'ssh-rsa', strlen($publicExponent), $publicExponent, strlen($modulus), $modulus); - $RSAPublicKey = 'ssh-rsa ' . base64_encode($RSAPublicKey) . ' ' . CRYPT_RSA_COMMENT; - - return $RSAPublicKey; - default: // eg. CRYPT_RSA_PUBLIC_FORMAT_PKCS1 - // from : - // RSAPublicKey ::= SEQUENCE { - // modulus INTEGER, -- n - // publicExponent INTEGER -- e - // } - $components = array( - 'modulus' => pack('Ca*a*', CRYPT_RSA_ASN1_INTEGER, $this->_encodeLength(strlen($modulus)), $modulus), - 'publicExponent' => pack('Ca*a*', CRYPT_RSA_ASN1_INTEGER, $this->_encodeLength(strlen($publicExponent)), $publicExponent) - ); - - $RSAPublicKey = pack('Ca*a*a*', - CRYPT_RSA_ASN1_SEQUENCE, $this->_encodeLength(strlen($components['modulus']) + strlen($components['publicExponent'])), - $components['modulus'], $components['publicExponent'] - ); - - $RSAPublicKey = "-----BEGIN PUBLIC KEY-----\r\n" . - chunk_split(base64_encode($RSAPublicKey)) . - '-----END PUBLIC KEY-----'; - - return $RSAPublicKey; - } - } - - /** - * Break a public or private key down into its constituant components - * - * @access private - * @see _convertPublicKey() - * @see _convertPrivateKey() - * @param String $key - * @param Integer $type - * @return Array - */ - function _parseKey($key, $type) - { - switch ($type) { - case CRYPT_RSA_PUBLIC_FORMAT_RAW: - if (!is_array($key)) { - return false; - } - $components = array(); - switch (true) { - case isset($key['e']): - $components['publicExponent'] = $key['e']->copy(); - break; - case isset($key['exponent']): - $components['publicExponent'] = $key['exponent']->copy(); - break; - case isset($key['publicExponent']): - $components['publicExponent'] = $key['publicExponent']->copy(); - break; - case isset($key[0]): - $components['publicExponent'] = $key[0]->copy(); - } - switch (true) { - case isset($key['n']): - $components['modulus'] = $key['n']->copy(); - break; - case isset($key['modulo']): - $components['modulus'] = $key['modulo']->copy(); - break; - case isset($key['modulus']): - $components['modulus'] = $key['modulus']->copy(); - break; - case isset($key[1]): - $components['modulus'] = $key[1]->copy(); - } - return $components; - case CRYPT_RSA_PRIVATE_FORMAT_PKCS1: - case CRYPT_RSA_PUBLIC_FORMAT_PKCS1: - /* Although PKCS#1 proposes a format that public and private keys can use, encrypting them is - "outside the scope" of PKCS#1. PKCS#1 then refers you to PKCS#12 and PKCS#15 if you're wanting to - protect private keys, however, that's not what OpenSSL* does. OpenSSL protects private keys by adding - two new "fields" to the key - DEK-Info and Proc-Type. These fields are discussed here: - - http://tools.ietf.org/html/rfc1421#section-4.6.1.1 - http://tools.ietf.org/html/rfc1421#section-4.6.1.3 - - DES-EDE3-CBC as an algorithm, however, is not discussed anywhere, near as I can tell. - DES-CBC and DES-EDE are discussed in RFC1423, however, DES-EDE3-CBC isn't, nor is its key derivation - function. As is, the definitive authority on this encoding scheme isn't the IETF but rather OpenSSL's - own implementation. ie. the implementation *is* the standard and any bugs that may exist in that - implementation are part of the standard, as well. - - * OpenSSL is the de facto standard. It's utilized by OpenSSH and other projects */ - if (preg_match('#DEK-Info: DES-EDE3-CBC,(.+)#', $key, $matches)) { - $iv = pack('H*', trim($matches[1])); - $symkey = pack('H*', md5($this->password . $iv)); // symkey is short for symmetric key - $symkey.= substr(pack('H*', md5($symkey . $this->password . $iv)), 0, 8); - $ciphertext = base64_decode(preg_replace('#.+(\r|\n|\r\n)\1|[\r\n]|-.+-#s', '', $key)); - if ($ciphertext === false) { - return false; - } - if (!class_exists('Crypt_TripleDES')) { - require_once('Crypt/TripleDES.php'); - } - $des = new Crypt_TripleDES(); - $des->setKey($symkey); - $des->setIV($iv); - $key = $des->decrypt($ciphertext); - } else { - $key = base64_decode(preg_replace('#-.+-|[\r\n]#', '', $key)); - if ($key === false) { - return false; - } - } - - $private = false; - $components = array(); - - $this->_string_shift($key); // skip over CRYPT_RSA_ASN1_SEQUENCE - $this->_decodeLength($key); // skip over the length of the above sequence - $this->_string_shift($key); // skip over CRYPT_RSA_ASN1_INTEGER - $length = $this->_decodeLength($key); - $temp = $this->_string_shift($key, $length); - if (strlen($temp) != 1 || ord($temp) > 2) { - $components['modulus'] = new Math_BigInteger($temp, -256); - $this->_string_shift($key); // skip over CRYPT_RSA_ASN1_INTEGER - $length = $this->_decodeLength($key); - $components[$type == CRYPT_RSA_PUBLIC_FORMAT_PKCS1 ? 'publicExponent' : 'privateExponent'] = new Math_BigInteger($this->_string_shift($key, $length), -256); - - return $components; - } - $this->_string_shift($key); // skip over CRYPT_RSA_ASN1_INTEGER - $length = $this->_decodeLength($key); - $components['modulus'] = new Math_BigInteger($this->_string_shift($key, $length), -256); - $this->_string_shift($key); - $length = $this->_decodeLength($key); - $components['publicExponent'] = new Math_BigInteger($this->_string_shift($key, $length), -256); - $this->_string_shift($key); - $length = $this->_decodeLength($key); - $components['privateExponent'] = new Math_BigInteger($this->_string_shift($key, $length), -256); - $this->_string_shift($key); - $length = $this->_decodeLength($key); - $components['primes'] = array(1 => new Math_BigInteger($this->_string_shift($key, $length), -256)); - $this->_string_shift($key); - $length = $this->_decodeLength($key); - $components['primes'][] = new Math_BigInteger($this->_string_shift($key, $length), -256); - $this->_string_shift($key); - $length = $this->_decodeLength($key); - $components['exponents'] = array(1 => new Math_BigInteger($this->_string_shift($key, $length), -256)); - $this->_string_shift($key); - $length = $this->_decodeLength($key); - $components['exponents'][] = new Math_BigInteger($this->_string_shift($key, $length), -256); - $this->_string_shift($key); - $length = $this->_decodeLength($key); - $components['coefficients'] = array(2 => new Math_BigInteger($this->_string_shift($key, $length), -256)); - if (!empty($key)) { - $key = substr($key, 1); // skip over CRYPT_RSA_ASN1_SEQUENCE - $this->_decodeLength($key); - while (!empty($key)) { - $key = substr($key, 1); // skip over CRYPT_RSA_ASN1_SEQUENCE - $this->_decodeLength($key); - $key = substr($key, 1); - $length = $this->_decodeLength($key); - $components['primes'][] = new Math_BigInteger($this->_string_shift($key, $length), -256); - $this->_string_shift($key); - $length = $this->_decodeLength($key); - $components['exponents'][] = new Math_BigInteger($this->_string_shift($key, $length), -256); - $this->_string_shift($key); - $length = $this->_decodeLength($key); - $components['coefficients'][] = new Math_BigInteger($this->_string_shift($key, $length), -256); - } - } - - return $components; - case CRYPT_RSA_PUBLIC_FORMAT_OPENSSH: - $key = base64_decode(preg_replace('#^ssh-rsa | .+$#', '', $key)); - if ($key === false) { - return false; - } - - $components = array(); - extract(unpack('Nlength', $this->_string_shift($key, 4))); - $components['modulus'] = new Math_BigInteger($this->_string_shift($key, $length), -256); - extract(unpack('Nlength', $this->_string_shift($key, 4))); - $components['publicExponent'] = new Math_BigInteger($this->_string_shift($key, $length), -256); - - return $components; - } - } - - /** - * Loads a public or private key - * - * @access public - * @param String $key - * @param Integer $type optional - */ - function loadKey($key, $type = CRYPT_RSA_PRIVATE_FORMAT_PKCS1) - { - $components = $this->_parseKey($key, $type); - $this->modulus = $components['modulus']; - $this->k = strlen($this->modulus->toBytes()); - $this->exponent = isset($components['privateExponent']) ? $components['privateExponent'] : $components['publicExponent']; - if (isset($components['primes'])) { - $this->primes = $components['primes']; - $this->exponents = $components['exponents']; - $this->coefficients = $components['coefficients']; - $this->publicExponent = $components['publicExponent']; - } else { - $this->primes = array(); - $this->exponents = array(); - $this->coefficients = array(); - $this->publicExponent = false; - } - } - - /** - * Sets the password - * - * Private keys can be encrypted with a password. To unset the password, pass in the empty string or false. - * Or rather, pass in $password such that empty($password) is true. - * - * @see createKey() - * @see loadKey() - * @access public - * @param String $password - */ - function setPassword($password) - { - $this->password = $password; - } - - /** - * Defines the public key - * - * Some private key formats define the public exponent and some don't. Those that don't define it are problematic when - * used in certain contexts. For example, in SSH-2, RSA authentication works by sending the public key along with a - * message signed by the private key to the server. The SSH-2 server looks the public key up in an index of public keys - * and if it's present then proceeds to verify the signature. Problem is, if your private key doesn't include the public - * exponent this won't work unless you manually add the public exponent. - * - * Do note that when a new key is loaded the index will be cleared. - * - * Returns true on success, false on failure - * - * @see getPublicKey() - * @access public - * @param String $key - * @param Integer $type optional - * @return Boolean - */ - function setPublicKey($key, $type = CRYPT_RSA_PUBLIC_FORMAT_PKCS1) - { - $components = $this->_parseKey($key, $type); - if (!$this->modulus->equals($components['modulus'])) { - return false; - } - $this->publicExponent = $components['publicExponent']; - } - - /** - * Returns the public key - * - * The public key is only returned under two circumstances - if the private key had the public key embedded within it - * or if the public key was set via setPublicKey(). If the currently loaded key is supposed to be the public key this - * function won't return it since this library, for the most part, doesn't distinguish between public and private keys. - * - * @see getPublicKey() - * @access public - * @param String $key - * @param Integer $type optional - */ - function getPublicKey($type = CRYPT_RSA_PUBLIC_FORMAT_PKCS1) - { - $oldFormat = $this->publicKeyFormat; - $this->publicKeyFormat = $type; - $temp = $this->_convertPublicKey($this->modulus, $this->publicExponent); - $this->publicKeyFormat = $oldFormat; - return $temp; - } - - /** - * Generates the smallest and largest numbers requiring $bits bits - * - * @access private - * @param Integer $bits - * @return Array - */ - function _generateMinMax($bits) - { - $bytes = $bits >> 3; - $min = str_repeat(chr(0), $bytes); - $max = str_repeat(chr(0xFF), $bytes); - $msb = $num_bits & 7; - if ($msb) { - $min = chr(1 << ($msb - 1)) . $min; - $max = chr((1 << $msb) - 1) . $max; - } else { - $min[0] = chr(0x80); - } - - return array( - 'min' => new Math_BigInteger($min, 256), - 'max' => new Math_BigInteger($max, 256) - ); - } - - /** - * DER-decode the length - * - * DER supports lengths up to (2**8)**127, however, we'll only support lengths up to (2**8)**4. See - * {@link http://itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#p=13 X.690 8.1.3} for more information. - * - * @access private - * @param String $string - * @return Integer - */ - function _decodeLength(&$string) - { - $length = ord($this->_string_shift($string)); - if ( $length & 0x80 ) { // definite length, long form - $length&= 0x7F; - $temp = $this->_string_shift($string, $length); - $start+= $length; - list(, $length) = unpack('N', substr(str_pad($temp, 4, chr(0), STR_PAD_LEFT), -4)); - } - return $length; - } - - /** - * DER-encode the length - * - * DER supports lengths up to (2**8)**127, however, we'll only support lengths up to (2**8)**4. See - * {@link http://itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#p=13 X.690 8.1.3} for more information. - * - * @access private - * @param Integer $length - * @return String - */ - function _encodeLength($length) - { - if ($length <= 0x7F) { - return chr($length); - } - - $temp = ltrim(pack('N', $length), chr(0)); - return pack('Ca*', 0x80 | strlen($temp), $temp); - } - - /** - * String Shift - * - * Inspired by array_shift - * - * @param String $string - * @param optional Integer $index - * @return String - * @access private - */ - function _string_shift(&$string, $index = 1) - { - $substr = substr($string, 0, $index); - $string = substr($string, $index); - return $substr; - } - - /** - * Determines the private key format - * - * @see createKey() - * @access public - * @param Integer $format - */ - function setPrivateKeyFormat($format) - { - $this->privateKeyFormat = $format; - } - - /** - * Determines the public key format - * - * @see createKey() - * @access public - * @param Integer $format - */ - function setPublicKeyFormat($format) - { - $this->publicKeyFormat = $format; - } - - /** - * Determines which hashing function should be used - * - * Used with signature production / verification and (if the encryption mode is CRYPT_RSA_ENCRYPTION_OAEP) encryption and - * decryption. If $hash isn't supported, sha1 is used. - * - * @access public - * @param String $hash - */ - function setHash($hash) - { - // Crypt_Hash supports algorithms that PKCS#1 doesn't support. md5-96 and sha1-96, for example. - switch ($hash) { - case 'md2': - case 'md5': - case 'sha1': - case 'sha256': - case 'sha384': - case 'sha512': - $this->hash = new Crypt_Hash($hash); - $this->hLen = $this->hash->getLength(); - $this->hashName = $hash; - break; - default: - $this->hash = new Crypt_Hash('sha1'); - $this->hLen = $this->hash->getLength(); - $this->hashName = 'sha1'; - } - } - - /** - * Determines which hashing function should be used for the mask generation function - * - * The mask generation function is used by CRYPT_RSA_ENCRYPTION_OAEP and CRYPT_RSA_SIGNATURE_PSS and although it's - * best if Hash and MGFHash are set to the same thing this is not a requirement. - * - * @access public - * @param String $hash - */ - function setMGFHash($hash) - { - // Crypt_Hash supports algorithms that PKCS#1 doesn't support. md5-96 and sha1-96, for example. - switch ($hash) { - case 'md2': - case 'md5': - case 'sha1': - case 'sha256': - case 'sha384': - case 'sha512': - $this->mgfHash = new Crypt_Hash($hash); - break; - default: - $this->mgfHash = new Crypt_Hash('sha1'); - } - } - - /** - * Determines the salt length - * - * To quote from {@link http://tools.ietf.org/html/rfc3447#page-38 RFC3447#page-38}: - * - * Typical salt lengths in octets are hLen (the length of the output - * of the hash function Hash) and 0. - * - * @access public - * @param Integer $format - */ - function setSaltLength($sLen) - { - $this->sLen = $sLen; - } - - /** - * Generates a random string x bytes long - * - * @access public - * @param Integer $bytes - * @param optional Integer $nonzero - * @return String - */ - function _random($bytes, $nonzero = false) - { - $temp = ''; - if ($nonzero) { - for ($i = 0; $i < $bytes; $i++) { - $temp.= chr(crypt_random(1, 255)); - } - } else { - $ints = ($bytes + 1) >> 2; - for ($i = 0; $i < $ints; $i++) { - $temp.= pack('N', crypt_random()); - } - $temp = substr($temp, 0, $bytes); - } - return $temp; - } - - /** - * Integer-to-Octet-String primitive - * - * See {@link http://tools.ietf.org/html/rfc3447#section-4.1 RFC3447#section-4.1}. - * - * @access private - * @param Math_BigInteger $x - * @param Integer $xLen - * @return String - */ - function _i2osp($x, $xLen) - { - $x = $x->toBytes(); - if (strlen($x) > $xLen) { - user_error('Integer too large', E_USER_NOTICE); - return false; - } - return str_pad($x, $xLen, chr(0), STR_PAD_LEFT); - } - - /** - * Octet-String-to-Integer primitive - * - * See {@link http://tools.ietf.org/html/rfc3447#section-4.2 RFC3447#section-4.2}. - * - * @access private - * @param String $x - * @return Math_BigInteger - */ - function _os2ip($x) - { - return new Math_BigInteger($x, 256); - } - - /** - * Exponentiate with or without Chinese Remainder Theorem - * - * See {@link http://tools.ietf.org/html/rfc3447#section-5.1.1 RFC3447#section-5.1.2}. - * - * @access private - * @param Math_BigInteger $x - * @return Math_BigInteger - */ - function _exponentiate($x) - { - if (empty($this->primes) || empty($this->coefficients) || empty($this->exponents)) { - return $x->modPow($this->exponent, $this->modulus); - } - - $num_primes = count($this->primes); - $m_i = array( - 1 => $x->modPow($this->exponents[1], $this->primes[1]), - 2 => $x->modPow($this->exponents[2], $this->primes[2]) - ); - $h = $m_i[1]->subtract($m_i[2]); - $h = $h->multiply($this->coefficients[2]); - list(, $h) = $h->divide($this->primes[1]); - $m = $m_i[2]->add($h->multiply($this->primes[2])); - - $r = $this->primes[1]; - for ($i = 3; $i <= $num_primes; $i++) { - $m_i = $x->modPow($this->exponents[$i], $this->primes[$i]); - - $r = $r->multiply($this->primes[$i - 1]); - - $h = $m_i->subtract($m); - $h = $h->multiply($this->coefficients[$i]); - list(, $h) = $h->divide($this->primes[$i]); - - $m = $m->add($r->multiply($h)); - } - - return $m; - } - - /** - * RSAEP - * - * See {@link http://tools.ietf.org/html/rfc3447#section-5.1.1 RFC3447#section-5.1.1}. - * - * @access private - * @param Math_BigInteger $m - * @return Math_BigInteger - */ - function _rsaep($m) - { - if ($m->compare($this->zero) < 0 || $m->compare($this->modulus) > 0) { - user_error('Message representative out of range', E_USER_NOTICE); - return false; - } - return $this->_exponentiate($m); - } - - /** - * RSADP - * - * See {@link http://tools.ietf.org/html/rfc3447#section-5.1.2 RFC3447#section-5.1.2}. - * - * @access private - * @param Math_BigInteger $c - * @return Math_BigInteger - */ - function _rsadp($c) - { - if ($c->compare($this->zero) < 0 || $c->compare($this->modulus) > 0) { - user_error('Ciphertext representative out of range', E_USER_NOTICE); - return false; - } - return $this->_exponentiate($c); - } - - /** - * RSASP1 - * - * See {@link http://tools.ietf.org/html/rfc3447#section-5.2.1 RFC3447#section-5.2.1}. - * - * @access private - * @param Math_BigInteger $m - * @return Math_BigInteger - */ - function _rsasp1($m) - { - if ($m->compare($this->zero) < 0 || $m->compare($this->modulus) > 0) { - user_error('Message representative out of range', E_USER_NOTICE); - return false; - } - return $this->_exponentiate($m); - } - - /** - * RSAVP1 - * - * See {@link http://tools.ietf.org/html/rfc3447#section-5.2.2 RFC3447#section-5.2.2}. - * - * @access private - * @param Math_BigInteger $s - * @return Math_BigInteger - */ - function _rsavp1($s) - { - if ($s->compare($this->zero) < 0 || $s->compare($this->modulus) > 0) { - user_error('Signature representative out of range', E_USER_NOTICE); - return false; - } - return $this->_exponentiate($s); - } - - /** - * MGF1 - * - * See {@link http://tools.ietf.org/html/rfc3447#section-B.2.1 RFC3447#section-B.2.1}. - * - * @access private - * @param String $mgfSeed - * @param Integer $mgfLen - * @return String - */ - function _mgf1($mgfSeed, $maskLen) - { - // if $maskLen would yield strings larger than 4GB, PKCS#1 suggests a "Mask too long" error be output. - - $t = ''; - $count = ceil($maskLen / $this->hLen); - for ($i = 0; $i < $count; $i++) { - $c = pack('N', $i); - $t.= $this->mgfHash->hash($mgfSeed . $c); - } - - return substr($t, 0, $maskLen); - } - - /** - * RSAES-OAEP-ENCRYPT - * - * See {@link http://tools.ietf.org/html/rfc3447#section-7.1.1 RFC3447#section-7.1.1} and - * {http://en.wikipedia.org/wiki/Optimal_Asymmetric_Encryption_Padding OAES}. - * - * @access private - * @param String $m - * @param String $l - * @return String - */ - function _rsaes_oaep_encrypt($m, $l = '') - { - $mLen = strlen($m); - - // Length checking - - // if $l is larger than two million terrabytes and you're using sha1, PKCS#1 suggests a "Label too long" error - // be output. - - if ($mLen > $this->k - 2 * $this->hLen - 2) { - user_error('Message too long', E_USER_NOTICE); - return false; - } - - // EME-OAEP encoding - - $lHash = $this->hash->hash($l); - $ps = str_repeat(chr(0), $this->k - $mLen - 2 * $this->hLen - 2); - $db = $lHash . $ps . chr(1) . $m; - $seed = $this->_random($this->hLen); - $dbMask = $this->_mgf1($seed, $this->k - $this->hLen - 1); - $maskedDB = $db ^ $dbMask; - $seedMask = $this->_mgf1($maskedDB, $this->hLen); - $maskedSeed = $seed ^ $seedMask; - $em = chr(0) . $maskedSeed . $maskedDB; - - // RSA encryption - - $m = $this->_os2ip($em); - $c = $this->_rsaep($m); - $c = $this->_i2osp($c, $this->k); - - // Output the ciphertext C - - return $c; - } - - /** - * RSAES-OAEP-DECRYPT - * - * See {@link http://tools.ietf.org/html/rfc3447#section-7.1.2 RFC3447#section-7.1.2}. The fact that the error - * messages aren't distinguishable from one another hinders debugging, but, to quote from RFC3447#section-7.1.2: - * - * Note. Care must be taken to ensure that an opponent cannot - * distinguish the different error conditions in Step 3.g, whether by - * error message or timing, or, more generally, learn partial - * information about the encoded message EM. Otherwise an opponent may - * be able to obtain useful information about the decryption of the - * ciphertext C, leading to a chosen-ciphertext attack such as the one - * observed by Manger [36]. - * - * As for $l... to quote from {@link http://tools.ietf.org/html/rfc3447#page-17 RFC3447#page-17}: - * - * Both the encryption and the decryption operations of RSAES-OAEP take - * the value of a label L as input. In this version of PKCS #1, L is - * the empty string; other uses of the label are outside the scope of - * this document. - * - * @access private - * @param String $c - * @param String $l - * @return String - */ - function _rsaes_oaep_decrypt($c, $l = '') - { - // Length checking - - // if $l is larger than two million terrabytes and you're using sha1, PKCS#1 suggests a "Label too long" error - // be output. - - if (strlen($c) != $this->k || $this->k < 2 * $this->hLen + 2) { - user_error('Decryption error', E_USER_NOTICE); - return false; - } - - // RSA decryption - - $c = $this->_os2ip($c); - $m = $this->_rsadp($c); - if ($m === false) { - user_error('Decryption error', E_USER_NOTICE); - return false; - } - $em = $this->_i2osp($m, $this->k); - - // EME-OAEP decoding - - $lHash = $this->hash->hash($l); - $y = ord($em[0]); - $maskedSeed = substr($em, 1, $this->hLen); - $maskedDB = substr($em, $this->hLen + 1); - $seedMask = $this->_mgf1($maskedDB, $this->hLen); - $seed = $maskedSeed ^ $seedMask; - $dbMask = $this->_mgf1($seed, $this->k - $this->hLen - 1); - $db = $maskedDB ^ $dbMask; - $lHash2 = substr($db, 0, $this->hLen); - $m = substr($db, $this->hLen); - if ($lHash != $lHash2) { - user_error('Decryption error', E_USER_NOTICE); - return false; - } - $m = ltrim($m, chr(0)); - if (ord($m[0]) != 1) { - user_error('Decryption error', E_USER_NOTICE); - return false; - } - - // Output the message M - - return substr($m, 1); - } - - /** - * RSAES-PKCS1-V1_5-ENCRYPT - * - * See {@link http://tools.ietf.org/html/rfc3447#section-7.2.1 RFC3447#section-7.2.1}. - * - * @access private - * @param String $m - * @return String - */ - function _rsaes_pkcs1_v1_5_encrypt($m) - { - $mLen = strlen($m); - - // Length checking - - if ($mLen > $this->k - 11) { - user_error('Message too long', E_USER_NOTICE); - return false; - } - - // EME-PKCS1-v1_5 encoding - - $ps = $this->_random($this->k - $mLen - 3, true); - $em = chr(0) . chr(2) . $ps . chr(0) . $m; - - // RSA encryption - $m = $this->_os2ip($em); - $c = $this->_rsaep($m); - $c = $this->_i2osp($c, $this->k); - - // Output the ciphertext C - - return $c; - } - - /** - * RSAES-PKCS1-V1_5-DECRYPT - * - * See {@link http://tools.ietf.org/html/rfc3447#section-7.2.2 RFC3447#section-7.2.2}. - * - * @access private - * @param String $c - * @return String - */ - function _rsaes_pkcs1_v1_5_decrypt($c) - { - // Length checking - - if (strlen($c) != $this->k) { // or if k < 11 - user_error('Decryption error', E_USER_NOTICE); - return false; - } - - // RSA decryption - - $c = $this->_os2ip($c); - $m = $this->_rsadp($c); - if ($m === false) { - user_error('Decryption error', E_USER_NOTICE); - return false; - } - $em = $this->_i2osp($m, $this->k); - - // EME-PKCS1-v1_5 decoding - - if (ord($em[0]) != 0 || ord($em[1]) != 2) { - user_error('Decryption error', E_USER_NOTICE); - return false; - } - - $ps = substr($em, 2, strpos($em, chr(0), 2) - 2); - $m = substr($em, strlen($ps) + 3); - - if (strlen($ps) < 8) { - user_error('Decryption error', E_USER_NOTICE); - return false; - } - - // Output M - - return $m; - } - - /** - * EMSA-PSS-ENCODE - * - * See {@link http://tools.ietf.org/html/rfc3447#section-9.1.1 RFC3447#section-9.1.1}. - * - * @access private - * @param String $m - * @param Integer $emBits - */ - function _emsa_pss_encode($m, $emBits) - { - // if $m is larger than two million terrabytes and you're using sha1, PKCS#1 suggests a "Label too long" error - // be output. - - $emLen = ($emBits + 1) >> 3; // ie. ceil($emBits / 8) - $sLen = $this->sLen == false ? $this->hLen : $this->sLen; - - $mHash = $this->hash->hash($m); - if ($emLen < $this->hLen + $sLen + 2) { - user_error('Encoding error', E_USER_NOTICE); - return false; - } - - $salt = $this->_random($sLen); - $m2 = "\0\0\0\0\0\0\0\0" . $mHash . $salt; - $h = $this->hash->hash($m2); - $ps = str_repeat(chr(0), $emLen - $sLen - $this->hLen - 2); - $db = $ps . chr(1) . $salt; - $dbMask = $this->_mgf1($h, $emLen - $this->hLen - 1); - $maskedDB = $db ^ $dbMask; - $maskedDB[0] = ~chr(0xFF << ($emBits & 7)) & $maskedDB[0]; - $em = $maskedDB . $h . chr(0xBC); - - return $em; - } - - /** - * EMSA-PSS-VERIFY - * - * See {@link http://tools.ietf.org/html/rfc3447#section-9.1.2 RFC3447#section-9.1.2}. - * - * @access private - * @param String $m - * @param String $em - * @param Integer $emBits - * @return String - */ - function _emsa_pss_verify($m, $em, $emBits) - { - // if $m is larger than two million terrabytes and you're using sha1, PKCS#1 suggests a "Label too long" error - // be output. - - $emLen = ($emBits + 1) >> 3; // ie. ceil($emBits / 8); - $sLen = $this->sLen == false ? $this->hLen : $this->sLen; - - $mHash = $this->hash->hash($m); - if ($emLen < $this->hLen + $sLen + 2) { - return false; - } - - if ($em[strlen($em) - 1] != chr(0xBC)) { - return false; - } - - $maskedDB = substr($em, 0, $em - $this->hLen - 1); - $h = substr($em, $em - $this->hLen - 1, $this->hLen); - $temp = chr(0xFF << ($emBits & 7)); - if ((~$maskedDB[0] & $temp) != $temp) { - return false; - } - $dbMask = $this->_mgf1($h, $emLen - $this->hLen - 1); - $db = $maskedDB ^ $dbMask; - $db[0] = ~chr(0xFF << ($emBits & 7)) & $db[0]; - $temp = $emLen - $this->hLen - $sLen - 2; - if (substr($db, 0, $temp) != str_repeat(chr(0), $temp) || ord($db[$temp]) != 1) { - return false; - } - $salt = substr($db, $temp + 1); // should be $sLen long - $m2 = "\0\0\0\0\0\0\0\0" . $mHash . $salt; - $h2 = $this->hash->hash($m2); - return $h == $h2; - } - - /** - * RSASSA-PSS-SIGN - * - * See {@link http://tools.ietf.org/html/rfc3447#section-8.1.1 RFC3447#section-8.1.1}. - * - * @access private - * @param String $m - * @return String - */ - function _rsassa_pss_sign($m) - { - // EMSA-PSS encoding - - $em = $this->_emsa_pss_encode($m, 8 * $this->k - 1); - - // RSA signature - - $m = $this->_os2ip($em); - $s = $this->_rsasp1($m); - $s = $this->_i2osp($s, $this->k); - - // Output the signature S - - return $s; - } - - /** - * RSASSA-PSS-VERIFY - * - * See {@link http://tools.ietf.org/html/rfc3447#section-8.1.2 RFC3447#section-8.1.2}. - * - * @access private - * @param String $m - * @param String $s - * @return String - */ - function _rsassa_pss_verify($m, $s) - { - // Length checking - - if (strlen($s) != $this->k) { - user_error('Invalid signature', E_USER_NOTICE); - return false; - } - - // RSA verification - - $modBits = 8 * $this->k; - - $s2 = $this->_os2ip($s); - $m2 = $this->_rsavp1($s2); - if ($m2 === false) { - user_error('Invalid signature', E_USER_NOTICE); - return false; - } - $em = $this->_i2osp($m2, $modBits >> 3); - if ($em === false) { - user_error('Invalid signature', E_USER_NOTICE); - return false; - } - - // EMSA-PSS verification - - return $this->_emsa_pss_verify($m, $em, $modBits - 1); - } - - /** - * EMSA-PKCS1-V1_5-ENCODE - * - * See {@link http://tools.ietf.org/html/rfc3447#section-9.2 RFC3447#section-9.2}. - * - * @access private - * @param String $m - * @param Integer $emLen - * @return String - */ - function _emsa_pkcs1_v1_5_encode($m, $emLen) - { - $h = $this->hash->hash($m); - if ($h === false) { - return false; - } - - // see http://tools.ietf.org/html/rfc3447#page-43 - switch ($this->hashName) { - case 'md2': - $t = pack('H*', '3020300c06082a864886f70d020205000410'); - break; - case 'md5': - $t = pack('H*', '3020300c06082a864886f70d020505000410'); - break; - case 'sha1': - $t = pack('H*', '3021300906052b0e03021a05000414'); - break; - case 'sha256': - $t = pack('H*', '3031300d060960864801650304020105000420'); - break; - case 'sha384': - $t = pack('H*', '3041300d060960864801650304020205000430'); - break; - case 'sha512': - $t = pack('H*', '3051300d060960864801650304020305000440'); - } - $t.= $h; - $tLen = strlen($t); - - if ($emLen < $tLen + 11) { - user_error('Intended encoded message length too short', E_USER_NOTICE); - return false; - } - - $ps = str_repeat(chr(0xFF), $emLen - $tLen - 3); - - $em = "\0\1$ps\0$t"; - - return $em; - } - - /** - * RSASSA-PKCS1-V1_5-SIGN - * - * See {@link http://tools.ietf.org/html/rfc3447#section-8.2.1 RFC3447#section-8.2.1}. - * - * @access private - * @param String $m - * @return String - */ - function _rsassa_pkcs1_v1_5_sign($m) - { - // EMSA-PKCS1-v1_5 encoding - - $em = $this->_emsa_pkcs1_v1_5_encode($m, $this->k); - if ($em === false) { - user_error('RSA modulus too short', E_USER_NOTICE); - return false; - } - - // RSA signature - - $m = $this->_os2ip($em); - $s = $this->_rsasp1($m); - $s = $this->_i2osp($s, $this->k); - - // Output the signature S - - return $s; - } - - /** - * RSASSA-PKCS1-V1_5-VERIFY - * - * See {@link http://tools.ietf.org/html/rfc3447#section-8.2.2 RFC3447#section-8.2.2}. - * - * @access private - * @param String $m - * @return String - */ - function _rsassa_pkcs1_v1_5_verify($m, $s) - { - // Length checking - - if (strlen($s) != $this->k) { - user_error('Invalid signature', E_USER_NOTICE); - return false; - } - - // RSA verification - - $s = $this->_os2ip($s); - $m2 = $this->_rsavp1($s); - if ($m2 === false) { - user_error('Invalid signature', E_USER_NOTICE); - return false; - } - $em = $this->_i2osp($m2, $this->k); - if ($em === false) { - user_error('Invalid signature', E_USER_NOTICE); - return false; - } - - // EMSA-PKCS1-v1_5 encoding - - $em2 = $this->_emsa_pkcs1_v1_5_encode($m, $this->k); - if ($em2 === false) { - user_error('RSA modulus too short', E_USER_NOTICE); - return false; - } - - // Compare - - return $em == $em2; - } - - /** - * Set Encryption Mode - * - * Valid values include CRYPT_RSA_ENCRYPTION_OAEP and CRYPT_RSA_ENCRYPTION_PKCS1. - * - * @access public - * @param Integer $mode - */ - function setEncryptionMode($mode) - { - $this->encryptionMode = $mode; - } - - /** - * Set Signature Mode - * - * Valid values include CRYPT_RSA_SIGNATURE_PSS and CRYPT_RSA_SIGNATURE_PKCS1 - * - * @access public - * @param Integer $mode - */ - function setSignatureMode($mode) - { - $this->signatureMode = $mode; - } - - /** - * Encryption - * - * Both CRYPT_RSA_ENCRYPTION_OAEP and CRYPT_RSA_ENCRYPTION_PKCS1 both place limits on how long $plaintext can be. - * If $plaintext exceeds those limits it will be broken up so that it does and the resultant ciphertext's will - * be concatenated together. - * - * @see decrypt() - * @access public - * @param String $plaintext - * @return String - */ - function encrypt($plaintext) - { - switch ($this->encryptionMode) { - case CRYPT_RSA_ENCRYPTION_PKCS1: - $plaintext = str_split($plaintext, $this->k - 11); - $ciphertext = ''; - foreach ($plaintext as $m) { - $ciphertext.= $this->_rsaes_pkcs1_v1_5_encrypt($m); - } - return $ciphertext; - //case CRYPT_RSA_ENCRYPTION_OAEP: - default: - $plaintext = str_split($plaintext, $this->k - 2 * $this->hLen - 2); - $ciphertext = ''; - foreach ($plaintext as $m) { - $ciphertext.= $this->_rsaes_oaep_encrypt($m); - } - return $ciphertext; - } - } - - /** - * Decryption - * - * @see encrypt() - * @access public - * @param String $plaintext - * @return String - */ - function decrypt($ciphertext) - { - switch ($this->encryptionMode) { - case CRYPT_RSA_ENCRYPTION_PKCS1: - $ciphertext = str_split($ciphertext, $this->k); - $plaintext = ''; - foreach ($ciphertext as $c) { - $temp = $this->_rsaes_pkcs1_v1_5_decrypt($c); - if ($temp === false) { - return false; - } - $plaintext.= $temp; - } - return $plaintext; - //case CRYPT_RSA_ENCRYPTION_OAEP: - default: - $ciphertext = str_split($ciphertext, $this->k); - $plaintext = ''; - foreach ($ciphertext as $c) { - $temp = $this->_rsaes_oaep_decrypt($c); - if ($temp === false) { - return false; - } - $plaintext.= $temp; - } - return $plaintext; - } - } - - /** - * Create a signature - * - * @see verify() - * @access public - * @param String $message - * @return String - */ - function sign($message) - { - switch ($this->signatureMode) { - case CRYPT_RSA_SIGNATURE_PKCS1: - return $this->_rsassa_pkcs1_v1_5_sign($message); - //case CRYPT_RSA_SIGNATURE_PSS: - default: - return $this->_rsassa_pss_sign($message); - } - } - - /** - * Verifies a signature - * - * @see sign() - * @access public - * @param String $message - * @param String $signature - * @return Boolean - */ - function verify($message, $signature) - { - switch ($this->signatureMode) { - case CRYPT_RSA_SIGNATURE_PKCS1: - return $this->_rsassa_pkcs1_v1_5_verify($message, $signature); - //case CRYPT_RSA_SIGNATURE_PSS: - default: - return $this->_rsassa_pss_verify($message, $signature); - } - } + + * createKey()); + * + * $plaintext = 'terrafrost'; + * + * $rsa->loadKey($privatekey); + * $ciphertext = $rsa->encrypt($plaintext); + * + * $rsa->loadKey($publickey); + * echo $rsa->decrypt($ciphertext); + * ?> + * + * + * Here's an example of how to create signatures and verify signatures with this library: + * + * createKey()); + * + * $plaintext = 'terrafrost'; + * + * $rsa->loadKey($privatekey); + * $signature = $rsa->sign($plaintext); + * + * $rsa->loadKey($publickey); + * echo $rsa->verify($plaintext, $signature) ? 'verified' : 'unverified'; + * ?> + * + * + * LICENSE: This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * @category Crypt + * @package Crypt_RSA + * @author Jim Wigginton + * @copyright MMIX Jim Wigginton + * @license http://www.gnu.org/licenses/lgpl.txt + * @version $Id: RSA.php,v 1.14 2010/03/01 17:28:19 terrafrost Exp $ + * @link http://phpseclib.sourceforge.net + */ + +/** + * Include Math_BigInteger + */ +require_once('Math/BigInteger.php'); + +/** + * Include Crypt_Random + */ +require_once('Crypt/Random.php'); + +/** + * Include Crypt_Hash + */ +require_once('Crypt/Hash.php'); + +/**#@+ + * @access public + * @see Crypt_RSA::encrypt() + * @see Crypt_RSA::decrypt() + */ +/** + * Use {@link http://en.wikipedia.org/wiki/Optimal_Asymmetric_Encryption_Padding Optimal Asymmetric Encryption Padding} + * (OAEP) for encryption / decryption. + * + * Uses sha1 by default. + * + * @see Crypt_RSA::setHash() + * @see Crypt_RSA::setMGFHash() + */ +define('CRYPT_RSA_ENCRYPTION_OAEP', 1); +/** + * Use PKCS#1 padding. + * + * Although CRYPT_RSA_ENCRYPTION_OAEP offers more security, including PKCS#1 padding is necessary for purposes of backwards + * compatability with protocols (like SSH-1) written before OAEP's introduction. + */ +define('CRYPT_RSA_ENCRYPTION_PKCS1', 2); +/**#@-*/ + +/**#@+ + * @access public + * @see Crypt_RSA::sign() + * @see Crypt_RSA::verify() + * @see Crypt_RSA::setHash() + */ +/** + * Use the Probabilistic Signature Scheme for signing + * + * Uses sha1 by default. + * + * @see Crypt_RSA::setSaltLength() + * @see Crypt_RSA::setMGFHash() + */ +define('CRYPT_RSA_SIGNATURE_PSS', 1); +/** + * Use the PKCS#1 scheme by default. + * + * Although CRYPT_RSA_SIGNATURE_PSS offers more security, including PKCS#1 signing is necessary for purposes of backwards + * compatability with protocols (like SSH-2) written before PSS's introduction. + */ +define('CRYPT_RSA_SIGNATURE_PKCS1', 2); +/**#@-*/ + +/**#@+ + * @access private + * @see Crypt_RSA::createKey() + */ +/** + * ASN1 Integer + */ +define('CRYPT_RSA_ASN1_INTEGER', 2); +/** + * ASN1 Sequence (with the constucted bit set) + */ +define('CRYPT_RSA_ASN1_SEQUENCE', 48); +/**#@-*/ + +/**#@+ + * @access private + * @see Crypt_RSA::Crypt_RSA() + */ +/** + * To use the pure-PHP implementation + */ +define('CRYPT_RSA_MODE_INTERNAL', 1); +/** + * To use the OpenSSL library + * + * (if enabled; otherwise, the internal implementation will be used) + */ +define('CRYPT_RSA_MODE_OPENSSL', 2); +/**#@-*/ + +/**#@+ + * @access public + * @see Crypt_RSA::createKey() + * @see Crypt_RSA::setPrivateKeyFormat() + */ +/** + * PKCS#1 formatted private key + * + * Used by OpenSSH + */ +define('CRYPT_RSA_PRIVATE_FORMAT_PKCS1', 0); +/**#@-*/ + +/**#@+ + * @access public + * @see Crypt_RSA::createKey() + * @see Crypt_RSA::setPublicKeyFormat() + */ +/** + * Raw public key + * + * An array containing two Math_BigInteger objects. + * + * The exponent can be indexed with any of the following: + * + * 0, e, exponent, publicExponent + * + * The modulus can be indexed with any of the following: + * + * 1, n, modulo, modulus + */ +define('CRYPT_RSA_PUBLIC_FORMAT_RAW', 1); +/** + * PKCS#1 formatted public key + */ +define('CRYPT_RSA_PUBLIC_FORMAT_PKCS1', 2); +/** + * OpenSSH formatted public key + * + * Place in $HOME/.ssh/authorized_keys + */ +define('CRYPT_RSA_PUBLIC_FORMAT_OPENSSH', 3); +/**#@-*/ + +/** + * Pure-PHP PKCS#1 compliant implementation of RSA. + * + * @author Jim Wigginton + * @version 0.1.0 + * @access public + * @package Crypt_RSA + */ +class Crypt_RSA { + /** + * Precomputed Zero + * + * @var Array + * @access private + */ + var $zero; + + /** + * Precomputed One + * + * @var Array + * @access private + */ + var $one; + + /** + * Private Key Format + * + * @var Integer + * @access private + */ + var $privateKeyFormat = CRYPT_RSA_PRIVATE_FORMAT_PKCS1; + + /** + * Public Key Format + * + * @var Integer + * @access public + */ + var $publicKeyFormat = CRYPT_RSA_PUBLIC_FORMAT_PKCS1; + + /** + * Modulus (ie. n) + * + * @var Math_BigInteger + * @access private + */ + var $modulus; + + /** + * Modulus length + * + * @var Math_BigInteger + * @access private + */ + var $k; + + /** + * Exponent (ie. e or d) + * + * @var Math_BigInteger + * @access private + */ + var $exponent; + + /** + * Primes for Chinese Remainder Theorem (ie. p and q) + * + * @var Array + * @access private + */ + var $primes; + + /** + * Exponents for Chinese Remainder Theorem (ie. dP and dQ) + * + * @var Array + * @access private + */ + var $exponents; + + /** + * Coefficients for Chinese Remainder Theorem (ie. qInv) + * + * @var Array + * @access private + */ + var $coefficients; + + /** + * Hash name + * + * @var String + * @access private + */ + var $hashName; + + /** + * Hash function + * + * @var Crypt_Hash + * @access private + */ + var $hash; + + /** + * Length of hash function output + * + * @var Integer + * @access private + */ + var $hLen; + + /** + * Length of salt + * + * @var Integer + * @access private + */ + var $sLen; + + /** + * Hash function for the Mask Generation Function + * + * @var Crypt_Hash + * @access private + */ + var $mgfHash; + + /** + * Length of MGF hash function output + * + * @var Integer + * @access private + */ + var $mgfHLen; + + /** + * Encryption mode + * + * @var Integer + * @access private + */ + var $encryptionMode = CRYPT_RSA_ENCRYPTION_OAEP; + + /** + * Signature mode + * + * @var Integer + * @access private + */ + var $signatureMode = CRYPT_RSA_SIGNATURE_PSS; + + /** + * Public Exponent + * + * @var Mixed + * @access private + */ + var $publicExponent = false; + + /** + * Password + * + * @var String + * @access private + */ + var $password = ''; + + /** + * The constructor + * + * If you want to make use of the openssl extension, you'll need to set the mode manually, yourself. The reason + * Crypt_RSA doesn't do it is because OpenSSL doesn't fail gracefully. openssl_pkey_new(), in particular, requires + * openssl.cnf be present somewhere and, unfortunately, the only real way to find out is too late. + * + * @return Crypt_RSA + * @access public + */ + function Crypt_RSA() + { + if ( !defined('CRYPT_RSA_MODE') ) { + switch (true) { + //case extension_loaded('openssl') && version_compare(PHP_VERSION, '4.2.0', '>='): + // define('CRYPT_RSA_MODE', CRYPT_RSA_MODE_OPENSSL); + // break; + default: + define('CRYPT_RSA_MODE', CRYPT_RSA_MODE_INTERNAL); + } + } + + $this->zero = new Math_BigInteger(); + $this->one = new Math_BigInteger(1); + + $this->hash = new Crypt_Hash('sha1'); + $this->hLen = $this->hash->getLength(); + $this->hashName = 'sha1'; + $this->mgfHash = new Crypt_Hash('sha1'); + $this->mgfHLen = $this->mgfHash->getLength(); + } + + /** + * Create public / private key pair + * + * Returns an array with the following three elements: + * - 'privatekey': The private key. + * - 'publickey': The public key. + * - 'partialkey': A partially computed key (if the execution time exceeded $timeout). + * Will need to be passed back to Crypt_RSA::createKey() as the third parameter for further processing. + * + * @access public + * @param optional Integer $bits + * @param optional Integer $timeout + * @param optional Math_BigInteger $p + */ + function createKey($bits = 1024, $timeout = false, $partial = array()) + { + if ( CRYPT_RSA_MODE == CRYPT_RSA_MODE_OPENSSL ) { + $rsa = openssl_pkey_new(array('private_key_bits' => $bits)); + openssl_pkey_export($rsa, $privatekey); + $publickey = openssl_pkey_get_details($rsa); + $publickey = $publickey['key']; + + if ($this->privateKeyFormat != CRYPT_RSA_PRIVATE_FORMAT_PKCS1) { + $privatekey = call_user_func_array(array($this, '_convertPrivateKey'), array_values($this->_parseKey($privatekey, CRYPT_RSA_PRIVATE_FORMAT_PKCS1))); + $publickey = call_user_func_array(array($this, '_convertPublicKey'), array_values($this->_parseKey($publickey, CRYPT_RSA_PUBLIC_FORMAT_PKCS1))); + } + + return array( + 'privatekey' => $privatekey, + 'publickey' => $publickey, + 'partialkey' => false + ); + } + + static $e; + if (!isset($e)) { + if (!defined('CRYPT_RSA_EXPONENT')) { + // http://en.wikipedia.org/wiki/65537_%28number%29 + define('CRYPT_RSA_EXPONENT', '65537'); + } + if (!defined('CRYPT_RSA_COMMENT')) { + define('CRYPT_RSA_COMMENT', 'phpseclib-generated-key'); + } + // per , this number ought not result in primes smaller + // than 256 bits. + if (!defined('CRYPT_RSA_SMALLEST_PRIME')) { + define('CRYPT_RSA_SMALLEST_PRIME', 4096); + } + + $e = new Math_BigInteger(CRYPT_RSA_EXPONENT); + } + + extract($this->_generateMinMax($bits)); + $absoluteMin = $min; + $temp = $bits >> 1; + if ($temp > CRYPT_RSA_SMALLEST_PRIME) { + $num_primes = floor($bits / CRYPT_RSA_SMALLEST_PRIME); + $temp = CRYPT_RSA_SMALLEST_PRIME; + } else { + $num_primes = 2; + } + extract($this->_generateMinMax($temp + $bits % $temp)); + $finalMax = $max; + extract($this->_generateMinMax($temp)); + + $generator = new Math_BigInteger(); + $generator->setRandomGenerator('crypt_random'); + + $n = $this->one->copy(); + if (!empty($partial)) { + extract(unserialize($partial)); + } else { + $exponents = $coefficients = $primes = array(); + $lcm = array( + 'top' => $this->one->copy(), + 'bottom' => false + ); + } + + $start = time(); + $i0 = count($primes) + 1; + + do { + for ($i = $i0; $i <= $num_primes; $i++) { + if ($timeout !== false) { + $timeout-= time() - $start; + $start = time(); + if ($timeout <= 0) { + return serialize(array( + 'privatekey' => '', + 'publickey' => '', + 'partialkey' => array( + 'primes' => $primes, + 'coefficients' => $coefficients, + 'lcm' => $lcm, + 'exponents' => $exponents + ) + )); + } + } + + if ($i == $num_primes) { + list($min, $temp) = $absoluteMin->divide($n); + if (!$temp->equals($this->zero)) { + $min = $min->add($this->one); // ie. ceil() + } + $primes[$i] = $generator->randomPrime($min, $finalMax, $timeout); + } else { + $primes[$i] = $generator->randomPrime($min, $max, $timeout); + } + + if ($primes[$i] === false) { // if we've reached the timeout + return array( + 'privatekey' => '', + 'publickey' => '', + 'partialkey' => empty($primes) ? '' : serialize(array( + 'primes' => array_slice($primes, 0, $i - 1), + 'coefficients' => $coefficients, + 'lcm' => $lcm, + 'exponents' => $exponents + )) + ); + } + + // the first coefficient is calculated differently from the rest + // ie. instead of being $primes[1]->modInverse($primes[2]), it's $primes[2]->modInverse($primes[1]) + if ($i > 2) { + $coefficients[$i] = $n->modInverse($primes[$i]); + } + + $n = $n->multiply($primes[$i]); + + $temp = $primes[$i]->subtract($this->one); + + // textbook RSA implementations use Euler's totient function instead of the least common multiple. + // see http://en.wikipedia.org/wiki/Euler%27s_totient_function + $lcm['top'] = $lcm['top']->multiply($temp); + $lcm['bottom'] = $lcm['bottom'] === false ? $temp : $lcm['bottom']->gcd($temp); + + $exponents[$i] = $e->modInverse($temp); + } + + list($lcm) = $lcm['top']->divide($lcm['bottom']); + $gcd = $lcm->gcd($e); + $i0 = 1; + } while (!$gcd->equals($this->one)); + + $d = $e->modInverse($lcm); + + $coefficients[2] = $primes[2]->modInverse($primes[1]); + + // from : + // RSAPrivateKey ::= SEQUENCE { + // version Version, + // modulus INTEGER, -- n + // publicExponent INTEGER, -- e + // privateExponent INTEGER, -- d + // prime1 INTEGER, -- p + // prime2 INTEGER, -- q + // exponent1 INTEGER, -- d mod (p-1) + // exponent2 INTEGER, -- d mod (q-1) + // coefficient INTEGER, -- (inverse of q) mod p + // otherPrimeInfos OtherPrimeInfos OPTIONAL + // } + + return array( + 'privatekey' => $this->_convertPrivateKey($n, $e, $d, $primes, $exponents, $coefficients), + 'publickey' => $this->_convertPublicKey($n, $e), + 'partialkey' => false + ); + } + + /** + * Convert a private key to the appropriate format. + * + * @access private + * @see setPrivateKeyFormat() + * @param String $RSAPrivateKey + * @return String + */ + function _convertPrivateKey($n, $e, $d, $primes, $exponents, $coefficients) + { + $num_primes = count($primes); + $raw = array( + 'version' => $num_primes == 2 ? chr(0) : chr(1), // two-prime vs. multi + 'modulus' => $n->toBytes(true), + 'publicExponent' => $e->toBytes(true), + 'privateExponent' => $d->toBytes(true), + 'prime1' => $primes[1]->toBytes(true), + 'prime2' => $primes[2]->toBytes(true), + 'exponent1' => $exponents[1]->toBytes(true), + 'exponent2' => $exponents[2]->toBytes(true), + 'coefficient' => $coefficients[2]->toBytes(true) + ); + + // if the format in question does not support multi-prime rsa and multi-prime rsa was used, + // call _convertPublicKey() instead. + switch ($this->privateKeyFormat) { + default: // eg. CRYPT_RSA_PRIVATE_FORMAT_PKCS1 + $components = array(); + foreach ($raw as $name => $value) { + $components[$name] = pack('Ca*a*', CRYPT_RSA_ASN1_INTEGER, $this->_encodeLength(strlen($value)), $value); + } + + $RSAPrivateKey = implode('', $components); + + if ($num_primes > 2) { + $OtherPrimeInfos = ''; + for ($i = 3; $i <= $num_primes; $i++) { + // OtherPrimeInfos ::= SEQUENCE SIZE(1..MAX) OF OtherPrimeInfo + // + // OtherPrimeInfo ::= SEQUENCE { + // prime INTEGER, -- ri + // exponent INTEGER, -- di + // coefficient INTEGER -- ti + // } + $OtherPrimeInfo = pack('Ca*a*', CRYPT_RSA_ASN1_INTEGER, $this->_encodeLength(strlen($primes[$i]->toBytes(true))), $primes[$i]->toBytes(true)); + $OtherPrimeInfo.= pack('Ca*a*', CRYPT_RSA_ASN1_INTEGER, $this->_encodeLength(strlen($exponents[$i]->toBytes(true))), $exponents[$i]->toBytes(true)); + $OtherPrimeInfo.= pack('Ca*a*', CRYPT_RSA_ASN1_INTEGER, $this->_encodeLength(strlen($coefficients[$i]->toBytes(true))), $coefficients[$i]->toBytes(true)); + $OtherPrimeInfos.= pack('Ca*a*', CRYPT_RSA_ASN1_SEQUENCE, $this->_encodeLength(strlen($OtherPrimeInfo)), $OtherPrimeInfo); + } + $RSAPrivateKey.= pack('Ca*a*', CRYPT_RSA_ASN1_SEQUENCE, $this->_encodeLength(strlen($OtherPrimeInfos)), $OtherPrimeInfos); + } + + $RSAPrivateKey = pack('Ca*a*', CRYPT_RSA_ASN1_SEQUENCE, $this->_encodeLength(strlen($RSAPrivateKey)), $RSAPrivateKey); + + if (!empty($this->password)) { + $iv = $this->_random(8); + $symkey = pack('H*', md5($this->password . $iv)); // symkey is short for symmetric key + $symkey.= substr(pack('H*', md5($symkey . $this->password . $iv)), 0, 8); + if (!class_exists('Crypt_TripleDES')) { + require_once('Crypt/TripleDES.php'); + } + $des = new Crypt_TripleDES(); + $des->setKey($symkey); + $des->setIV($iv); + $iv = strtoupper(bin2hex($iv)); + $RSAPrivateKey = "-----BEGIN RSA PRIVATE KEY-----\r\n" . + "Proc-Type: 4,ENCRYPTED\r\n" . + "DEK-Info: DES-EDE3-CBC,$iv\r\n" . + "\r\n" . + chunk_split(base64_encode($des->encrypt($RSAPrivateKey))) . + '-----END RSA PRIVATE KEY-----'; + } else { + $RSAPrivateKey = "-----BEGIN RSA PRIVATE KEY-----\r\n" . + chunk_split(base64_encode($RSAPrivateKey)) . + '-----END RSA PRIVATE KEY-----'; + } + + return $RSAPrivateKey; + } + } + + /** + * Convert a public key to the appropriate format + * + * @access private + * @see setPublicKeyFormat() + * @param String $RSAPrivateKey + * @return String + */ + function _convertPublicKey($n, $e) + { + $modulus = $n->toBytes(true); + $publicExponent = $e->toBytes(true); + + switch ($this->publicKeyFormat) { + case CRYPT_RSA_PUBLIC_FORMAT_RAW: + return array('e' => $e->copy(), 'n' => $n->copy()); + case CRYPT_RSA_PUBLIC_FORMAT_OPENSSH: + // from : + // string "ssh-rsa" + // mpint e + // mpint n + $RSAPublicKey = pack('Na*Na*Na*', strlen('ssh-rsa'), 'ssh-rsa', strlen($publicExponent), $publicExponent, strlen($modulus), $modulus); + $RSAPublicKey = 'ssh-rsa ' . base64_encode($RSAPublicKey) . ' ' . CRYPT_RSA_COMMENT; + + return $RSAPublicKey; + default: // eg. CRYPT_RSA_PUBLIC_FORMAT_PKCS1 + // from : + // RSAPublicKey ::= SEQUENCE { + // modulus INTEGER, -- n + // publicExponent INTEGER -- e + // } + $components = array( + 'modulus' => pack('Ca*a*', CRYPT_RSA_ASN1_INTEGER, $this->_encodeLength(strlen($modulus)), $modulus), + 'publicExponent' => pack('Ca*a*', CRYPT_RSA_ASN1_INTEGER, $this->_encodeLength(strlen($publicExponent)), $publicExponent) + ); + + $RSAPublicKey = pack('Ca*a*a*', + CRYPT_RSA_ASN1_SEQUENCE, $this->_encodeLength(strlen($components['modulus']) + strlen($components['publicExponent'])), + $components['modulus'], $components['publicExponent'] + ); + + $RSAPublicKey = "-----BEGIN PUBLIC KEY-----\r\n" . + chunk_split(base64_encode($RSAPublicKey)) . + '-----END PUBLIC KEY-----'; + + return $RSAPublicKey; + } + } + + /** + * Break a public or private key down into its constituant components + * + * @access private + * @see _convertPublicKey() + * @see _convertPrivateKey() + * @param String $key + * @param Integer $type + * @return Array + */ + function _parseKey($key, $type) + { + switch ($type) { + case CRYPT_RSA_PUBLIC_FORMAT_RAW: + if (!is_array($key)) { + return false; + } + $components = array(); + switch (true) { + case isset($key['e']): + $components['publicExponent'] = $key['e']->copy(); + break; + case isset($key['exponent']): + $components['publicExponent'] = $key['exponent']->copy(); + break; + case isset($key['publicExponent']): + $components['publicExponent'] = $key['publicExponent']->copy(); + break; + case isset($key[0]): + $components['publicExponent'] = $key[0]->copy(); + } + switch (true) { + case isset($key['n']): + $components['modulus'] = $key['n']->copy(); + break; + case isset($key['modulo']): + $components['modulus'] = $key['modulo']->copy(); + break; + case isset($key['modulus']): + $components['modulus'] = $key['modulus']->copy(); + break; + case isset($key[1]): + $components['modulus'] = $key[1]->copy(); + } + return $components; + case CRYPT_RSA_PRIVATE_FORMAT_PKCS1: + case CRYPT_RSA_PUBLIC_FORMAT_PKCS1: + /* Although PKCS#1 proposes a format that public and private keys can use, encrypting them is + "outside the scope" of PKCS#1. PKCS#1 then refers you to PKCS#12 and PKCS#15 if you're wanting to + protect private keys, however, that's not what OpenSSL* does. OpenSSL protects private keys by adding + two new "fields" to the key - DEK-Info and Proc-Type. These fields are discussed here: + + http://tools.ietf.org/html/rfc1421#section-4.6.1.1 + http://tools.ietf.org/html/rfc1421#section-4.6.1.3 + + DES-EDE3-CBC as an algorithm, however, is not discussed anywhere, near as I can tell. + DES-CBC and DES-EDE are discussed in RFC1423, however, DES-EDE3-CBC isn't, nor is its key derivation + function. As is, the definitive authority on this encoding scheme isn't the IETF but rather OpenSSL's + own implementation. ie. the implementation *is* the standard and any bugs that may exist in that + implementation are part of the standard, as well. + + * OpenSSL is the de facto standard. It's utilized by OpenSSH and other projects */ + if (preg_match('#DEK-Info: (.+),(.+)#', $key, $matches)) { + $iv = pack('H*', trim($matches[2])); + $symkey = pack('H*', md5($this->password . $iv)); // symkey is short for symmetric key + $symkey.= substr(pack('H*', md5($symkey . $this->password . $iv)), 0, 8); + $ciphertext = preg_replace('#.+(\r|\n|\r\n)\1|[\r\n]|-.+-#s', '', $key); + $ciphertext = preg_match('#^[a-zA-Z\d/+]*={0,2}$#', $ciphertext) ? base64_decode($ciphertext) : false; + if ($ciphertext === false) { + $ciphertext = $key; + } + switch ($matches[1]) { + case 'DES-EDE3-CBC': + if (!class_exists('Crypt_TripleDES')) { + require_once('Crypt/TripleDES.php'); + } + $crypto = new Crypt_TripleDES(); + break; + case 'DES-CBC': + if (!class_exists('Crypt_DES')) { + require_once('Crypt/DES.php'); + } + $crypto = new Crypt_DES(); + break; + default: + return false; + } + $crypto->setKey($symkey); + $crypto->setIV($iv); + $decoded = $crypto->decrypt($ciphertext); + } else { + $decoded = preg_replace('#-.+-|[\r\n]#', '', $key); + $decoded = preg_match('#^[a-zA-Z\d/+]*={0,2}$#', $decoded) ? base64_decode($decoded) : false; + } + + if ($decoded !== false) { + $key = $decoded; + } + + $components = array(); + + if (ord($this->_string_shift($key)) != CRYPT_RSA_ASN1_SEQUENCE) { + return false; + } + if ($this->_decodeLength($key) != strlen($key)) { + return false; + } + + $tag = ord($this->_string_shift($key)); + if ($tag == CRYPT_RSA_ASN1_SEQUENCE) { + /* intended for keys for which OpenSSL's asn1parse returns the following: + + 0:d=0 hl=4 l= 290 cons: SEQUENCE + 4:d=1 hl=2 l= 13 cons: SEQUENCE + 6:d=2 hl=2 l= 9 prim: OBJECT :rsaEncryption + 17:d=2 hl=2 l= 0 prim: NULL + 19:d=1 hl=4 l= 271 prim: BIT STRING */ + $this->_string_shift($key, $this->_decodeLength($key)); + $this->_string_shift($key); // skip over the BIT STRING tag + $this->_decodeLength($key); // skip over the BIT STRING length + // "The initial octet shall encode, as an unsigned binary integer wtih bit 1 as the least significant bit, the number of + // unused bits in teh final subsequent octet. The number shall be in the range zero to seven." + // -- http://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf (section 8.6.2.2) + $this->_string_shift($key); + if (ord($this->_string_shift($key)) != CRYPT_RSA_ASN1_SEQUENCE) { + return false; + } + if ($this->_decodeLength($key) != strlen($key)) { + return false; + } + $tag = ord($this->_string_shift($key)); + } + if ($tag != CRYPT_RSA_ASN1_INTEGER) { + return false; + } + + $length = $this->_decodeLength($key); + $temp = $this->_string_shift($key, $length); + if (strlen($temp) != 1 || ord($temp) > 2) { + $components['modulus'] = new Math_BigInteger($temp, -256); + $this->_string_shift($key); // skip over CRYPT_RSA_ASN1_INTEGER + $length = $this->_decodeLength($key); + $components[$type == CRYPT_RSA_PUBLIC_FORMAT_PKCS1 ? 'publicExponent' : 'privateExponent'] = new Math_BigInteger($this->_string_shift($key, $length), -256); + + return $components; + } + if (ord($this->_string_shift($key)) != CRYPT_RSA_ASN1_INTEGER) { + return false; + } + $length = $this->_decodeLength($key); + $components['modulus'] = new Math_BigInteger($this->_string_shift($key, $length), -256); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['publicExponent'] = new Math_BigInteger($this->_string_shift($key, $length), -256); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['privateExponent'] = new Math_BigInteger($this->_string_shift($key, $length), -256); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['primes'] = array(1 => new Math_BigInteger($this->_string_shift($key, $length), -256)); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['primes'][] = new Math_BigInteger($this->_string_shift($key, $length), -256); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['exponents'] = array(1 => new Math_BigInteger($this->_string_shift($key, $length), -256)); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['exponents'][] = new Math_BigInteger($this->_string_shift($key, $length), -256); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['coefficients'] = array(2 => new Math_BigInteger($this->_string_shift($key, $length), -256)); + + if (!empty($key)) { + if (ord($this->_string_shift($key)) != CRYPT_RSA_ASN1_SEQUENCE) { + return false; + } + $this->_decodeLength($key); + while (!empty($key)) { + if (ord($this->_string_shift($key)) != CRYPT_RSA_ASN1_SEQUENCE) { + return false; + } + $this->_decodeLength($key); + $key = substr($key, 1); + $length = $this->_decodeLength($key); + $components['primes'][] = new Math_BigInteger($this->_string_shift($key, $length), -256); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['exponents'][] = new Math_BigInteger($this->_string_shift($key, $length), -256); + $this->_string_shift($key); + $length = $this->_decodeLength($key); + $components['coefficients'][] = new Math_BigInteger($this->_string_shift($key, $length), -256); + } + } + + return $components; + case CRYPT_RSA_PUBLIC_FORMAT_OPENSSH: + $key = base64_decode(preg_replace('#^ssh-rsa | .+$#', '', $key)); + if ($key === false) { + return false; + } + + $cleanup = substr($key, 0, 11) == "\0\0\0\7ssh-rsa"; + + extract(unpack('Nlength', $this->_string_shift($key, 4))); + $publicExponent = new Math_BigInteger($this->_string_shift($key, $length), -256); + extract(unpack('Nlength', $this->_string_shift($key, 4))); + $modulus = new Math_BigInteger($this->_string_shift($key, $length), -256); + + if ($cleanup && strlen($key)) { + extract(unpack('Nlength', $this->_string_shift($key, 4))); + return array( + 'modulus' => new Math_BigInteger($this->_string_shift($key, $length), -256), + 'publicExponent' => $modulus + ); + } else { + return array( + 'modulus' => $modulus, + 'publicExponent' => $publicExponent + ); + } + } + } + + /** + * Loads a public or private key + * + * Returns true on success and false on failure (ie. an incorrect password was provided or the key was malformed) + * + * @access public + * @param String $key + * @param Integer $type optional + */ + function loadKey($key, $type = CRYPT_RSA_PRIVATE_FORMAT_PKCS1) + { + $components = $this->_parseKey($key, $type); + if ($components === false) { + return false; + } + + $this->modulus = $components['modulus']; + $this->k = strlen($this->modulus->toBytes()); + $this->exponent = isset($components['privateExponent']) ? $components['privateExponent'] : $components['publicExponent']; + if (isset($components['primes'])) { + $this->primes = $components['primes']; + $this->exponents = $components['exponents']; + $this->coefficients = $components['coefficients']; + $this->publicExponent = $components['publicExponent']; + } else { + $this->primes = array(); + $this->exponents = array(); + $this->coefficients = array(); + $this->publicExponent = false; + } + + return true; + } + + /** + * Sets the password + * + * Private keys can be encrypted with a password. To unset the password, pass in the empty string or false. + * Or rather, pass in $password such that empty($password) is true. + * + * @see createKey() + * @see loadKey() + * @access public + * @param String $password + */ + function setPassword($password) + { + $this->password = $password; + } + + /** + * Defines the public key + * + * Some private key formats define the public exponent and some don't. Those that don't define it are problematic when + * used in certain contexts. For example, in SSH-2, RSA authentication works by sending the public key along with a + * message signed by the private key to the server. The SSH-2 server looks the public key up in an index of public keys + * and if it's present then proceeds to verify the signature. Problem is, if your private key doesn't include the public + * exponent this won't work unless you manually add the public exponent. + * + * Do note that when a new key is loaded the index will be cleared. + * + * Returns true on success, false on failure + * + * @see getPublicKey() + * @access public + * @param String $key + * @param Integer $type optional + * @return Boolean + */ + function setPublicKey($key, $type = CRYPT_RSA_PUBLIC_FORMAT_PKCS1) + { + $components = $this->_parseKey($key, $type); + if (empty($this->modulus) || !$this->modulus->equals($components['modulus'])) { + return false; + } + $this->publicExponent = $components['publicExponent']; + } + + /** + * Returns the public key + * + * The public key is only returned under two circumstances - if the private key had the public key embedded within it + * or if the public key was set via setPublicKey(). If the currently loaded key is supposed to be the public key this + * function won't return it since this library, for the most part, doesn't distinguish between public and private keys. + * + * @see getPublicKey() + * @access public + * @param String $key + * @param Integer $type optional + */ + function getPublicKey($type = CRYPT_RSA_PUBLIC_FORMAT_PKCS1) + { + if (empty($this->modulus) || empty($this->publicExponent)) { + return false; + } + + $oldFormat = $this->publicKeyFormat; + $this->publicKeyFormat = $type; + $temp = $this->_convertPublicKey($this->modulus, $this->publicExponent); + $this->publicKeyFormat = $oldFormat; + return $temp; + } + + /** + * Generates the smallest and largest numbers requiring $bits bits + * + * @access private + * @param Integer $bits + * @return Array + */ + function _generateMinMax($bits) + { + $bytes = $bits >> 3; + $min = str_repeat(chr(0), $bytes); + $max = str_repeat(chr(0xFF), $bytes); + $msb = $bits & 7; + if ($msb) { + $min = chr(1 << ($msb - 1)) . $min; + $max = chr((1 << $msb) - 1) . $max; + } else { + $min[0] = chr(0x80); + } + + return array( + 'min' => new Math_BigInteger($min, 256), + 'max' => new Math_BigInteger($max, 256) + ); + } + + /** + * DER-decode the length + * + * DER supports lengths up to (2**8)**127, however, we'll only support lengths up to (2**8)**4. See + * {@link http://itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#p=13 X.690 8.1.3} for more information. + * + * @access private + * @param String $string + * @return Integer + */ + function _decodeLength(&$string) + { + $length = ord($this->_string_shift($string)); + if ( $length & 0x80 ) { // definite length, long form + $length&= 0x7F; + $temp = $this->_string_shift($string, $length); + list(, $length) = unpack('N', substr(str_pad($temp, 4, chr(0), STR_PAD_LEFT), -4)); + } + return $length; + } + + /** + * DER-encode the length + * + * DER supports lengths up to (2**8)**127, however, we'll only support lengths up to (2**8)**4. See + * {@link http://itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#p=13 X.690 8.1.3} for more information. + * + * @access private + * @param Integer $length + * @return String + */ + function _encodeLength($length) + { + if ($length <= 0x7F) { + return chr($length); + } + + $temp = ltrim(pack('N', $length), chr(0)); + return pack('Ca*', 0x80 | strlen($temp), $temp); + } + + /** + * String Shift + * + * Inspired by array_shift + * + * @param String $string + * @param optional Integer $index + * @return String + * @access private + */ + function _string_shift(&$string, $index = 1) + { + $substr = substr($string, 0, $index); + $string = substr($string, $index); + return $substr; + } + + /** + * Determines the private key format + * + * @see createKey() + * @access public + * @param Integer $format + */ + function setPrivateKeyFormat($format) + { + $this->privateKeyFormat = $format; + } + + /** + * Determines the public key format + * + * @see createKey() + * @access public + * @param Integer $format + */ + function setPublicKeyFormat($format) + { + $this->publicKeyFormat = $format; + } + + /** + * Determines which hashing function should be used + * + * Used with signature production / verification and (if the encryption mode is CRYPT_RSA_ENCRYPTION_OAEP) encryption and + * decryption. If $hash isn't supported, sha1 is used. + * + * @access public + * @param String $hash + */ + function setHash($hash) + { + // Crypt_Hash supports algorithms that PKCS#1 doesn't support. md5-96 and sha1-96, for example. + switch ($hash) { + case 'md2': + case 'md5': + case 'sha1': + case 'sha256': + case 'sha384': + case 'sha512': + $this->hash = new Crypt_Hash($hash); + $this->hashName = $hash; + break; + default: + $this->hash = new Crypt_Hash('sha1'); + $this->hashName = 'sha1'; + } + $this->hLen = $this->hash->getLength(); + } + + /** + * Determines which hashing function should be used for the mask generation function + * + * The mask generation function is used by CRYPT_RSA_ENCRYPTION_OAEP and CRYPT_RSA_SIGNATURE_PSS and although it's + * best if Hash and MGFHash are set to the same thing this is not a requirement. + * + * @access public + * @param String $hash + */ + function setMGFHash($hash) + { + // Crypt_Hash supports algorithms that PKCS#1 doesn't support. md5-96 and sha1-96, for example. + switch ($hash) { + case 'md2': + case 'md5': + case 'sha1': + case 'sha256': + case 'sha384': + case 'sha512': + $this->mgfHash = new Crypt_Hash($hash); + break; + default: + $this->mgfHash = new Crypt_Hash('sha1'); + } + $this->mgfHLen = $this->mgfHash->getLength(); + } + + /** + * Determines the salt length + * + * To quote from {@link http://tools.ietf.org/html/rfc3447#page-38 RFC3447#page-38}: + * + * Typical salt lengths in octets are hLen (the length of the output + * of the hash function Hash) and 0. + * + * @access public + * @param Integer $format + */ + function setSaltLength($sLen) + { + $this->sLen = $sLen; + } + + /** + * Generates a random string x bytes long + * + * @access public + * @param Integer $bytes + * @param optional Integer $nonzero + * @return String + */ + function _random($bytes, $nonzero = false) + { + $temp = ''; + if ($nonzero) { + for ($i = 0; $i < $bytes; $i++) { + $temp.= chr(crypt_random(1, 255)); + } + } else { + $ints = ($bytes + 1) >> 2; + for ($i = 0; $i < $ints; $i++) { + $temp.= pack('N', crypt_random()); + } + $temp = substr($temp, 0, $bytes); + } + return $temp; + } + + /** + * Integer-to-Octet-String primitive + * + * See {@link http://tools.ietf.org/html/rfc3447#section-4.1 RFC3447#section-4.1}. + * + * @access private + * @param Math_BigInteger $x + * @param Integer $xLen + * @return String + */ + function _i2osp($x, $xLen) + { + $x = $x->toBytes(); + if (strlen($x) > $xLen) { + user_error('Integer too large', E_USER_NOTICE); + return false; + } + return str_pad($x, $xLen, chr(0), STR_PAD_LEFT); + } + + /** + * Octet-String-to-Integer primitive + * + * See {@link http://tools.ietf.org/html/rfc3447#section-4.2 RFC3447#section-4.2}. + * + * @access private + * @param String $x + * @return Math_BigInteger + */ + function _os2ip($x) + { + return new Math_BigInteger($x, 256); + } + + /** + * Exponentiate with or without Chinese Remainder Theorem + * + * See {@link http://tools.ietf.org/html/rfc3447#section-5.1.1 RFC3447#section-5.1.2}. + * + * @access private + * @param Math_BigInteger $x + * @return Math_BigInteger + */ + function _exponentiate($x) + { + if (empty($this->primes) || empty($this->coefficients) || empty($this->exponents)) { + return $x->modPow($this->exponent, $this->modulus); + } + + $num_primes = count($this->primes); + + if (defined('CRYPT_RSA_DISABLE_BLINDING')) { + $m_i = array( + 1 => $x->modPow($this->exponents[1], $this->primes[1]), + 2 => $x->modPow($this->exponents[2], $this->primes[2]) + ); + $h = $m_i[1]->subtract($m_i[2]); + $h = $h->multiply($this->coefficients[2]); + list(, $h) = $h->divide($this->primes[1]); + $m = $m_i[2]->add($h->multiply($this->primes[2])); + + $r = $this->primes[1]; + for ($i = 3; $i <= $num_primes; $i++) { + $m_i = $x->modPow($this->exponents[$i], $this->primes[$i]); + + $r = $r->multiply($this->primes[$i - 1]); + + $h = $m_i->subtract($m); + $h = $h->multiply($this->coefficients[$i]); + list(, $h) = $h->divide($this->primes[$i]); + + $m = $m->add($r->multiply($h)); + } + } else { + $smallest = $this->primes[1]; + for ($i = 2; $i <= $num_primes; $i++) { + if ($smallest->compare($this->primes[$i]) > 0) { + $smallest = $this->primes[$i]; + } + } + + $one = new Math_BigInteger(1); + $one->setRandomGenerator('crypt_random'); + + $r = $one->random($one, $smallest->subtract($one)); + + $m_i = array( + 1 => $this->_blind($x, $r, 1), + 2 => $this->_blind($x, $r, 2) + ); + $h = $m_i[1]->subtract($m_i[2]); + $h = $h->multiply($this->coefficients[2]); + list(, $h) = $h->divide($this->primes[1]); + $m = $m_i[2]->add($h->multiply($this->primes[2])); + + $r = $this->primes[1]; + for ($i = 3; $i <= $num_primes; $i++) { + $m_i = $this->_blind($x, $r, $i); + + $r = $r->multiply($this->primes[$i - 1]); + + $h = $m_i->subtract($m); + $h = $h->multiply($this->coefficients[$i]); + list(, $h) = $h->divide($this->primes[$i]); + + $m = $m->add($r->multiply($h)); + } + } + + return $m; + } + + /** + * Performs RSA Blinding + * + * Protects against timing attacks by employing RSA Blinding. + * Returns $x->modPow($this->exponents[$i], $this->primes[$i]) + * + * @access private + * @param Math_BigInteger $x + * @param Math_BigInteger $r + * @param Integer $i + * @return Math_BigInteger + */ + function _blind($x, $r, $i) + { + $x = $x->multiply($r->modPow($this->publicExponent, $this->primes[$i])); + + $x = $x->modPow($this->exponents[$i], $this->primes[$i]); + + $r = $r->modInverse($this->primes[$i]); + $x = $x->multiply($r); + list(, $x) = $x->divide($this->primes[$i]); + + return $x; + } + + /** + * RSAEP + * + * See {@link http://tools.ietf.org/html/rfc3447#section-5.1.1 RFC3447#section-5.1.1}. + * + * @access private + * @param Math_BigInteger $m + * @return Math_BigInteger + */ + function _rsaep($m) + { + if ($m->compare($this->zero) < 0 || $m->compare($this->modulus) > 0) { + user_error('Message representative out of range', E_USER_NOTICE); + return false; + } + return $this->_exponentiate($m); + } + + /** + * RSADP + * + * See {@link http://tools.ietf.org/html/rfc3447#section-5.1.2 RFC3447#section-5.1.2}. + * + * @access private + * @param Math_BigInteger $c + * @return Math_BigInteger + */ + function _rsadp($c) + { + if ($c->compare($this->zero) < 0 || $c->compare($this->modulus) > 0) { + user_error('Ciphertext representative out of range', E_USER_NOTICE); + return false; + } + return $this->_exponentiate($c); + } + + /** + * RSASP1 + * + * See {@link http://tools.ietf.org/html/rfc3447#section-5.2.1 RFC3447#section-5.2.1}. + * + * @access private + * @param Math_BigInteger $m + * @return Math_BigInteger + */ + function _rsasp1($m) + { + if ($m->compare($this->zero) < 0 || $m->compare($this->modulus) > 0) { + user_error('Message representative out of range', E_USER_NOTICE); + return false; + } + return $this->_exponentiate($m); + } + + /** + * RSAVP1 + * + * See {@link http://tools.ietf.org/html/rfc3447#section-5.2.2 RFC3447#section-5.2.2}. + * + * @access private + * @param Math_BigInteger $s + * @return Math_BigInteger + */ + function _rsavp1($s) + { + if ($s->compare($this->zero) < 0 || $s->compare($this->modulus) > 0) { + user_error('Signature representative out of range', E_USER_NOTICE); + return false; + } + return $this->_exponentiate($s); + } + + /** + * MGF1 + * + * See {@link http://tools.ietf.org/html/rfc3447#appendix-B.2.1 RFC3447#appendix-B.2.1}. + * + * @access private + * @param String $mgfSeed + * @param Integer $mgfLen + * @return String + */ + function _mgf1($mgfSeed, $maskLen) + { + // if $maskLen would yield strings larger than 4GB, PKCS#1 suggests a "Mask too long" error be output. + + $t = ''; + $count = ceil($maskLen / $this->mgfHLen); + for ($i = 0; $i < $count; $i++) { + $c = pack('N', $i); + $t.= $this->mgfHash->hash($mgfSeed . $c); + } + + return substr($t, 0, $maskLen); + } + + /** + * RSAES-OAEP-ENCRYPT + * + * See {@link http://tools.ietf.org/html/rfc3447#section-7.1.1 RFC3447#section-7.1.1} and + * {http://en.wikipedia.org/wiki/Optimal_Asymmetric_Encryption_Padding OAES}. + * + * @access private + * @param String $m + * @param String $l + * @return String + */ + function _rsaes_oaep_encrypt($m, $l = '') + { + $mLen = strlen($m); + + // Length checking + + // if $l is larger than two million terrabytes and you're using sha1, PKCS#1 suggests a "Label too long" error + // be output. + + if ($mLen > $this->k - 2 * $this->hLen - 2) { + user_error('Message too long', E_USER_NOTICE); + return false; + } + + // EME-OAEP encoding + + $lHash = $this->hash->hash($l); + $ps = str_repeat(chr(0), $this->k - $mLen - 2 * $this->hLen - 2); + $db = $lHash . $ps . chr(1) . $m; + $seed = $this->_random($this->hLen); + $dbMask = $this->_mgf1($seed, $this->k - $this->hLen - 1); + $maskedDB = $db ^ $dbMask; + $seedMask = $this->_mgf1($maskedDB, $this->hLen); + $maskedSeed = $seed ^ $seedMask; + $em = chr(0) . $maskedSeed . $maskedDB; + + // RSA encryption + + $m = $this->_os2ip($em); + $c = $this->_rsaep($m); + $c = $this->_i2osp($c, $this->k); + + // Output the ciphertext C + + return $c; + } + + /** + * RSAES-OAEP-DECRYPT + * + * See {@link http://tools.ietf.org/html/rfc3447#section-7.1.2 RFC3447#section-7.1.2}. The fact that the error + * messages aren't distinguishable from one another hinders debugging, but, to quote from RFC3447#section-7.1.2: + * + * Note. Care must be taken to ensure that an opponent cannot + * distinguish the different error conditions in Step 3.g, whether by + * error message or timing, or, more generally, learn partial + * information about the encoded message EM. Otherwise an opponent may + * be able to obtain useful information about the decryption of the + * ciphertext C, leading to a chosen-ciphertext attack such as the one + * observed by Manger [36]. + * + * As for $l... to quote from {@link http://tools.ietf.org/html/rfc3447#page-17 RFC3447#page-17}: + * + * Both the encryption and the decryption operations of RSAES-OAEP take + * the value of a label L as input. In this version of PKCS #1, L is + * the empty string; other uses of the label are outside the scope of + * this document. + * + * @access private + * @param String $c + * @param String $l + * @return String + */ + function _rsaes_oaep_decrypt($c, $l = '') + { + // Length checking + + // if $l is larger than two million terrabytes and you're using sha1, PKCS#1 suggests a "Label too long" error + // be output. + + if (strlen($c) != $this->k || $this->k < 2 * $this->hLen + 2) { + user_error('Decryption error', E_USER_NOTICE); + return false; + } + + // RSA decryption + + $c = $this->_os2ip($c); + $m = $this->_rsadp($c); + if ($m === false) { + user_error('Decryption error', E_USER_NOTICE); + return false; + } + $em = $this->_i2osp($m, $this->k); + + // EME-OAEP decoding + + $lHash = $this->hash->hash($l); + $y = ord($em[0]); + $maskedSeed = substr($em, 1, $this->hLen); + $maskedDB = substr($em, $this->hLen + 1); + $seedMask = $this->_mgf1($maskedDB, $this->hLen); + $seed = $maskedSeed ^ $seedMask; + $dbMask = $this->_mgf1($seed, $this->k - $this->hLen - 1); + $db = $maskedDB ^ $dbMask; + $lHash2 = substr($db, 0, $this->hLen); + $m = substr($db, $this->hLen); + if ($lHash != $lHash2) { + user_error('Decryption error', E_USER_NOTICE); + return false; + } + $m = ltrim($m, chr(0)); + if (ord($m[0]) != 1) { + user_error('Decryption error', E_USER_NOTICE); + return false; + } + + // Output the message M + + return substr($m, 1); + } + + /** + * RSAES-PKCS1-V1_5-ENCRYPT + * + * See {@link http://tools.ietf.org/html/rfc3447#section-7.2.1 RFC3447#section-7.2.1}. + * + * @access private + * @param String $m + * @return String + */ + function _rsaes_pkcs1_v1_5_encrypt($m) + { + $mLen = strlen($m); + + // Length checking + + if ($mLen > $this->k - 11) { + user_error('Message too long', E_USER_NOTICE); + return false; + } + + // EME-PKCS1-v1_5 encoding + + $ps = $this->_random($this->k - $mLen - 3, true); + $em = chr(0) . chr(2) . $ps . chr(0) . $m; + + // RSA encryption + $m = $this->_os2ip($em); + $c = $this->_rsaep($m); + $c = $this->_i2osp($c, $this->k); + + // Output the ciphertext C + + return $c; + } + + /** + * RSAES-PKCS1-V1_5-DECRYPT + * + * See {@link http://tools.ietf.org/html/rfc3447#section-7.2.2 RFC3447#section-7.2.2}. + * + * @access private + * @param String $c + * @return String + */ + function _rsaes_pkcs1_v1_5_decrypt($c) + { + // Length checking + + if (strlen($c) != $this->k) { // or if k < 11 + user_error('Decryption error', E_USER_NOTICE); + return false; + } + + // RSA decryption + + $c = $this->_os2ip($c); + $m = $this->_rsadp($c); + if ($m === false) { + user_error('Decryption error', E_USER_NOTICE); + return false; + } + $em = $this->_i2osp($m, $this->k); + + // EME-PKCS1-v1_5 decoding + + if (ord($em[0]) != 0 || ord($em[1]) != 2) { + user_error('Decryption error', E_USER_NOTICE); + return false; + } + + $ps = substr($em, 2, strpos($em, chr(0), 2) - 2); + $m = substr($em, strlen($ps) + 3); + + if (strlen($ps) < 8) { + user_error('Decryption error', E_USER_NOTICE); + return false; + } + + // Output M + + return $m; + } + + /** + * EMSA-PSS-ENCODE + * + * See {@link http://tools.ietf.org/html/rfc3447#section-9.1.1 RFC3447#section-9.1.1}. + * + * @access private + * @param String $m + * @param Integer $emBits + */ + function _emsa_pss_encode($m, $emBits) + { + // if $m is larger than two million terrabytes and you're using sha1, PKCS#1 suggests a "Label too long" error + // be output. + + $emLen = ($emBits + 1) >> 3; // ie. ceil($emBits / 8) + $sLen = $this->sLen == false ? $this->hLen : $this->sLen; + + $mHash = $this->hash->hash($m); + if ($emLen < $this->hLen + $sLen + 2) { + user_error('Encoding error', E_USER_NOTICE); + return false; + } + + $salt = $this->_random($sLen); + $m2 = "\0\0\0\0\0\0\0\0" . $mHash . $salt; + $h = $this->hash->hash($m2); + $ps = str_repeat(chr(0), $emLen - $sLen - $this->hLen - 2); + $db = $ps . chr(1) . $salt; + $dbMask = $this->_mgf1($h, $emLen - $this->hLen - 1); + $maskedDB = $db ^ $dbMask; + $maskedDB[0] = ~chr(0xFF << ($emBits & 7)) & $maskedDB[0]; + $em = $maskedDB . $h . chr(0xBC); + + return $em; + } + + /** + * EMSA-PSS-VERIFY + * + * See {@link http://tools.ietf.org/html/rfc3447#section-9.1.2 RFC3447#section-9.1.2}. + * + * @access private + * @param String $m + * @param String $em + * @param Integer $emBits + * @return String + */ + function _emsa_pss_verify($m, $em, $emBits) + { + // if $m is larger than two million terrabytes and you're using sha1, PKCS#1 suggests a "Label too long" error + // be output. + + $emLen = ($emBits + 1) >> 3; // ie. ceil($emBits / 8); + $sLen = $this->sLen == false ? $this->hLen : $this->sLen; + + $mHash = $this->hash->hash($m); + if ($emLen < $this->hLen + $sLen + 2) { + return false; + } + + if ($em[strlen($em) - 1] != chr(0xBC)) { + return false; + } + + $maskedDB = substr($em, 0, $em - $this->hLen - 1); + $h = substr($em, $em - $this->hLen - 1, $this->hLen); + $temp = chr(0xFF << ($emBits & 7)); + if ((~$maskedDB[0] & $temp) != $temp) { + return false; + } + $dbMask = $this->_mgf1($h, $emLen - $this->hLen - 1); + $db = $maskedDB ^ $dbMask; + $db[0] = ~chr(0xFF << ($emBits & 7)) & $db[0]; + $temp = $emLen - $this->hLen - $sLen - 2; + if (substr($db, 0, $temp) != str_repeat(chr(0), $temp) || ord($db[$temp]) != 1) { + return false; + } + $salt = substr($db, $temp + 1); // should be $sLen long + $m2 = "\0\0\0\0\0\0\0\0" . $mHash . $salt; + $h2 = $this->hash->hash($m2); + return $h == $h2; + } + + /** + * RSASSA-PSS-SIGN + * + * See {@link http://tools.ietf.org/html/rfc3447#section-8.1.1 RFC3447#section-8.1.1}. + * + * @access private + * @param String $m + * @return String + */ + function _rsassa_pss_sign($m) + { + // EMSA-PSS encoding + + $em = $this->_emsa_pss_encode($m, 8 * $this->k - 1); + + // RSA signature + + $m = $this->_os2ip($em); + $s = $this->_rsasp1($m); + $s = $this->_i2osp($s, $this->k); + + // Output the signature S + + return $s; + } + + /** + * RSASSA-PSS-VERIFY + * + * See {@link http://tools.ietf.org/html/rfc3447#section-8.1.2 RFC3447#section-8.1.2}. + * + * @access private + * @param String $m + * @param String $s + * @return String + */ + function _rsassa_pss_verify($m, $s) + { + // Length checking + + if (strlen($s) != $this->k) { + user_error('Invalid signature', E_USER_NOTICE); + return false; + } + + // RSA verification + + $modBits = 8 * $this->k; + + $s2 = $this->_os2ip($s); + $m2 = $this->_rsavp1($s2); + if ($m2 === false) { + user_error('Invalid signature', E_USER_NOTICE); + return false; + } + $em = $this->_i2osp($m2, $modBits >> 3); + if ($em === false) { + user_error('Invalid signature', E_USER_NOTICE); + return false; + } + + // EMSA-PSS verification + + return $this->_emsa_pss_verify($m, $em, $modBits - 1); + } + + /** + * EMSA-PKCS1-V1_5-ENCODE + * + * See {@link http://tools.ietf.org/html/rfc3447#section-9.2 RFC3447#section-9.2}. + * + * @access private + * @param String $m + * @param Integer $emLen + * @return String + */ + function _emsa_pkcs1_v1_5_encode($m, $emLen) + { + $h = $this->hash->hash($m); + if ($h === false) { + return false; + } + + // see http://tools.ietf.org/html/rfc3447#page-43 + switch ($this->hashName) { + case 'md2': + $t = pack('H*', '3020300c06082a864886f70d020205000410'); + break; + case 'md5': + $t = pack('H*', '3020300c06082a864886f70d020505000410'); + break; + case 'sha1': + $t = pack('H*', '3021300906052b0e03021a05000414'); + break; + case 'sha256': + $t = pack('H*', '3031300d060960864801650304020105000420'); + break; + case 'sha384': + $t = pack('H*', '3041300d060960864801650304020205000430'); + break; + case 'sha512': + $t = pack('H*', '3051300d060960864801650304020305000440'); + } + $t.= $h; + $tLen = strlen($t); + + if ($emLen < $tLen + 11) { + user_error('Intended encoded message length too short', E_USER_NOTICE); + return false; + } + + $ps = str_repeat(chr(0xFF), $emLen - $tLen - 3); + + $em = "\0\1$ps\0$t"; + + return $em; + } + + /** + * RSASSA-PKCS1-V1_5-SIGN + * + * See {@link http://tools.ietf.org/html/rfc3447#section-8.2.1 RFC3447#section-8.2.1}. + * + * @access private + * @param String $m + * @return String + */ + function _rsassa_pkcs1_v1_5_sign($m) + { + // EMSA-PKCS1-v1_5 encoding + + $em = $this->_emsa_pkcs1_v1_5_encode($m, $this->k); + if ($em === false) { + user_error('RSA modulus too short', E_USER_NOTICE); + return false; + } + + // RSA signature + + $m = $this->_os2ip($em); + $s = $this->_rsasp1($m); + $s = $this->_i2osp($s, $this->k); + + // Output the signature S + + return $s; + } + + /** + * RSASSA-PKCS1-V1_5-VERIFY + * + * See {@link http://tools.ietf.org/html/rfc3447#section-8.2.2 RFC3447#section-8.2.2}. + * + * @access private + * @param String $m + * @return String + */ + function _rsassa_pkcs1_v1_5_verify($m, $s) + { + // Length checking + + if (strlen($s) != $this->k) { + user_error('Invalid signature', E_USER_NOTICE); + return false; + } + + // RSA verification + + $s = $this->_os2ip($s); + $m2 = $this->_rsavp1($s); + if ($m2 === false) { + user_error('Invalid signature', E_USER_NOTICE); + return false; + } + $em = $this->_i2osp($m2, $this->k); + if ($em === false) { + user_error('Invalid signature', E_USER_NOTICE); + return false; + } + + // EMSA-PKCS1-v1_5 encoding + + $em2 = $this->_emsa_pkcs1_v1_5_encode($m, $this->k); + if ($em2 === false) { + user_error('RSA modulus too short', E_USER_NOTICE); + return false; + } + + // Compare + + return $em === $em2; + } + + /** + * Set Encryption Mode + * + * Valid values include CRYPT_RSA_ENCRYPTION_OAEP and CRYPT_RSA_ENCRYPTION_PKCS1. + * + * @access public + * @param Integer $mode + */ + function setEncryptionMode($mode) + { + $this->encryptionMode = $mode; + } + + /** + * Set Signature Mode + * + * Valid values include CRYPT_RSA_SIGNATURE_PSS and CRYPT_RSA_SIGNATURE_PKCS1 + * + * @access public + * @param Integer $mode + */ + function setSignatureMode($mode) + { + $this->signatureMode = $mode; + } + + /** + * Encryption + * + * Both CRYPT_RSA_ENCRYPTION_OAEP and CRYPT_RSA_ENCRYPTION_PKCS1 both place limits on how long $plaintext can be. + * If $plaintext exceeds those limits it will be broken up so that it does and the resultant ciphertext's will + * be concatenated together. + * + * @see decrypt() + * @access public + * @param String $plaintext + * @return String + */ + function encrypt($plaintext) + { + switch ($this->encryptionMode) { + case CRYPT_RSA_ENCRYPTION_PKCS1: + $length = $this->k - 11; + if ($length <= 0) { + return false; + } + + $plaintext = str_split($plaintext, $length); + $ciphertext = ''; + foreach ($plaintext as $m) { + $ciphertext.= $this->_rsaes_pkcs1_v1_5_encrypt($m); + } + return $ciphertext; + //case CRYPT_RSA_ENCRYPTION_OAEP: + default: + $length = $this->k - 2 * $this->hLen - 2; + if ($length <= 0) { + return false; + } + + $plaintext = str_split($plaintext, $length); + $ciphertext = ''; + foreach ($plaintext as $m) { + $ciphertext.= $this->_rsaes_oaep_encrypt($m); + } + return $ciphertext; + } + } + + /** + * Decryption + * + * @see encrypt() + * @access public + * @param String $plaintext + * @return String + */ + function decrypt($ciphertext) + { + if ($this->k <= 0) { + return false; + } + + $ciphertext = str_split($ciphertext, $this->k); + $plaintext = ''; + + switch ($this->encryptionMode) { + case CRYPT_RSA_ENCRYPTION_PKCS1: + $decrypt = '_rsaes_pkcs1_v1_5_decrypt'; + break; + //case CRYPT_RSA_ENCRYPTION_OAEP: + default: + $decrypt = '_rsaes_oaep_decrypt'; + } + + foreach ($ciphertext as $c) { + $temp = $this->$decrypt($c); + if ($temp === false) { + return false; + } + $plaintext.= $temp; + } + + return $plaintext; + } + + /** + * Create a signature + * + * @see verify() + * @access public + * @param String $message + * @return String + */ + function sign($message) + { + if (empty($this->modulus) || empty($this->exponent)) { + return false; + } + + switch ($this->signatureMode) { + case CRYPT_RSA_SIGNATURE_PKCS1: + return $this->_rsassa_pkcs1_v1_5_sign($message); + //case CRYPT_RSA_SIGNATURE_PSS: + default: + return $this->_rsassa_pss_sign($message); + } + } + + /** + * Verifies a signature + * + * @see sign() + * @access public + * @param String $message + * @param String $signature + * @return Boolean + */ + function verify($message, $signature) + { + if (empty($this->modulus) || empty($this->exponent)) { + return false; + } + + switch ($this->signatureMode) { + case CRYPT_RSA_SIGNATURE_PKCS1: + return $this->_rsassa_pkcs1_v1_5_verify($message, $signature); + //case CRYPT_RSA_SIGNATURE_PSS: + default: + return $this->_rsassa_pss_verify($message, $signature); + } + } } \ No newline at end of file diff --git a/plugins/OStatus/extlib/Crypt/Random.php b/plugins/OStatus/extlib/Crypt/Random.php index fbb41074e..bfc24ca62 100644 --- a/plugins/OStatus/extlib/Crypt/Random.php +++ b/plugins/OStatus/extlib/Crypt/Random.php @@ -1,70 +1,125 @@ - - * - * - * - * LICENSE: This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - * - * @category Crypt - * @package Crypt_Random - * @author Jim Wigginton - * @copyright MMVII Jim Wigginton - * @license http://www.gnu.org/licenses/lgpl.txt - * @version $Id: Random.php,v 1.4 2008/05/21 05:15:32 terrafrost Exp $ - * @link http://phpseclib.sourceforge.net - */ - -/** - * Generate a random value. Feel free to replace this function with a cryptographically secure PRNG. - * - * @param optional Integer $min - * @param optional Integer $max - * @param optional String $randomness_path - * @return Integer - * @access public - */ -function crypt_random($min = 0, $max = 0x7FFFFFFF, $randomness_path = '/dev/urandom') -{ - static $seeded = false; - - if (!$seeded) { - $seeded = true; - if (file_exists($randomness_path)) { - $fp = fopen($randomness_path, 'r'); - $temp = unpack('Nint', fread($fp, 4)); - mt_srand($temp['int']); - fclose($fp); - } else { - list($sec, $usec) = explode(' ', microtime()); - mt_srand((float) $sec + ((float) $usec * 100000)); - } - } - - return mt_rand($min, $max); -} + + * + * + * + * LICENSE: This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * @category Crypt + * @package Crypt_Random + * @author Jim Wigginton + * @copyright MMVII Jim Wigginton + * @license http://www.gnu.org/licenses/lgpl.txt + * @version $Id: Random.php,v 1.6 2010/02/28 05:28:38 terrafrost Exp $ + * @link http://phpseclib.sourceforge.net + */ + +/** + * Generate a random value. + * + * On 32-bit machines, the largest distance that can exist between $min and $max is 2**31. + * If $min and $max are farther apart than that then the last ($max - range) numbers. + * + * Depending on how this is being used, it may be worth while to write a replacement. For example, + * a PHP-based web app that stores its data in an SQL database can collect more entropy than this function + * can. + * + * @param optional Integer $min + * @param optional Integer $max + * @return Integer + * @access public + */ +function crypt_random($min = 0, $max = 0x7FFFFFFF) +{ + if ($min == $max) { + return $min; + } + + // see http://en.wikipedia.org/wiki//dev/random + if (file_exists('/dev/urandom')) { + $fp = fopen('/dev/urandom', 'rb'); + extract(unpack('Nrandom', fread($fp, 4))); + fclose($fp); + + // say $min = 0 and $max = 3. if we didn't do abs() then we could have stuff like this: + // -4 % 3 + 0 = -1, even though -1 < $min + return abs($random) % ($max - $min) + $min; + } + + /* Prior to PHP 4.2.0, mt_srand() had to be called before mt_rand() could be called. + Prior to PHP 5.2.6, mt_rand()'s automatic seeding was subpar, as elaborated here: + + http://www.suspekt.org/2008/08/17/mt_srand-and-not-so-random-numbers/ + + The seeding routine is pretty much ripped from PHP's own internal GENERATE_SEED() macro: + + http://svn.php.net/viewvc/php/php-src/branches/PHP_5_3_2/ext/standard/php_rand.h?view=markup */ + if (version_compare(PHP_VERSION, '5.2.5', '<=')) { + static $seeded; + if (!isset($seeded)) { + $seeded = true; + mt_srand(fmod(time() * getmypid(), 0x7FFFFFFF) ^ fmod(1000000 * lcg_value(), 0x7FFFFFFF)); + } + } + + static $crypto; + + // The CSPRNG's Yarrow and Fortuna periodically reseed. This function can be reseeded by hitting F5 + // in the browser and reloading the page. + + if (!isset($crypto)) { + $key = $iv = ''; + for ($i = 0; $i < 8; $i++) { + $key.= pack('n', mt_rand(0, 0xFFFF)); + $iv .= pack('n', mt_rand(0, 0xFFFF)); + } + switch (true) { + case class_exists('Crypt_AES'): + $crypto = new Crypt_AES(CRYPT_AES_MODE_CTR); + break; + case class_exists('Crypt_TripleDES'): + $crypto = new Crypt_TripleDES(CRYPT_DES_MODE_CTR); + break; + case class_exists('Crypt_DES'): + $crypto = new Crypt_DES(CRYPT_DES_MODE_CTR); + break; + case class_exists('Crypt_RC4'): + $crypto = new Crypt_RC4(); + break; + default: + extract(unpack('Nrandom', pack('H*', sha1(mt_rand(0, 0x7FFFFFFF))))); + return abs($random) % ($max - $min) + $min; + } + $crypto->setKey($key); + $crypto->setIV($iv); + } + + extract(unpack('Nrandom', $crypto->encrypt("\0\0\0\0"))); + return abs($random) % ($max - $min) + $min; +} ?> \ No newline at end of file diff --git a/plugins/OStatus/extlib/Crypt/Rijndael.php b/plugins/OStatus/extlib/Crypt/Rijndael.php index 19bba83f3..3b5fd6a7d 100644 --- a/plugins/OStatus/extlib/Crypt/Rijndael.php +++ b/plugins/OStatus/extlib/Crypt/Rijndael.php @@ -1,1135 +1,1242 @@ - - * setKey('abcdefghijklmnop'); - * - * $size = 10 * 1024; - * $plaintext = ''; - * for ($i = 0; $i < $size; $i++) { - * $plaintext.= 'a'; - * } - * - * echo $rijndael->decrypt($rijndael->encrypt($plaintext)); - * ?> - * - * - * LICENSE: This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - * - * @category Crypt - * @package Crypt_Rijndael - * @author Jim Wigginton - * @copyright MMVIII Jim Wigginton - * @license http://www.gnu.org/licenses/lgpl.txt - * @version $Id: Rijndael.php,v 1.8 2009/11/23 19:06:07 terrafrost Exp $ - * @link http://phpseclib.sourceforge.net - */ - -/**#@+ - * @access public - * @see Crypt_Rijndael::encrypt() - * @see Crypt_Rijndael::decrypt() - */ -/** - * Encrypt / decrypt using the Electronic Code Book mode. - * - * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29 - */ -define('CRYPT_RIJNDAEL_MODE_ECB', 1); -/** - * Encrypt / decrypt using the Code Book Chaining mode. - * - * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29 - */ -define('CRYPT_RIJNDAEL_MODE_CBC', 2); -/**#@-*/ - -/**#@+ - * @access private - * @see Crypt_Rijndael::Crypt_Rijndael() - */ -/** - * Toggles the internal implementation - */ -define('CRYPT_RIJNDAEL_MODE_INTERNAL', 1); -/** - * Toggles the mcrypt implementation - */ -define('CRYPT_RIJNDAEL_MODE_MCRYPT', 2); -/**#@-*/ - -/** - * Pure-PHP implementation of Rijndael. - * - * @author Jim Wigginton - * @version 0.1.0 - * @access public - * @package Crypt_Rijndael - */ -class Crypt_Rijndael { - /** - * The Encryption Mode - * - * @see Crypt_Rijndael::Crypt_Rijndael() - * @var Integer - * @access private - */ - var $mode; - - /** - * The Key - * - * @see Crypt_Rijndael::setKey() - * @var String - * @access private - */ - var $key = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; - - /** - * The Initialization Vector - * - * @see Crypt_Rijndael::setIV() - * @var String - * @access private - */ - var $iv = ''; - - /** - * A "sliding" Initialization Vector - * - * @see Crypt_Rijndael::enableContinuousBuffer() - * @var String - * @access private - */ - var $encryptIV = ''; - - /** - * A "sliding" Initialization Vector - * - * @see Crypt_Rijndael::enableContinuousBuffer() - * @var String - * @access private - */ - var $decryptIV = ''; - - /** - * Continuous Buffer status - * - * @see Crypt_Rijndael::enableContinuousBuffer() - * @var Boolean - * @access private - */ - var $continuousBuffer = false; - - /** - * Padding status - * - * @see Crypt_Rijndael::enablePadding() - * @var Boolean - * @access private - */ - var $padding = true; - - /** - * Does the key schedule need to be (re)calculated? - * - * @see setKey() - * @see setBlockLength() - * @see setKeyLength() - * @var Boolean - * @access private - */ - var $changed = true; - - /** - * Has the key length explicitly been set or should it be derived from the key, itself? - * - * @see setKeyLength() - * @var Boolean - * @access private - */ - var $explicit_key_length = false; - - /** - * The Key Schedule - * - * @see _setup() - * @var Array - * @access private - */ - var $w; - - /** - * The Inverse Key Schedule - * - * @see _setup() - * @var Array - * @access private - */ - var $dw; - - /** - * The Block Length - * - * @see setBlockLength() - * @var Integer - * @access private - * @internal The max value is 32, the min value is 16. All valid values are multiples of 4. Exists in conjunction with - * $Nb because we need this value and not $Nb to pad strings appropriately. - */ - var $block_size = 16; - - /** - * The Block Length divided by 32 - * - * @see setBlockLength() - * @var Integer - * @access private - * @internal The max value is 256 / 32 = 8, the min value is 128 / 32 = 4. Exists in conjunction with $block_size - * because the encryption / decryption / key schedule creation requires this number and not $block_size. We could - * derive this from $block_size or vice versa, but that'd mean we'd have to do multiple shift operations, so in lieu - * of that, we'll just precompute it once. - * - */ - var $Nb = 4; - - /** - * The Key Length - * - * @see setKeyLength() - * @var Integer - * @access private - * @internal The max value is 256 / 8 = 32, the min value is 128 / 8 = 16. Exists in conjunction with $key_size - * because the encryption / decryption / key schedule creation requires this number and not $key_size. We could - * derive this from $key_size or vice versa, but that'd mean we'd have to do multiple shift operations, so in lieu - * of that, we'll just precompute it once. - */ - var $key_size = 16; - - /** - * The Key Length divided by 32 - * - * @see setKeyLength() - * @var Integer - * @access private - * @internal The max value is 256 / 32 = 8, the min value is 128 / 32 = 4 - */ - var $Nk = 4; - - /** - * The Number of Rounds - * - * @var Integer - * @access private - * @internal The max value is 14, the min value is 10. - */ - var $Nr; - - /** - * Shift offsets - * - * @var Array - * @access private - */ - var $c; - - /** - * Precomputed mixColumns table - * - * @see Crypt_Rijndael() - * @var Array - * @access private - */ - var $t0; - - /** - * Precomputed mixColumns table - * - * @see Crypt_Rijndael() - * @var Array - * @access private - */ - var $t1; - - /** - * Precomputed mixColumns table - * - * @see Crypt_Rijndael() - * @var Array - * @access private - */ - var $t2; - - /** - * Precomputed mixColumns table - * - * @see Crypt_Rijndael() - * @var Array - * @access private - */ - var $t3; - - /** - * Precomputed invMixColumns table - * - * @see Crypt_Rijndael() - * @var Array - * @access private - */ - var $dt0; - - /** - * Precomputed invMixColumns table - * - * @see Crypt_Rijndael() - * @var Array - * @access private - */ - var $dt1; - - /** - * Precomputed invMixColumns table - * - * @see Crypt_Rijndael() - * @var Array - * @access private - */ - var $dt2; - - /** - * Precomputed invMixColumns table - * - * @see Crypt_Rijndael() - * @var Array - * @access private - */ - var $dt3; - - /** - * Default Constructor. - * - * Determines whether or not the mcrypt extension should be used. $mode should only, at present, be - * CRYPT_RIJNDAEL_MODE_ECB or CRYPT_RIJNDAEL_MODE_CBC. If not explictly set, CRYPT_RIJNDAEL_MODE_CBC will be used. - * - * @param optional Integer $mode - * @return Crypt_Rijndael - * @access public - */ - function Crypt_Rijndael($mode = CRYPT_RIJNDAEL_MODE_CBC) - { - switch ($mode) { - case CRYPT_RIJNDAEL_MODE_ECB: - case CRYPT_RIJNDAEL_MODE_CBC: - $this->mode = $mode; - break; - default: - $this->mode = CRYPT_RIJNDAEL_MODE_CBC; - } - - // according to (section 5.2.1), - // precomputed tables can be used in the mixColumns phase. in that example, they're assigned t0...t3, so - // those are the names we'll use. - $this->t3 = array( - 0x6363A5C6, 0x7C7C84F8, 0x777799EE, 0x7B7B8DF6, 0xF2F20DFF, 0x6B6BBDD6, 0x6F6FB1DE, 0xC5C55491, - 0x30305060, 0x01010302, 0x6767A9CE, 0x2B2B7D56, 0xFEFE19E7, 0xD7D762B5, 0xABABE64D, 0x76769AEC, - 0xCACA458F, 0x82829D1F, 0xC9C94089, 0x7D7D87FA, 0xFAFA15EF, 0x5959EBB2, 0x4747C98E, 0xF0F00BFB, - 0xADADEC41, 0xD4D467B3, 0xA2A2FD5F, 0xAFAFEA45, 0x9C9CBF23, 0xA4A4F753, 0x727296E4, 0xC0C05B9B, - 0xB7B7C275, 0xFDFD1CE1, 0x9393AE3D, 0x26266A4C, 0x36365A6C, 0x3F3F417E, 0xF7F702F5, 0xCCCC4F83, - 0x34345C68, 0xA5A5F451, 0xE5E534D1, 0xF1F108F9, 0x717193E2, 0xD8D873AB, 0x31315362, 0x15153F2A, - 0x04040C08, 0xC7C75295, 0x23236546, 0xC3C35E9D, 0x18182830, 0x9696A137, 0x05050F0A, 0x9A9AB52F, - 0x0707090E, 0x12123624, 0x80809B1B, 0xE2E23DDF, 0xEBEB26CD, 0x2727694E, 0xB2B2CD7F, 0x75759FEA, - 0x09091B12, 0x83839E1D, 0x2C2C7458, 0x1A1A2E34, 0x1B1B2D36, 0x6E6EB2DC, 0x5A5AEEB4, 0xA0A0FB5B, - 0x5252F6A4, 0x3B3B4D76, 0xD6D661B7, 0xB3B3CE7D, 0x29297B52, 0xE3E33EDD, 0x2F2F715E, 0x84849713, - 0x5353F5A6, 0xD1D168B9, 0x00000000, 0xEDED2CC1, 0x20206040, 0xFCFC1FE3, 0xB1B1C879, 0x5B5BEDB6, - 0x6A6ABED4, 0xCBCB468D, 0xBEBED967, 0x39394B72, 0x4A4ADE94, 0x4C4CD498, 0x5858E8B0, 0xCFCF4A85, - 0xD0D06BBB, 0xEFEF2AC5, 0xAAAAE54F, 0xFBFB16ED, 0x4343C586, 0x4D4DD79A, 0x33335566, 0x85859411, - 0x4545CF8A, 0xF9F910E9, 0x02020604, 0x7F7F81FE, 0x5050F0A0, 0x3C3C4478, 0x9F9FBA25, 0xA8A8E34B, - 0x5151F3A2, 0xA3A3FE5D, 0x4040C080, 0x8F8F8A05, 0x9292AD3F, 0x9D9DBC21, 0x38384870, 0xF5F504F1, - 0xBCBCDF63, 0xB6B6C177, 0xDADA75AF, 0x21216342, 0x10103020, 0xFFFF1AE5, 0xF3F30EFD, 0xD2D26DBF, - 0xCDCD4C81, 0x0C0C1418, 0x13133526, 0xECEC2FC3, 0x5F5FE1BE, 0x9797A235, 0x4444CC88, 0x1717392E, - 0xC4C45793, 0xA7A7F255, 0x7E7E82FC, 0x3D3D477A, 0x6464ACC8, 0x5D5DE7BA, 0x19192B32, 0x737395E6, - 0x6060A0C0, 0x81819819, 0x4F4FD19E, 0xDCDC7FA3, 0x22226644, 0x2A2A7E54, 0x9090AB3B, 0x8888830B, - 0x4646CA8C, 0xEEEE29C7, 0xB8B8D36B, 0x14143C28, 0xDEDE79A7, 0x5E5EE2BC, 0x0B0B1D16, 0xDBDB76AD, - 0xE0E03BDB, 0x32325664, 0x3A3A4E74, 0x0A0A1E14, 0x4949DB92, 0x06060A0C, 0x24246C48, 0x5C5CE4B8, - 0xC2C25D9F, 0xD3D36EBD, 0xACACEF43, 0x6262A6C4, 0x9191A839, 0x9595A431, 0xE4E437D3, 0x79798BF2, - 0xE7E732D5, 0xC8C8438B, 0x3737596E, 0x6D6DB7DA, 0x8D8D8C01, 0xD5D564B1, 0x4E4ED29C, 0xA9A9E049, - 0x6C6CB4D8, 0x5656FAAC, 0xF4F407F3, 0xEAEA25CF, 0x6565AFCA, 0x7A7A8EF4, 0xAEAEE947, 0x08081810, - 0xBABAD56F, 0x787888F0, 0x25256F4A, 0x2E2E725C, 0x1C1C2438, 0xA6A6F157, 0xB4B4C773, 0xC6C65197, - 0xE8E823CB, 0xDDDD7CA1, 0x74749CE8, 0x1F1F213E, 0x4B4BDD96, 0xBDBDDC61, 0x8B8B860D, 0x8A8A850F, - 0x707090E0, 0x3E3E427C, 0xB5B5C471, 0x6666AACC, 0x4848D890, 0x03030506, 0xF6F601F7, 0x0E0E121C, - 0x6161A3C2, 0x35355F6A, 0x5757F9AE, 0xB9B9D069, 0x86869117, 0xC1C15899, 0x1D1D273A, 0x9E9EB927, - 0xE1E138D9, 0xF8F813EB, 0x9898B32B, 0x11113322, 0x6969BBD2, 0xD9D970A9, 0x8E8E8907, 0x9494A733, - 0x9B9BB62D, 0x1E1E223C, 0x87879215, 0xE9E920C9, 0xCECE4987, 0x5555FFAA, 0x28287850, 0xDFDF7AA5, - 0x8C8C8F03, 0xA1A1F859, 0x89898009, 0x0D0D171A, 0xBFBFDA65, 0xE6E631D7, 0x4242C684, 0x6868B8D0, - 0x4141C382, 0x9999B029, 0x2D2D775A, 0x0F0F111E, 0xB0B0CB7B, 0x5454FCA8, 0xBBBBD66D, 0x16163A2C - ); - - $this->dt3 = array( - 0xF4A75051, 0x4165537E, 0x17A4C31A, 0x275E963A, 0xAB6BCB3B, 0x9D45F11F, 0xFA58ABAC, 0xE303934B, - 0x30FA5520, 0x766DF6AD, 0xCC769188, 0x024C25F5, 0xE5D7FC4F, 0x2ACBD7C5, 0x35448026, 0x62A38FB5, - 0xB15A49DE, 0xBA1B6725, 0xEA0E9845, 0xFEC0E15D, 0x2F7502C3, 0x4CF01281, 0x4697A38D, 0xD3F9C66B, - 0x8F5FE703, 0x929C9515, 0x6D7AEBBF, 0x5259DA95, 0xBE832DD4, 0x7421D358, 0xE0692949, 0xC9C8448E, - 0xC2896A75, 0x8E7978F4, 0x583E6B99, 0xB971DD27, 0xE14FB6BE, 0x88AD17F0, 0x20AC66C9, 0xCE3AB47D, - 0xDF4A1863, 0x1A3182E5, 0x51336097, 0x537F4562, 0x6477E0B1, 0x6BAE84BB, 0x81A01CFE, 0x082B94F9, - 0x48685870, 0x45FD198F, 0xDE6C8794, 0x7BF8B752, 0x73D323AB, 0x4B02E272, 0x1F8F57E3, 0x55AB2A66, - 0xEB2807B2, 0xB5C2032F, 0xC57B9A86, 0x3708A5D3, 0x2887F230, 0xBFA5B223, 0x036ABA02, 0x16825CED, - 0xCF1C2B8A, 0x79B492A7, 0x07F2F0F3, 0x69E2A14E, 0xDAF4CD65, 0x05BED506, 0x34621FD1, 0xA6FE8AC4, - 0x2E539D34, 0xF355A0A2, 0x8AE13205, 0xF6EB75A4, 0x83EC390B, 0x60EFAA40, 0x719F065E, 0x6E1051BD, - 0x218AF93E, 0xDD063D96, 0x3E05AEDD, 0xE6BD464D, 0x548DB591, 0xC45D0571, 0x06D46F04, 0x5015FF60, - 0x98FB2419, 0xBDE997D6, 0x4043CC89, 0xD99E7767, 0xE842BDB0, 0x898B8807, 0x195B38E7, 0xC8EEDB79, - 0x7C0A47A1, 0x420FE97C, 0x841EC9F8, 0x00000000, 0x80868309, 0x2BED4832, 0x1170AC1E, 0x5A724E6C, - 0x0EFFFBFD, 0x8538560F, 0xAED51E3D, 0x2D392736, 0x0FD9640A, 0x5CA62168, 0x5B54D19B, 0x362E3A24, - 0x0A67B10C, 0x57E70F93, 0xEE96D2B4, 0x9B919E1B, 0xC0C54F80, 0xDC20A261, 0x774B695A, 0x121A161C, - 0x93BA0AE2, 0xA02AE5C0, 0x22E0433C, 0x1B171D12, 0x090D0B0E, 0x8BC7ADF2, 0xB6A8B92D, 0x1EA9C814, - 0xF1198557, 0x75074CAF, 0x99DDBBEE, 0x7F60FDA3, 0x01269FF7, 0x72F5BC5C, 0x663BC544, 0xFB7E345B, - 0x4329768B, 0x23C6DCCB, 0xEDFC68B6, 0xE4F163B8, 0x31DCCAD7, 0x63851042, 0x97224013, 0xC6112084, - 0x4A247D85, 0xBB3DF8D2, 0xF93211AE, 0x29A16DC7, 0x9E2F4B1D, 0xB230F3DC, 0x8652EC0D, 0xC1E3D077, - 0xB3166C2B, 0x70B999A9, 0x9448FA11, 0xE9642247, 0xFC8CC4A8, 0xF03F1AA0, 0x7D2CD856, 0x3390EF22, - 0x494EC787, 0x38D1C1D9, 0xCAA2FE8C, 0xD40B3698, 0xF581CFA6, 0x7ADE28A5, 0xB78E26DA, 0xADBFA43F, - 0x3A9DE42C, 0x78920D50, 0x5FCC9B6A, 0x7E466254, 0x8D13C2F6, 0xD8B8E890, 0x39F75E2E, 0xC3AFF582, - 0x5D80BE9F, 0xD0937C69, 0xD52DA96F, 0x2512B3CF, 0xAC993BC8, 0x187DA710, 0x9C636EE8, 0x3BBB7BDB, - 0x267809CD, 0x5918F46E, 0x9AB701EC, 0x4F9AA883, 0x956E65E6, 0xFFE67EAA, 0xBCCF0821, 0x15E8E6EF, - 0xE79BD9BA, 0x6F36CE4A, 0x9F09D4EA, 0xB07CD629, 0xA4B2AF31, 0x3F23312A, 0xA59430C6, 0xA266C035, - 0x4EBC3774, 0x82CAA6FC, 0x90D0B0E0, 0xA7D81533, 0x04984AF1, 0xECDAF741, 0xCD500E7F, 0x91F62F17, - 0x4DD68D76, 0xEFB04D43, 0xAA4D54CC, 0x9604DFE4, 0xD1B5E39E, 0x6A881B4C, 0x2C1FB8C1, 0x65517F46, - 0x5EEA049D, 0x8C355D01, 0x877473FA, 0x0B412EFB, 0x671D5AB3, 0xDBD25292, 0x105633E9, 0xD647136D, - 0xD7618C9A, 0xA10C7A37, 0xF8148E59, 0x133C89EB, 0xA927EECE, 0x61C935B7, 0x1CE5EDE1, 0x47B13C7A, - 0xD2DF599C, 0xF2733F55, 0x14CE7918, 0xC737BF73, 0xF7CDEA53, 0xFDAA5B5F, 0x3D6F14DF, 0x44DB8678, - 0xAFF381CA, 0x68C43EB9, 0x24342C38, 0xA3405FC2, 0x1DC37216, 0xE2250CBC, 0x3C498B28, 0x0D9541FF, - 0xA8017139, 0x0CB3DE08, 0xB4E49CD8, 0x56C19064, 0xCB84617B, 0x32B670D5, 0x6C5C7448, 0xB85742D0 - ); - - for ($i = 0; $i < 256; $i++) { - $this->t2[$i << 8] = (($this->t3[$i] << 8) & 0xFFFFFF00) | (($this->t3[$i] >> 24) & 0x000000FF); - $this->t1[$i << 16] = (($this->t3[$i] << 16) & 0xFFFF0000) | (($this->t3[$i] >> 16) & 0x0000FFFF); - $this->t0[$i << 24] = (($this->t3[$i] << 24) & 0xFF000000) | (($this->t3[$i] >> 8) & 0x00FFFFFF); - - $this->dt2[$i << 8] = (($this->dt3[$i] << 8) & 0xFFFFFF00) | (($this->dt3[$i] >> 24) & 0x000000FF); - $this->dt1[$i << 16] = (($this->dt3[$i] << 16) & 0xFFFF0000) | (($this->dt3[$i] >> 16) & 0x0000FFFF); - $this->dt0[$i << 24] = (($this->dt3[$i] << 24) & 0xFF000000) | (($this->dt3[$i] >> 8) & 0x00FFFFFF); - } - } - - /** - * Sets the key. - * - * Keys can be of any length. Rijndael, itself, requires the use of a key that's between 128-bits and 256-bits long and - * whose length is a multiple of 32. If the key is less than 256-bits and the key length isn't set, we round the length - * up to the closest valid key length, padding $key with null bytes. If the key is more than 256-bits, we trim the - * excess bits. - * - * If the key is not explicitly set, it'll be assumed to be all null bytes. - * - * @access public - * @param String $key - */ - function setKey($key) - { - $this->key = $key; - $this->changed = true; - } - - /** - * Sets the initialization vector. (optional) - * - * SetIV is not required when CRYPT_RIJNDAEL_MODE_ECB is being used. If not explictly set, it'll be assumed - * to be all zero's. - * - * @access public - * @param String $iv - */ - function setIV($iv) - { - $this->encryptIV = $this->decryptIV = $this->iv = str_pad(substr($iv, 0, $this->block_size), $this->block_size, chr(0));; - } - - /** - * Sets the key length - * - * Valid key lengths are 128, 160, 192, 224, and 256. If the length is less than 128, it will be rounded up to - * 128. If the length is greater then 128 and invalid, it will be rounded down to the closest valid amount. - * - * @access public - * @param Integer $length - */ - function setKeyLength($length) - { - $length >>= 5; - if ($length > 8) { - $length = 8; - } else if ($length < 4) { - $length = 4; - } - $this->Nk = $length; - $this->key_size = $length << 2; - - $this->explicit_key_length = true; - $this->changed = true; - } - - /** - * Sets the block length - * - * Valid block lengths are 128, 160, 192, 224, and 256. If the length is less than 128, it will be rounded up to - * 128. If the length is greater then 128 and invalid, it will be rounded down to the closest valid amount. - * - * @access public - * @param Integer $length - */ - function setBlockLength($length) - { - $length >>= 5; - if ($length > 8) { - $length = 8; - } else if ($length < 4) { - $length = 4; - } - $this->Nb = $length; - $this->block_size = $length << 2; - $this->changed = true; - } - - /** - * Encrypts a message. - * - * $plaintext will be padded with additional bytes such that it's length is a multiple of the block size. Other Rjindael - * implementations may or may not pad in the same manner. Other common approaches to padding and the reasons why it's - * necessary are discussed in the following - * URL: - * - * {@link http://www.di-mgt.com.au/cryptopad.html http://www.di-mgt.com.au/cryptopad.html} - * - * An alternative to padding is to, separately, send the length of the file. This is what SSH, in fact, does. - * strlen($plaintext) will still need to be a multiple of 8, however, arbitrary values can be added to make it that - * length. - * - * @see Crypt_Rijndael::decrypt() - * @access public - * @param String $plaintext - */ - function encrypt($plaintext) - { - $this->_setup(); - $plaintext = $this->_pad($plaintext); - - $ciphertext = ''; - switch ($this->mode) { - case CRYPT_RIJNDAEL_MODE_ECB: - for ($i = 0; $i < strlen($plaintext); $i+=$this->block_size) { - $ciphertext.= $this->_encryptBlock(substr($plaintext, $i, $this->block_size)); - } - break; - case CRYPT_RIJNDAEL_MODE_CBC: - $xor = $this->encryptIV; - for ($i = 0; $i < strlen($plaintext); $i+=$this->block_size) { - $block = substr($plaintext, $i, $this->block_size); - $block = $this->_encryptBlock($block ^ $xor); - $xor = $block; - $ciphertext.= $block; - } - if ($this->continuousBuffer) { - $this->encryptIV = $xor; - } - } - - return $ciphertext; - } - - /** - * Decrypts a message. - * - * If strlen($ciphertext) is not a multiple of the block size, null bytes will be added to the end of the string until - * it is. - * - * @see Crypt_Rijndael::encrypt() - * @access public - * @param String $ciphertext - */ - function decrypt($ciphertext) - { - $this->_setup(); - // we pad with chr(0) since that's what mcrypt_generic does. to quote from http://php.net/function.mcrypt-generic : - // "The data is padded with "\0" to make sure the length of the data is n * blocksize." - $ciphertext = str_pad($ciphertext, (strlen($ciphertext) + $this->block_size - 1) % $this->block_size, chr(0)); - - $plaintext = ''; - switch ($this->mode) { - case CRYPT_RIJNDAEL_MODE_ECB: - for ($i = 0; $i < strlen($ciphertext); $i+=$this->block_size) { - $plaintext.= $this->_decryptBlock(substr($ciphertext, $i, $this->block_size)); - } - break; - case CRYPT_RIJNDAEL_MODE_CBC: - $xor = $this->decryptIV; - for ($i = 0; $i < strlen($ciphertext); $i+=$this->block_size) { - $block = substr($ciphertext, $i, $this->block_size); - $plaintext.= $this->_decryptBlock($block) ^ $xor; - $xor = $block; - } - if ($this->continuousBuffer) { - $this->decryptIV = $xor; - } - } - - return $this->_unpad($plaintext); - } - - /** - * Encrypts a block - * - * @access private - * @param String $in - * @return String - */ - function _encryptBlock($in) - { - $state = array(); - $words = unpack('N*word', $in); - - // addRoundKey - foreach ($words as $word) { - $state[] = $word ^ $this->w[0][count($state)]; - } - - // fips-197.pdf#page=19, "Figure 5. Pseudo Code for the Cipher", states that this loop has four components - - // subBytes, shiftRows, mixColumns, and addRoundKey. fips-197.pdf#page=30, "Implementation Suggestions Regarding - // Various Platforms" suggests that performs enhanced implementations are described in Rijndael-ammended.pdf. - // Rijndael-ammended.pdf#page=20, "Implementation aspects / 32-bit processor", discusses such an optimization. - // Unfortunately, the description given there is not quite correct. Per aes.spec.v316.pdf#page=19 [1], - // equation (7.4.7) is supposed to use addition instead of subtraction, so we'll do that here, as well. - - // [1] http://fp.gladman.plus.com/cryptography_technology/rijndael/aes.spec.v316.pdf - $temp = array(); - for ($round = 1; $round < $this->Nr; $round++) { - $i = 0; // $this->c[0] == 0 - $j = $this->c[1]; - $k = $this->c[2]; - $l = $this->c[3]; - - while ($i < $this->Nb) { - $temp[$i] = $this->t0[$state[$i] & 0xFF000000] ^ - $this->t1[$state[$j] & 0x00FF0000] ^ - $this->t2[$state[$k] & 0x0000FF00] ^ - $this->t3[$state[$l] & 0x000000FF] ^ - $this->w[$round][$i]; - $i++; - $j = ($j + 1) % $this->Nb; - $k = ($k + 1) % $this->Nb; - $l = ($l + 1) % $this->Nb; - } - - for ($i = 0; $i < $this->Nb; $i++) { - $state[$i] = $temp[$i]; - } - } - - // subWord - for ($i = 0; $i < $this->Nb; $i++) { - $state[$i] = $this->_subWord($state[$i]); - } - - // shiftRows + addRoundKey - $i = 0; // $this->c[0] == 0 - $j = $this->c[1]; - $k = $this->c[2]; - $l = $this->c[3]; - while ($i < $this->Nb) { - $temp[$i] = ($state[$i] & 0xFF000000) ^ - ($state[$j] & 0x00FF0000) ^ - ($state[$k] & 0x0000FF00) ^ - ($state[$l] & 0x000000FF) ^ - $this->w[$this->Nr][$i]; - $i++; - $j = ($j + 1) % $this->Nb; - $k = ($k + 1) % $this->Nb; - $l = ($l + 1) % $this->Nb; - } - $state = $temp; - - array_unshift($state, 'N*'); - - return call_user_func_array('pack', $state); - } - - /** - * Decrypts a block - * - * @access private - * @param String $in - * @return String - */ - function _decryptBlock($in) - { - $state = array(); - $words = unpack('N*word', $in); - - // addRoundKey - foreach ($words as $word) { - $state[] = $word ^ $this->dw[0][count($state)]; - } - - $temp = array(); - for ($round = $this->Nr - 1; $round > 0; $round--) { - $i = 0; // $this->c[0] == 0 - $j = $this->Nb - $this->c[1]; - $k = $this->Nb - $this->c[2]; - $l = $this->Nb - $this->c[3]; - - while ($i < $this->Nb) { - $temp[$i] = $this->dt0[$state[$i] & 0xFF000000] ^ - $this->dt1[$state[$j] & 0x00FF0000] ^ - $this->dt2[$state[$k] & 0x0000FF00] ^ - $this->dt3[$state[$l] & 0x000000FF] ^ - $this->dw[$round][$i]; - $i++; - $j = ($j + 1) % $this->Nb; - $k = ($k + 1) % $this->Nb; - $l = ($l + 1) % $this->Nb; - } - - for ($i = 0; $i < $this->Nb; $i++) { - $state[$i] = $temp[$i]; - } - } - - // invShiftRows + invSubWord + addRoundKey - $i = 0; // $this->c[0] == 0 - $j = $this->Nb - $this->c[1]; - $k = $this->Nb - $this->c[2]; - $l = $this->Nb - $this->c[3]; - - while ($i < $this->Nb) { - $temp[$i] = $this->dw[0][$i] ^ - $this->_invSubWord(($state[$i] & 0xFF000000) | - ($state[$j] & 0x00FF0000) | - ($state[$k] & 0x0000FF00) | - ($state[$l] & 0x000000FF)); - $i++; - $j = ($j + 1) % $this->Nb; - $k = ($k + 1) % $this->Nb; - $l = ($l + 1) % $this->Nb; - } - - $state = $temp; - - array_unshift($state, 'N*'); - - return call_user_func_array('pack', $state); - } - - /** - * Setup Rijndael - * - * Validates all the variables and calculates $Nr - the number of rounds that need to be performed - and $w - the key - * key schedule. - * - * @access private - */ - function _setup() - { - // Each number in $rcon is equal to the previous number multiplied by two in Rijndael's finite field. - // See http://en.wikipedia.org/wiki/Finite_field_arithmetic#Multiplicative_inverse - static $rcon = array(0, - 0x01000000, 0x02000000, 0x04000000, 0x08000000, 0x10000000, - 0x20000000, 0x40000000, 0x80000000, 0x1B000000, 0x36000000, - 0x6C000000, 0xD8000000, 0xAB000000, 0x4D000000, 0x9A000000, - 0x2F000000, 0x5E000000, 0xBC000000, 0x63000000, 0xC6000000, - 0x97000000, 0x35000000, 0x6A000000, 0xD4000000, 0xB3000000, - 0x7D000000, 0xFA000000, 0xEF000000, 0xC5000000, 0x91000000 - ); - - if (!$this->changed) { - return; - } - - if (!$this->explicit_key_length) { - // we do >> 2, here, and not >> 5, as we do above, since strlen($this->key) tells us the number of bytes - not bits - $length = strlen($this->key) >> 2; - if ($length > 8) { - $length = 8; - } else if ($length < 4) { - $length = 4; - } - $this->Nk = $length; - $this->key_size = $length << 2; - } - - $this->key = str_pad(substr($this->key, 0, $this->key_size), $this->key_size, chr(0)); - $this->encryptIV = $this->decryptIV = $this->iv = str_pad(substr($this->iv, 0, $this->block_size), $this->block_size, chr(0)); - - // see Rijndael-ammended.pdf#page=44 - $this->Nr = max($this->Nk, $this->Nb) + 6; - - // shift offsets for Nb = 5, 7 are defined in Rijndael-ammended.pdf#page=44, - // "Table 8: Shift offsets in Shiftrow for the alternative block lengths" - // shift offsets for Nb = 4, 6, 8 are defined in Rijndael-ammended.pdf#page=14, - // "Table 2: Shift offsets for different block lengths" - switch ($this->Nb) { - case 4: - case 5: - case 6: - $this->c = array(0, 1, 2, 3); - break; - case 7: - $this->c = array(0, 1, 2, 4); - break; - case 8: - $this->c = array(0, 1, 3, 4); - } - - $key = $this->key; - - $w = array_values(unpack('N*words', $key)); - - $length = $this->Nb * ($this->Nr + 1); - for ($i = $this->Nk; $i < $length; $i++) { - $temp = $w[$i - 1]; - if ($i % $this->Nk == 0) { - // according to , "the size of an integer is platform-dependent". - // on a 32-bit machine, it's 32-bits, and on a 64-bit machine, it's 64-bits. on a 32-bit machine, - // 0xFFFFFFFF << 8 == 0xFFFFFF00, but on a 64-bit machine, it equals 0xFFFFFFFF00. as such, doing 'and' - // with 0xFFFFFFFF (or 0xFFFFFF00) on a 32-bit machine is unnecessary, but on a 64-bit machine, it is. - $temp = (($temp << 8) & 0xFFFFFF00) | (($temp >> 24) & 0x000000FF); // rotWord - $temp = $this->_subWord($temp) ^ $rcon[$i / $this->Nk]; - } else if ($this->Nk > 6 && $i % $this->Nk == 4) { - $temp = $this->_subWord($temp); - } - $w[$i] = $w[$i - $this->Nk] ^ $temp; - } - - // convert the key schedule from a vector of $Nb * ($Nr + 1) length to a matrix with $Nr + 1 rows and $Nb columns - // and generate the inverse key schedule. more specifically, - // according to (section 5.3.3), - // "The key expansion for the Inverse Cipher is defined as follows: - // 1. Apply the Key Expansion. - // 2. Apply InvMixColumn to all Round Keys except the first and the last one." - // also, see fips-197.pdf#page=27, "5.3.5 Equivalent Inverse Cipher" - $temp = array(); - for ($i = $row = $col = 0; $i < $length; $i++, $col++) { - if ($col == $this->Nb) { - if ($row == 0) { - $this->dw[0] = $this->w[0]; - } else { - // subWord + invMixColumn + invSubWord = invMixColumn - $j = 0; - while ($j < $this->Nb) { - $dw = $this->_subWord($this->w[$row][$j]); - $temp[$j] = $this->dt0[$dw & 0xFF000000] ^ - $this->dt1[$dw & 0x00FF0000] ^ - $this->dt2[$dw & 0x0000FF00] ^ - $this->dt3[$dw & 0x000000FF]; - $j++; - } - $this->dw[$row] = $temp; - } - - $col = 0; - $row++; - } - $this->w[$row][$col] = $w[$i]; - } - - $this->dw[$row] = $this->w[$row]; - - $this->changed = false; - } - - /** - * Performs S-Box substitutions - * - * @access private - */ - function _subWord($word) - { - static $sbox0, $sbox1, $sbox2, $sbox3; - - if (empty($sbox0)) { - $sbox0 = array( - 0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5, 0x30, 0x01, 0x67, 0x2B, 0xFE, 0xD7, 0xAB, 0x76, - 0xCA, 0x82, 0xC9, 0x7D, 0xFA, 0x59, 0x47, 0xF0, 0xAD, 0xD4, 0xA2, 0xAF, 0x9C, 0xA4, 0x72, 0xC0, - 0xB7, 0xFD, 0x93, 0x26, 0x36, 0x3F, 0xF7, 0xCC, 0x34, 0xA5, 0xE5, 0xF1, 0x71, 0xD8, 0x31, 0x15, - 0x04, 0xC7, 0x23, 0xC3, 0x18, 0x96, 0x05, 0x9A, 0x07, 0x12, 0x80, 0xE2, 0xEB, 0x27, 0xB2, 0x75, - 0x09, 0x83, 0x2C, 0x1A, 0x1B, 0x6E, 0x5A, 0xA0, 0x52, 0x3B, 0xD6, 0xB3, 0x29, 0xE3, 0x2F, 0x84, - 0x53, 0xD1, 0x00, 0xED, 0x20, 0xFC, 0xB1, 0x5B, 0x6A, 0xCB, 0xBE, 0x39, 0x4A, 0x4C, 0x58, 0xCF, - 0xD0, 0xEF, 0xAA, 0xFB, 0x43, 0x4D, 0x33, 0x85, 0x45, 0xF9, 0x02, 0x7F, 0x50, 0x3C, 0x9F, 0xA8, - 0x51, 0xA3, 0x40, 0x8F, 0x92, 0x9D, 0x38, 0xF5, 0xBC, 0xB6, 0xDA, 0x21, 0x10, 0xFF, 0xF3, 0xD2, - 0xCD, 0x0C, 0x13, 0xEC, 0x5F, 0x97, 0x44, 0x17, 0xC4, 0xA7, 0x7E, 0x3D, 0x64, 0x5D, 0x19, 0x73, - 0x60, 0x81, 0x4F, 0xDC, 0x22, 0x2A, 0x90, 0x88, 0x46, 0xEE, 0xB8, 0x14, 0xDE, 0x5E, 0x0B, 0xDB, - 0xE0, 0x32, 0x3A, 0x0A, 0x49, 0x06, 0x24, 0x5C, 0xC2, 0xD3, 0xAC, 0x62, 0x91, 0x95, 0xE4, 0x79, - 0xE7, 0xC8, 0x37, 0x6D, 0x8D, 0xD5, 0x4E, 0xA9, 0x6C, 0x56, 0xF4, 0xEA, 0x65, 0x7A, 0xAE, 0x08, - 0xBA, 0x78, 0x25, 0x2E, 0x1C, 0xA6, 0xB4, 0xC6, 0xE8, 0xDD, 0x74, 0x1F, 0x4B, 0xBD, 0x8B, 0x8A, - 0x70, 0x3E, 0xB5, 0x66, 0x48, 0x03, 0xF6, 0x0E, 0x61, 0x35, 0x57, 0xB9, 0x86, 0xC1, 0x1D, 0x9E, - 0xE1, 0xF8, 0x98, 0x11, 0x69, 0xD9, 0x8E, 0x94, 0x9B, 0x1E, 0x87, 0xE9, 0xCE, 0x55, 0x28, 0xDF, - 0x8C, 0xA1, 0x89, 0x0D, 0xBF, 0xE6, 0x42, 0x68, 0x41, 0x99, 0x2D, 0x0F, 0xB0, 0x54, 0xBB, 0x16 - ); - - $sbox1 = array(); - $sbox2 = array(); - $sbox3 = array(); - - for ($i = 0; $i < 256; $i++) { - $sbox1[$i << 8] = $sbox0[$i] << 8; - $sbox2[$i << 16] = $sbox0[$i] << 16; - $sbox3[$i << 24] = $sbox0[$i] << 24; - } - } - - return $sbox0[$word & 0x000000FF] | - $sbox1[$word & 0x0000FF00] | - $sbox2[$word & 0x00FF0000] | - $sbox3[$word & 0xFF000000]; - } - - /** - * Performs inverse S-Box substitutions - * - * @access private - */ - function _invSubWord($word) - { - static $sbox0, $sbox1, $sbox2, $sbox3; - - if (empty($sbox0)) { - $sbox0 = array( - 0x52, 0x09, 0x6A, 0xD5, 0x30, 0x36, 0xA5, 0x38, 0xBF, 0x40, 0xA3, 0x9E, 0x81, 0xF3, 0xD7, 0xFB, - 0x7C, 0xE3, 0x39, 0x82, 0x9B, 0x2F, 0xFF, 0x87, 0x34, 0x8E, 0x43, 0x44, 0xC4, 0xDE, 0xE9, 0xCB, - 0x54, 0x7B, 0x94, 0x32, 0xA6, 0xC2, 0x23, 0x3D, 0xEE, 0x4C, 0x95, 0x0B, 0x42, 0xFA, 0xC3, 0x4E, - 0x08, 0x2E, 0xA1, 0x66, 0x28, 0xD9, 0x24, 0xB2, 0x76, 0x5B, 0xA2, 0x49, 0x6D, 0x8B, 0xD1, 0x25, - 0x72, 0xF8, 0xF6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xD4, 0xA4, 0x5C, 0xCC, 0x5D, 0x65, 0xB6, 0x92, - 0x6C, 0x70, 0x48, 0x50, 0xFD, 0xED, 0xB9, 0xDA, 0x5E, 0x15, 0x46, 0x57, 0xA7, 0x8D, 0x9D, 0x84, - 0x90, 0xD8, 0xAB, 0x00, 0x8C, 0xBC, 0xD3, 0x0A, 0xF7, 0xE4, 0x58, 0x05, 0xB8, 0xB3, 0x45, 0x06, - 0xD0, 0x2C, 0x1E, 0x8F, 0xCA, 0x3F, 0x0F, 0x02, 0xC1, 0xAF, 0xBD, 0x03, 0x01, 0x13, 0x8A, 0x6B, - 0x3A, 0x91, 0x11, 0x41, 0x4F, 0x67, 0xDC, 0xEA, 0x97, 0xF2, 0xCF, 0xCE, 0xF0, 0xB4, 0xE6, 0x73, - 0x96, 0xAC, 0x74, 0x22, 0xE7, 0xAD, 0x35, 0x85, 0xE2, 0xF9, 0x37, 0xE8, 0x1C, 0x75, 0xDF, 0x6E, - 0x47, 0xF1, 0x1A, 0x71, 0x1D, 0x29, 0xC5, 0x89, 0x6F, 0xB7, 0x62, 0x0E, 0xAA, 0x18, 0xBE, 0x1B, - 0xFC, 0x56, 0x3E, 0x4B, 0xC6, 0xD2, 0x79, 0x20, 0x9A, 0xDB, 0xC0, 0xFE, 0x78, 0xCD, 0x5A, 0xF4, - 0x1F, 0xDD, 0xA8, 0x33, 0x88, 0x07, 0xC7, 0x31, 0xB1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xEC, 0x5F, - 0x60, 0x51, 0x7F, 0xA9, 0x19, 0xB5, 0x4A, 0x0D, 0x2D, 0xE5, 0x7A, 0x9F, 0x93, 0xC9, 0x9C, 0xEF, - 0xA0, 0xE0, 0x3B, 0x4D, 0xAE, 0x2A, 0xF5, 0xB0, 0xC8, 0xEB, 0xBB, 0x3C, 0x83, 0x53, 0x99, 0x61, - 0x17, 0x2B, 0x04, 0x7E, 0xBA, 0x77, 0xD6, 0x26, 0xE1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0C, 0x7D - ); - - $sbox1 = array(); - $sbox2 = array(); - $sbox3 = array(); - - for ($i = 0; $i < 256; $i++) { - $sbox1[$i << 8] = $sbox0[$i] << 8; - $sbox2[$i << 16] = $sbox0[$i] << 16; - $sbox3[$i << 24] = $sbox0[$i] << 24; - } - } - - return $sbox0[$word & 0x000000FF] | - $sbox1[$word & 0x0000FF00] | - $sbox2[$word & 0x00FF0000] | - $sbox3[$word & 0xFF000000]; - } - - /** - * Pad "packets". - * - * Rijndael works by encrypting between sixteen and thirty-two bytes at a time, provided that number is also a multiple - * of four. If you ever need to encrypt or decrypt something that isn't of the proper length, it becomes necessary to - * pad the input so that it is of the proper length. - * - * Padding is enabled by default. Sometimes, however, it is undesirable to pad strings. Such is the case in SSH, - * where "packets" are padded with random bytes before being encrypted. Unpad these packets and you risk stripping - * away characters that shouldn't be stripped away. (SSH knows how many bytes are added because the length is - * transmitted separately) - * - * @see Crypt_Rijndael::disablePadding() - * @access public - */ - function enablePadding() - { - $this->padding = true; - } - - /** - * Do not pad packets. - * - * @see Crypt_Rijndael::enablePadding() - * @access public - */ - function disablePadding() - { - $this->padding = false; - } - - /** - * Pads a string - * - * Pads a string using the RSA PKCS padding standards so that its length is a multiple of the blocksize. - * $block_size - (strlen($text) % $block_size) bytes are added, each of which is equal to - * chr($block_size - (strlen($text) % $block_size) - * - * If padding is disabled and $text is not a multiple of the blocksize, the string will be padded regardless - * and padding will, hence forth, be enabled. - * - * @see Crypt_Rijndael::_unpad() - * @access private - */ - function _pad($text) - { - $length = strlen($text); - - if (!$this->padding) { - if ($length % $this->block_size == 0) { - return $text; - } else { - user_error("The plaintext's length ($length) is not a multiple of the block size ({$this->block_size})", E_USER_NOTICE); - $this->padding = true; - } - } - - $pad = $this->block_size - ($length % $this->block_size); - - return str_pad($text, $length + $pad, chr($pad)); - } - - /** - * Unpads a string. - * - * If padding is enabled and the reported padding length is invalid, padding will be, hence forth, disabled. - * - * @see Crypt_Rijndael::_pad() - * @access private - */ - function _unpad($text) - { - if (!$this->padding) { - return $text; - } - - $length = ord($text[strlen($text) - 1]); - - if (!$length || $length > $this->block_size) { - user_error("The number of bytes reported as being padded ($length) is invalid (block size = {$this->block_size})", E_USER_NOTICE); - $this->padding = false; - return $text; - } - - return substr($text, 0, -$length); - } - - /** - * Treat consecutive "packets" as if they are a continuous buffer. - * - * Say you have a 32-byte plaintext $plaintext. Using the default behavior, the two following code snippets - * will yield different outputs: - * - * - * echo $rijndael->encrypt(substr($plaintext, 0, 16)); - * echo $rijndael->encrypt(substr($plaintext, 16, 16)); - * - * - * echo $rijndael->encrypt($plaintext); - * - * - * The solution is to enable the continuous buffer. Although this will resolve the above discrepancy, it creates - * another, as demonstrated with the following: - * - * - * $rijndael->encrypt(substr($plaintext, 0, 16)); - * echo $rijndael->decrypt($des->encrypt(substr($plaintext, 16, 16))); - * - * - * echo $rijndael->decrypt($des->encrypt(substr($plaintext, 16, 16))); - * - * - * With the continuous buffer disabled, these would yield the same output. With it enabled, they yield different - * outputs. The reason is due to the fact that the initialization vector's change after every encryption / - * decryption round when the continuous buffer is enabled. When it's disabled, they remain constant. - * - * Put another way, when the continuous buffer is enabled, the state of the Crypt_Rijndael() object changes after each - * encryption / decryption round, whereas otherwise, it'd remain constant. For this reason, it's recommended that - * continuous buffers not be used. They do offer better security and are, in fact, sometimes required (SSH uses them), - * however, they are also less intuitive and more likely to cause you problems. - * - * @see Crypt_Rijndael::disableContinuousBuffer() - * @access public - */ - function enableContinuousBuffer() - { - $this->continuousBuffer = true; - } - - /** - * Treat consecutive packets as if they are a discontinuous buffer. - * - * The default behavior. - * - * @see Crypt_Rijndael::enableContinuousBuffer() - * @access public - */ - function disableContinuousBuffer() - { - $this->continuousBuffer = false; - $this->encryptIV = $this->iv; - $this->decryptIV = $this->iv; - } - - /** - * String Shift - * - * Inspired by array_shift - * - * @param String $string - * @param optional Integer $index - * @return String - * @access private - */ - function _string_shift(&$string, $index = 1) - { - $substr = substr($string, 0, $index); - $string = substr($string, $index); - return $substr; - } -} - -// vim: ts=4:sw=4:et: + + * setKey('abcdefghijklmnop'); + * + * $size = 10 * 1024; + * $plaintext = ''; + * for ($i = 0; $i < $size; $i++) { + * $plaintext.= 'a'; + * } + * + * echo $rijndael->decrypt($rijndael->encrypt($plaintext)); + * ?> + * + * + * LICENSE: This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * @category Crypt + * @package Crypt_Rijndael + * @author Jim Wigginton + * @copyright MMVIII Jim Wigginton + * @license http://www.gnu.org/licenses/lgpl.txt + * @version $Id: Rijndael.php,v 1.12 2010/02/09 06:10:26 terrafrost Exp $ + * @link http://phpseclib.sourceforge.net + */ + +/**#@+ + * @access public + * @see Crypt_Rijndael::encrypt() + * @see Crypt_Rijndael::decrypt() + */ +/** + * Encrypt / decrypt using the Counter mode. + * + * Set to -1 since that's what Crypt/Random.php uses to index the CTR mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Counter_.28CTR.29 + */ +define('CRYPT_RIJNDAEL_MODE_CTR', -1); +/** + * Encrypt / decrypt using the Electronic Code Book mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29 + */ +define('CRYPT_RIJNDAEL_MODE_ECB', 1); +/** + * Encrypt / decrypt using the Code Book Chaining mode. + * + * @link http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29 + */ +define('CRYPT_RIJNDAEL_MODE_CBC', 2); +/**#@-*/ + +/**#@+ + * @access private + * @see Crypt_Rijndael::Crypt_Rijndael() + */ +/** + * Toggles the internal implementation + */ +define('CRYPT_RIJNDAEL_MODE_INTERNAL', 1); +/** + * Toggles the mcrypt implementation + */ +define('CRYPT_RIJNDAEL_MODE_MCRYPT', 2); +/**#@-*/ + +/** + * Pure-PHP implementation of Rijndael. + * + * @author Jim Wigginton + * @version 0.1.0 + * @access public + * @package Crypt_Rijndael + */ +class Crypt_Rijndael { + /** + * The Encryption Mode + * + * @see Crypt_Rijndael::Crypt_Rijndael() + * @var Integer + * @access private + */ + var $mode; + + /** + * The Key + * + * @see Crypt_Rijndael::setKey() + * @var String + * @access private + */ + var $key = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; + + /** + * The Initialization Vector + * + * @see Crypt_Rijndael::setIV() + * @var String + * @access private + */ + var $iv = ''; + + /** + * A "sliding" Initialization Vector + * + * @see Crypt_Rijndael::enableContinuousBuffer() + * @var String + * @access private + */ + var $encryptIV = ''; + + /** + * A "sliding" Initialization Vector + * + * @see Crypt_Rijndael::enableContinuousBuffer() + * @var String + * @access private + */ + var $decryptIV = ''; + + /** + * Continuous Buffer status + * + * @see Crypt_Rijndael::enableContinuousBuffer() + * @var Boolean + * @access private + */ + var $continuousBuffer = false; + + /** + * Padding status + * + * @see Crypt_Rijndael::enablePadding() + * @var Boolean + * @access private + */ + var $padding = true; + + /** + * Does the key schedule need to be (re)calculated? + * + * @see setKey() + * @see setBlockLength() + * @see setKeyLength() + * @var Boolean + * @access private + */ + var $changed = true; + + /** + * Has the key length explicitly been set or should it be derived from the key, itself? + * + * @see setKeyLength() + * @var Boolean + * @access private + */ + var $explicit_key_length = false; + + /** + * The Key Schedule + * + * @see _setup() + * @var Array + * @access private + */ + var $w; + + /** + * The Inverse Key Schedule + * + * @see _setup() + * @var Array + * @access private + */ + var $dw; + + /** + * The Block Length + * + * @see setBlockLength() + * @var Integer + * @access private + * @internal The max value is 32, the min value is 16. All valid values are multiples of 4. Exists in conjunction with + * $Nb because we need this value and not $Nb to pad strings appropriately. + */ + var $block_size = 16; + + /** + * The Block Length divided by 32 + * + * @see setBlockLength() + * @var Integer + * @access private + * @internal The max value is 256 / 32 = 8, the min value is 128 / 32 = 4. Exists in conjunction with $block_size + * because the encryption / decryption / key schedule creation requires this number and not $block_size. We could + * derive this from $block_size or vice versa, but that'd mean we'd have to do multiple shift operations, so in lieu + * of that, we'll just precompute it once. + * + */ + var $Nb = 4; + + /** + * The Key Length + * + * @see setKeyLength() + * @var Integer + * @access private + * @internal The max value is 256 / 8 = 32, the min value is 128 / 8 = 16. Exists in conjunction with $key_size + * because the encryption / decryption / key schedule creation requires this number and not $key_size. We could + * derive this from $key_size or vice versa, but that'd mean we'd have to do multiple shift operations, so in lieu + * of that, we'll just precompute it once. + */ + var $key_size = 16; + + /** + * The Key Length divided by 32 + * + * @see setKeyLength() + * @var Integer + * @access private + * @internal The max value is 256 / 32 = 8, the min value is 128 / 32 = 4 + */ + var $Nk = 4; + + /** + * The Number of Rounds + * + * @var Integer + * @access private + * @internal The max value is 14, the min value is 10. + */ + var $Nr; + + /** + * Shift offsets + * + * @var Array + * @access private + */ + var $c; + + /** + * Precomputed mixColumns table + * + * @see Crypt_Rijndael() + * @var Array + * @access private + */ + var $t0; + + /** + * Precomputed mixColumns table + * + * @see Crypt_Rijndael() + * @var Array + * @access private + */ + var $t1; + + /** + * Precomputed mixColumns table + * + * @see Crypt_Rijndael() + * @var Array + * @access private + */ + var $t2; + + /** + * Precomputed mixColumns table + * + * @see Crypt_Rijndael() + * @var Array + * @access private + */ + var $t3; + + /** + * Precomputed invMixColumns table + * + * @see Crypt_Rijndael() + * @var Array + * @access private + */ + var $dt0; + + /** + * Precomputed invMixColumns table + * + * @see Crypt_Rijndael() + * @var Array + * @access private + */ + var $dt1; + + /** + * Precomputed invMixColumns table + * + * @see Crypt_Rijndael() + * @var Array + * @access private + */ + var $dt2; + + /** + * Precomputed invMixColumns table + * + * @see Crypt_Rijndael() + * @var Array + * @access private + */ + var $dt3; + + /** + * Default Constructor. + * + * Determines whether or not the mcrypt extension should be used. $mode should only, at present, be + * CRYPT_RIJNDAEL_MODE_ECB or CRYPT_RIJNDAEL_MODE_CBC. If not explictly set, CRYPT_RIJNDAEL_MODE_CBC will be used. + * + * @param optional Integer $mode + * @return Crypt_Rijndael + * @access public + */ + function Crypt_Rijndael($mode = CRYPT_RIJNDAEL_MODE_CBC) + { + switch ($mode) { + case CRYPT_RIJNDAEL_MODE_ECB: + case CRYPT_RIJNDAEL_MODE_CBC: + case CRYPT_RIJNDAEL_MODE_CTR: + $this->mode = $mode; + break; + default: + $this->mode = CRYPT_RIJNDAEL_MODE_CBC; + } + + $t3 = &$this->t3; + $t2 = &$this->t2; + $t1 = &$this->t1; + $t0 = &$this->t0; + + $dt3 = &$this->dt3; + $dt2 = &$this->dt2; + $dt1 = &$this->dt1; + $dt0 = &$this->dt0; + + // according to (section 5.2.1), + // precomputed tables can be used in the mixColumns phase. in that example, they're assigned t0...t3, so + // those are the names we'll use. + $t3 = array( + 0x6363A5C6, 0x7C7C84F8, 0x777799EE, 0x7B7B8DF6, 0xF2F20DFF, 0x6B6BBDD6, 0x6F6FB1DE, 0xC5C55491, + 0x30305060, 0x01010302, 0x6767A9CE, 0x2B2B7D56, 0xFEFE19E7, 0xD7D762B5, 0xABABE64D, 0x76769AEC, + 0xCACA458F, 0x82829D1F, 0xC9C94089, 0x7D7D87FA, 0xFAFA15EF, 0x5959EBB2, 0x4747C98E, 0xF0F00BFB, + 0xADADEC41, 0xD4D467B3, 0xA2A2FD5F, 0xAFAFEA45, 0x9C9CBF23, 0xA4A4F753, 0x727296E4, 0xC0C05B9B, + 0xB7B7C275, 0xFDFD1CE1, 0x9393AE3D, 0x26266A4C, 0x36365A6C, 0x3F3F417E, 0xF7F702F5, 0xCCCC4F83, + 0x34345C68, 0xA5A5F451, 0xE5E534D1, 0xF1F108F9, 0x717193E2, 0xD8D873AB, 0x31315362, 0x15153F2A, + 0x04040C08, 0xC7C75295, 0x23236546, 0xC3C35E9D, 0x18182830, 0x9696A137, 0x05050F0A, 0x9A9AB52F, + 0x0707090E, 0x12123624, 0x80809B1B, 0xE2E23DDF, 0xEBEB26CD, 0x2727694E, 0xB2B2CD7F, 0x75759FEA, + 0x09091B12, 0x83839E1D, 0x2C2C7458, 0x1A1A2E34, 0x1B1B2D36, 0x6E6EB2DC, 0x5A5AEEB4, 0xA0A0FB5B, + 0x5252F6A4, 0x3B3B4D76, 0xD6D661B7, 0xB3B3CE7D, 0x29297B52, 0xE3E33EDD, 0x2F2F715E, 0x84849713, + 0x5353F5A6, 0xD1D168B9, 0x00000000, 0xEDED2CC1, 0x20206040, 0xFCFC1FE3, 0xB1B1C879, 0x5B5BEDB6, + 0x6A6ABED4, 0xCBCB468D, 0xBEBED967, 0x39394B72, 0x4A4ADE94, 0x4C4CD498, 0x5858E8B0, 0xCFCF4A85, + 0xD0D06BBB, 0xEFEF2AC5, 0xAAAAE54F, 0xFBFB16ED, 0x4343C586, 0x4D4DD79A, 0x33335566, 0x85859411, + 0x4545CF8A, 0xF9F910E9, 0x02020604, 0x7F7F81FE, 0x5050F0A0, 0x3C3C4478, 0x9F9FBA25, 0xA8A8E34B, + 0x5151F3A2, 0xA3A3FE5D, 0x4040C080, 0x8F8F8A05, 0x9292AD3F, 0x9D9DBC21, 0x38384870, 0xF5F504F1, + 0xBCBCDF63, 0xB6B6C177, 0xDADA75AF, 0x21216342, 0x10103020, 0xFFFF1AE5, 0xF3F30EFD, 0xD2D26DBF, + 0xCDCD4C81, 0x0C0C1418, 0x13133526, 0xECEC2FC3, 0x5F5FE1BE, 0x9797A235, 0x4444CC88, 0x1717392E, + 0xC4C45793, 0xA7A7F255, 0x7E7E82FC, 0x3D3D477A, 0x6464ACC8, 0x5D5DE7BA, 0x19192B32, 0x737395E6, + 0x6060A0C0, 0x81819819, 0x4F4FD19E, 0xDCDC7FA3, 0x22226644, 0x2A2A7E54, 0x9090AB3B, 0x8888830B, + 0x4646CA8C, 0xEEEE29C7, 0xB8B8D36B, 0x14143C28, 0xDEDE79A7, 0x5E5EE2BC, 0x0B0B1D16, 0xDBDB76AD, + 0xE0E03BDB, 0x32325664, 0x3A3A4E74, 0x0A0A1E14, 0x4949DB92, 0x06060A0C, 0x24246C48, 0x5C5CE4B8, + 0xC2C25D9F, 0xD3D36EBD, 0xACACEF43, 0x6262A6C4, 0x9191A839, 0x9595A431, 0xE4E437D3, 0x79798BF2, + 0xE7E732D5, 0xC8C8438B, 0x3737596E, 0x6D6DB7DA, 0x8D8D8C01, 0xD5D564B1, 0x4E4ED29C, 0xA9A9E049, + 0x6C6CB4D8, 0x5656FAAC, 0xF4F407F3, 0xEAEA25CF, 0x6565AFCA, 0x7A7A8EF4, 0xAEAEE947, 0x08081810, + 0xBABAD56F, 0x787888F0, 0x25256F4A, 0x2E2E725C, 0x1C1C2438, 0xA6A6F157, 0xB4B4C773, 0xC6C65197, + 0xE8E823CB, 0xDDDD7CA1, 0x74749CE8, 0x1F1F213E, 0x4B4BDD96, 0xBDBDDC61, 0x8B8B860D, 0x8A8A850F, + 0x707090E0, 0x3E3E427C, 0xB5B5C471, 0x6666AACC, 0x4848D890, 0x03030506, 0xF6F601F7, 0x0E0E121C, + 0x6161A3C2, 0x35355F6A, 0x5757F9AE, 0xB9B9D069, 0x86869117, 0xC1C15899, 0x1D1D273A, 0x9E9EB927, + 0xE1E138D9, 0xF8F813EB, 0x9898B32B, 0x11113322, 0x6969BBD2, 0xD9D970A9, 0x8E8E8907, 0x9494A733, + 0x9B9BB62D, 0x1E1E223C, 0x87879215, 0xE9E920C9, 0xCECE4987, 0x5555FFAA, 0x28287850, 0xDFDF7AA5, + 0x8C8C8F03, 0xA1A1F859, 0x89898009, 0x0D0D171A, 0xBFBFDA65, 0xE6E631D7, 0x4242C684, 0x6868B8D0, + 0x4141C382, 0x9999B029, 0x2D2D775A, 0x0F0F111E, 0xB0B0CB7B, 0x5454FCA8, 0xBBBBD66D, 0x16163A2C + ); + + $dt3 = array( + 0xF4A75051, 0x4165537E, 0x17A4C31A, 0x275E963A, 0xAB6BCB3B, 0x9D45F11F, 0xFA58ABAC, 0xE303934B, + 0x30FA5520, 0x766DF6AD, 0xCC769188, 0x024C25F5, 0xE5D7FC4F, 0x2ACBD7C5, 0x35448026, 0x62A38FB5, + 0xB15A49DE, 0xBA1B6725, 0xEA0E9845, 0xFEC0E15D, 0x2F7502C3, 0x4CF01281, 0x4697A38D, 0xD3F9C66B, + 0x8F5FE703, 0x929C9515, 0x6D7AEBBF, 0x5259DA95, 0xBE832DD4, 0x7421D358, 0xE0692949, 0xC9C8448E, + 0xC2896A75, 0x8E7978F4, 0x583E6B99, 0xB971DD27, 0xE14FB6BE, 0x88AD17F0, 0x20AC66C9, 0xCE3AB47D, + 0xDF4A1863, 0x1A3182E5, 0x51336097, 0x537F4562, 0x6477E0B1, 0x6BAE84BB, 0x81A01CFE, 0x082B94F9, + 0x48685870, 0x45FD198F, 0xDE6C8794, 0x7BF8B752, 0x73D323AB, 0x4B02E272, 0x1F8F57E3, 0x55AB2A66, + 0xEB2807B2, 0xB5C2032F, 0xC57B9A86, 0x3708A5D3, 0x2887F230, 0xBFA5B223, 0x036ABA02, 0x16825CED, + 0xCF1C2B8A, 0x79B492A7, 0x07F2F0F3, 0x69E2A14E, 0xDAF4CD65, 0x05BED506, 0x34621FD1, 0xA6FE8AC4, + 0x2E539D34, 0xF355A0A2, 0x8AE13205, 0xF6EB75A4, 0x83EC390B, 0x60EFAA40, 0x719F065E, 0x6E1051BD, + 0x218AF93E, 0xDD063D96, 0x3E05AEDD, 0xE6BD464D, 0x548DB591, 0xC45D0571, 0x06D46F04, 0x5015FF60, + 0x98FB2419, 0xBDE997D6, 0x4043CC89, 0xD99E7767, 0xE842BDB0, 0x898B8807, 0x195B38E7, 0xC8EEDB79, + 0x7C0A47A1, 0x420FE97C, 0x841EC9F8, 0x00000000, 0x80868309, 0x2BED4832, 0x1170AC1E, 0x5A724E6C, + 0x0EFFFBFD, 0x8538560F, 0xAED51E3D, 0x2D392736, 0x0FD9640A, 0x5CA62168, 0x5B54D19B, 0x362E3A24, + 0x0A67B10C, 0x57E70F93, 0xEE96D2B4, 0x9B919E1B, 0xC0C54F80, 0xDC20A261, 0x774B695A, 0x121A161C, + 0x93BA0AE2, 0xA02AE5C0, 0x22E0433C, 0x1B171D12, 0x090D0B0E, 0x8BC7ADF2, 0xB6A8B92D, 0x1EA9C814, + 0xF1198557, 0x75074CAF, 0x99DDBBEE, 0x7F60FDA3, 0x01269FF7, 0x72F5BC5C, 0x663BC544, 0xFB7E345B, + 0x4329768B, 0x23C6DCCB, 0xEDFC68B6, 0xE4F163B8, 0x31DCCAD7, 0x63851042, 0x97224013, 0xC6112084, + 0x4A247D85, 0xBB3DF8D2, 0xF93211AE, 0x29A16DC7, 0x9E2F4B1D, 0xB230F3DC, 0x8652EC0D, 0xC1E3D077, + 0xB3166C2B, 0x70B999A9, 0x9448FA11, 0xE9642247, 0xFC8CC4A8, 0xF03F1AA0, 0x7D2CD856, 0x3390EF22, + 0x494EC787, 0x38D1C1D9, 0xCAA2FE8C, 0xD40B3698, 0xF581CFA6, 0x7ADE28A5, 0xB78E26DA, 0xADBFA43F, + 0x3A9DE42C, 0x78920D50, 0x5FCC9B6A, 0x7E466254, 0x8D13C2F6, 0xD8B8E890, 0x39F75E2E, 0xC3AFF582, + 0x5D80BE9F, 0xD0937C69, 0xD52DA96F, 0x2512B3CF, 0xAC993BC8, 0x187DA710, 0x9C636EE8, 0x3BBB7BDB, + 0x267809CD, 0x5918F46E, 0x9AB701EC, 0x4F9AA883, 0x956E65E6, 0xFFE67EAA, 0xBCCF0821, 0x15E8E6EF, + 0xE79BD9BA, 0x6F36CE4A, 0x9F09D4EA, 0xB07CD629, 0xA4B2AF31, 0x3F23312A, 0xA59430C6, 0xA266C035, + 0x4EBC3774, 0x82CAA6FC, 0x90D0B0E0, 0xA7D81533, 0x04984AF1, 0xECDAF741, 0xCD500E7F, 0x91F62F17, + 0x4DD68D76, 0xEFB04D43, 0xAA4D54CC, 0x9604DFE4, 0xD1B5E39E, 0x6A881B4C, 0x2C1FB8C1, 0x65517F46, + 0x5EEA049D, 0x8C355D01, 0x877473FA, 0x0B412EFB, 0x671D5AB3, 0xDBD25292, 0x105633E9, 0xD647136D, + 0xD7618C9A, 0xA10C7A37, 0xF8148E59, 0x133C89EB, 0xA927EECE, 0x61C935B7, 0x1CE5EDE1, 0x47B13C7A, + 0xD2DF599C, 0xF2733F55, 0x14CE7918, 0xC737BF73, 0xF7CDEA53, 0xFDAA5B5F, 0x3D6F14DF, 0x44DB8678, + 0xAFF381CA, 0x68C43EB9, 0x24342C38, 0xA3405FC2, 0x1DC37216, 0xE2250CBC, 0x3C498B28, 0x0D9541FF, + 0xA8017139, 0x0CB3DE08, 0xB4E49CD8, 0x56C19064, 0xCB84617B, 0x32B670D5, 0x6C5C7448, 0xB85742D0 + ); + + for ($i = 0; $i < 256; $i++) { + $t2[$i << 8] = (($t3[$i] << 8) & 0xFFFFFF00) | (($t3[$i] >> 24) & 0x000000FF); + $t1[$i << 16] = (($t3[$i] << 16) & 0xFFFF0000) | (($t3[$i] >> 16) & 0x0000FFFF); + $t0[$i << 24] = (($t3[$i] << 24) & 0xFF000000) | (($t3[$i] >> 8) & 0x00FFFFFF); + + $dt2[$i << 8] = (($this->dt3[$i] << 8) & 0xFFFFFF00) | (($dt3[$i] >> 24) & 0x000000FF); + $dt1[$i << 16] = (($this->dt3[$i] << 16) & 0xFFFF0000) | (($dt3[$i] >> 16) & 0x0000FFFF); + $dt0[$i << 24] = (($this->dt3[$i] << 24) & 0xFF000000) | (($dt3[$i] >> 8) & 0x00FFFFFF); + } + } + + /** + * Sets the key. + * + * Keys can be of any length. Rijndael, itself, requires the use of a key that's between 128-bits and 256-bits long and + * whose length is a multiple of 32. If the key is less than 256-bits and the key length isn't set, we round the length + * up to the closest valid key length, padding $key with null bytes. If the key is more than 256-bits, we trim the + * excess bits. + * + * If the key is not explicitly set, it'll be assumed to be all null bytes. + * + * @access public + * @param String $key + */ + function setKey($key) + { + $this->key = $key; + $this->changed = true; + } + + /** + * Sets the initialization vector. (optional) + * + * SetIV is not required when CRYPT_RIJNDAEL_MODE_ECB is being used. If not explictly set, it'll be assumed + * to be all zero's. + * + * @access public + * @param String $iv + */ + function setIV($iv) + { + $this->encryptIV = $this->decryptIV = $this->iv = str_pad(substr($iv, 0, $this->block_size), $this->block_size, chr(0));; + } + + /** + * Sets the key length + * + * Valid key lengths are 128, 160, 192, 224, and 256. If the length is less than 128, it will be rounded up to + * 128. If the length is greater then 128 and invalid, it will be rounded down to the closest valid amount. + * + * @access public + * @param Integer $length + */ + function setKeyLength($length) + { + $length >>= 5; + if ($length > 8) { + $length = 8; + } else if ($length < 4) { + $length = 4; + } + $this->Nk = $length; + $this->key_size = $length << 2; + + $this->explicit_key_length = true; + $this->changed = true; + } + + /** + * Sets the block length + * + * Valid block lengths are 128, 160, 192, 224, and 256. If the length is less than 128, it will be rounded up to + * 128. If the length is greater then 128 and invalid, it will be rounded down to the closest valid amount. + * + * @access public + * @param Integer $length + */ + function setBlockLength($length) + { + $length >>= 5; + if ($length > 8) { + $length = 8; + } else if ($length < 4) { + $length = 4; + } + $this->Nb = $length; + $this->block_size = $length << 2; + $this->changed = true; + } + + /** + * Generate CTR XOR encryption key + * + * Encrypt the output of this and XOR it against the ciphertext / plaintext to get the + * plaintext / ciphertext in CTR mode. + * + * @see Crypt_Rijndael::decrypt() + * @see Crypt_Rijndael::encrypt() + * @access public + * @param Integer $length + * @param String $iv + */ + function _generate_xor($length, &$iv) + { + $xor = ''; + $block_size = $this->block_size; + $num_blocks = floor(($length + ($block_size - 1)) / $block_size); + for ($i = 0; $i < $num_blocks; $i++) { + $xor.= $iv; + for ($j = 4; $j <= $block_size; $j+=4) { + $temp = substr($iv, -$j, 4); + switch ($temp) { + case "\xFF\xFF\xFF\xFF": + $iv = substr_replace($iv, "\x00\x00\x00\x00", -$j, 4); + break; + case "\x7F\xFF\xFF\xFF": + $iv = substr_replace($iv, "\x80\x00\x00\x00", -$j, 4); + break 2; + default: + extract(unpack('Ncount', $temp)); + $iv = substr_replace($iv, pack('N', $count + 1), -$j, 4); + break 2; + } + } + } + + return $xor; + } + + /** + * Encrypts a message. + * + * $plaintext will be padded with additional bytes such that it's length is a multiple of the block size. Other Rjindael + * implementations may or may not pad in the same manner. Other common approaches to padding and the reasons why it's + * necessary are discussed in the following + * URL: + * + * {@link http://www.di-mgt.com.au/cryptopad.html http://www.di-mgt.com.au/cryptopad.html} + * + * An alternative to padding is to, separately, send the length of the file. This is what SSH, in fact, does. + * strlen($plaintext) will still need to be a multiple of 8, however, arbitrary values can be added to make it that + * length. + * + * @see Crypt_Rijndael::decrypt() + * @access public + * @param String $plaintext + */ + function encrypt($plaintext) + { + $this->_setup(); + if ($this->mode != CRYPT_RIJNDAEL_MODE_CTR) { + $plaintext = $this->_pad($plaintext); + } + + $block_size = $this->block_size; + $ciphertext = ''; + switch ($this->mode) { + case CRYPT_RIJNDAEL_MODE_ECB: + for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { + $ciphertext.= $this->_encryptBlock(substr($plaintext, $i, $block_size)); + } + break; + case CRYPT_RIJNDAEL_MODE_CBC: + $xor = $this->encryptIV; + for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { + $block = substr($plaintext, $i, $block_size); + $block = $this->_encryptBlock($block ^ $xor); + $xor = $block; + $ciphertext.= $block; + } + if ($this->continuousBuffer) { + $this->encryptIV = $xor; + } + break; + case CRYPT_RIJNDAEL_MODE_CTR: + $xor = $this->encryptIV; + for ($i = 0; $i < strlen($plaintext); $i+=$block_size) { + $block = substr($plaintext, $i, $block_size); + $key = $this->_encryptBlock($this->_generate_xor($block_size, $xor)); + $ciphertext.= $block ^ $key; + } + if ($this->continuousBuffer) { + $this->encryptIV = $xor; + } + } + + return $ciphertext; + } + + /** + * Decrypts a message. + * + * If strlen($ciphertext) is not a multiple of the block size, null bytes will be added to the end of the string until + * it is. + * + * @see Crypt_Rijndael::encrypt() + * @access public + * @param String $ciphertext + */ + function decrypt($ciphertext) + { + $this->_setup(); + + if ($this->mode != CRYPT_RIJNDAEL_MODE_CTR) { + // we pad with chr(0) since that's what mcrypt_generic does. to quote from http://php.net/function.mcrypt-generic : + // "The data is padded with "\0" to make sure the length of the data is n * blocksize." + $ciphertext = str_pad($ciphertext, (strlen($ciphertext) + $this->block_size - 1) % $this->block_size, chr(0)); + } + + $block_size = $this->block_size; + $plaintext = ''; + switch ($this->mode) { + case CRYPT_RIJNDAEL_MODE_ECB: + for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { + $plaintext.= $this->_decryptBlock(substr($ciphertext, $i, $block_size)); + } + break; + case CRYPT_RIJNDAEL_MODE_CBC: + $xor = $this->decryptIV; + for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { + $block = substr($ciphertext, $i, $block_size); + $plaintext.= $this->_decryptBlock($block) ^ $xor; + $xor = $block; + } + if ($this->continuousBuffer) { + $this->decryptIV = $xor; + } + break; + case CRYPT_RIJNDAEL_MODE_CTR: + $xor = $this->decryptIV; + for ($i = 0; $i < strlen($ciphertext); $i+=$block_size) { + $block = substr($ciphertext, $i, $block_size); + $key = $this->_encryptBlock($this->_generate_xor($block_size, $xor)); + $plaintext.= $block ^ $key; + } + if ($this->continuousBuffer) { + $this->decryptIV = $xor; + } + } + + return $this->mode != CRYPT_RIJNDAEL_MODE_CTR ? $this->_unpad($plaintext) : $plaintext; + } + + /** + * Encrypts a block + * + * @access private + * @param String $in + * @return String + */ + function _encryptBlock($in) + { + $state = array(); + $words = unpack('N*word', $in); + + $w = $this->w; + $t0 = $this->t0; + $t1 = $this->t1; + $t2 = $this->t2; + $t3 = $this->t3; + $Nb = $this->Nb; + $Nr = $this->Nr; + $c = $this->c; + + // addRoundKey + $i = 0; + foreach ($words as $word) { + $state[] = $word ^ $w[0][$i++]; + } + + // fips-197.pdf#page=19, "Figure 5. Pseudo Code for the Cipher", states that this loop has four components - + // subBytes, shiftRows, mixColumns, and addRoundKey. fips-197.pdf#page=30, "Implementation Suggestions Regarding + // Various Platforms" suggests that performs enhanced implementations are described in Rijndael-ammended.pdf. + // Rijndael-ammended.pdf#page=20, "Implementation aspects / 32-bit processor", discusses such an optimization. + // Unfortunately, the description given there is not quite correct. Per aes.spec.v316.pdf#page=19 [1], + // equation (7.4.7) is supposed to use addition instead of subtraction, so we'll do that here, as well. + + // [1] http://fp.gladman.plus.com/cryptography_technology/rijndael/aes.spec.v316.pdf + $temp = array(); + for ($round = 1; $round < $Nr; $round++) { + $i = 0; // $c[0] == 0 + $j = $c[1]; + $k = $c[2]; + $l = $c[3]; + + while ($i < $this->Nb) { + $temp[$i] = $t0[$state[$i] & 0xFF000000] ^ + $t1[$state[$j] & 0x00FF0000] ^ + $t2[$state[$k] & 0x0000FF00] ^ + $t3[$state[$l] & 0x000000FF] ^ + $w[$round][$i]; + $i++; + $j = ($j + 1) % $Nb; + $k = ($k + 1) % $Nb; + $l = ($l + 1) % $Nb; + } + + for ($i = 0; $i < $Nb; $i++) { + $state[$i] = $temp[$i]; + } + } + + // subWord + for ($i = 0; $i < $Nb; $i++) { + $state[$i] = $this->_subWord($state[$i]); + } + + // shiftRows + addRoundKey + $i = 0; // $c[0] == 0 + $j = $c[1]; + $k = $c[2]; + $l = $c[3]; + while ($i < $this->Nb) { + $temp[$i] = ($state[$i] & 0xFF000000) ^ + ($state[$j] & 0x00FF0000) ^ + ($state[$k] & 0x0000FF00) ^ + ($state[$l] & 0x000000FF) ^ + $w[$Nr][$i]; + $i++; + $j = ($j + 1) % $Nb; + $k = ($k + 1) % $Nb; + $l = ($l + 1) % $Nb; + } + $state = $temp; + + array_unshift($state, 'N*'); + + return call_user_func_array('pack', $state); + } + + /** + * Decrypts a block + * + * @access private + * @param String $in + * @return String + */ + function _decryptBlock($in) + { + $state = array(); + $words = unpack('N*word', $in); + + $num_states = count($state); + $dw = $this->dw; + $dt0 = $this->dt0; + $dt1 = $this->dt1; + $dt2 = $this->dt2; + $dt3 = $this->dt3; + $Nb = $this->Nb; + $Nr = $this->Nr; + $c = $this->c; + + // addRoundKey + $i = 0; + foreach ($words as $word) { + $state[] = $word ^ $dw[$Nr][$i++]; + } + + $temp = array(); + for ($round = $Nr - 1; $round > 0; $round--) { + $i = 0; // $c[0] == 0 + $j = $Nb - $c[1]; + $k = $Nb - $c[2]; + $l = $Nb - $c[3]; + + while ($i < $Nb) { + $temp[$i] = $dt0[$state[$i] & 0xFF000000] ^ + $dt1[$state[$j] & 0x00FF0000] ^ + $dt2[$state[$k] & 0x0000FF00] ^ + $dt3[$state[$l] & 0x000000FF] ^ + $dw[$round][$i]; + $i++; + $j = ($j + 1) % $Nb; + $k = ($k + 1) % $Nb; + $l = ($l + 1) % $Nb; + } + + for ($i = 0; $i < $Nb; $i++) { + $state[$i] = $temp[$i]; + } + } + + // invShiftRows + invSubWord + addRoundKey + $i = 0; // $c[0] == 0 + $j = $Nb - $c[1]; + $k = $Nb - $c[2]; + $l = $Nb - $c[3]; + + while ($i < $Nb) { + $temp[$i] = $dw[0][$i] ^ + $this->_invSubWord(($state[$i] & 0xFF000000) | + ($state[$j] & 0x00FF0000) | + ($state[$k] & 0x0000FF00) | + ($state[$l] & 0x000000FF)); + $i++; + $j = ($j + 1) % $Nb; + $k = ($k + 1) % $Nb; + $l = ($l + 1) % $Nb; + } + + $state = $temp; + + array_unshift($state, 'N*'); + + return call_user_func_array('pack', $state); + } + + /** + * Setup Rijndael + * + * Validates all the variables and calculates $Nr - the number of rounds that need to be performed - and $w - the key + * key schedule. + * + * @access private + */ + function _setup() + { + // Each number in $rcon is equal to the previous number multiplied by two in Rijndael's finite field. + // See http://en.wikipedia.org/wiki/Finite_field_arithmetic#Multiplicative_inverse + static $rcon = array(0, + 0x01000000, 0x02000000, 0x04000000, 0x08000000, 0x10000000, + 0x20000000, 0x40000000, 0x80000000, 0x1B000000, 0x36000000, + 0x6C000000, 0xD8000000, 0xAB000000, 0x4D000000, 0x9A000000, + 0x2F000000, 0x5E000000, 0xBC000000, 0x63000000, 0xC6000000, + 0x97000000, 0x35000000, 0x6A000000, 0xD4000000, 0xB3000000, + 0x7D000000, 0xFA000000, 0xEF000000, 0xC5000000, 0x91000000 + ); + + if (!$this->changed) { + return; + } + + if (!$this->explicit_key_length) { + // we do >> 2, here, and not >> 5, as we do above, since strlen($this->key) tells us the number of bytes - not bits + $length = strlen($this->key) >> 2; + if ($length > 8) { + $length = 8; + } else if ($length < 4) { + $length = 4; + } + $this->Nk = $length; + $this->key_size = $length << 2; + } + + $this->key = str_pad(substr($this->key, 0, $this->key_size), $this->key_size, chr(0)); + $this->encryptIV = $this->decryptIV = $this->iv = str_pad(substr($this->iv, 0, $this->block_size), $this->block_size, chr(0)); + + // see Rijndael-ammended.pdf#page=44 + $this->Nr = max($this->Nk, $this->Nb) + 6; + + // shift offsets for Nb = 5, 7 are defined in Rijndael-ammended.pdf#page=44, + // "Table 8: Shift offsets in Shiftrow for the alternative block lengths" + // shift offsets for Nb = 4, 6, 8 are defined in Rijndael-ammended.pdf#page=14, + // "Table 2: Shift offsets for different block lengths" + switch ($this->Nb) { + case 4: + case 5: + case 6: + $this->c = array(0, 1, 2, 3); + break; + case 7: + $this->c = array(0, 1, 2, 4); + break; + case 8: + $this->c = array(0, 1, 3, 4); + } + + $key = $this->key; + + $w = array_values(unpack('N*words', $key)); + + $length = $this->Nb * ($this->Nr + 1); + for ($i = $this->Nk; $i < $length; $i++) { + $temp = $w[$i - 1]; + if ($i % $this->Nk == 0) { + // according to , "the size of an integer is platform-dependent". + // on a 32-bit machine, it's 32-bits, and on a 64-bit machine, it's 64-bits. on a 32-bit machine, + // 0xFFFFFFFF << 8 == 0xFFFFFF00, but on a 64-bit machine, it equals 0xFFFFFFFF00. as such, doing 'and' + // with 0xFFFFFFFF (or 0xFFFFFF00) on a 32-bit machine is unnecessary, but on a 64-bit machine, it is. + $temp = (($temp << 8) & 0xFFFFFF00) | (($temp >> 24) & 0x000000FF); // rotWord + $temp = $this->_subWord($temp) ^ $rcon[$i / $this->Nk]; + } else if ($this->Nk > 6 && $i % $this->Nk == 4) { + $temp = $this->_subWord($temp); + } + $w[$i] = $w[$i - $this->Nk] ^ $temp; + } + + // convert the key schedule from a vector of $Nb * ($Nr + 1) length to a matrix with $Nr + 1 rows and $Nb columns + // and generate the inverse key schedule. more specifically, + // according to (section 5.3.3), + // "The key expansion for the Inverse Cipher is defined as follows: + // 1. Apply the Key Expansion. + // 2. Apply InvMixColumn to all Round Keys except the first and the last one." + // also, see fips-197.pdf#page=27, "5.3.5 Equivalent Inverse Cipher" + $temp = array(); + for ($i = $row = $col = 0; $i < $length; $i++, $col++) { + if ($col == $this->Nb) { + if ($row == 0) { + $this->dw[0] = $this->w[0]; + } else { + // subWord + invMixColumn + invSubWord = invMixColumn + $j = 0; + while ($j < $this->Nb) { + $dw = $this->_subWord($this->w[$row][$j]); + $temp[$j] = $this->dt0[$dw & 0xFF000000] ^ + $this->dt1[$dw & 0x00FF0000] ^ + $this->dt2[$dw & 0x0000FF00] ^ + $this->dt3[$dw & 0x000000FF]; + $j++; + } + $this->dw[$row] = $temp; + } + + $col = 0; + $row++; + } + $this->w[$row][$col] = $w[$i]; + } + + $this->dw[$row] = $this->w[$row]; + + $this->changed = false; + } + + /** + * Performs S-Box substitutions + * + * @access private + */ + function _subWord($word) + { + static $sbox0, $sbox1, $sbox2, $sbox3; + + if (empty($sbox0)) { + $sbox0 = array( + 0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5, 0x30, 0x01, 0x67, 0x2B, 0xFE, 0xD7, 0xAB, 0x76, + 0xCA, 0x82, 0xC9, 0x7D, 0xFA, 0x59, 0x47, 0xF0, 0xAD, 0xD4, 0xA2, 0xAF, 0x9C, 0xA4, 0x72, 0xC0, + 0xB7, 0xFD, 0x93, 0x26, 0x36, 0x3F, 0xF7, 0xCC, 0x34, 0xA5, 0xE5, 0xF1, 0x71, 0xD8, 0x31, 0x15, + 0x04, 0xC7, 0x23, 0xC3, 0x18, 0x96, 0x05, 0x9A, 0x07, 0x12, 0x80, 0xE2, 0xEB, 0x27, 0xB2, 0x75, + 0x09, 0x83, 0x2C, 0x1A, 0x1B, 0x6E, 0x5A, 0xA0, 0x52, 0x3B, 0xD6, 0xB3, 0x29, 0xE3, 0x2F, 0x84, + 0x53, 0xD1, 0x00, 0xED, 0x20, 0xFC, 0xB1, 0x5B, 0x6A, 0xCB, 0xBE, 0x39, 0x4A, 0x4C, 0x58, 0xCF, + 0xD0, 0xEF, 0xAA, 0xFB, 0x43, 0x4D, 0x33, 0x85, 0x45, 0xF9, 0x02, 0x7F, 0x50, 0x3C, 0x9F, 0xA8, + 0x51, 0xA3, 0x40, 0x8F, 0x92, 0x9D, 0x38, 0xF5, 0xBC, 0xB6, 0xDA, 0x21, 0x10, 0xFF, 0xF3, 0xD2, + 0xCD, 0x0C, 0x13, 0xEC, 0x5F, 0x97, 0x44, 0x17, 0xC4, 0xA7, 0x7E, 0x3D, 0x64, 0x5D, 0x19, 0x73, + 0x60, 0x81, 0x4F, 0xDC, 0x22, 0x2A, 0x90, 0x88, 0x46, 0xEE, 0xB8, 0x14, 0xDE, 0x5E, 0x0B, 0xDB, + 0xE0, 0x32, 0x3A, 0x0A, 0x49, 0x06, 0x24, 0x5C, 0xC2, 0xD3, 0xAC, 0x62, 0x91, 0x95, 0xE4, 0x79, + 0xE7, 0xC8, 0x37, 0x6D, 0x8D, 0xD5, 0x4E, 0xA9, 0x6C, 0x56, 0xF4, 0xEA, 0x65, 0x7A, 0xAE, 0x08, + 0xBA, 0x78, 0x25, 0x2E, 0x1C, 0xA6, 0xB4, 0xC6, 0xE8, 0xDD, 0x74, 0x1F, 0x4B, 0xBD, 0x8B, 0x8A, + 0x70, 0x3E, 0xB5, 0x66, 0x48, 0x03, 0xF6, 0x0E, 0x61, 0x35, 0x57, 0xB9, 0x86, 0xC1, 0x1D, 0x9E, + 0xE1, 0xF8, 0x98, 0x11, 0x69, 0xD9, 0x8E, 0x94, 0x9B, 0x1E, 0x87, 0xE9, 0xCE, 0x55, 0x28, 0xDF, + 0x8C, 0xA1, 0x89, 0x0D, 0xBF, 0xE6, 0x42, 0x68, 0x41, 0x99, 0x2D, 0x0F, 0xB0, 0x54, 0xBB, 0x16 + ); + + $sbox1 = array(); + $sbox2 = array(); + $sbox3 = array(); + + for ($i = 0; $i < 256; $i++) { + $sbox1[$i << 8] = $sbox0[$i] << 8; + $sbox2[$i << 16] = $sbox0[$i] << 16; + $sbox3[$i << 24] = $sbox0[$i] << 24; + } + } + + return $sbox0[$word & 0x000000FF] | + $sbox1[$word & 0x0000FF00] | + $sbox2[$word & 0x00FF0000] | + $sbox3[$word & 0xFF000000]; + } + + /** + * Performs inverse S-Box substitutions + * + * @access private + */ + function _invSubWord($word) + { + static $sbox0, $sbox1, $sbox2, $sbox3; + + if (empty($sbox0)) { + $sbox0 = array( + 0x52, 0x09, 0x6A, 0xD5, 0x30, 0x36, 0xA5, 0x38, 0xBF, 0x40, 0xA3, 0x9E, 0x81, 0xF3, 0xD7, 0xFB, + 0x7C, 0xE3, 0x39, 0x82, 0x9B, 0x2F, 0xFF, 0x87, 0x34, 0x8E, 0x43, 0x44, 0xC4, 0xDE, 0xE9, 0xCB, + 0x54, 0x7B, 0x94, 0x32, 0xA6, 0xC2, 0x23, 0x3D, 0xEE, 0x4C, 0x95, 0x0B, 0x42, 0xFA, 0xC3, 0x4E, + 0x08, 0x2E, 0xA1, 0x66, 0x28, 0xD9, 0x24, 0xB2, 0x76, 0x5B, 0xA2, 0x49, 0x6D, 0x8B, 0xD1, 0x25, + 0x72, 0xF8, 0xF6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xD4, 0xA4, 0x5C, 0xCC, 0x5D, 0x65, 0xB6, 0x92, + 0x6C, 0x70, 0x48, 0x50, 0xFD, 0xED, 0xB9, 0xDA, 0x5E, 0x15, 0x46, 0x57, 0xA7, 0x8D, 0x9D, 0x84, + 0x90, 0xD8, 0xAB, 0x00, 0x8C, 0xBC, 0xD3, 0x0A, 0xF7, 0xE4, 0x58, 0x05, 0xB8, 0xB3, 0x45, 0x06, + 0xD0, 0x2C, 0x1E, 0x8F, 0xCA, 0x3F, 0x0F, 0x02, 0xC1, 0xAF, 0xBD, 0x03, 0x01, 0x13, 0x8A, 0x6B, + 0x3A, 0x91, 0x11, 0x41, 0x4F, 0x67, 0xDC, 0xEA, 0x97, 0xF2, 0xCF, 0xCE, 0xF0, 0xB4, 0xE6, 0x73, + 0x96, 0xAC, 0x74, 0x22, 0xE7, 0xAD, 0x35, 0x85, 0xE2, 0xF9, 0x37, 0xE8, 0x1C, 0x75, 0xDF, 0x6E, + 0x47, 0xF1, 0x1A, 0x71, 0x1D, 0x29, 0xC5, 0x89, 0x6F, 0xB7, 0x62, 0x0E, 0xAA, 0x18, 0xBE, 0x1B, + 0xFC, 0x56, 0x3E, 0x4B, 0xC6, 0xD2, 0x79, 0x20, 0x9A, 0xDB, 0xC0, 0xFE, 0x78, 0xCD, 0x5A, 0xF4, + 0x1F, 0xDD, 0xA8, 0x33, 0x88, 0x07, 0xC7, 0x31, 0xB1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xEC, 0x5F, + 0x60, 0x51, 0x7F, 0xA9, 0x19, 0xB5, 0x4A, 0x0D, 0x2D, 0xE5, 0x7A, 0x9F, 0x93, 0xC9, 0x9C, 0xEF, + 0xA0, 0xE0, 0x3B, 0x4D, 0xAE, 0x2A, 0xF5, 0xB0, 0xC8, 0xEB, 0xBB, 0x3C, 0x83, 0x53, 0x99, 0x61, + 0x17, 0x2B, 0x04, 0x7E, 0xBA, 0x77, 0xD6, 0x26, 0xE1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0C, 0x7D + ); + + $sbox1 = array(); + $sbox2 = array(); + $sbox3 = array(); + + for ($i = 0; $i < 256; $i++) { + $sbox1[$i << 8] = $sbox0[$i] << 8; + $sbox2[$i << 16] = $sbox0[$i] << 16; + $sbox3[$i << 24] = $sbox0[$i] << 24; + } + } + + return $sbox0[$word & 0x000000FF] | + $sbox1[$word & 0x0000FF00] | + $sbox2[$word & 0x00FF0000] | + $sbox3[$word & 0xFF000000]; + } + + /** + * Pad "packets". + * + * Rijndael works by encrypting between sixteen and thirty-two bytes at a time, provided that number is also a multiple + * of four. If you ever need to encrypt or decrypt something that isn't of the proper length, it becomes necessary to + * pad the input so that it is of the proper length. + * + * Padding is enabled by default. Sometimes, however, it is undesirable to pad strings. Such is the case in SSH, + * where "packets" are padded with random bytes before being encrypted. Unpad these packets and you risk stripping + * away characters that shouldn't be stripped away. (SSH knows how many bytes are added because the length is + * transmitted separately) + * + * @see Crypt_Rijndael::disablePadding() + * @access public + */ + function enablePadding() + { + $this->padding = true; + } + + /** + * Do not pad packets. + * + * @see Crypt_Rijndael::enablePadding() + * @access public + */ + function disablePadding() + { + $this->padding = false; + } + + /** + * Pads a string + * + * Pads a string using the RSA PKCS padding standards so that its length is a multiple of the blocksize. + * $block_size - (strlen($text) % $block_size) bytes are added, each of which is equal to + * chr($block_size - (strlen($text) % $block_size) + * + * If padding is disabled and $text is not a multiple of the blocksize, the string will be padded regardless + * and padding will, hence forth, be enabled. + * + * @see Crypt_Rijndael::_unpad() + * @access private + */ + function _pad($text) + { + $length = strlen($text); + + if (!$this->padding) { + if ($length % $this->block_size == 0) { + return $text; + } else { + user_error("The plaintext's length ($length) is not a multiple of the block size ({$this->block_size})", E_USER_NOTICE); + $this->padding = true; + } + } + + $pad = $this->block_size - ($length % $this->block_size); + + return str_pad($text, $length + $pad, chr($pad)); + } + + /** + * Unpads a string. + * + * If padding is enabled and the reported padding length is invalid the encryption key will be assumed to be wrong + * and false will be returned. + * + * @see Crypt_Rijndael::_pad() + * @access private + */ + function _unpad($text) + { + if (!$this->padding) { + return $text; + } + + $length = ord($text[strlen($text) - 1]); + + if (!$length || $length > $this->block_size) { + return false; + } + + return substr($text, 0, -$length); + } + + /** + * Treat consecutive "packets" as if they are a continuous buffer. + * + * Say you have a 32-byte plaintext $plaintext. Using the default behavior, the two following code snippets + * will yield different outputs: + * + * + * echo $rijndael->encrypt(substr($plaintext, 0, 16)); + * echo $rijndael->encrypt(substr($plaintext, 16, 16)); + * + * + * echo $rijndael->encrypt($plaintext); + * + * + * The solution is to enable the continuous buffer. Although this will resolve the above discrepancy, it creates + * another, as demonstrated with the following: + * + * + * $rijndael->encrypt(substr($plaintext, 0, 16)); + * echo $rijndael->decrypt($des->encrypt(substr($plaintext, 16, 16))); + * + * + * echo $rijndael->decrypt($des->encrypt(substr($plaintext, 16, 16))); + * + * + * With the continuous buffer disabled, these would yield the same output. With it enabled, they yield different + * outputs. The reason is due to the fact that the initialization vector's change after every encryption / + * decryption round when the continuous buffer is enabled. When it's disabled, they remain constant. + * + * Put another way, when the continuous buffer is enabled, the state of the Crypt_Rijndael() object changes after each + * encryption / decryption round, whereas otherwise, it'd remain constant. For this reason, it's recommended that + * continuous buffers not be used. They do offer better security and are, in fact, sometimes required (SSH uses them), + * however, they are also less intuitive and more likely to cause you problems. + * + * @see Crypt_Rijndael::disableContinuousBuffer() + * @access public + */ + function enableContinuousBuffer() + { + $this->continuousBuffer = true; + } + + /** + * Treat consecutive packets as if they are a discontinuous buffer. + * + * The default behavior. + * + * @see Crypt_Rijndael::enableContinuousBuffer() + * @access public + */ + function disableContinuousBuffer() + { + $this->continuousBuffer = false; + $this->encryptIV = $this->iv; + $this->decryptIV = $this->iv; + } + + /** + * String Shift + * + * Inspired by array_shift + * + * @param String $string + * @param optional Integer $index + * @return String + * @access private + */ + function _string_shift(&$string, $index = 1) + { + $substr = substr($string, 0, $index); + $string = substr($string, $index); + return $substr; + } +} + +// vim: ts=4:sw=4:et: // vim6: fdl=1: \ No newline at end of file diff --git a/plugins/OStatus/extlib/Crypt/TripleDES.php b/plugins/OStatus/extlib/Crypt/TripleDES.php index 03050e5d6..9d054086a 100644 --- a/plugins/OStatus/extlib/Crypt/TripleDES.php +++ b/plugins/OStatus/extlib/Crypt/TripleDES.php @@ -1,603 +1,690 @@ - - * setKey('abcdefghijklmnopqrstuvwx'); - * - * $size = 10 * 1024; - * $plaintext = ''; - * for ($i = 0; $i < $size; $i++) { - * $plaintext.= 'a'; - * } - * - * echo $des->decrypt($des->encrypt($plaintext)); - * ?> - * - * - * LICENSE: This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - * - * @category Crypt - * @package Crypt_TripleDES - * @author Jim Wigginton - * @copyright MMVII Jim Wigginton - * @license http://www.gnu.org/licenses/lgpl.txt - * @version $Id: TripleDES.php,v 1.9 2009/11/23 19:06:07 terrafrost Exp $ - * @link http://phpseclib.sourceforge.net - */ - -/** - * Include Crypt_DES - */ -require_once 'DES.php'; - -/** - * Encrypt / decrypt using inner chaining - * - * Inner chaining is used by SSH-1 and is generally considered to be less secure then outer chaining (CRYPT_DES_MODE_CBC3). - */ -define('CRYPT_DES_MODE_3CBC', 3); - -/** - * Encrypt / decrypt using outer chaining - * - * Outer chaining is used by SSH-2 and when the mode is set to CRYPT_DES_MODE_CBC. - */ -define('CRYPT_DES_MODE_CBC3', CRYPT_DES_MODE_CBC); - -/** - * Pure-PHP implementation of Triple DES. - * - * @author Jim Wigginton - * @version 0.1.0 - * @access public - * @package Crypt_TerraDES - */ -class Crypt_TripleDES { - /** - * The Three Keys - * - * @see Crypt_TripleDES::setKey() - * @var String - * @access private - */ - var $key = "\0\0\0\0\0\0\0\0"; - - /** - * The Encryption Mode - * - * @see Crypt_TripleDES::Crypt_TripleDES() - * @var Integer - * @access private - */ - var $mode = CRYPT_DES_MODE_CBC; - - /** - * Continuous Buffer status - * - * @see Crypt_TripleDES::enableContinuousBuffer() - * @var Boolean - * @access private - */ - var $continuousBuffer = false; - - /** - * Padding status - * - * @see Crypt_TripleDES::enablePadding() - * @var Boolean - * @access private - */ - var $padding = true; - - /** - * The Initialization Vector - * - * @see Crypt_TripleDES::setIV() - * @var String - * @access private - */ - var $iv = "\0\0\0\0\0\0\0\0"; - - /** - * A "sliding" Initialization Vector - * - * @see Crypt_TripleDES::enableContinuousBuffer() - * @var String - * @access private - */ - var $encryptIV = "\0\0\0\0\0\0\0\0"; - - /** - * A "sliding" Initialization Vector - * - * @see Crypt_TripleDES::enableContinuousBuffer() - * @var String - * @access private - */ - var $decryptIV = "\0\0\0\0\0\0\0\0"; - - /** - * MCrypt parameters - * - * @see Crypt_TripleDES::setMCrypt() - * @var Array - * @access private - */ - var $mcrypt = array('', ''); - - /** - * The Crypt_DES objects - * - * @var Array - * @access private - */ - var $des; - - /** - * Default Constructor. - * - * Determines whether or not the mcrypt extension should be used. $mode should only, at present, be - * CRYPT_DES_MODE_ECB or CRYPT_DES_MODE_CBC. If not explictly set, CRYPT_DES_MODE_CBC will be used. - * - * @param optional Integer $mode - * @return Crypt_TripleDES - * @access public - */ - function Crypt_TripleDES($mode = CRYPT_DES_MODE_CBC) - { - if ( !defined('CRYPT_DES_MODE') ) { - switch (true) { - case extension_loaded('mcrypt'): - // i'd check to see if des was supported, by doing in_array('des', mcrypt_list_algorithms('')), - // but since that can be changed after the object has been created, there doesn't seem to be - // a lot of point... - define('CRYPT_DES_MODE', CRYPT_DES_MODE_MCRYPT); - break; - default: - define('CRYPT_DES_MODE', CRYPT_DES_MODE_INTERNAL); - } - } - - if ( $mode == CRYPT_DES_MODE_3CBC ) { - $this->mode = CRYPT_DES_MODE_3CBC; - $this->des = array( - new Crypt_DES(CRYPT_DES_MODE_CBC), - new Crypt_DES(CRYPT_DES_MODE_CBC), - new Crypt_DES(CRYPT_DES_MODE_CBC) - ); - - // we're going to be doing the padding, ourselves, so disable it in the Crypt_DES objects - $this->des[0]->disablePadding(); - $this->des[1]->disablePadding(); - $this->des[2]->disablePadding(); - - return; - } - - switch ( CRYPT_DES_MODE ) { - case CRYPT_DES_MODE_MCRYPT: - switch ($mode) { - case CRYPT_DES_MODE_ECB: - $this->mode = MCRYPT_MODE_ECB; break; - case CRYPT_DES_MODE_CBC: - default: - $this->mode = MCRYPT_MODE_CBC; - } - - break; - default: - $this->des = array( - new Crypt_DES(CRYPT_DES_MODE_ECB), - new Crypt_DES(CRYPT_DES_MODE_ECB), - new Crypt_DES(CRYPT_DES_MODE_ECB) - ); - - // we're going to be doing the padding, ourselves, so disable it in the Crypt_DES objects - $this->des[0]->disablePadding(); - $this->des[1]->disablePadding(); - $this->des[2]->disablePadding(); - - switch ($mode) { - case CRYPT_DES_MODE_ECB: - case CRYPT_DES_MODE_CBC: - $this->mode = $mode; - break; - default: - $this->mode = CRYPT_DES_MODE_CBC; - } - } - } - - /** - * Sets the key. - * - * Keys can be of any length. Triple DES, itself, can use 128-bit (eg. strlen($key) == 16) or - * 192-bit (eg. strlen($key) == 24) keys. This function pads and truncates $key as appropriate. - * - * DES also requires that every eighth bit be a parity bit, however, we'll ignore that. - * - * If the key is not explicitly set, it'll be assumed to be all zero's. - * - * @access public - * @param String $key - */ - function setKey($key) - { - $length = strlen($key); - if ($length > 8) { - $key = str_pad($key, 24, chr(0)); - // if $key is between 64 and 128-bits, use the first 64-bits as the last, per this: - // http://php.net/function.mcrypt-encrypt#47973 - $key = $length <= 16 ? substr_replace($key, substr($key, 0, 8), 16) : substr($key, 0, 24); - } - $this->key = $key; - switch (true) { - case CRYPT_DES_MODE == CRYPT_DES_MODE_INTERNAL: - case $this->mode == CRYPT_DES_MODE_3CBC: - $this->des[0]->setKey(substr($key, 0, 8)); - $this->des[1]->setKey(substr($key, 8, 8)); - $this->des[2]->setKey(substr($key, 16, 8)); - } - } - - /** - * Sets the initialization vector. (optional) - * - * SetIV is not required when CRYPT_DES_MODE_ECB is being used. If not explictly set, it'll be assumed - * to be all zero's. - * - * @access public - * @param String $iv - */ - function setIV($iv) - { - $this->encryptIV = $this->decryptIV = $this->iv = str_pad(substr($iv, 0, 8), 8, chr(0)); - if ($this->mode == CRYPT_DES_MODE_3CBC) { - $this->des[0]->setIV($iv); - $this->des[1]->setIV($iv); - $this->des[2]->setIV($iv); - } - } - - /** - * Sets MCrypt parameters. (optional) - * - * If MCrypt is being used, empty strings will be used, unless otherwise specified. - * - * @link http://php.net/function.mcrypt-module-open#function.mcrypt-module-open - * @access public - * @param optional Integer $algorithm_directory - * @param optional Integer $mode_directory - */ - function setMCrypt($algorithm_directory = '', $mode_directory = '') - { - $this->mcrypt = array($algorithm_directory, $mode_directory); - if ( $this->mode == CRYPT_DES_MODE_3CBC ) { - $this->des[0]->setMCrypt($algorithm_directory, $mode_directory); - $this->des[1]->setMCrypt($algorithm_directory, $mode_directory); - $this->des[2]->setMCrypt($algorithm_directory, $mode_directory); - } - } - - /** - * Encrypts a message. - * - * @access public - * @param String $plaintext - */ - function encrypt($plaintext) - { - $plaintext = $this->_pad($plaintext); - - // if the key is smaller then 8, do what we'd normally do - if ($this->mode == CRYPT_DES_MODE_3CBC && strlen($this->key) > 8) { - $ciphertext = $this->des[2]->encrypt($this->des[1]->decrypt($this->des[0]->encrypt($plaintext))); - - return $ciphertext; - } - - if ( CRYPT_DES_MODE == CRYPT_DES_MODE_MCRYPT ) { - $td = mcrypt_module_open(MCRYPT_3DES, $this->mcrypt[0], $this->mode, $this->mcrypt[1]); - mcrypt_generic_init($td, $this->key, $this->encryptIV); - - $ciphertext = mcrypt_generic($td, $plaintext); - - mcrypt_generic_deinit($td); - mcrypt_module_close($td); - - if ($this->continuousBuffer) { - $this->encryptIV = substr($ciphertext, -8); - } - - return $ciphertext; - } - - if (strlen($this->key) <= 8) { - $this->des[0]->mode = $this->mode; - - return $this->des[0]->encrypt($plaintext); - } - - // we pad with chr(0) since that's what mcrypt_generic does. to quote from http://php.net/function.mcrypt-generic : - // "The data is padded with "\0" to make sure the length of the data is n * blocksize." - $plaintext = str_pad($plaintext, ceil(strlen($plaintext) / 8) * 8, chr(0)); - - $ciphertext = ''; - switch ($this->mode) { - case CRYPT_DES_MODE_ECB: - for ($i = 0; $i < strlen($plaintext); $i+=8) { - $block = substr($plaintext, $i, 8); - $block = $this->des[0]->_processBlock($block, CRYPT_DES_ENCRYPT); - $block = $this->des[1]->_processBlock($block, CRYPT_DES_DECRYPT); - $block = $this->des[2]->_processBlock($block, CRYPT_DES_ENCRYPT); - $ciphertext.= $block; - } - break; - case CRYPT_DES_MODE_CBC: - $xor = $this->encryptIV; - for ($i = 0; $i < strlen($plaintext); $i+=8) { - $block = substr($plaintext, $i, 8) ^ $xor; - $block = $this->des[0]->_processBlock($block, CRYPT_DES_ENCRYPT); - $block = $this->des[1]->_processBlock($block, CRYPT_DES_DECRYPT); - $block = $this->des[2]->_processBlock($block, CRYPT_DES_ENCRYPT); - $xor = $block; - $ciphertext.= $block; - } - if ($this->continuousBuffer) { - $this->encryptIV = $xor; - } - } - - return $ciphertext; - } - - /** - * Decrypts a message. - * - * @access public - * @param String $ciphertext - */ - function decrypt($ciphertext) - { - if ($this->mode == CRYPT_DES_MODE_3CBC && strlen($this->key) > 8) { - $plaintext = $this->des[0]->decrypt($this->des[1]->encrypt($this->des[2]->decrypt($ciphertext))); - - return $this->_unpad($plaintext); - } - - // we pad with chr(0) since that's what mcrypt_generic does. to quote from http://php.net/function.mcrypt-generic : - // "The data is padded with "\0" to make sure the length of the data is n * blocksize." - $ciphertext = str_pad($ciphertext, (strlen($ciphertext) + 7) & 0xFFFFFFF8, chr(0)); - - if ( CRYPT_DES_MODE == CRYPT_DES_MODE_MCRYPT ) { - $td = mcrypt_module_open(MCRYPT_3DES, $this->mcrypt[0], $this->mode, $this->mcrypt[1]); - mcrypt_generic_init($td, $this->key, $this->decryptIV); - - $plaintext = mdecrypt_generic($td, $ciphertext); - - mcrypt_generic_deinit($td); - mcrypt_module_close($td); - - if ($this->continuousBuffer) { - $this->decryptIV = substr($ciphertext, -8); - } - - return $this->_unpad($plaintext); - } - - if (strlen($this->key) <= 8) { - $this->des[0]->mode = $this->mode; - - return $this->_unpad($this->des[0]->decrypt($plaintext)); - } - - $plaintext = ''; - switch ($this->mode) { - case CRYPT_DES_MODE_ECB: - for ($i = 0; $i < strlen($ciphertext); $i+=8) { - $block = substr($ciphertext, $i, 8); - $block = $this->des[2]->_processBlock($block, CRYPT_DES_DECRYPT); - $block = $this->des[1]->_processBlock($block, CRYPT_DES_ENCRYPT); - $block = $this->des[0]->_processBlock($block, CRYPT_DES_DECRYPT); - $plaintext.= $block; - } - break; - case CRYPT_DES_MODE_CBC: - $xor = $this->decryptIV; - for ($i = 0; $i < strlen($ciphertext); $i+=8) { - $orig = $block = substr($ciphertext, $i, 8); - $block = $this->des[2]->_processBlock($block, CRYPT_DES_DECRYPT); - $block = $this->des[1]->_processBlock($block, CRYPT_DES_ENCRYPT); - $block = $this->des[0]->_processBlock($block, CRYPT_DES_DECRYPT); - $plaintext.= $block ^ $xor; - $xor = $orig; - } - if ($this->continuousBuffer) { - $this->decryptIV = $xor; - } - } - - return $this->_unpad($plaintext); - } - - /** - * Treat consecutive "packets" as if they are a continuous buffer. - * - * Say you have a 16-byte plaintext $plaintext. Using the default behavior, the two following code snippets - * will yield different outputs: - * - * - * echo $des->encrypt(substr($plaintext, 0, 8)); - * echo $des->encrypt(substr($plaintext, 8, 8)); - * - * - * echo $des->encrypt($plaintext); - * - * - * The solution is to enable the continuous buffer. Although this will resolve the above discrepancy, it creates - * another, as demonstrated with the following: - * - * - * $des->encrypt(substr($plaintext, 0, 8)); - * echo $des->decrypt($des->encrypt(substr($plaintext, 8, 8))); - * - * - * echo $des->decrypt($des->encrypt(substr($plaintext, 8, 8))); - * - * - * With the continuous buffer disabled, these would yield the same output. With it enabled, they yield different - * outputs. The reason is due to the fact that the initialization vector's change after every encryption / - * decryption round when the continuous buffer is enabled. When it's disabled, they remain constant. - * - * Put another way, when the continuous buffer is enabled, the state of the Crypt_DES() object changes after each - * encryption / decryption round, whereas otherwise, it'd remain constant. For this reason, it's recommended that - * continuous buffers not be used. They do offer better security and are, in fact, sometimes required (SSH uses them), - * however, they are also less intuitive and more likely to cause you problems. - * - * @see Crypt_TripleDES::disableContinuousBuffer() - * @access public - */ - function enableContinuousBuffer() - { - $this->continuousBuffer = true; - if ($this->mode == CRYPT_DES_MODE_3CBC) { - $this->des[0]->enableContinuousBuffer(); - $this->des[1]->enableContinuousBuffer(); - $this->des[2]->enableContinuousBuffer(); - } - } - - /** - * Treat consecutive packets as if they are a discontinuous buffer. - * - * The default behavior. - * - * @see Crypt_TripleDES::enableContinuousBuffer() - * @access public - */ - function disableContinuousBuffer() - { - $this->continuousBuffer = false; - $this->encryptIV = $this->iv; - $this->decryptIV = $this->iv; - - if ($this->mode == CRYPT_DES_MODE_3CBC) { - $this->des[0]->disableContinuousBuffer(); - $this->des[1]->disableContinuousBuffer(); - $this->des[2]->disableContinuousBuffer(); - } - } - - /** - * Pad "packets". - * - * DES works by encrypting eight bytes at a time. If you ever need to encrypt or decrypt something that's not - * a multiple of eight, it becomes necessary to pad the input so that it's length is a multiple of eight. - * - * Padding is enabled by default. Sometimes, however, it is undesirable to pad strings. Such is the case in SSH1, - * where "packets" are padded with random bytes before being encrypted. Unpad these packets and you risk stripping - * away characters that shouldn't be stripped away. (SSH knows how many bytes are added because the length is - * transmitted separately) - * - * @see Crypt_TripleDES::disablePadding() - * @access public - */ - function enablePadding() - { - $this->padding = true; - } - - /** - * Do not pad packets. - * - * @see Crypt_TripleDES::enablePadding() - * @access public - */ - function disablePadding() - { - $this->padding = false; - } - - /** - * Pads a string - * - * Pads a string using the RSA PKCS padding standards so that its length is a multiple of the blocksize (8). - * 8 - (strlen($text) & 7) bytes are added, each of which is equal to chr(8 - (strlen($text) & 7) - * - * If padding is disabled and $text is not a multiple of the blocksize, the string will be padded regardless - * and padding will, hence forth, be enabled. - * - * @see Crypt_TripleDES::_unpad() - * @access private - */ - function _pad($text) - { - $length = strlen($text); - - if (!$this->padding) { - if (($length & 7) == 0) { - return $text; - } else { - user_error("The plaintext's length ($length) is not a multiple of the block size (8)", E_USER_NOTICE); - $this->padding = true; - } - } - - $pad = 8 - ($length & 7); - return str_pad($text, $length + $pad, chr($pad)); - } - - /** - * Unpads a string - * - * If padding is enabled and the reported padding length is invalid, padding will be, hence forth, disabled. - * - * @see Crypt_TripleDES::_pad() - * @access private - */ - function _unpad($text) - { - if (!$this->padding) { - return $text; - } - - $length = ord($text[strlen($text) - 1]); - - if (!$length || $length > 8) { - user_error("The number of bytes reported as being padded ($length) is invalid (block size = 8)", E_USER_NOTICE); - $this->padding = false; - return $text; - } - - return substr($text, 0, -$length); - } -} - -// vim: ts=4:sw=4:et: + + * setKey('abcdefghijklmnopqrstuvwx'); + * + * $size = 10 * 1024; + * $plaintext = ''; + * for ($i = 0; $i < $size; $i++) { + * $plaintext.= 'a'; + * } + * + * echo $des->decrypt($des->encrypt($plaintext)); + * ?> + * + * + * LICENSE: This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * @category Crypt + * @package Crypt_TripleDES + * @author Jim Wigginton + * @copyright MMVII Jim Wigginton + * @license http://www.gnu.org/licenses/lgpl.txt + * @version $Id: TripleDES.php,v 1.13 2010/02/26 03:40:25 terrafrost Exp $ + * @link http://phpseclib.sourceforge.net + */ + +/** + * Include Crypt_DES + */ +require_once 'DES.php'; + +/** + * Encrypt / decrypt using inner chaining + * + * Inner chaining is used by SSH-1 and is generally considered to be less secure then outer chaining (CRYPT_DES_MODE_CBC3). + */ +define('CRYPT_DES_MODE_3CBC', 3); + +/** + * Encrypt / decrypt using outer chaining + * + * Outer chaining is used by SSH-2 and when the mode is set to CRYPT_DES_MODE_CBC. + */ +define('CRYPT_DES_MODE_CBC3', CRYPT_DES_MODE_CBC); + +/** + * Pure-PHP implementation of Triple DES. + * + * @author Jim Wigginton + * @version 0.1.0 + * @access public + * @package Crypt_TerraDES + */ +class Crypt_TripleDES { + /** + * The Three Keys + * + * @see Crypt_TripleDES::setKey() + * @var String + * @access private + */ + var $key = "\0\0\0\0\0\0\0\0"; + + /** + * The Encryption Mode + * + * @see Crypt_TripleDES::Crypt_TripleDES() + * @var Integer + * @access private + */ + var $mode = CRYPT_DES_MODE_CBC; + + /** + * Continuous Buffer status + * + * @see Crypt_TripleDES::enableContinuousBuffer() + * @var Boolean + * @access private + */ + var $continuousBuffer = false; + + /** + * Padding status + * + * @see Crypt_TripleDES::enablePadding() + * @var Boolean + * @access private + */ + var $padding = true; + + /** + * The Initialization Vector + * + * @see Crypt_TripleDES::setIV() + * @var String + * @access private + */ + var $iv = "\0\0\0\0\0\0\0\0"; + + /** + * A "sliding" Initialization Vector + * + * @see Crypt_TripleDES::enableContinuousBuffer() + * @var String + * @access private + */ + var $encryptIV = "\0\0\0\0\0\0\0\0"; + + /** + * A "sliding" Initialization Vector + * + * @see Crypt_TripleDES::enableContinuousBuffer() + * @var String + * @access private + */ + var $decryptIV = "\0\0\0\0\0\0\0\0"; + + /** + * The Crypt_DES objects + * + * @var Array + * @access private + */ + var $des; + + /** + * mcrypt resource for encryption + * + * The mcrypt resource can be recreated every time something needs to be created or it can be created just once. + * Since mcrypt operates in continuous mode, by default, it'll need to be recreated when in non-continuous mode. + * + * @see Crypt_AES::encrypt() + * @var String + * @access private + */ + var $enmcrypt; + + /** + * mcrypt resource for decryption + * + * The mcrypt resource can be recreated every time something needs to be created or it can be created just once. + * Since mcrypt operates in continuous mode, by default, it'll need to be recreated when in non-continuous mode. + * + * @see Crypt_AES::decrypt() + * @var String + * @access private + */ + var $demcrypt; + + /** + * Does the (en|de)mcrypt resource need to be (re)initialized? + * + * @see setKey() + * @see setIV() + * @var Boolean + * @access private + */ + var $changed = true; + + /** + * Default Constructor. + * + * Determines whether or not the mcrypt extension should be used. $mode should only, at present, be + * CRYPT_DES_MODE_ECB or CRYPT_DES_MODE_CBC. If not explictly set, CRYPT_DES_MODE_CBC will be used. + * + * @param optional Integer $mode + * @return Crypt_TripleDES + * @access public + */ + function Crypt_TripleDES($mode = CRYPT_DES_MODE_CBC) + { + if ( !defined('CRYPT_DES_MODE') ) { + switch (true) { + case extension_loaded('mcrypt'): + // i'd check to see if des was supported, by doing in_array('des', mcrypt_list_algorithms('')), + // but since that can be changed after the object has been created, there doesn't seem to be + // a lot of point... + define('CRYPT_DES_MODE', CRYPT_DES_MODE_MCRYPT); + break; + default: + define('CRYPT_DES_MODE', CRYPT_DES_MODE_INTERNAL); + } + } + + if ( $mode == CRYPT_DES_MODE_3CBC ) { + $this->mode = CRYPT_DES_MODE_3CBC; + $this->des = array( + new Crypt_DES(CRYPT_DES_MODE_CBC), + new Crypt_DES(CRYPT_DES_MODE_CBC), + new Crypt_DES(CRYPT_DES_MODE_CBC) + ); + + // we're going to be doing the padding, ourselves, so disable it in the Crypt_DES objects + $this->des[0]->disablePadding(); + $this->des[1]->disablePadding(); + $this->des[2]->disablePadding(); + + return; + } + + switch ( CRYPT_DES_MODE ) { + case CRYPT_DES_MODE_MCRYPT: + switch ($mode) { + case CRYPT_DES_MODE_ECB: + $this->mode = MCRYPT_MODE_ECB; + break; + case CRYPT_DES_MODE_CTR: + $this->mode = 'ctr'; + break; + case CRYPT_DES_MODE_CBC: + default: + $this->mode = MCRYPT_MODE_CBC; + } + + break; + default: + $this->des = array( + new Crypt_DES(CRYPT_DES_MODE_ECB), + new Crypt_DES(CRYPT_DES_MODE_ECB), + new Crypt_DES(CRYPT_DES_MODE_ECB) + ); + + // we're going to be doing the padding, ourselves, so disable it in the Crypt_DES objects + $this->des[0]->disablePadding(); + $this->des[1]->disablePadding(); + $this->des[2]->disablePadding(); + + switch ($mode) { + case CRYPT_DES_MODE_ECB: + case CRYPT_DES_MODE_CTR: + case CRYPT_DES_MODE_CBC: + $this->mode = $mode; + break; + default: + $this->mode = CRYPT_DES_MODE_CBC; + } + } + } + + /** + * Sets the key. + * + * Keys can be of any length. Triple DES, itself, can use 128-bit (eg. strlen($key) == 16) or + * 192-bit (eg. strlen($key) == 24) keys. This function pads and truncates $key as appropriate. + * + * DES also requires that every eighth bit be a parity bit, however, we'll ignore that. + * + * If the key is not explicitly set, it'll be assumed to be all zero's. + * + * @access public + * @param String $key + */ + function setKey($key) + { + $length = strlen($key); + if ($length > 8) { + $key = str_pad($key, 24, chr(0)); + // if $key is between 64 and 128-bits, use the first 64-bits as the last, per this: + // http://php.net/function.mcrypt-encrypt#47973 + //$key = $length <= 16 ? substr_replace($key, substr($key, 0, 8), 16) : substr($key, 0, 24); + } + $this->key = $key; + switch (true) { + case CRYPT_DES_MODE == CRYPT_DES_MODE_INTERNAL: + case $this->mode == CRYPT_DES_MODE_3CBC: + $this->des[0]->setKey(substr($key, 0, 8)); + $this->des[1]->setKey(substr($key, 8, 8)); + $this->des[2]->setKey(substr($key, 16, 8)); + } + $this->changed = true; + } + + /** + * Sets the initialization vector. (optional) + * + * SetIV is not required when CRYPT_DES_MODE_ECB is being used. If not explictly set, it'll be assumed + * to be all zero's. + * + * @access public + * @param String $iv + */ + function setIV($iv) + { + $this->encryptIV = $this->decryptIV = $this->iv = str_pad(substr($iv, 0, 8), 8, chr(0)); + if ($this->mode == CRYPT_DES_MODE_3CBC) { + $this->des[0]->setIV($iv); + $this->des[1]->setIV($iv); + $this->des[2]->setIV($iv); + } + $this->changed = true; + } + + /** + * Generate CTR XOR encryption key + * + * Encrypt the output of this and XOR it against the ciphertext / plaintext to get the + * plaintext / ciphertext in CTR mode. + * + * @see Crypt_DES::decrypt() + * @see Crypt_DES::encrypt() + * @access public + * @param Integer $length + * @param String $iv + */ + function _generate_xor($length, &$iv) + { + $xor = ''; + $num_blocks = ($length + 7) >> 3; + for ($i = 0; $i < $num_blocks; $i++) { + $xor.= $iv; + for ($j = 4; $j <= 8; $j+=4) { + $temp = substr($iv, -$j, 4); + switch ($temp) { + case "\xFF\xFF\xFF\xFF": + $iv = substr_replace($iv, "\x00\x00\x00\x00", -$j, 4); + break; + case "\x7F\xFF\xFF\xFF": + $iv = substr_replace($iv, "\x80\x00\x00\x00", -$j, 4); + break 2; + default: + extract(unpack('Ncount', $temp)); + $iv = substr_replace($iv, pack('N', $count + 1), -$j, 4); + break 2; + } + } + } + + return $xor; + } + + /** + * Encrypts a message. + * + * @access public + * @param String $plaintext + */ + function encrypt($plaintext) + { + if ($this->mode != CRYPT_DES_MODE_CTR && $this->mode != 'ctr') { + $plaintext = $this->_pad($plaintext); + } + + // if the key is smaller then 8, do what we'd normally do + if ($this->mode == CRYPT_DES_MODE_3CBC && strlen($this->key) > 8) { + $ciphertext = $this->des[2]->encrypt($this->des[1]->decrypt($this->des[0]->encrypt($plaintext))); + + return $ciphertext; + } + + if ( CRYPT_DES_MODE == CRYPT_DES_MODE_MCRYPT ) { + if ($this->changed) { + if (!isset($this->enmcrypt)) { + $this->enmcrypt = mcrypt_module_open(MCRYPT_3DES, '', $this->mode, ''); + } + mcrypt_generic_init($this->enmcrypt, $this->key, $this->encryptIV); + $this->changed = false; + } + + $ciphertext = mcrypt_generic($this->enmcrypt, $plaintext); + + if (!$this->continuousBuffer) { + mcrypt_generic_init($this->enmcrypt, $this->key, $this->encryptIV); + } + + return $ciphertext; + } + + if (strlen($this->key) <= 8) { + $this->des[0]->mode = $this->mode; + + return $this->des[0]->encrypt($plaintext); + } + + // we pad with chr(0) since that's what mcrypt_generic does. to quote from http://php.net/function.mcrypt-generic : + // "The data is padded with "\0" to make sure the length of the data is n * blocksize." + $plaintext = str_pad($plaintext, ceil(strlen($plaintext) / 8) * 8, chr(0)); + + $des = $this->des; + + $ciphertext = ''; + switch ($this->mode) { + case CRYPT_DES_MODE_ECB: + for ($i = 0; $i < strlen($plaintext); $i+=8) { + $block = substr($plaintext, $i, 8); + $block = $des[0]->_processBlock($block, CRYPT_DES_ENCRYPT); + $block = $des[1]->_processBlock($block, CRYPT_DES_DECRYPT); + $block = $des[2]->_processBlock($block, CRYPT_DES_ENCRYPT); + $ciphertext.= $block; + } + break; + case CRYPT_DES_MODE_CBC: + $xor = $this->encryptIV; + for ($i = 0; $i < strlen($plaintext); $i+=8) { + $block = substr($plaintext, $i, 8) ^ $xor; + $block = $des[0]->_processBlock($block, CRYPT_DES_ENCRYPT); + $block = $des[1]->_processBlock($block, CRYPT_DES_DECRYPT); + $block = $des[2]->_processBlock($block, CRYPT_DES_ENCRYPT); + $xor = $block; + $ciphertext.= $block; + } + if ($this->continuousBuffer) { + $this->encryptIV = $xor; + } + break; + case CRYPT_DES_MODE_CTR: + $xor = $this->encryptIV; + for ($i = 0; $i < strlen($plaintext); $i+=8) { + $key = $this->_generate_xor(8, $xor); + $key = $des[0]->_processBlock($key, CRYPT_DES_ENCRYPT); + $key = $des[1]->_processBlock($key, CRYPT_DES_DECRYPT); + $key = $des[2]->_processBlock($key, CRYPT_DES_ENCRYPT); + $block = substr($plaintext, $i, 8); + $ciphertext.= $block ^ $key; + } + if ($this->continuousBuffer) { + $this->encryptIV = $xor; + } + } + + return $ciphertext; + } + + /** + * Decrypts a message. + * + * @access public + * @param String $ciphertext + */ + function decrypt($ciphertext) + { + if ($this->mode == CRYPT_DES_MODE_3CBC && strlen($this->key) > 8) { + $plaintext = $this->des[0]->decrypt($this->des[1]->encrypt($this->des[2]->decrypt($ciphertext))); + + return $this->_unpad($plaintext); + } + + // we pad with chr(0) since that's what mcrypt_generic does. to quote from http://php.net/function.mcrypt-generic : + // "The data is padded with "\0" to make sure the length of the data is n * blocksize." + $ciphertext = str_pad($ciphertext, (strlen($ciphertext) + 7) & 0xFFFFFFF8, chr(0)); + + if ( CRYPT_DES_MODE == CRYPT_DES_MODE_MCRYPT ) { + if ($this->changed) { + if (!isset($this->demcrypt)) { + $this->demcrypt = mcrypt_module_open(MCRYPT_3DES, '', $this->mode, ''); + } + mcrypt_generic_init($this->demcrypt, $this->key, $this->decryptIV); + $this->changed = false; + } + + $plaintext = mdecrypt_generic($this->demcrypt, $ciphertext); + + if (!$this->continuousBuffer) { + mcrypt_generic_init($this->demcrypt, $this->key, $this->decryptIV); + } + + return $this->mode != 'ctr' ? $this->_unpad($plaintext) : $plaintext; + } + + if (strlen($this->key) <= 8) { + $this->des[0]->mode = $this->mode; + + return $this->_unpad($this->des[0]->decrypt($plaintext)); + } + + $des = $this->des; + + $plaintext = ''; + switch ($this->mode) { + case CRYPT_DES_MODE_ECB: + for ($i = 0; $i < strlen($ciphertext); $i+=8) { + $block = substr($ciphertext, $i, 8); + $block = $des[2]->_processBlock($block, CRYPT_DES_DECRYPT); + $block = $des[1]->_processBlock($block, CRYPT_DES_ENCRYPT); + $block = $des[0]->_processBlock($block, CRYPT_DES_DECRYPT); + $plaintext.= $block; + } + break; + case CRYPT_DES_MODE_CBC: + $xor = $this->decryptIV; + for ($i = 0; $i < strlen($ciphertext); $i+=8) { + $orig = $block = substr($ciphertext, $i, 8); + $block = $des[2]->_processBlock($block, CRYPT_DES_DECRYPT); + $block = $des[1]->_processBlock($block, CRYPT_DES_ENCRYPT); + $block = $des[0]->_processBlock($block, CRYPT_DES_DECRYPT); + $plaintext.= $block ^ $xor; + $xor = $orig; + } + if ($this->continuousBuffer) { + $this->decryptIV = $xor; + } + break; + case CRYPT_DES_MODE_CTR: + $xor = $this->decryptIV; + for ($i = 0; $i < strlen($ciphertext); $i+=8) { + $key = $this->_generate_xor(8, $xor); + $key = $des[0]->_processBlock($key, CRYPT_DES_ENCRYPT); + $key = $des[1]->_processBlock($key, CRYPT_DES_DECRYPT); + $key = $des[2]->_processBlock($key, CRYPT_DES_ENCRYPT); + $block = substr($ciphertext, $i, 8); + $plaintext.= $block ^ $key; + } + if ($this->continuousBuffer) { + $this->decryptIV = $xor; + } + } + + return $this->mode != CRYPT_DES_MODE_CTR ? $this->_unpad($plaintext) : $plaintext; + } + + /** + * Treat consecutive "packets" as if they are a continuous buffer. + * + * Say you have a 16-byte plaintext $plaintext. Using the default behavior, the two following code snippets + * will yield different outputs: + * + * + * echo $des->encrypt(substr($plaintext, 0, 8)); + * echo $des->encrypt(substr($plaintext, 8, 8)); + * + * + * echo $des->encrypt($plaintext); + * + * + * The solution is to enable the continuous buffer. Although this will resolve the above discrepancy, it creates + * another, as demonstrated with the following: + * + * + * $des->encrypt(substr($plaintext, 0, 8)); + * echo $des->decrypt($des->encrypt(substr($plaintext, 8, 8))); + * + * + * echo $des->decrypt($des->encrypt(substr($plaintext, 8, 8))); + * + * + * With the continuous buffer disabled, these would yield the same output. With it enabled, they yield different + * outputs. The reason is due to the fact that the initialization vector's change after every encryption / + * decryption round when the continuous buffer is enabled. When it's disabled, they remain constant. + * + * Put another way, when the continuous buffer is enabled, the state of the Crypt_DES() object changes after each + * encryption / decryption round, whereas otherwise, it'd remain constant. For this reason, it's recommended that + * continuous buffers not be used. They do offer better security and are, in fact, sometimes required (SSH uses them), + * however, they are also less intuitive and more likely to cause you problems. + * + * @see Crypt_TripleDES::disableContinuousBuffer() + * @access public + */ + function enableContinuousBuffer() + { + $this->continuousBuffer = true; + if ($this->mode == CRYPT_DES_MODE_3CBC) { + $this->des[0]->enableContinuousBuffer(); + $this->des[1]->enableContinuousBuffer(); + $this->des[2]->enableContinuousBuffer(); + } + } + + /** + * Treat consecutive packets as if they are a discontinuous buffer. + * + * The default behavior. + * + * @see Crypt_TripleDES::enableContinuousBuffer() + * @access public + */ + function disableContinuousBuffer() + { + $this->continuousBuffer = false; + $this->encryptIV = $this->iv; + $this->decryptIV = $this->iv; + + if ($this->mode == CRYPT_DES_MODE_3CBC) { + $this->des[0]->disableContinuousBuffer(); + $this->des[1]->disableContinuousBuffer(); + $this->des[2]->disableContinuousBuffer(); + } + } + + /** + * Pad "packets". + * + * DES works by encrypting eight bytes at a time. If you ever need to encrypt or decrypt something that's not + * a multiple of eight, it becomes necessary to pad the input so that it's length is a multiple of eight. + * + * Padding is enabled by default. Sometimes, however, it is undesirable to pad strings. Such is the case in SSH1, + * where "packets" are padded with random bytes before being encrypted. Unpad these packets and you risk stripping + * away characters that shouldn't be stripped away. (SSH knows how many bytes are added because the length is + * transmitted separately) + * + * @see Crypt_TripleDES::disablePadding() + * @access public + */ + function enablePadding() + { + $this->padding = true; + } + + /** + * Do not pad packets. + * + * @see Crypt_TripleDES::enablePadding() + * @access public + */ + function disablePadding() + { + $this->padding = false; + } + + /** + * Pads a string + * + * Pads a string using the RSA PKCS padding standards so that its length is a multiple of the blocksize (8). + * 8 - (strlen($text) & 7) bytes are added, each of which is equal to chr(8 - (strlen($text) & 7) + * + * If padding is disabled and $text is not a multiple of the blocksize, the string will be padded regardless + * and padding will, hence forth, be enabled. + * + * @see Crypt_TripleDES::_unpad() + * @access private + */ + function _pad($text) + { + $length = strlen($text); + + if (!$this->padding) { + if (($length & 7) == 0) { + return $text; + } else { + user_error("The plaintext's length ($length) is not a multiple of the block size (8)", E_USER_NOTICE); + $this->padding = true; + } + } + + $pad = 8 - ($length & 7); + return str_pad($text, $length + $pad, chr($pad)); + } + + /** + * Unpads a string + * + * If padding is enabled and the reported padding length is invalid the encryption key will be assumed to be wrong + * and false will be returned. + * + * @see Crypt_TripleDES::_pad() + * @access private + */ + function _unpad($text) + { + if (!$this->padding) { + return $text; + } + + $length = ord($text[strlen($text) - 1]); + + if (!$length || $length > 8) { + return false; + } + + return substr($text, 0, -$length); + } +} + +// vim: ts=4:sw=4:et: // vim6: fdl=1: \ No newline at end of file diff --git a/plugins/OStatus/extlib/Math/BigInteger.php b/plugins/OStatus/extlib/Math/BigInteger.php index ce0e08354..9733351d4 100644 --- a/plugins/OStatus/extlib/Math/BigInteger.php +++ b/plugins/OStatus/extlib/Math/BigInteger.php @@ -1,3060 +1,3545 @@ -> and << cannot be used, nor can the modulo operator %, - * which only supports integers. Although this fact will slow this library down, the fact that such a high - * base is being used should more than compensate. - * - * When PHP version 6 is officially released, we'll be able to use 64-bit integers. This should, once again, - * allow bitwise operators, and will increase the maximum possible base to 2**31 (or 2**62 for addition / - * subtraction). - * - * Useful resources are as follows: - * - * - {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf Handbook of Applied Cryptography (HAC)} - * - {@link http://math.libtomcrypt.com/files/tommath.pdf Multi-Precision Math (MPM)} - * - Java's BigInteger classes. See /j2se/src/share/classes/java/math in jdk-1_5_0-src-jrl.zip - * - * One idea for optimization is to use the comba method to reduce the number of operations performed. - * MPM uses this quite extensively. The following URL elaborates: - * - * {@link http://www.everything2.com/index.pl?node_id=1736418}}} - * - * Here's an example of how to use this library: - * - * add($b); - * - * echo $c->toString(); // outputs 5 - * ?> - * - * - * LICENSE: This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - * - * @category Math - * @package Math_BigInteger - * @author Jim Wigginton - * @copyright MMVI Jim Wigginton - * @license http://www.gnu.org/licenses/lgpl.txt - * @version $Id: BigInteger.php,v 1.18 2009/12/04 19:12:18 terrafrost Exp $ - * @link http://pear.php.net/package/Math_BigInteger - */ - -/**#@+ - * @access private - * @see Math_BigInteger::_slidingWindow() - */ -/** - * @see Math_BigInteger::_montgomery() - * @see Math_BigInteger::_prepMontgomery() - */ -define('MATH_BIGINTEGER_MONTGOMERY', 0); -/** - * @see Math_BigInteger::_barrett() - */ -define('MATH_BIGINTEGER_BARRETT', 1); -/** - * @see Math_BigInteger::_mod2() - */ -define('MATH_BIGINTEGER_POWEROF2', 2); -/** - * @see Math_BigInteger::_remainder() - */ -define('MATH_BIGINTEGER_CLASSIC', 3); -/** - * @see Math_BigInteger::__clone() - */ -define('MATH_BIGINTEGER_NONE', 4); -/**#@-*/ - -/**#@+ - * @access private - * @see Math_BigInteger::_montgomery() - * @see Math_BigInteger::_barrett() - */ -/** - * $cache[MATH_BIGINTEGER_VARIABLE] tells us whether or not the cached data is still valid. - */ -define('MATH_BIGINTEGER_VARIABLE', 0); -/** - * $cache[MATH_BIGINTEGER_DATA] contains the cached data. - */ -define('MATH_BIGINTEGER_DATA', 1); -/**#@-*/ - -/**#@+ - * @access private - * @see Math_BigInteger::Math_BigInteger() - */ -/** - * To use the pure-PHP implementation - */ -define('MATH_BIGINTEGER_MODE_INTERNAL', 1); -/** - * To use the BCMath library - * - * (if enabled; otherwise, the internal implementation will be used) - */ -define('MATH_BIGINTEGER_MODE_BCMATH', 2); -/** - * To use the GMP library - * - * (if present; otherwise, either the BCMath or the internal implementation will be used) - */ -define('MATH_BIGINTEGER_MODE_GMP', 3); -/**#@-*/ - -/** - * The largest digit that may be used in addition / subtraction - * - * (we do pow(2, 52) instead of using 4503599627370496, directly, because some PHP installations - * will truncate 4503599627370496) - * - * @access private - */ -define('MATH_BIGINTEGER_MAX_DIGIT52', pow(2, 52)); - -/** - * Karatsuba Cutoff - * - * At what point do we switch between Karatsuba multiplication and schoolbook long multiplication? - * - * @access private - */ -define('MATH_BIGINTEGER_KARATSUBA_CUTOFF', 15); - -/** - * Pure-PHP arbitrary precision integer arithmetic library. Supports base-2, base-10, base-16, and base-256 - * numbers. - * - * @author Jim Wigginton - * @version 1.0.0RC3 - * @access public - * @package Math_BigInteger - */ -class Math_BigInteger { - /** - * Holds the BigInteger's value. - * - * @var Array - * @access private - */ - var $value; - - /** - * Holds the BigInteger's magnitude. - * - * @var Boolean - * @access private - */ - var $is_negative = false; - - /** - * Random number generator function - * - * @see setRandomGenerator() - * @access private - */ - var $generator = 'mt_rand'; - - /** - * Precision - * - * @see setPrecision() - * @access private - */ - var $precision = -1; - - /** - * Precision Bitmask - * - * @see setPrecision() - * @access private - */ - var $bitmask = false; - - /** - * Converts base-2, base-10, base-16, and binary strings (eg. base-256) to BigIntegers. - * - * If the second parameter - $base - is negative, then it will be assumed that the number's are encoded using - * two's compliment. The sole exception to this is -10, which is treated the same as 10 is. - * - * Here's an example: - * - * toString(); // outputs 50 - * ?> - * - * - * @param optional $x base-10 number or base-$base number if $base set. - * @param optional integer $base - * @return Math_BigInteger - * @access public - */ - function Math_BigInteger($x = 0, $base = 10) - { - if ( !defined('MATH_BIGINTEGER_MODE') ) { - switch (true) { - case extension_loaded('gmp'): - define('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_GMP); - break; - case extension_loaded('bcmath'): - define('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_BCMATH); - break; - default: - define('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_INTERNAL); - } - } - - switch ( MATH_BIGINTEGER_MODE ) { - case MATH_BIGINTEGER_MODE_GMP: - if (is_resource($x) && get_resource_type($x) == 'GMP integer') { - $this->value = $x; - return; - } - $this->value = gmp_init(0); - break; - case MATH_BIGINTEGER_MODE_BCMATH: - $this->value = '0'; - break; - default: - $this->value = array(); - } - - if ($x === 0) { - return; - } - - switch ($base) { - case -256: - if (ord($x[0]) & 0x80) { - $x = ~$x; - $this->is_negative = true; - } - case 256: - switch ( MATH_BIGINTEGER_MODE ) { - case MATH_BIGINTEGER_MODE_GMP: - $sign = $this->is_negative ? '-' : ''; - $this->value = gmp_init($sign . '0x' . bin2hex($x)); - break; - case MATH_BIGINTEGER_MODE_BCMATH: - // round $len to the nearest 4 (thanks, DavidMJ!) - $len = (strlen($x) + 3) & 0xFFFFFFFC; - - $x = str_pad($x, $len, chr(0), STR_PAD_LEFT); - - for ($i = 0; $i < $len; $i+= 4) { - $this->value = bcmul($this->value, '4294967296'); // 4294967296 == 2**32 - $this->value = bcadd($this->value, 0x1000000 * ord($x[$i]) + ((ord($x[$i + 1]) << 16) | (ord($x[$i + 2]) << 8) | ord($x[$i + 3]))); - } - - if ($this->is_negative) { - $this->value = '-' . $this->value; - } - - break; - // converts a base-2**8 (big endian / msb) number to base-2**26 (little endian / lsb) - default: - while (strlen($x)) { - $this->value[] = $this->_bytes2int($this->_base256_rshift($x, 26)); - } - } - - if ($this->is_negative) { - if (MATH_BIGINTEGER_MODE != MATH_BIGINTEGER_MODE_INTERNAL) { - $this->is_negative = false; - } - $temp = $this->add(new Math_BigInteger('-1')); - $this->value = $temp->value; - } - break; - case 16: - case -16: - if ($base > 0 && $x[0] == '-') { - $this->is_negative = true; - $x = substr($x, 1); - } - - $x = preg_replace('#^(?:0x)?([A-Fa-f0-9]*).*#', '$1', $x); - - $is_negative = false; - if ($base < 0 && hexdec($x[0]) >= 8) { - $this->is_negative = $is_negative = true; - $x = bin2hex(~pack('H*', $x)); - } - - switch ( MATH_BIGINTEGER_MODE ) { - case MATH_BIGINTEGER_MODE_GMP: - $temp = $this->is_negative ? '-0x' . $x : '0x' . $x; - $this->value = gmp_init($temp); - $this->is_negative = false; - break; - case MATH_BIGINTEGER_MODE_BCMATH: - $x = ( strlen($x) & 1 ) ? '0' . $x : $x; - $temp = new Math_BigInteger(pack('H*', $x), 256); - $this->value = $this->is_negative ? '-' . $temp->value : $temp->value; - $this->is_negative = false; - break; - default: - $x = ( strlen($x) & 1 ) ? '0' . $x : $x; - $temp = new Math_BigInteger(pack('H*', $x), 256); - $this->value = $temp->value; - } - - if ($is_negative) { - $temp = $this->add(new Math_BigInteger('-1')); - $this->value = $temp->value; - } - break; - case 10: - case -10: - $x = preg_replace('#^(-?[0-9]*).*#', '$1', $x); - - switch ( MATH_BIGINTEGER_MODE ) { - case MATH_BIGINTEGER_MODE_GMP: - $this->value = gmp_init($x); - break; - case MATH_BIGINTEGER_MODE_BCMATH: - // explicitly casting $x to a string is necessary, here, since doing $x[0] on -1 yields different - // results then doing it on '-1' does (modInverse does $x[0]) - $this->value = (string) $x; - break; - default: - $temp = new Math_BigInteger(); - - // array(10000000) is 10**7 in base-2**26. 10**7 is the closest to 2**26 we can get without passing it. - $multiplier = new Math_BigInteger(); - $multiplier->value = array(10000000); - - if ($x[0] == '-') { - $this->is_negative = true; - $x = substr($x, 1); - } - - $x = str_pad($x, strlen($x) + (6 * strlen($x)) % 7, 0, STR_PAD_LEFT); - - while (strlen($x)) { - $temp = $temp->multiply($multiplier); - $temp = $temp->add(new Math_BigInteger($this->_int2bytes(substr($x, 0, 7)), 256)); - $x = substr($x, 7); - } - - $this->value = $temp->value; - } - break; - case 2: // base-2 support originally implemented by Lluis Pamies - thanks! - case -2: - if ($base > 0 && $x[0] == '-') { - $this->is_negative = true; - $x = substr($x, 1); - } - - $x = preg_replace('#^([01]*).*#', '$1', $x); - $x = str_pad($x, strlen($x) + (3 * strlen($x)) % 4, 0, STR_PAD_LEFT); - - $str = '0x'; - while (strlen($x)) { - $part = substr($x, 0, 4); - $str.= dechex(bindec($part)); - $x = substr($x, 4); - } - - if ($this->is_negative) { - $str = '-' . $str; - } - - $temp = new Math_BigInteger($str, 8 * $base); // ie. either -16 or +16 - $this->value = $temp->value; - $this->is_negative = $temp->is_negative; - - break; - default: - // base not supported, so we'll let $this == 0 - } - } - - /** - * Converts a BigInteger to a byte string (eg. base-256). - * - * Negative numbers are saved as positive numbers, unless $twos_compliment is set to true, at which point, they're - * saved as two's compliment. - * - * Here's an example: - * - * toBytes(); // outputs chr(65) - * ?> - * - * - * @param Boolean $twos_compliment - * @return String - * @access public - * @internal Converts a base-2**26 number to base-2**8 - */ - function toBytes($twos_compliment = false) - { - if ($twos_compliment) { - $comparison = $this->compare(new Math_BigInteger()); - if ($comparison == 0) { - return $this->precision > 0 ? str_repeat(chr(0), ($this->precision + 1) >> 3) : ''; - } - - $temp = $comparison < 0 ? $this->add(new Math_BigInteger(1)) : $this->copy(); - $bytes = $temp->toBytes(); - - if (empty($bytes)) { // eg. if the number we're trying to convert is -1 - $bytes = chr(0); - } - - if (ord($bytes[0]) & 0x80) { - $bytes = chr(0) . $bytes; - } - - return $comparison < 0 ? ~$bytes : $bytes; - } - - switch ( MATH_BIGINTEGER_MODE ) { - case MATH_BIGINTEGER_MODE_GMP: - if (gmp_cmp($this->value, gmp_init(0)) == 0) { - return $this->precision > 0 ? str_repeat(chr(0), ($this->precision + 1) >> 3) : ''; - } - - $temp = gmp_strval(gmp_abs($this->value), 16); - $temp = ( strlen($temp) & 1 ) ? '0' . $temp : $temp; - $temp = pack('H*', $temp); - - return $this->precision > 0 ? - substr(str_pad($temp, $this->precision >> 3, chr(0), STR_PAD_LEFT), -($this->precision >> 3)) : - ltrim($temp, chr(0)); - case MATH_BIGINTEGER_MODE_BCMATH: - if ($this->value === '0') { - return $this->precision > 0 ? str_repeat(chr(0), ($this->precision + 1) >> 3) : ''; - } - - $value = ''; - $current = $this->value; - - if ($current[0] == '-') { - $current = substr($current, 1); - } - - // we don't do four bytes at a time because then numbers larger than 1<<31 would be negative - // two's complimented numbers, which would break chr. - while (bccomp($current, '0') > 0) { - $temp = bcmod($current, 0x1000000); - $value = chr($temp >> 16) . chr($temp >> 8) . chr($temp) . $value; - $current = bcdiv($current, 0x1000000); - } - - return $this->precision > 0 ? - substr(str_pad($value, $this->precision >> 3, chr(0), STR_PAD_LEFT), -($this->precision >> 3)) : - ltrim($value, chr(0)); - } - - if (!count($this->value)) { - return $this->precision > 0 ? str_repeat(chr(0), ($this->precision + 1) >> 3) : ''; - } - $result = $this->_int2bytes($this->value[count($this->value) - 1]); - - $temp = $this->copy(); - - for ($i = count($temp->value) - 2; $i >= 0; $i--) { - $temp->_base256_lshift($result, 26); - $result = $result | str_pad($temp->_int2bytes($temp->value[$i]), strlen($result), chr(0), STR_PAD_LEFT); - } - - return $this->precision > 0 ? - substr(str_pad($result, $this->precision >> 3, chr(0), STR_PAD_LEFT), -($this->precision >> 3)) : - $result; - } - - /** - * Converts a BigInteger to a hex string (eg. base-16)). - * - * Negative numbers are saved as positive numbers, unless $twos_compliment is set to true, at which point, they're - * saved as two's compliment. - * - * Here's an example: - * - * toHex(); // outputs '41' - * ?> - * - * - * @param Boolean $twos_compliment - * @return String - * @access public - * @internal Converts a base-2**26 number to base-2**8 - */ - function toHex($twos_compliment = false) - { - return bin2hex($this->toBytes($twos_compliment)); - } - - /** - * Converts a BigInteger to a bit string (eg. base-2). - * - * Negative numbers are saved as positive numbers, unless $twos_compliment is set to true, at which point, they're - * saved as two's compliment. - * - * Here's an example: - * - * toBits(); // outputs '1000001' - * ?> - * - * - * @param Boolean $twos_compliment - * @return String - * @access public - * @internal Converts a base-2**26 number to base-2**2 - */ - function toBits($twos_compliment = false) - { - $hex = $this->toHex($twos_compliment); - $bits = ''; - for ($i = 0; $i < strlen($hex); $i+=8) { - $bits.= str_pad(decbin(hexdec(substr($hex, $i, 8))), 32, '0', STR_PAD_LEFT); - } - return $this->precision > 0 ? substr($bits, -$this->precision) : ltrim($bits, '0'); - } - - /** - * Converts a BigInteger to a base-10 number. - * - * Here's an example: - * - * toString(); // outputs 50 - * ?> - * - * - * @return String - * @access public - * @internal Converts a base-2**26 number to base-10**7 (which is pretty much base-10) - */ - function toString() - { - switch ( MATH_BIGINTEGER_MODE ) { - case MATH_BIGINTEGER_MODE_GMP: - return gmp_strval($this->value); - case MATH_BIGINTEGER_MODE_BCMATH: - if ($this->value === '0') { - return '0'; - } - - return ltrim($this->value, '0'); - } - - if (!count($this->value)) { - return '0'; - } - - $temp = $this->copy(); - $temp->is_negative = false; - - $divisor = new Math_BigInteger(); - $divisor->value = array(10000000); // eg. 10**7 - $result = ''; - while (count($temp->value)) { - list($temp, $mod) = $temp->divide($divisor); - $result = str_pad($mod->value[0], 7, '0', STR_PAD_LEFT) . $result; - } - $result = ltrim($result, '0'); - - if ($this->is_negative) { - $result = '-' . $result; - } - - return $result; - } - - /** - * Copy an object - * - * PHP5 passes objects by reference while PHP4 passes by value. As such, we need a function to guarantee - * that all objects are passed by value, when appropriate. More information can be found here: - * - * {@link http://php.net/language.oop5.basic#51624} - * - * @access public - * @see __clone() - * @return Math_BigInteger - */ - function copy() - { - $temp = new Math_BigInteger(); - $temp->value = $this->value; - $temp->is_negative = $this->is_negative; - $temp->generator = $this->generator; - $temp->precision = $this->precision; - $temp->bitmask = $this->bitmask; - return $temp; - } - - /** - * __toString() magic method - * - * Will be called, automatically, if you're supporting just PHP5. If you're supporting PHP4, you'll need to call - * toString(). - * - * @access public - * @internal Implemented per a suggestion by Techie-Michael - thanks! - */ - function __toString() - { - return $this->toString(); - } - - /** - * __clone() magic method - * - * Although you can call Math_BigInteger::__toString() directly in PHP5, you cannot call Math_BigInteger::__clone() - * directly in PHP5. You can in PHP4 since it's not a magic method, but in PHP5, you have to call it by using the PHP5 - * only syntax of $y = clone $x. As such, if you're trying to write an application that works on both PHP4 and PHP5, - * call Math_BigInteger::copy(), instead. - * - * @access public - * @see copy() - * @return Math_BigInteger - */ - function __clone() - { - return $this->copy(); - } - - /** - * Adds two BigIntegers. - * - * Here's an example: - * - * add($b); - * - * echo $c->toString(); // outputs 30 - * ?> - * - * - * @param Math_BigInteger $y - * @return Math_BigInteger - * @access public - * @internal Performs base-2**52 addition - */ - function add($y) - { - switch ( MATH_BIGINTEGER_MODE ) { - case MATH_BIGINTEGER_MODE_GMP: - $temp = new Math_BigInteger(); - $temp->value = gmp_add($this->value, $y->value); - - return $this->_normalize($temp); - case MATH_BIGINTEGER_MODE_BCMATH: - $temp = new Math_BigInteger(); - $temp->value = bcadd($this->value, $y->value); - - return $this->_normalize($temp); - } - - $this_size = count($this->value); - $y_size = count($y->value); - - if ($this_size == 0) { - return $y->copy(); - } else if ($y_size == 0) { - return $this->copy(); - } - - // subtract, if appropriate - if ( $this->is_negative != $y->is_negative ) { - // is $y the negative number? - $y_negative = $this->compare($y) > 0; - - $temp = $this->copy(); - $y = $y->copy(); - $temp->is_negative = $y->is_negative = false; - - $diff = $temp->compare($y); - if ( !$diff ) { - $temp = new Math_BigInteger(); - return $this->_normalize($temp); - } - - $temp = $temp->subtract($y); - - $temp->is_negative = ($diff > 0) ? !$y_negative : $y_negative; - - return $this->_normalize($temp); - } - - $result = new Math_BigInteger(); - $carry = 0; - - $size = max($this_size, $y_size); - $size+= $size & 1; // rounds $size to the nearest 2. - - $x = array_pad($this->value, $size, 0); - $y = array_pad($y->value, $size, 0); - - for ($i = 0; $i < $size - 1; $i+=2) { - $sum = $x[$i + 1] * 0x4000000 + $x[$i] + $y[$i + 1] * 0x4000000 + $y[$i] + $carry; - $carry = $sum >= MATH_BIGINTEGER_MAX_DIGIT52; // eg. floor($sum / 2**52); only possible values (in any base) are 0 and 1 - $sum = $carry ? $sum - MATH_BIGINTEGER_MAX_DIGIT52 : $sum; - - $temp = floor($sum / 0x4000000); - - $result->value[] = $sum - 0x4000000 * $temp; // eg. a faster alternative to fmod($sum, 0x4000000) - $result->value[] = $temp; - } - - if ($carry) { - $result->value[] = (int) $carry; - } - - $result->is_negative = $this->is_negative; - - return $this->_normalize($result); - } - - /** - * Subtracts two BigIntegers. - * - * Here's an example: - * - * subtract($b); - * - * echo $c->toString(); // outputs -10 - * ?> - * - * - * @param Math_BigInteger $y - * @return Math_BigInteger - * @access public - * @internal Performs base-2**52 subtraction - */ - function subtract($y) - { - switch ( MATH_BIGINTEGER_MODE ) { - case MATH_BIGINTEGER_MODE_GMP: - $temp = new Math_BigInteger(); - $temp->value = gmp_sub($this->value, $y->value); - - return $this->_normalize($temp); - case MATH_BIGINTEGER_MODE_BCMATH: - $temp = new Math_BigInteger(); - $temp->value = bcsub($this->value, $y->value); - - return $this->_normalize($temp); - } - - $this_size = count($this->value); - $y_size = count($y->value); - - if ($this_size == 0) { - $temp = $y->copy(); - $temp->is_negative = !$temp->is_negative; - return $temp; - } else if ($y_size == 0) { - return $this->copy(); - } - - // add, if appropriate (ie. -$x - +$y or +$x - -$y) - if ( $this->is_negative != $y->is_negative ) { - $is_negative = $y->compare($this) > 0; - - $temp = $this->copy(); - $y = $y->copy(); - $temp->is_negative = $y->is_negative = false; - - $temp = $temp->add($y); - - $temp->is_negative = $is_negative; - - return $this->_normalize($temp); - } - - $diff = $this->compare($y); - - if ( !$diff ) { - $temp = new Math_BigInteger(); - return $this->_normalize($temp); - } - - // switch $this and $y around, if appropriate. - if ( (!$this->is_negative && $diff < 0) || ($this->is_negative && $diff > 0) ) { - $is_negative = $y->is_negative; - - $temp = $this->copy(); - $y = $y->copy(); - $temp->is_negative = $y->is_negative = false; - - $temp = $y->subtract($temp); - $temp->is_negative = !$is_negative; - - return $this->_normalize($temp); - } - - $result = new Math_BigInteger(); - $carry = 0; - - $size = max($this_size, $y_size); - $size+= $size % 2; - - $x = array_pad($this->value, $size, 0); - $y = array_pad($y->value, $size, 0); - - for ($i = 0; $i < $size - 1; $i+=2) { - $sum = $x[$i + 1] * 0x4000000 + $x[$i] - $y[$i + 1] * 0x4000000 - $y[$i] + $carry; - $carry = $sum < 0 ? -1 : 0; // eg. floor($sum / 2**52); only possible values (in any base) are 0 and 1 - $sum = $carry ? $sum + MATH_BIGINTEGER_MAX_DIGIT52 : $sum; - - $temp = floor($sum / 0x4000000); - - $result->value[] = $sum - 0x4000000 * $temp; - $result->value[] = $temp; - } - - // $carry shouldn't be anything other than zero, at this point, since we already made sure that $this - // was bigger than $y. - - $result->is_negative = $this->is_negative; - - return $this->_normalize($result); - } - - /** - * Multiplies two BigIntegers - * - * Here's an example: - * - * multiply($b); - * - * echo $c->toString(); // outputs 200 - * ?> - * - * - * @param Math_BigInteger $x - * @return Math_BigInteger - * @access public - */ - function multiply($x) - { - switch ( MATH_BIGINTEGER_MODE ) { - case MATH_BIGINTEGER_MODE_GMP: - $temp = new Math_BigInteger(); - $temp->value = gmp_mul($this->value, $x->value); - - return $this->_normalize($temp); - case MATH_BIGINTEGER_MODE_BCMATH: - $temp = new Math_BigInteger(); - $temp->value = bcmul($this->value, $x->value); - - return $this->_normalize($temp); - } - - static $cutoff = false; - if ($cutoff === false) { - $cutoff = 2 * MATH_BIGINTEGER_KARATSUBA_CUTOFF; - } - - if ( $this->equals($x) ) { - return $this->_square(); - } - - $this_length = count($this->value); - $x_length = count($x->value); - - if ( !$this_length || !$x_length ) { // a 0 is being multiplied - $temp = new Math_BigInteger(); - return $this->_normalize($temp); - } - - $product = min($this_length, $x_length) < $cutoff ? $this->_multiply($x) : $this->_karatsuba($x); - - $product->is_negative = $this->is_negative != $x->is_negative; - - return $this->_normalize($product); - } - - /** - * Performs long multiplication up to $stop digits - * - * If you're going to be doing array_slice($product->value, 0, $stop), some cycles can be saved. - * - * @see _barrett() - * @param Math_BigInteger $x - * @return Math_BigInteger - * @access private - */ - function _multiplyLower($x, $stop) - { - $this_length = count($this->value); - $x_length = count($x->value); - - if ( !$this_length || !$x_length ) { // a 0 is being multiplied - return new Math_BigInteger(); - } - - if ( $this_length < $x_length ) { - return $x->_multiplyLower($this, $stop); - } - - $product = new Math_BigInteger(); - $product->value = $this->_array_repeat(0, $this_length + $x_length); - - // the following for loop could be removed if the for loop following it - // (the one with nested for loops) initially set $i to 0, but - // doing so would also make the result in one set of unnecessary adds, - // since on the outermost loops first pass, $product->value[$k] is going - // to always be 0 - - $carry = 0; - - for ($j = 0; $j < $this_length; $j++) { // ie. $i = 0, $k = $i - $temp = $this->value[$j] * $x->value[0] + $carry; // $product->value[$k] == 0 - $carry = floor($temp / 0x4000000); - $product->value[$j] = $temp - 0x4000000 * $carry; - } - - if ($j < $stop) { - $product->value[$j] = $carry; - } - - // the above for loop is what the previous comment was talking about. the - // following for loop is the "one with nested for loops" - - for ($i = 1; $i < $x_length; $i++) { - $carry = 0; - - for ($j = 0, $k = $i; $j < $this_length && $k < $stop; $j++, $k++) { - $temp = $product->value[$k] + $this->value[$j] * $x->value[$i] + $carry; - $carry = floor($temp / 0x4000000); - $product->value[$k] = $temp - 0x4000000 * $carry; - } - - if ($k < $stop) { - $product->value[$k] = $carry; - } - } - - $product->is_negative = $this->is_negative != $x->is_negative; - - return $product; - } - - /** - * Performs long multiplication on two BigIntegers - * - * Modeled after 'multiply' in MutableBigInteger.java. - * - * @param Math_BigInteger $x - * @return Math_BigInteger - * @access private - */ - function _multiply($x) - { - $this_length = count($this->value); - $x_length = count($x->value); - - if ( !$this_length || !$x_length ) { // a 0 is being multiplied - return new Math_BigInteger(); - } - - if ( $this_length < $x_length ) { - return $x->_multiply($this); - } - - $product = new Math_BigInteger(); - $product->value = $this->_array_repeat(0, $this_length + $x_length); - - // the following for loop could be removed if the for loop following it - // (the one with nested for loops) initially set $i to 0, but - // doing so would also make the result in one set of unnecessary adds, - // since on the outermost loops first pass, $product->value[$k] is going - // to always be 0 - - $carry = 0; - - for ($j = 0; $j < $this_length; $j++) { // ie. $i = 0 - $temp = $this->value[$j] * $x->value[0] + $carry; // $product->value[$k] == 0 - $carry = floor($temp / 0x4000000); - $product->value[$j] = $temp - 0x4000000 * $carry; - } - - $product->value[$j] = $carry; - - // the above for loop is what the previous comment was talking about. the - // following for loop is the "one with nested for loops" - for ($i = 1; $i < $x_length; $i++) { - $carry = 0; - - for ($j = 0, $k = $i; $j < $this_length; $j++, $k++) { - $temp = $product->value[$k] + $this->value[$j] * $x->value[$i] + $carry; - $carry = floor($temp / 0x4000000); - $product->value[$k] = $temp - 0x4000000 * $carry; - } - - $product->value[$k] = $carry; - } - - $product->is_negative = $this->is_negative != $x->is_negative; - - return $this->_normalize($product); - } - - /** - * Performs Karatsuba multiplication on two BigIntegers - * - * See {@link http://en.wikipedia.org/wiki/Karatsuba_algorithm Karatsuba algorithm} and - * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=120 MPM 5.2.3}. - * - * @param Math_BigInteger $y - * @return Math_BigInteger - * @access private - */ - function _karatsuba($y) - { - $x = $this->copy(); - - $m = min(count($x->value) >> 1, count($y->value) >> 1); - - if ($m < MATH_BIGINTEGER_KARATSUBA_CUTOFF) { - return $x->_multiply($y); - } - - $x1 = new Math_BigInteger(); - $x0 = new Math_BigInteger(); - $y1 = new Math_BigInteger(); - $y0 = new Math_BigInteger(); - - $x1->value = array_slice($x->value, $m); - $x0->value = array_slice($x->value, 0, $m); - $y1->value = array_slice($y->value, $m); - $y0->value = array_slice($y->value, 0, $m); - - $z2 = $x1->_karatsuba($y1); - $z0 = $x0->_karatsuba($y0); - - $z1 = $x1->add($x0); - $z1 = $z1->_karatsuba($y1->add($y0)); - $z1 = $z1->subtract($z2->add($z0)); - - $z2->value = array_merge(array_fill(0, 2 * $m, 0), $z2->value); - $z1->value = array_merge(array_fill(0, $m, 0), $z1->value); - - $xy = $z2->add($z1); - $xy = $xy->add($z0); - - return $xy; - } - - /** - * Squares a BigInteger - * - * @return Math_BigInteger - * @access private - */ - function _square() - { - static $cutoff = false; - if ($cutoff === false) { - $cutoff = 2 * MATH_BIGINTEGER_KARATSUBA_CUTOFF; - } - - return count($this->value) < $cutoff ? $this->_baseSquare() : $this->_karatsubaSquare(); - } - - /** - * Performs traditional squaring on two BigIntegers - * - * Squaring can be done faster than multiplying a number by itself can be. See - * {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=7 HAC 14.2.4} / - * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=141 MPM 5.3} for more information. - * - * @return Math_BigInteger - * @access private - */ - function _baseSquare() - { - if ( empty($this->value) ) { - return new Math_BigInteger(); - } - - $square = new Math_BigInteger(); - $square->value = $this->_array_repeat(0, 2 * count($this->value)); - - for ($i = 0, $max_index = count($this->value) - 1; $i <= $max_index; $i++) { - $i2 = 2 * $i; - - $temp = $square->value[$i2] + $this->value[$i] * $this->value[$i]; - $carry = floor($temp / 0x4000000); - $square->value[$i2] = $temp - 0x4000000 * $carry; - - // note how we start from $i+1 instead of 0 as we do in multiplication. - for ($j = $i + 1, $k = $i2 + 1; $j <= $max_index; $j++, $k++) { - $temp = $square->value[$k] + 2 * $this->value[$j] * $this->value[$i] + $carry; - $carry = floor($temp / 0x4000000); - $square->value[$k] = $temp - 0x4000000 * $carry; - } - - // the following line can yield values larger 2**15. at this point, PHP should switch - // over to floats. - $square->value[$i + $max_index + 1] = $carry; - } - - return $square; - } - - /** - * Performs Karatsuba "squaring" on two BigIntegers - * - * See {@link http://en.wikipedia.org/wiki/Karatsuba_algorithm Karatsuba algorithm} and - * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=151 MPM 5.3.4}. - * - * @param Math_BigInteger $y - * @return Math_BigInteger - * @access private - */ - function _karatsubaSquare() - { - $m = count($this->value) >> 1; - - if ($m < MATH_BIGINTEGER_KARATSUBA_CUTOFF) { - return $this->_square(); - } - - $x1 = new Math_BigInteger(); - $x0 = new Math_BigInteger(); - - $x1->value = array_slice($this->value, $m); - $x0->value = array_slice($this->value, 0, $m); - - $z2 = $x1->_karatsubaSquare(); - $z0 = $x0->_karatsubaSquare(); - - $z1 = $x1->add($x0); - $z1 = $z1->_karatsubaSquare(); - $z1 = $z1->subtract($z2->add($z0)); - - $z2->value = array_merge(array_fill(0, 2 * $m, 0), $z2->value); - $z1->value = array_merge(array_fill(0, $m, 0), $z1->value); - - $xx = $z2->add($z1); - $xx = $xx->add($z0); - - return $xx; - } - - /** - * Divides two BigIntegers. - * - * Returns an array whose first element contains the quotient and whose second element contains the - * "common residue". If the remainder would be positive, the "common residue" and the remainder are the - * same. If the remainder would be negative, the "common residue" is equal to the sum of the remainder - * and the divisor (basically, the "common residue" is the first positive modulo). - * - * Here's an example: - * - * divide($b); - * - * echo $quotient->toString(); // outputs 0 - * echo "\r\n"; - * echo $remainder->toString(); // outputs 10 - * ?> - * - * - * @param Math_BigInteger $y - * @return Array - * @access public - * @internal This function is based off of {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=9 HAC 14.20}. - */ - function divide($y) - { - switch ( MATH_BIGINTEGER_MODE ) { - case MATH_BIGINTEGER_MODE_GMP: - $quotient = new Math_BigInteger(); - $remainder = new Math_BigInteger(); - - list($quotient->value, $remainder->value) = gmp_div_qr($this->value, $y->value); - - if (gmp_sign($remainder->value) < 0) { - $remainder->value = gmp_add($remainder->value, gmp_abs($y->value)); - } - - return array($this->_normalize($quotient), $this->_normalize($remainder)); - case MATH_BIGINTEGER_MODE_BCMATH: - $quotient = new Math_BigInteger(); - $remainder = new Math_BigInteger(); - - $quotient->value = bcdiv($this->value, $y->value); - $remainder->value = bcmod($this->value, $y->value); - - if ($remainder->value[0] == '-') { - $remainder->value = bcadd($remainder->value, $y->value[0] == '-' ? substr($y->value, 1) : $y->value); - } - - return array($this->_normalize($quotient), $this->_normalize($remainder)); - } - - if (count($y->value) == 1) { - $temp = $this->_divide_digit($y->value[0]); - $temp[0]->is_negative = $this->is_negative != $y->is_negative; - return array($this->_normalize($temp[0]), $this->_normalize($temp[1])); - } - - static $zero; - if (!isset($zero)) { - $zero = new Math_BigInteger(); - } - - $x = $this->copy(); - $y = $y->copy(); - - $x_sign = $x->is_negative; - $y_sign = $y->is_negative; - - $x->is_negative = $y->is_negative = false; - - $diff = $x->compare($y); - - if ( !$diff ) { - $temp = new Math_BigInteger(); - $temp->value = array(1); - $temp->is_negative = $x_sign != $y_sign; - return array($this->_normalize($temp), $this->_normalize(new Math_BigInteger())); - } - - if ( $diff < 0 ) { - // if $x is negative, "add" $y. - if ( $x_sign ) { - $x = $y->subtract($x); - } - return array($this->_normalize(new Math_BigInteger()), $this->_normalize($x)); - } - - // normalize $x and $y as described in HAC 14.23 / 14.24 - $msb = $y->value[count($y->value) - 1]; - for ($shift = 0; !($msb & 0x2000000); $shift++) { - $msb <<= 1; - } - $x->_lshift($shift); - $y->_lshift($shift); - - $x_max = count($x->value) - 1; - $y_max = count($y->value) - 1; - - $quotient = new Math_BigInteger(); - $quotient->value = $this->_array_repeat(0, $x_max - $y_max + 1); - - // $temp = $y << ($x_max - $y_max-1) in base 2**26 - $temp = new Math_BigInteger(); - $temp->value = array_merge($this->_array_repeat(0, $x_max - $y_max), $y->value); - - while ( $x->compare($temp) >= 0 ) { - // calculate the "common residue" - $quotient->value[$x_max - $y_max]++; - $x = $x->subtract($temp); - $x_max = count($x->value) - 1; - } - - for ($i = $x_max; $i >= $y_max + 1; $i--) { - $x_value = array( - $x->value[$i], - ( $i > 0 ) ? $x->value[$i - 1] : 0, - ( $i > 1 ) ? $x->value[$i - 2] : 0 - ); - $y_value = array( - $y->value[$y_max], - ( $y_max > 0 ) ? $y->value[$y_max - 1] : 0 - ); - - $q_index = $i - $y_max - 1; - if ($x_value[0] == $y_value[0]) { - $quotient->value[$q_index] = 0x3FFFFFF; - } else { - $quotient->value[$q_index] = floor( - ($x_value[0] * 0x4000000 + $x_value[1]) - / - $y_value[0] - ); - } - - $temp = new Math_BigInteger(); - $temp->value = array($y_value[1], $y_value[0]); - - $lhs = new Math_BigInteger(); - $lhs->value = array($quotient->value[$q_index]); - $lhs = $lhs->multiply($temp); - - $rhs = new Math_BigInteger(); - $rhs->value = array($x_value[2], $x_value[1], $x_value[0]); - - while ( $lhs->compare($rhs) > 0 ) { - $quotient->value[$q_index]--; - - $lhs = new Math_BigInteger(); - $lhs->value = array($quotient->value[$q_index]); - $lhs = $lhs->multiply($temp); - } - - $adjust = $this->_array_repeat(0, $q_index); - $temp = new Math_BigInteger(); - $temp->value = array($quotient->value[$q_index]); - $temp = $temp->multiply($y); - $temp->value = array_merge($adjust, $temp->value); - - $x = $x->subtract($temp); - - if ($x->compare($zero) < 0) { - $temp->value = array_merge($adjust, $y->value); - $x = $x->add($temp); - - $quotient->value[$q_index]--; - } - - $x_max = count($x->value) - 1; - } - - // unnormalize the remainder - $x->_rshift($shift); - - $quotient->is_negative = $x_sign != $y_sign; - - // calculate the "common residue", if appropriate - if ( $x_sign ) { - $y->_rshift($shift); - $x = $y->subtract($x); - } - - return array($this->_normalize($quotient), $this->_normalize($x)); - } - - /** - * Divides a BigInteger by a regular integer - * - * abc / x = a00 / x + b0 / x + c / x - * - * @param Math_BigInteger $divisor - * @return Array - * @access public - */ - function _divide_digit($divisor) - { - $carry = 0; - $result = new Math_BigInteger(); - - for ($i = count($this->value) - 1; $i >= 0; $i--) { - $temp = 0x4000000 * $carry + $this->value[$i]; - $result->value[$i] = floor($temp / $divisor); - $carry = fmod($temp, $divisor); - } - - $remainder = new Math_BigInteger(); - $remainder->value = array($carry); - - return array($result, $remainder); - } - - /** - * Performs modular exponentiation. - * - * Here's an example: - * - * modPow($b, $c); - * - * echo $c->toString(); // outputs 10 - * ?> - * - * - * @param Math_BigInteger $e - * @param Math_BigInteger $n - * @return Math_BigInteger - * @access public - * @internal The most naive approach to modular exponentiation has very unreasonable requirements, and - * and although the approach involving repeated squaring does vastly better, it, too, is impractical - * for our purposes. The reason being that division - by far the most complicated and time-consuming - * of the basic operations (eg. +,-,*,/) - occurs multiple times within it. - * - * Modular reductions resolve this issue. Although an individual modular reduction takes more time - * then an individual division, when performed in succession (with the same modulo), they're a lot faster. - * - * The two most commonly used modular reductions are Barrett and Montgomery reduction. Montgomery reduction, - * although faster, only works when the gcd of the modulo and of the base being used is 1. In RSA, when the - * base is a power of two, the modulo - a product of two primes - is always going to have a gcd of 1 (because - * the product of two odd numbers is odd), but what about when RSA isn't used? - * - * In contrast, Barrett reduction has no such constraint. As such, some bigint implementations perform a - * Barrett reduction after every operation in the modpow function. Others perform Barrett reductions when the - * modulo is even and Montgomery reductions when the modulo is odd. BigInteger.java's modPow method, however, - * uses a trick involving the Chinese Remainder Theorem to factor the even modulo into two numbers - one odd and - * the other, a power of two - and recombine them, later. This is the method that this modPow function uses. - * {@link http://islab.oregonstate.edu/papers/j34monex.pdf Montgomery Reduction with Even Modulus} elaborates. - */ - function modPow($e, $n) - { - $n = $this->bitmask !== false && $this->bitmask->compare($n) < 0 ? $this->bitmask : $n->abs(); - - if ($e->compare(new Math_BigInteger()) < 0) { - $e = $e->abs(); - - $temp = $this->modInverse($n); - if ($temp === false) { - return false; - } - - return $this->_normalize($temp->modPow($e, $n)); - } - - switch ( MATH_BIGINTEGER_MODE ) { - case MATH_BIGINTEGER_MODE_GMP: - $temp = new Math_BigInteger(); - $temp->value = gmp_powm($this->value, $e->value, $n->value); - - return $this->_normalize($temp); - case MATH_BIGINTEGER_MODE_BCMATH: - $temp = new Math_BigInteger(); - $temp->value = bcpowmod($this->value, $e->value, $n->value); - - return $this->_normalize($temp); - } - - if ( empty($e->value) ) { - $temp = new Math_BigInteger(); - $temp->value = array(1); - return $this->_normalize($temp); - } - - if ( $e->value == array(1) ) { - list(, $temp) = $this->divide($n); - return $this->_normalize($temp); - } - - if ( $e->value == array(2) ) { - $temp = $this->_square(); - list(, $temp) = $temp->divide($n); - return $this->_normalize($temp); - } - - return $this->_normalize($this->_slidingWindow($e, $n, MATH_BIGINTEGER_BARRETT)); - - // is the modulo odd? - if ( $n->value[0] & 1 ) { - return $this->_normalize($this->_slidingWindow($e, $n, MATH_BIGINTEGER_MONTGOMERY)); - } - // if it's not, it's even - - // find the lowest set bit (eg. the max pow of 2 that divides $n) - for ($i = 0; $i < count($n->value); $i++) { - if ( $n->value[$i] ) { - $temp = decbin($n->value[$i]); - $j = strlen($temp) - strrpos($temp, '1') - 1; - $j+= 26 * $i; - break; - } - } - // at this point, 2^$j * $n/(2^$j) == $n - - $mod1 = $n->copy(); - $mod1->_rshift($j); - $mod2 = new Math_BigInteger(); - $mod2->value = array(1); - $mod2->_lshift($j); - - $part1 = ( $mod1->value != array(1) ) ? $this->_slidingWindow($e, $mod1, MATH_BIGINTEGER_MONTGOMERY) : new Math_BigInteger(); - $part2 = $this->_slidingWindow($e, $mod2, MATH_BIGINTEGER_POWEROF2); - - $y1 = $mod2->modInverse($mod1); - $y2 = $mod1->modInverse($mod2); - - $result = $part1->multiply($mod2); - $result = $result->multiply($y1); - - $temp = $part2->multiply($mod1); - $temp = $temp->multiply($y2); - - $result = $result->add($temp); - list(, $result) = $result->divide($n); - - return $this->_normalize($result); - } - - /** - * Performs modular exponentiation. - * - * Alias for Math_BigInteger::modPow() - * - * @param Math_BigInteger $e - * @param Math_BigInteger $n - * @return Math_BigInteger - * @access public - */ - function powMod($e, $n) - { - return $this->modPow($e, $n); - } - - /** - * Sliding Window k-ary Modular Exponentiation - * - * Based on {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=27 HAC 14.85} / - * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=210 MPM 7.7}. In a departure from those algorithims, - * however, this function performs a modular reduction after every multiplication and squaring operation. - * As such, this function has the same preconditions that the reductions being used do. - * - * @param Math_BigInteger $e - * @param Math_BigInteger $n - * @param Integer $mode - * @return Math_BigInteger - * @access private - */ - function _slidingWindow($e, $n, $mode) - { - static $window_ranges = array(7, 25, 81, 241, 673, 1793); // from BigInteger.java's oddModPow function - //static $window_ranges = array(0, 7, 36, 140, 450, 1303, 3529); // from MPM 7.3.1 - - $e_length = count($e->value) - 1; - $e_bits = decbin($e->value[$e_length]); - for ($i = $e_length - 1; $i >= 0; $i--) { - $e_bits.= str_pad(decbin($e->value[$i]), 26, '0', STR_PAD_LEFT); - } - - $e_length = strlen($e_bits); - - // calculate the appropriate window size. - // $window_size == 3 if $window_ranges is between 25 and 81, for example. - for ($i = 0, $window_size = 1; $e_length > $window_ranges[$i] && $i < count($window_ranges); $window_size++, $i++); - switch ($mode) { - case MATH_BIGINTEGER_MONTGOMERY: - $reduce = '_montgomery'; - $prep = '_prepMontgomery'; - break; - case MATH_BIGINTEGER_BARRETT: - $reduce = '_barrett'; - $prep = '_barrett'; - break; - case MATH_BIGINTEGER_POWEROF2: - $reduce = '_mod2'; - $prep = '_mod2'; - break; - case MATH_BIGINTEGER_CLASSIC: - $reduce = '_remainder'; - $prep = '_remainder'; - break; - case MATH_BIGINTEGER_NONE: - // ie. do no modular reduction. useful if you want to just do pow as opposed to modPow. - $reduce = 'copy'; - $prep = 'copy'; - break; - default: - // an invalid $mode was provided - } - - // precompute $this^0 through $this^$window_size - $powers = array(); - $powers[1] = $this->$prep($n); - $powers[2] = $powers[1]->_square(); - $powers[2] = $powers[2]->$reduce($n); - - // we do every other number since substr($e_bits, $i, $j+1) (see below) is supposed to end - // in a 1. ie. it's supposed to be odd. - $temp = 1 << ($window_size - 1); - for ($i = 1; $i < $temp; $i++) { - $powers[2 * $i + 1] = $powers[2 * $i - 1]->multiply($powers[2]); - $powers[2 * $i + 1] = $powers[2 * $i + 1]->$reduce($n); - } - - $result = new Math_BigInteger(); - $result->value = array(1); - $result = $result->$prep($n); - - for ($i = 0; $i < $e_length; ) { - if ( !$e_bits[$i] ) { - $result = $result->_square(); - $result = $result->$reduce($n); - $i++; - } else { - for ($j = $window_size - 1; $j > 0; $j--) { - if ( !empty($e_bits[$i + $j]) ) { - break; - } - } - - for ($k = 0; $k <= $j; $k++) {// eg. the length of substr($e_bits, $i, $j+1) - $result = $result->_square(); - $result = $result->$reduce($n); - } - - $result = $result->multiply($powers[bindec(substr($e_bits, $i, $j + 1))]); - $result = $result->$reduce($n); - - $i+=$j + 1; - } - } - - $result = $result->$reduce($n); - - return $result; - } - - /** - * Remainder - * - * A wrapper for the divide function. - * - * @see divide() - * @see _slidingWindow() - * @access private - * @param Math_BigInteger - * @return Math_BigInteger - */ - function _remainder($n) - { - list(, $temp) = $this->divide($n); - return $temp; - } - - /** - * Modulos for Powers of Two - * - * Calculates $x%$n, where $n = 2**$e, for some $e. Since this is basically the same as doing $x & ($n-1), - * we'll just use this function as a wrapper for doing that. - * - * @see _slidingWindow() - * @access private - * @param Math_BigInteger - * @return Math_BigInteger - */ - function _mod2($n) - { - $temp = new Math_BigInteger(); - $temp->value = array(1); - return $this->bitwise_and($n->subtract($temp)); - } - - /** - * Barrett Modular Reduction - * - * See {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=14 HAC 14.3.3} / - * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=165 MPM 6.2.5} for more information. Modified slightly, - * so as not to require negative numbers (initially, this script didn't support negative numbers). - * - * @see _slidingWindow() - * @access private - * @param Math_BigInteger - * @return Math_BigInteger - */ - function _barrett($n) - { - static $cache = array( - MATH_BIGINTEGER_VARIABLE => array(), - MATH_BIGINTEGER_DATA => array() - ); - - $n_length = count($n->value); - - if (count($this->value) > 2 * $n_length) { - list(, $temp) = $this->divide($n); - return $temp; - } - - if ( ($key = array_search($n->value, $cache[MATH_BIGINTEGER_VARIABLE])) === false ) { - $key = count($cache[MATH_BIGINTEGER_VARIABLE]); - $cache[MATH_BIGINTEGER_VARIABLE][] = $n->value; - $temp = new Math_BigInteger(); - $temp->value = $this->_array_repeat(0, 2 * $n_length); - $temp->value[] = 1; - list($cache[MATH_BIGINTEGER_DATA][], ) = $temp->divide($n); - } - - $temp = new Math_BigInteger(); - $temp->value = array_slice($this->value, $n_length - 1); - $temp = $temp->multiply($cache[MATH_BIGINTEGER_DATA][$key]); - $temp->value = array_slice($temp->value, $n_length + 1); - - $result = new Math_BigInteger(); - $result->value = array_slice($this->value, 0, $n_length + 1); - $temp = $temp->_multiplyLower($n, $n_length + 1); - // $temp->value == array_slice($temp->multiply($n)->value, 0, $n_length + 1) - - if ($result->compare($temp) < 0) { - $corrector = new Math_BigInteger(); - $corrector->value = $this->_array_repeat(0, $n_length + 1); - $corrector->value[] = 1; - $result = $result->add($corrector); - } - - $result = $result->subtract($temp); - while ($result->compare($n) > 0) { - $result = $result->subtract($n); - } - - return $result; - } - - /** - * Montgomery Modular Reduction - * - * ($this->_prepMontgomery($n))->_montgomery($n) yields $x%$n. - * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=170 MPM 6.3} provides insights on how this can be - * improved upon (basically, by using the comba method). gcd($n, 2) must be equal to one for this function - * to work correctly. - * - * @see _prepMontgomery() - * @see _slidingWindow() - * @access private - * @param Math_BigInteger - * @return Math_BigInteger - */ - function _montgomery($n) - { - static $cache = array( - MATH_BIGINTEGER_VARIABLE => array(), - MATH_BIGINTEGER_DATA => array() - ); - - if ( ($key = array_search($n->value, $cache[MATH_BIGINTEGER_VARIABLE])) === false ) { - $key = count($cache[MATH_BIGINTEGER_VARIABLE]); - $cache[MATH_BIGINTEGER_VARIABLE][] = $n->value; - $cache[MATH_BIGINTEGER_DATA][] = $n->_modInverse67108864(); - } - - $k = count($n->value); - - $result = $this->copy(); - - for ($i = 0; $i < $k; $i++) { - $temp = new Math_BigInteger(); - $temp->value = array( - ($result->value[$i] * $cache[MATH_BIGINTEGER_DATA][$key]) & 0x3FFFFFF - ); - - $temp = $temp->multiply($n); - $temp->value = array_merge($this->_array_repeat(0, $i), $temp->value); - $result = $result->add($temp); - } - - $result->value = array_slice($result->value, $k); - - if ($result->compare($n) >= 0) { - $result = $result->subtract($n); - } - - return $result; - } - - /** - * Prepare a number for use in Montgomery Modular Reductions - * - * @see _montgomery() - * @see _slidingWindow() - * @access private - * @param Math_BigInteger - * @return Math_BigInteger - */ - function _prepMontgomery($n) - { - $k = count($n->value); - - $temp = new Math_BigInteger(); - $temp->value = array_merge($this->_array_repeat(0, $k), $this->value); - - list(, $temp) = $temp->divide($n); - return $temp; - } - - /** - * Modular Inverse of a number mod 2**26 (eg. 67108864) - * - * Based off of the bnpInvDigit function implemented and justified in the following URL: - * - * {@link http://www-cs-students.stanford.edu/~tjw/jsbn/jsbn.js} - * - * The following URL provides more info: - * - * {@link http://groups.google.com/group/sci.crypt/msg/7a137205c1be7d85} - * - * As for why we do all the bitmasking... strange things can happen when converting from floats to ints. For - * instance, on some computers, var_dump((int) -4294967297) yields int(-1) and on others, it yields - * int(-2147483648). To avoid problems stemming from this, we use bitmasks to guarantee that ints aren't - * auto-converted to floats. The outermost bitmask is present because without it, there's no guarantee that - * the "residue" returned would be the so-called "common residue". We use fmod, in the last step, because the - * maximum possible $x is 26 bits and the maximum $result is 16 bits. Thus, we have to be able to handle up to - * 40 bits, which only 64-bit floating points will support. - * - * Thanks to Pedro Gimeno Fortea for input! - * - * @see _montgomery() - * @access private - * @return Integer - */ - function _modInverse67108864() // 2**26 == 67108864 - { - $x = -$this->value[0]; - $result = $x & 0x3; // x**-1 mod 2**2 - $result = ($result * (2 - $x * $result)) & 0xF; // x**-1 mod 2**4 - $result = ($result * (2 - ($x & 0xFF) * $result)) & 0xFF; // x**-1 mod 2**8 - $result = ($result * ((2 - ($x & 0xFFFF) * $result) & 0xFFFF)) & 0xFFFF; // x**-1 mod 2**16 - $result = fmod($result * (2 - fmod($x * $result, 0x4000000)), 0x4000000); // x**-1 mod 2**26 - return $result & 0x3FFFFFF; - } - - /** - * Calculates modular inverses. - * - * Say you have (30 mod 17 * x mod 17) mod 17 == 1. x can be found using modular inverses. - * - * Here's an example: - * - * modInverse($b); - * echo $c->toString(); // outputs 4 - * - * echo "\r\n"; - * - * $d = $a->multiply($c); - * list(, $d) = $d->divide($b); - * echo $d; // outputs 1 (as per the definition of modular inverse) - * ?> - * - * - * @param Math_BigInteger $n - * @return mixed false, if no modular inverse exists, Math_BigInteger, otherwise. - * @access public - * @internal See {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=21 HAC 14.64} for more information. - */ - function modInverse($n) - { - switch ( MATH_BIGINTEGER_MODE ) { - case MATH_BIGINTEGER_MODE_GMP: - $temp = new Math_BigInteger(); - $temp->value = gmp_invert($this->value, $n->value); - - return ( $temp->value === false ) ? false : $this->_normalize($temp); - } - - static $zero, $one; - if (!isset($zero)) { - $zero = new Math_BigInteger(); - $one = new Math_BigInteger(1); - } - - // $x mod $n == $x mod -$n. - $n = $n->abs(); - - if ($this->compare($zero) < 0) { - $temp = $this->abs(); - $temp = $temp->modInverse($n); - return $negated === false ? false : $this->_normalize($n->subtract($temp)); - } - - extract($this->extendedGCD($n)); - - if (!$gcd->equals($one)) { - return false; - } - - $x = $x->compare($zero) < 0 ? $x->add($n) : $x; - - return $this->compare($zero) < 0 ? $this->_normalize($n->subtract($x)) : $this->_normalize($x); - } - - /** - * Calculates the greatest common divisor and Bzout's identity. - * - * Say you have 693 and 609. The GCD is 21. Bzout's identity states that there exist integers x and y such that - * 693*x + 609*y == 21. In point of fact, there are actually an infinite number of x and y combinations and which - * combination is returned is dependant upon which mode is in use. See - * {@link http://en.wikipedia.org/wiki/B%C3%A9zout%27s_identity Bzout's identity - Wikipedia} for more information. - * - * Here's an example: - * - * extendedGCD($b)); - * - * echo $gcd->toString() . "\r\n"; // outputs 21 - * echo $a->toString() * $x->toString() + $b->toString() * $y->toString(); // outputs 21 - * ?> - * - * - * @param Math_BigInteger $n - * @return Math_BigInteger - * @access public - * @internal Calculates the GCD using the binary xGCD algorithim described in - * {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=19 HAC 14.61}. As the text above 14.61 notes, - * the more traditional algorithim requires "relatively costly multiple-precision divisions". - */ - function extendedGCD($n) { - switch ( MATH_BIGINTEGER_MODE ) { - case MATH_BIGINTEGER_MODE_GMP: - extract(gmp_gcdext($this->value, $n->value)); - - return array( - 'gcd' => $this->_normalize(new Math_BigInteger($g)), - 'x' => $this->_normalize(new Math_BigInteger($s)), - 'y' => $this->_normalize(new Math_BigInteger($t)) - ); - case MATH_BIGINTEGER_MODE_BCMATH: - // it might be faster to use the binary xGCD algorithim here, as well, but (1) that algorithim works - // best when the base is a power of 2 and (2) i don't think it'd make much difference, anyway. as is, - // the basic extended euclidean algorithim is what we're using. - - $u = $this->value; - $v = $n->value; - - $a = '1'; - $b = '0'; - $c = '0'; - $d = '1'; - - while (bccomp($v, '0') != 0) { - $q = bcdiv($u, $v); - - $temp = $u; - $u = $v; - $v = bcsub($temp, bcmul($v, $q)); - - $temp = $a; - $a = $c; - $c = bcsub($temp, bcmul($a, $q)); - - $temp = $b; - $b = $d; - $d = bcsub($temp, bcmul($b, $q)); - } - - return array( - 'gcd' => $this->_normalize(new Math_BigInteger($u)), - 'x' => $this->_normalize(new Math_BigInteger($a)), - 'y' => $this->_normalize(new Math_BigInteger($b)) - ); - } - - $y = $n->copy(); - $x = $this->copy(); - $g = new Math_BigInteger(); - $g->value = array(1); - - while ( !(($x->value[0] & 1)|| ($y->value[0] & 1)) ) { - $x->_rshift(1); - $y->_rshift(1); - $g->_lshift(1); - } - - $u = $x->copy(); - $v = $y->copy(); - - $a = new Math_BigInteger(); - $b = new Math_BigInteger(); - $c = new Math_BigInteger(); - $d = new Math_BigInteger(); - - $a->value = $d->value = $g->value = array(1); - - while ( !empty($u->value) ) { - while ( !($u->value[0] & 1) ) { - $u->_rshift(1); - if ( ($a->value[0] & 1) || ($b->value[0] & 1) ) { - $a = $a->add($y); - $b = $b->subtract($x); - } - $a->_rshift(1); - $b->_rshift(1); - } - - while ( !($v->value[0] & 1) ) { - $v->_rshift(1); - if ( ($c->value[0] & 1) || ($d->value[0] & 1) ) { - $c = $c->add($y); - $d = $d->subtract($x); - } - $c->_rshift(1); - $d->_rshift(1); - } - - if ($u->compare($v) >= 0) { - $u = $u->subtract($v); - $a = $a->subtract($c); - $b = $b->subtract($d); - } else { - $v = $v->subtract($u); - $c = $c->subtract($a); - $d = $d->subtract($b); - } - } - - return array( - 'gcd' => $this->_normalize($g->multiply($v)), - 'x' => $this->_normalize($c), - 'y' => $this->_normalize($d) - ); - } - - /** - * Calculates the greatest common divisor - * - * Say you have 693 and 609. The GCD is 21. - * - * Here's an example: - * - * extendedGCD($b); - * - * echo $gcd->toString() . "\r\n"; // outputs 21 - * ?> - * - * - * @param Math_BigInteger $n - * @return Math_BigInteger - * @access public - */ - function gcd($n) - { - extract($this->extendedGCD($n)); - return $gcd; - } - - /** - * Absolute value. - * - * @return Math_BigInteger - * @access public - */ - function abs() - { - $temp = new Math_BigInteger(); - - switch ( MATH_BIGINTEGER_MODE ) { - case MATH_BIGINTEGER_MODE_GMP: - $temp->value = gmp_abs($this->value); - break; - case MATH_BIGINTEGER_MODE_BCMATH: - $temp->value = (bccomp($this->value, '0') < 0) ? substr($this->value, 1) : $this->value; - break; - default: - $temp->value = $this->value; - } - - return $temp; - } - - /** - * Compares two numbers. - * - * Although one might think !$x->compare($y) means $x != $y, it, in fact, means the opposite. The reason for this is - * demonstrated thusly: - * - * $x > $y: $x->compare($y) > 0 - * $x < $y: $x->compare($y) < 0 - * $x == $y: $x->compare($y) == 0 - * - * Note how the same comparison operator is used. If you want to test for equality, use $x->equals($y). - * - * @param Math_BigInteger $x - * @return Integer < 0 if $this is less than $x; > 0 if $this is greater than $x, and 0 if they are equal. - * @access public - * @see equals() - * @internal Could return $this->sub($x), but that's not as fast as what we do do. - */ - function compare($y) - { - switch ( MATH_BIGINTEGER_MODE ) { - case MATH_BIGINTEGER_MODE_GMP: - return gmp_cmp($this->value, $y->value); - case MATH_BIGINTEGER_MODE_BCMATH: - return bccomp($this->value, $y->value); - } - - $x = $this->_normalize($this->copy()); - $y = $this->_normalize($y); - - if ( $x->is_negative != $y->is_negative ) { - return ( !$x->is_negative && $y->is_negative ) ? 1 : -1; - } - - $result = $x->is_negative ? -1 : 1; - - if ( count($x->value) != count($y->value) ) { - return ( count($x->value) > count($y->value) ) ? $result : -$result; - } - - for ($i = count($x->value) - 1; $i >= 0; $i--) { - if ($x->value[$i] != $y->value[$i]) { - return ( $x->value[$i] > $y->value[$i] ) ? $result : -$result; - } - } - - return 0; - } - - /** - * Tests the equality of two numbers. - * - * If you need to see if one number is greater than or less than another number, use Math_BigInteger::compare() - * - * @param Math_BigInteger $x - * @return Boolean - * @access public - * @see compare() - */ - function equals($x) - { - switch ( MATH_BIGINTEGER_MODE ) { - case MATH_BIGINTEGER_MODE_GMP: - return gmp_cmp($this->value, $x->value) == 0; - default: - return $this->value == $x->value && $this->is_negative == $x->is_negative; - } - } - - /** - * Set Precision - * - * Some bitwise operations give different results depending on the precision being used. Examples include left - * shift, not, and rotates. - * - * @param Math_BigInteger $x - * @access public - * @return Math_BigInteger - */ - function setPrecision($bits) - { - $this->precision = $bits; - if ( MATH_BIGINTEGER_MODE != MATH_BIGINTEGER_MODE_BCMATH ) { - $this->bitmask = new Math_BigInteger(chr((1 << ($bits & 0x7)) - 1) . str_repeat(chr(0xFF), $bits >> 3), 256); - } else { - $this->bitmask = new Math_BigInteger(bcpow('2', $bits)); - } - } - - /** - * Logical And - * - * @param Math_BigInteger $x - * @access public - * @internal Implemented per a request by Lluis Pamies i Juarez - * @return Math_BigInteger - */ - function bitwise_and($x) - { - switch ( MATH_BIGINTEGER_MODE ) { - case MATH_BIGINTEGER_MODE_GMP: - $temp = new Math_BigInteger(); - $temp->value = gmp_and($this->value, $x->value); - - return $this->_normalize($temp); - case MATH_BIGINTEGER_MODE_BCMATH: - $left = $this->toBytes(); - $right = $x->toBytes(); - - $length = max(strlen($left), strlen($right)); - - $left = str_pad($left, $length, chr(0), STR_PAD_LEFT); - $right = str_pad($right, $length, chr(0), STR_PAD_LEFT); - - return $this->_normalize(new Math_BigInteger($left & $right, 256)); - } - - $result = $this->copy(); - - $length = min(count($x->value), count($this->value)); - - $result->value = array_slice($result->value, 0, $length); - - for ($i = 0; $i < $length; $i++) { - $result->value[$i] = $result->value[$i] & $x->value[$i]; - } - - return $this->_normalize($result); - } - - /** - * Logical Or - * - * @param Math_BigInteger $x - * @access public - * @internal Implemented per a request by Lluis Pamies i Juarez - * @return Math_BigInteger - */ - function bitwise_or($x) - { - switch ( MATH_BIGINTEGER_MODE ) { - case MATH_BIGINTEGER_MODE_GMP: - $temp = new Math_BigInteger(); - $temp->value = gmp_or($this->value, $x->value); - - return $this->_normalize($temp); - case MATH_BIGINTEGER_MODE_BCMATH: - $left = $this->toBytes(); - $right = $x->toBytes(); - - $length = max(strlen($left), strlen($right)); - - $left = str_pad($left, $length, chr(0), STR_PAD_LEFT); - $right = str_pad($right, $length, chr(0), STR_PAD_LEFT); - - return $this->_normalize(new Math_BigInteger($left | $right, 256)); - } - - $length = max(count($this->value), count($x->value)); - $result = $this->copy(); - $result->value = array_pad($result->value, 0, $length); - $x->value = array_pad($x->value, 0, $length); - - for ($i = 0; $i < $length; $i++) { - $result->value[$i] = $this->value[$i] | $x->value[$i]; - } - - return $this->_normalize($result); - } - - /** - * Logical Exclusive-Or - * - * @param Math_BigInteger $x - * @access public - * @internal Implemented per a request by Lluis Pamies i Juarez - * @return Math_BigInteger - */ - function bitwise_xor($x) - { - switch ( MATH_BIGINTEGER_MODE ) { - case MATH_BIGINTEGER_MODE_GMP: - $temp = new Math_BigInteger(); - $temp->value = gmp_xor($this->value, $x->value); - - return $this->_normalize($temp); - case MATH_BIGINTEGER_MODE_BCMATH: - $left = $this->toBytes(); - $right = $x->toBytes(); - - $length = max(strlen($left), strlen($right)); - - $left = str_pad($left, $length, chr(0), STR_PAD_LEFT); - $right = str_pad($right, $length, chr(0), STR_PAD_LEFT); - - return $this->_normalize(new Math_BigInteger($left ^ $right, 256)); - } - - $length = max(count($this->value), count($x->value)); - $result = $this->copy(); - $result->value = array_pad($result->value, 0, $length); - $x->value = array_pad($x->value, 0, $length); - - for ($i = 0; $i < $length; $i++) { - $result->value[$i] = $this->value[$i] ^ $x->value[$i]; - } - - return $this->_normalize($result); - } - - /** - * Logical Not - * - * @access public - * @internal Implemented per a request by Lluis Pamies i Juarez - * @return Math_BigInteger - */ - function bitwise_not() - { - // calculuate "not" without regard to $this->precision - // (will always result in a smaller number. ie. ~1 isn't 1111 1110 - it's 0) - $temp = $this->toBytes(); - $pre_msb = decbin(ord($temp[0])); - $temp = ~$temp; - $msb = decbin(ord($temp[0])); - if (strlen($msb) == 8) { - $msb = substr($msb, strpos($msb, '0')); - } - $temp[0] = chr(bindec($msb)); - - // see if we need to add extra leading 1's - $current_bits = strlen($pre_msb) + 8 * strlen($temp) - 8; - $new_bits = $this->precision - $current_bits; - if ($new_bits <= 0) { - return $this->_normalize(new Math_BigInteger($temp, 256)); - } - - // generate as many leading 1's as we need to. - $leading_ones = chr((1 << ($new_bits & 0x7)) - 1) . str_repeat(chr(0xFF), $new_bits >> 3); - $this->_base256_lshift($leading_ones, $current_bits); - - $temp = str_pad($temp, ceil($this->bits / 8), chr(0), STR_PAD_LEFT); - - return $this->_normalize(new Math_BigInteger($leading_ones | $temp, 256)); - } - - /** - * Logical Right Shift - * - * Shifts BigInteger's by $shift bits, effectively dividing by 2**$shift. - * - * @param Integer $shift - * @return Math_BigInteger - * @access public - * @internal The only version that yields any speed increases is the internal version. - */ - function bitwise_rightShift($shift) - { - $temp = new Math_BigInteger(); - - switch ( MATH_BIGINTEGER_MODE ) { - case MATH_BIGINTEGER_MODE_GMP: - static $two; - - if (empty($two)) { - $two = gmp_init('2'); - } - - $temp->value = gmp_div_q($this->value, gmp_pow($two, $shift)); - - break; - case MATH_BIGINTEGER_MODE_BCMATH: - $temp->value = bcdiv($this->value, bcpow('2', $shift)); - - break; - default: // could just replace _lshift with this, but then all _lshift() calls would need to be rewritten - // and I don't want to do that... - $temp->value = $this->value; - $temp->_rshift($shift); - } - - return $this->_normalize($temp); - } - - /** - * Logical Left Shift - * - * Shifts BigInteger's by $shift bits, effectively multiplying by 2**$shift. - * - * @param Integer $shift - * @return Math_BigInteger - * @access public - * @internal The only version that yields any speed increases is the internal version. - */ - function bitwise_leftShift($shift) - { - $temp = new Math_BigInteger(); - - switch ( MATH_BIGINTEGER_MODE ) { - case MATH_BIGINTEGER_MODE_GMP: - static $two; - - if (empty($two)) { - $two = gmp_init('2'); - } - - $temp->value = gmp_mul($this->value, gmp_pow($two, $shift)); - - break; - case MATH_BIGINTEGER_MODE_BCMATH: - $temp->value = bcmul($this->value, bcpow('2', $shift)); - - break; - default: // could just replace _rshift with this, but then all _lshift() calls would need to be rewritten - // and I don't want to do that... - $temp->value = $this->value; - $temp->_lshift($shift); - } - - return $this->_normalize($temp); - } - - /** - * Logical Left Rotate - * - * Instead of the top x bits being dropped they're appended to the shifted bit string. - * - * @param Integer $shift - * @return Math_BigInteger - * @access public - */ - function bitwise_leftRotate($shift) - { - $bits = $this->toBytes(); - - if ($this->precision > 0) { - $precision = $this->precision; - if ( MATH_BIGINTEGER_MODE == MATH_BIGINTEGER_MODE_BCMATH ) { - $mask = $this->bitmask->subtract(new Math_BigInteger(1)); - $mask = $mask->toBytes(); - } else { - $mask = $this->bitmask->toBytes(); - } - } else { - $temp = ord($bits[0]); - for ($i = 0; $temp >> $i; $i++); - $precision = 8 * strlen($bits) - 8 + $i; - $mask = chr((1 << ($precision & 0x7)) - 1) . str_repeat(chr(0xFF), $precision >> 3); - } - - if ($shift < 0) { - $shift+= $precision; - } - $shift%= $precision; - - if (!$shift) { - return $this->copy(); - } - - $left = $this->bitwise_leftShift($shift); - $left = $left->bitwise_and(new Math_BigInteger($mask, 256)); - $right = $this->bitwise_rightShift($precision - $shift); - $result = MATH_BIGINTEGER_MODE != MATH_BIGINTEGER_MODE_BCMATH ? $left->bitwise_or($right) : $left->add($right); - return $this->_normalize($result); - } - - /** - * Logical Right Rotate - * - * Instead of the bottom x bits being dropped they're prepended to the shifted bit string. - * - * @param Integer $shift - * @return Math_BigInteger - * @access public - */ - function bitwise_rightRotate($shift) - { - return $this->bitwise_leftRotate(-$shift); - } - - /** - * Set random number generator function - * - * $generator should be the name of a random generating function whose first parameter is the minimum - * value and whose second parameter is the maximum value. If this function needs to be seeded, it should - * be seeded prior to calling Math_BigInteger::random() or Math_BigInteger::randomPrime() - * - * If the random generating function is not explicitly set, it'll be assumed to be mt_rand(). - * - * @see random() - * @see randomPrime() - * @param optional String $generator - * @access public - */ - function setRandomGenerator($generator) - { - $this->generator = $generator; - } - - /** - * Generate a random number - * - * @param optional Integer $min - * @param optional Integer $max - * @return Math_BigInteger - * @access public - */ - function random($min = false, $max = false) - { - if ($min === false) { - $min = new Math_BigInteger(0); - } - - if ($max === false) { - $max = new Math_BigInteger(0x7FFFFFFF); - } - - $compare = $max->compare($min); - - if (!$compare) { - return $this->_normalize($min); - } else if ($compare < 0) { - // if $min is bigger then $max, swap $min and $max - $temp = $max; - $max = $min; - $min = $temp; - } - - $generator = $this->generator; - - $max = $max->subtract($min); - $max = ltrim($max->toBytes(), chr(0)); - $size = strlen($max) - 1; - $random = ''; - - $bytes = $size & 1; - for ($i = 0; $i < $bytes; $i++) { - $random.= chr($generator(0, 255)); - } - - $blocks = $size >> 1; - for ($i = 0; $i < $blocks; $i++) { - // mt_rand(-2147483648, 0x7FFFFFFF) always produces -2147483648 on some systems - $random.= pack('n', $generator(0, 0xFFFF)); - } - - $temp = new Math_BigInteger($random, 256); - if ($temp->compare(new Math_BigInteger(substr($max, 1), 256)) > 0) { - $random = chr($generator(0, ord($max[0]) - 1)) . $random; - } else { - $random = chr($generator(0, ord($max[0]) )) . $random; - } - - $random = new Math_BigInteger($random, 256); - - return $this->_normalize($random->add($min)); - } - - /** - * Generate a random prime number. - * - * If there's not a prime within the given range, false will be returned. If more than $timeout seconds have elapsed, - * give up and return false. - * - * @param optional Integer $min - * @param optional Integer $max - * @param optional Integer $timeout - * @return Math_BigInteger - * @access public - * @internal See {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap4.pdf#page=15 HAC 4.44}. - */ - function randomPrime($min = false, $max = false, $timeout = false) - { - // gmp_nextprime() requires PHP 5 >= 5.2.0 per . - if ( MATH_BIGINTEGER_MODE == MATH_BIGINTEGER_MODE_GMP && function_exists('gmp_nextprime') ) { - // we don't rely on Math_BigInteger::random()'s min / max when gmp_nextprime() is being used since this function - // does its own checks on $max / $min when gmp_nextprime() is used. When gmp_nextprime() is not used, however, - // the same $max / $min checks are not performed. - if ($min === false) { - $min = new Math_BigInteger(0); - } - - if ($max === false) { - $max = new Math_BigInteger(0x7FFFFFFF); - } - - $compare = $max->compare($min); - - if (!$compare) { - return $min; - } else if ($compare < 0) { - // if $min is bigger then $max, swap $min and $max - $temp = $max; - $max = $min; - $min = $temp; - } - - $x = $this->random($min, $max); - - $x->value = gmp_nextprime($x->value); - - if ($x->compare($max) <= 0) { - return $x; - } - - $x->value = gmp_nextprime($min->value); - - if ($x->compare($max) <= 0) { - return $x; - } - - return false; - } - - $repeat1 = $repeat2 = array(); - - $one = new Math_BigInteger(1); - $two = new Math_BigInteger(2); - - $start = time(); - - do { - if ($timeout !== false && time() - $start > $timeout) { - return false; - } - - $x = $this->random($min, $max); - if ($x->equals($two)) { - return $x; - } - - // make the number odd - switch ( MATH_BIGINTEGER_MODE ) { - case MATH_BIGINTEGER_MODE_GMP: - gmp_setbit($x->value, 0); - break; - case MATH_BIGINTEGER_MODE_BCMATH: - if ($x->value[strlen($x->value) - 1] % 2 == 0) { - $x = $x->add($one); - } - break; - default: - $x->value[0] |= 1; - } - - // if we've seen this number twice before, assume there are no prime numbers within the given range - if (in_array($x->value, $repeat1)) { - if (in_array($x->value, $repeat2)) { - return false; - } else { - $repeat2[] = $x->value; - } - } else { - $repeat1[] = $x->value; - } - } while (!$x->isPrime()); - - return $x; - } - - /** - * Checks a numer to see if it's prime - * - * Assuming the $t parameter is not set, this functoin has an error rate of 2**-80. The main motivation for the - * $t parameter is distributability. Math_BigInteger::randomPrime() can be distributed accross multiple pageloads - * on a website instead of just one. - * - * @param optional Integer $t - * @return Boolean - * @access public - * @internal Uses the - * {@link http://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test MillerRabin primality test}. See - * {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap4.pdf#page=8 HAC 4.24}. - */ - function isPrime($t = false) - { - $length = strlen($this->toBytes()); - - if (!$t) { - // see HAC 4.49 "Note (controlling the error probability)" - if ($length >= 163) { $t = 2; } // floor(1300 / 8) - else if ($length >= 106) { $t = 3; } // floor( 850 / 8) - else if ($length >= 81 ) { $t = 4; } // floor( 650 / 8) - else if ($length >= 68 ) { $t = 5; } // floor( 550 / 8) - else if ($length >= 56 ) { $t = 6; } // floor( 450 / 8) - else if ($length >= 50 ) { $t = 7; } // floor( 400 / 8) - else if ($length >= 43 ) { $t = 8; } // floor( 350 / 8) - else if ($length >= 37 ) { $t = 9; } // floor( 300 / 8) - else if ($length >= 31 ) { $t = 12; } // floor( 250 / 8) - else if ($length >= 25 ) { $t = 15; } // floor( 200 / 8) - else if ($length >= 18 ) { $t = 18; } // floor( 150 / 8) - else { $t = 27; } - } - - // ie. gmp_testbit($this, 0) - // ie. isEven() or !isOdd() - switch ( MATH_BIGINTEGER_MODE ) { - case MATH_BIGINTEGER_MODE_GMP: - return gmp_prob_prime($this->value, $t) != 0; - case MATH_BIGINTEGER_MODE_BCMATH: - if ($this->value == '2') { - return true; - } - if ($this->value[strlen($this->value) - 1] % 2 == 0) { - return false; - } - break; - default: - if ($this->value == array(2)) { - return true; - } - if (~$this->value[0] & 1) { - return false; - } - } - - static $primes, $zero, $one, $two; - - if (!isset($primes)) { - $primes = array( - 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, - 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, - 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, - 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, - 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, - 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, - 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, - 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, - 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, - 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, - 953, 967, 971, 977, 983, 991, 997 - ); - - for ($i = 0; $i < count($primes); $i++) { - $primes[$i] = new Math_BigInteger($primes[$i]); - } - - $zero = new Math_BigInteger(); - $one = new Math_BigInteger(1); - $two = new Math_BigInteger(2); - } - - // see HAC 4.4.1 "Random search for probable primes" - for ($i = 0; $i < count($primes); $i++) { - list(, $r) = $this->divide($primes[$i]); - if ($r->equals($zero)) { - return false; - } - } - - $n = $this->copy(); - $n_1 = $n->subtract($one); - $n_2 = $n->subtract($two); - - $r = $n_1->copy(); - // ie. $s = gmp_scan1($n, 0) and $r = gmp_div_q($n, gmp_pow(gmp_init('2'), $s)); - if ( MATH_BIGINTEGER_MODE == MATH_BIGINTEGER_MODE_BCMATH ) { - $s = 0; - while ($r->value[strlen($r->value) - 1] % 2 == 0) { - $r->value = bcdiv($r->value, 2); - $s++; - } - } else { - for ($i = 0; $i < count($r->value); $i++) { - $temp = ~$r->value[$i] & 0xFFFFFF; - for ($j = 1; ($temp >> $j) & 1; $j++); - if ($j != 25) { - break; - } - } - $s = 26 * $i + $j - 1; - $r->_rshift($s); - } - - for ($i = 0; $i < $t; $i++) { - $a = new Math_BigInteger(); - $a = $a->random($two, $n_2); - $y = $a->modPow($r, $n); - - if (!$y->equals($one) && !$y->equals($n_1)) { - for ($j = 1; $j < $s && !$y->equals($n_1); $j++) { - $y = $y->modPow($two, $n); - if ($y->equals($one)) { - return false; - } - } - - if (!$y->equals($n_1)) { - return false; - } - } - } - return true; - } - - /** - * Logical Left Shift - * - * Shifts BigInteger's by $shift bits. - * - * @param Integer $shift - * @access private - */ - function _lshift($shift) - { - if ( $shift == 0 ) { - return; - } - - $num_digits = floor($shift / 26); - $shift %= 26; - $shift = 1 << $shift; - - $carry = 0; - - for ($i = 0; $i < count($this->value); $i++) { - $temp = $this->value[$i] * $shift + $carry; - $carry = floor($temp / 0x4000000); - $this->value[$i] = $temp - $carry * 0x4000000; - } - - if ( $carry ) { - $this->value[] = $carry; - } - - while ($num_digits--) { - array_unshift($this->value, 0); - } - } - - /** - * Logical Right Shift - * - * Shifts BigInteger's by $shift bits. - * - * @param Integer $shift - * @access private - */ - function _rshift($shift) - { - if ($shift == 0) { - return; - } - - $num_digits = floor($shift / 26); - $shift %= 26; - $carry_shift = 26 - $shift; - $carry_mask = (1 << $shift) - 1; - - if ( $num_digits ) { - $this->value = array_slice($this->value, $num_digits); - } - - $carry = 0; - - for ($i = count($this->value) - 1; $i >= 0; $i--) { - $temp = $this->value[$i] >> $shift | $carry; - $carry = ($this->value[$i] & $carry_mask) << $carry_shift; - $this->value[$i] = $temp; - } - } - - /** - * Normalize - * - * Deletes leading zeros and truncates (if necessary) to maintain the appropriate precision - * - * @return Math_BigInteger - * @access private - */ - function _normalize($result) - { - $result->precision = $this->precision; - $result->bitmask = $this->bitmask; - - switch ( MATH_BIGINTEGER_MODE ) { - case MATH_BIGINTEGER_MODE_GMP: - if (!empty($result->bitmask->value)) { - $result->value = gmp_and($result->value, $result->bitmask->value); - } - - return $result; - case MATH_BIGINTEGER_MODE_BCMATH: - if (!empty($result->bitmask->value)) { - $result->value = bcmod($result->value, $result->bitmask->value); - } - - return $result; - } - - if ( !count($result->value) ) { - return $result; - } - - for ($i = count($result->value) - 1; $i >= 0; $i--) { - if ( $result->value[$i] ) { - break; - } - unset($result->value[$i]); - } - - if (!empty($result->bitmask->value)) { - $length = min(count($result->value), count($this->bitmask->value)); - $result->value = array_slice($result->value, 0, $length); - - for ($i = 0; $i < $length; $i++) { - $result->value[$i] = $result->value[$i] & $this->bitmask->value[$i]; - } - } - - return $result; - } - - /** - * Array Repeat - * - * @param $input Array - * @param $multiplier mixed - * @return Array - * @access private - */ - function _array_repeat($input, $multiplier) - { - return ($multiplier) ? array_fill(0, $multiplier, $input) : array(); - } - - /** - * Logical Left Shift - * - * Shifts binary strings $shift bits, essentially multiplying by 2**$shift. - * - * @param $x String - * @param $shift Integer - * @return String - * @access private - */ - function _base256_lshift(&$x, $shift) - { - if ($shift == 0) { - return; - } - - $num_bytes = $shift >> 3; // eg. floor($shift/8) - $shift &= 7; // eg. $shift % 8 - - $carry = 0; - for ($i = strlen($x) - 1; $i >= 0; $i--) { - $temp = ord($x[$i]) << $shift | $carry; - $x[$i] = chr($temp); - $carry = $temp >> 8; - } - $carry = ($carry != 0) ? chr($carry) : ''; - $x = $carry . $x . str_repeat(chr(0), $num_bytes); - } - - /** - * Logical Right Shift - * - * Shifts binary strings $shift bits, essentially dividing by 2**$shift and returning the remainder. - * - * @param $x String - * @param $shift Integer - * @return String - * @access private - */ - function _base256_rshift(&$x, $shift) - { - if ($shift == 0) { - $x = ltrim($x, chr(0)); - return ''; - } - - $num_bytes = $shift >> 3; // eg. floor($shift/8) - $shift &= 7; // eg. $shift % 8 - - $remainder = ''; - if ($num_bytes) { - $start = $num_bytes > strlen($x) ? -strlen($x) : -$num_bytes; - $remainder = substr($x, $start); - $x = substr($x, 0, -$num_bytes); - } - - $carry = 0; - $carry_shift = 8 - $shift; - for ($i = 0; $i < strlen($x); $i++) { - $temp = (ord($x[$i]) >> $shift) | $carry; - $carry = (ord($x[$i]) << $carry_shift) & 0xFF; - $x[$i] = chr($temp); - } - $x = ltrim($x, chr(0)); - - $remainder = chr($carry >> $carry_shift) . $remainder; - - return ltrim($remainder, chr(0)); - } - - // one quirk about how the following functions are implemented is that PHP defines N to be an unsigned long - // at 32-bits, while java's longs are 64-bits. - - /** - * Converts 32-bit integers to bytes. - * - * @param Integer $x - * @return String - * @access private - */ - function _int2bytes($x) - { - return ltrim(pack('N', $x), chr(0)); - } - - /** - * Converts bytes to 32-bit integers - * - * @param String $x - * @return Integer - * @access private - */ - function _bytes2int($x) - { - $temp = unpack('Nint', str_pad($x, 4, chr(0), STR_PAD_LEFT)); - return $temp['int']; - } +> and << cannot be used, nor can the modulo operator %, + * which only supports integers. Although this fact will slow this library down, the fact that such a high + * base is being used should more than compensate. + * + * When PHP version 6 is officially released, we'll be able to use 64-bit integers. This should, once again, + * allow bitwise operators, and will increase the maximum possible base to 2**31 (or 2**62 for addition / + * subtraction). + * + * Numbers are stored in {@link http://en.wikipedia.org/wiki/Endianness little endian} format. ie. + * (new Math_BigInteger(pow(2, 26)))->value = array(0, 1) + * + * Useful resources are as follows: + * + * - {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf Handbook of Applied Cryptography (HAC)} + * - {@link http://math.libtomcrypt.com/files/tommath.pdf Multi-Precision Math (MPM)} + * - Java's BigInteger classes. See /j2se/src/share/classes/java/math in jdk-1_5_0-src-jrl.zip + * + * Here's an example of how to use this library: + * + * add($b); + * + * echo $c->toString(); // outputs 5 + * ?> + * + * + * LICENSE: This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * @category Math + * @package Math_BigInteger + * @author Jim Wigginton + * @copyright MMVI Jim Wigginton + * @license http://www.gnu.org/licenses/lgpl.txt + * @version $Id: BigInteger.php,v 1.31 2010/03/01 17:28:19 terrafrost Exp $ + * @link http://pear.php.net/package/Math_BigInteger + */ + +/**#@+ + * Reduction constants + * + * @access private + * @see Math_BigInteger::_reduce() + */ +/** + * @see Math_BigInteger::_montgomery() + * @see Math_BigInteger::_prepMontgomery() + */ +define('MATH_BIGINTEGER_MONTGOMERY', 0); +/** + * @see Math_BigInteger::_barrett() + */ +define('MATH_BIGINTEGER_BARRETT', 1); +/** + * @see Math_BigInteger::_mod2() + */ +define('MATH_BIGINTEGER_POWEROF2', 2); +/** + * @see Math_BigInteger::_remainder() + */ +define('MATH_BIGINTEGER_CLASSIC', 3); +/** + * @see Math_BigInteger::__clone() + */ +define('MATH_BIGINTEGER_NONE', 4); +/**#@-*/ + +/**#@+ + * Array constants + * + * Rather than create a thousands and thousands of new Math_BigInteger objects in repeated function calls to add() and + * multiply() or whatever, we'll just work directly on arrays, taking them in as parameters and returning them. + * + * @access private + */ +/** + * $result[MATH_BIGINTEGER_VALUE] contains the value. + */ +define('MATH_BIGINTEGER_VALUE', 0); +/** + * $result[MATH_BIGINTEGER_SIGN] contains the sign. + */ +define('MATH_BIGINTEGER_SIGN', 1); +/**#@-*/ + +/**#@+ + * @access private + * @see Math_BigInteger::_montgomery() + * @see Math_BigInteger::_barrett() + */ +/** + * Cache constants + * + * $cache[MATH_BIGINTEGER_VARIABLE] tells us whether or not the cached data is still valid. + */ +define('MATH_BIGINTEGER_VARIABLE', 0); +/** + * $cache[MATH_BIGINTEGER_DATA] contains the cached data. + */ +define('MATH_BIGINTEGER_DATA', 1); +/**#@-*/ + +/**#@+ + * Mode constants. + * + * @access private + * @see Math_BigInteger::Math_BigInteger() + */ +/** + * To use the pure-PHP implementation + */ +define('MATH_BIGINTEGER_MODE_INTERNAL', 1); +/** + * To use the BCMath library + * + * (if enabled; otherwise, the internal implementation will be used) + */ +define('MATH_BIGINTEGER_MODE_BCMATH', 2); +/** + * To use the GMP library + * + * (if present; otherwise, either the BCMath or the internal implementation will be used) + */ +define('MATH_BIGINTEGER_MODE_GMP', 3); +/**#@-*/ + +/** + * The largest digit that may be used in addition / subtraction + * + * (we do pow(2, 52) instead of using 4503599627370496, directly, because some PHP installations + * will truncate 4503599627370496) + * + * @access private + */ +define('MATH_BIGINTEGER_MAX_DIGIT52', pow(2, 52)); + +/** + * Karatsuba Cutoff + * + * At what point do we switch between Karatsuba multiplication and schoolbook long multiplication? + * + * @access private + */ +define('MATH_BIGINTEGER_KARATSUBA_CUTOFF', 25); + +/** + * Pure-PHP arbitrary precision integer arithmetic library. Supports base-2, base-10, base-16, and base-256 + * numbers. + * + * @author Jim Wigginton + * @version 1.0.0RC4 + * @access public + * @package Math_BigInteger + */ +class Math_BigInteger { + /** + * Holds the BigInteger's value. + * + * @var Array + * @access private + */ + var $value; + + /** + * Holds the BigInteger's magnitude. + * + * @var Boolean + * @access private + */ + var $is_negative = false; + + /** + * Random number generator function + * + * @see setRandomGenerator() + * @access private + */ + var $generator = 'mt_rand'; + + /** + * Precision + * + * @see setPrecision() + * @access private + */ + var $precision = -1; + + /** + * Precision Bitmask + * + * @see setPrecision() + * @access private + */ + var $bitmask = false; + + /** + * Mode independant value used for serialization. + * + * If the bcmath or gmp extensions are installed $this->value will be a non-serializable resource, hence the need for + * a variable that'll be serializable regardless of whether or not extensions are being used. Unlike $this->value, + * however, $this->hex is only calculated when $this->__sleep() is called. + * + * @see __sleep() + * @see __wakeup() + * @var String + * @access private + */ + var $hex; + + /** + * Converts base-2, base-10, base-16, and binary strings (eg. base-256) to BigIntegers. + * + * If the second parameter - $base - is negative, then it will be assumed that the number's are encoded using + * two's compliment. The sole exception to this is -10, which is treated the same as 10 is. + * + * Here's an example: + * + * toString(); // outputs 50 + * ?> + * + * + * @param optional $x base-10 number or base-$base number if $base set. + * @param optional integer $base + * @return Math_BigInteger + * @access public + */ + function Math_BigInteger($x = 0, $base = 10) + { + if ( !defined('MATH_BIGINTEGER_MODE') ) { + switch (true) { + case extension_loaded('gmp'): + define('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_GMP); + break; + case extension_loaded('bcmath'): + define('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_BCMATH); + break; + default: + define('MATH_BIGINTEGER_MODE', MATH_BIGINTEGER_MODE_INTERNAL); + } + } + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + if (is_resource($x) && get_resource_type($x) == 'GMP integer') { + $this->value = $x; + return; + } + $this->value = gmp_init(0); + break; + case MATH_BIGINTEGER_MODE_BCMATH: + $this->value = '0'; + break; + default: + $this->value = array(); + } + + if ($x === 0) { + return; + } + + switch ($base) { + case -256: + if (ord($x[0]) & 0x80) { + $x = ~$x; + $this->is_negative = true; + } + case 256: + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $sign = $this->is_negative ? '-' : ''; + $this->value = gmp_init($sign . '0x' . bin2hex($x)); + break; + case MATH_BIGINTEGER_MODE_BCMATH: + // round $len to the nearest 4 (thanks, DavidMJ!) + $len = (strlen($x) + 3) & 0xFFFFFFFC; + + $x = str_pad($x, $len, chr(0), STR_PAD_LEFT); + + for ($i = 0; $i < $len; $i+= 4) { + $this->value = bcmul($this->value, '4294967296', 0); // 4294967296 == 2**32 + $this->value = bcadd($this->value, 0x1000000 * ord($x[$i]) + ((ord($x[$i + 1]) << 16) | (ord($x[$i + 2]) << 8) | ord($x[$i + 3])), 0); + } + + if ($this->is_negative) { + $this->value = '-' . $this->value; + } + + break; + // converts a base-2**8 (big endian / msb) number to base-2**26 (little endian / lsb) + default: + while (strlen($x)) { + $this->value[] = $this->_bytes2int($this->_base256_rshift($x, 26)); + } + } + + if ($this->is_negative) { + if (MATH_BIGINTEGER_MODE != MATH_BIGINTEGER_MODE_INTERNAL) { + $this->is_negative = false; + } + $temp = $this->add(new Math_BigInteger('-1')); + $this->value = $temp->value; + } + break; + case 16: + case -16: + if ($base > 0 && $x[0] == '-') { + $this->is_negative = true; + $x = substr($x, 1); + } + + $x = preg_replace('#^(?:0x)?([A-Fa-f0-9]*).*#', '$1', $x); + + $is_negative = false; + if ($base < 0 && hexdec($x[0]) >= 8) { + $this->is_negative = $is_negative = true; + $x = bin2hex(~pack('H*', $x)); + } + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = $this->is_negative ? '-0x' . $x : '0x' . $x; + $this->value = gmp_init($temp); + $this->is_negative = false; + break; + case MATH_BIGINTEGER_MODE_BCMATH: + $x = ( strlen($x) & 1 ) ? '0' . $x : $x; + $temp = new Math_BigInteger(pack('H*', $x), 256); + $this->value = $this->is_negative ? '-' . $temp->value : $temp->value; + $this->is_negative = false; + break; + default: + $x = ( strlen($x) & 1 ) ? '0' . $x : $x; + $temp = new Math_BigInteger(pack('H*', $x), 256); + $this->value = $temp->value; + } + + if ($is_negative) { + $temp = $this->add(new Math_BigInteger('-1')); + $this->value = $temp->value; + } + break; + case 10: + case -10: + $x = preg_replace('#^(-?[0-9]*).*#', '$1', $x); + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $this->value = gmp_init($x); + break; + case MATH_BIGINTEGER_MODE_BCMATH: + // explicitly casting $x to a string is necessary, here, since doing $x[0] on -1 yields different + // results then doing it on '-1' does (modInverse does $x[0]) + $this->value = (string) $x; + break; + default: + $temp = new Math_BigInteger(); + + // array(10000000) is 10**7 in base-2**26. 10**7 is the closest to 2**26 we can get without passing it. + $multiplier = new Math_BigInteger(); + $multiplier->value = array(10000000); + + if ($x[0] == '-') { + $this->is_negative = true; + $x = substr($x, 1); + } + + $x = str_pad($x, strlen($x) + (6 * strlen($x)) % 7, 0, STR_PAD_LEFT); + + while (strlen($x)) { + $temp = $temp->multiply($multiplier); + $temp = $temp->add(new Math_BigInteger($this->_int2bytes(substr($x, 0, 7)), 256)); + $x = substr($x, 7); + } + + $this->value = $temp->value; + } + break; + case 2: // base-2 support originally implemented by Lluis Pamies - thanks! + case -2: + if ($base > 0 && $x[0] == '-') { + $this->is_negative = true; + $x = substr($x, 1); + } + + $x = preg_replace('#^([01]*).*#', '$1', $x); + $x = str_pad($x, strlen($x) + (3 * strlen($x)) % 4, 0, STR_PAD_LEFT); + + $str = '0x'; + while (strlen($x)) { + $part = substr($x, 0, 4); + $str.= dechex(bindec($part)); + $x = substr($x, 4); + } + + if ($this->is_negative) { + $str = '-' . $str; + } + + $temp = new Math_BigInteger($str, 8 * $base); // ie. either -16 or +16 + $this->value = $temp->value; + $this->is_negative = $temp->is_negative; + + break; + default: + // base not supported, so we'll let $this == 0 + } + } + + /** + * Converts a BigInteger to a byte string (eg. base-256). + * + * Negative numbers are saved as positive numbers, unless $twos_compliment is set to true, at which point, they're + * saved as two's compliment. + * + * Here's an example: + * + * toBytes(); // outputs chr(65) + * ?> + * + * + * @param Boolean $twos_compliment + * @return String + * @access public + * @internal Converts a base-2**26 number to base-2**8 + */ + function toBytes($twos_compliment = false) + { + if ($twos_compliment) { + $comparison = $this->compare(new Math_BigInteger()); + if ($comparison == 0) { + return $this->precision > 0 ? str_repeat(chr(0), ($this->precision + 1) >> 3) : ''; + } + + $temp = $comparison < 0 ? $this->add(new Math_BigInteger(1)) : $this->copy(); + $bytes = $temp->toBytes(); + + if (empty($bytes)) { // eg. if the number we're trying to convert is -1 + $bytes = chr(0); + } + + if (ord($bytes[0]) & 0x80) { + $bytes = chr(0) . $bytes; + } + + return $comparison < 0 ? ~$bytes : $bytes; + } + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + if (gmp_cmp($this->value, gmp_init(0)) == 0) { + return $this->precision > 0 ? str_repeat(chr(0), ($this->precision + 1) >> 3) : ''; + } + + $temp = gmp_strval(gmp_abs($this->value), 16); + $temp = ( strlen($temp) & 1 ) ? '0' . $temp : $temp; + $temp = pack('H*', $temp); + + return $this->precision > 0 ? + substr(str_pad($temp, $this->precision >> 3, chr(0), STR_PAD_LEFT), -($this->precision >> 3)) : + ltrim($temp, chr(0)); + case MATH_BIGINTEGER_MODE_BCMATH: + if ($this->value === '0') { + return $this->precision > 0 ? str_repeat(chr(0), ($this->precision + 1) >> 3) : ''; + } + + $value = ''; + $current = $this->value; + + if ($current[0] == '-') { + $current = substr($current, 1); + } + + while (bccomp($current, '0', 0) > 0) { + $temp = bcmod($current, '16777216'); + $value = chr($temp >> 16) . chr($temp >> 8) . chr($temp) . $value; + $current = bcdiv($current, '16777216', 0); + } + + return $this->precision > 0 ? + substr(str_pad($value, $this->precision >> 3, chr(0), STR_PAD_LEFT), -($this->precision >> 3)) : + ltrim($value, chr(0)); + } + + if (!count($this->value)) { + return $this->precision > 0 ? str_repeat(chr(0), ($this->precision + 1) >> 3) : ''; + } + $result = $this->_int2bytes($this->value[count($this->value) - 1]); + + $temp = $this->copy(); + + for ($i = count($temp->value) - 2; $i >= 0; --$i) { + $temp->_base256_lshift($result, 26); + $result = $result | str_pad($temp->_int2bytes($temp->value[$i]), strlen($result), chr(0), STR_PAD_LEFT); + } + + return $this->precision > 0 ? + str_pad(substr($result, -(($this->precision + 7) >> 3)), ($this->precision + 7) >> 3, chr(0), STR_PAD_LEFT) : + $result; + } + + /** + * Converts a BigInteger to a hex string (eg. base-16)). + * + * Negative numbers are saved as positive numbers, unless $twos_compliment is set to true, at which point, they're + * saved as two's compliment. + * + * Here's an example: + * + * toHex(); // outputs '41' + * ?> + * + * + * @param Boolean $twos_compliment + * @return String + * @access public + * @internal Converts a base-2**26 number to base-2**8 + */ + function toHex($twos_compliment = false) + { + return bin2hex($this->toBytes($twos_compliment)); + } + + /** + * Converts a BigInteger to a bit string (eg. base-2). + * + * Negative numbers are saved as positive numbers, unless $twos_compliment is set to true, at which point, they're + * saved as two's compliment. + * + * Here's an example: + * + * toBits(); // outputs '1000001' + * ?> + * + * + * @param Boolean $twos_compliment + * @return String + * @access public + * @internal Converts a base-2**26 number to base-2**2 + */ + function toBits($twos_compliment = false) + { + $hex = $this->toHex($twos_compliment); + $bits = ''; + for ($i = 0; $i < strlen($hex); $i+=8) { + $bits.= str_pad(decbin(hexdec(substr($hex, $i, 8))), 32, '0', STR_PAD_LEFT); + } + return $this->precision > 0 ? substr($bits, -$this->precision) : ltrim($bits, '0'); + } + + /** + * Converts a BigInteger to a base-10 number. + * + * Here's an example: + * + * toString(); // outputs 50 + * ?> + * + * + * @return String + * @access public + * @internal Converts a base-2**26 number to base-10**7 (which is pretty much base-10) + */ + function toString() + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + return gmp_strval($this->value); + case MATH_BIGINTEGER_MODE_BCMATH: + if ($this->value === '0') { + return '0'; + } + + return ltrim($this->value, '0'); + } + + if (!count($this->value)) { + return '0'; + } + + $temp = $this->copy(); + $temp->is_negative = false; + + $divisor = new Math_BigInteger(); + $divisor->value = array(10000000); // eg. 10**7 + $result = ''; + while (count($temp->value)) { + list($temp, $mod) = $temp->divide($divisor); + $result = str_pad(isset($mod->value[0]) ? $mod->value[0] : '', 7, '0', STR_PAD_LEFT) . $result; + } + $result = ltrim($result, '0'); + if (empty($result)) { + $result = '0'; + } + + if ($this->is_negative) { + $result = '-' . $result; + } + + return $result; + } + + /** + * Copy an object + * + * PHP5 passes objects by reference while PHP4 passes by value. As such, we need a function to guarantee + * that all objects are passed by value, when appropriate. More information can be found here: + * + * {@link http://php.net/language.oop5.basic#51624} + * + * @access public + * @see __clone() + * @return Math_BigInteger + */ + function copy() + { + $temp = new Math_BigInteger(); + $temp->value = $this->value; + $temp->is_negative = $this->is_negative; + $temp->generator = $this->generator; + $temp->precision = $this->precision; + $temp->bitmask = $this->bitmask; + return $temp; + } + + /** + * __toString() magic method + * + * Will be called, automatically, if you're supporting just PHP5. If you're supporting PHP4, you'll need to call + * toString(). + * + * @access public + * @internal Implemented per a suggestion by Techie-Michael - thanks! + */ + function __toString() + { + return $this->toString(); + } + + /** + * __clone() magic method + * + * Although you can call Math_BigInteger::__toString() directly in PHP5, you cannot call Math_BigInteger::__clone() + * directly in PHP5. You can in PHP4 since it's not a magic method, but in PHP5, you have to call it by using the PHP5 + * only syntax of $y = clone $x. As such, if you're trying to write an application that works on both PHP4 and PHP5, + * call Math_BigInteger::copy(), instead. + * + * @access public + * @see copy() + * @return Math_BigInteger + */ + function __clone() + { + return $this->copy(); + } + + /** + * __sleep() magic method + * + * Will be called, automatically, when serialize() is called on a Math_BigInteger object. + * + * @see __wakeup + * @access public + */ + function __sleep() + { + $this->hex = $this->toHex(true); + $vars = array('hex'); + if ($this->generator != 'mt_rand') { + $vars[] = 'generator'; + } + if ($this->precision > 0) { + $vars[] = 'precision'; + } + return $vars; + + } + + /** + * __wakeup() magic method + * + * Will be called, automatically, when unserialize() is called on a Math_BigInteger object. + * + * @see __sleep + * @access public + */ + function __wakeup() + { + $temp = new Math_BigInteger($this->hex, -16); + $this->value = $temp->value; + $this->is_negative = $temp->is_negative; + $this->setRandomGenerator($this->generator); + if ($this->precision > 0) { + // recalculate $this->bitmask + $this->setPrecision($this->precision); + } + } + + /** + * Adds two BigIntegers. + * + * Here's an example: + * + * add($b); + * + * echo $c->toString(); // outputs 30 + * ?> + * + * + * @param Math_BigInteger $y + * @return Math_BigInteger + * @access public + * @internal Performs base-2**52 addition + */ + function add($y) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = new Math_BigInteger(); + $temp->value = gmp_add($this->value, $y->value); + + return $this->_normalize($temp); + case MATH_BIGINTEGER_MODE_BCMATH: + $temp = new Math_BigInteger(); + $temp->value = bcadd($this->value, $y->value, 0); + + return $this->_normalize($temp); + } + + $temp = $this->_add($this->value, $this->is_negative, $y->value, $y->is_negative); + + $result = new Math_BigInteger(); + $result->value = $temp[MATH_BIGINTEGER_VALUE]; + $result->is_negative = $temp[MATH_BIGINTEGER_SIGN]; + + return $this->_normalize($result); + } + + /** + * Performs addition. + * + * @param Array $x_value + * @param Boolean $x_negative + * @param Array $y_value + * @param Boolean $y_negative + * @return Array + * @access private + */ + function _add($x_value, $x_negative, $y_value, $y_negative) + { + $x_size = count($x_value); + $y_size = count($y_value); + + if ($x_size == 0) { + return array( + MATH_BIGINTEGER_VALUE => $y_value, + MATH_BIGINTEGER_SIGN => $y_negative + ); + } else if ($y_size == 0) { + return array( + MATH_BIGINTEGER_VALUE => $x_value, + MATH_BIGINTEGER_SIGN => $x_negative + ); + } + + // subtract, if appropriate + if ( $x_negative != $y_negative ) { + if ( $x_value == $y_value ) { + return array( + MATH_BIGINTEGER_VALUE => array(), + MATH_BIGINTEGER_SIGN => false + ); + } + + $temp = $this->_subtract($x_value, false, $y_value, false); + $temp[MATH_BIGINTEGER_SIGN] = $this->_compare($x_value, false, $y_value, false) > 0 ? + $x_negative : $y_negative; + + return $temp; + } + + if ($x_size < $y_size) { + $size = $x_size; + $value = $y_value; + } else { + $size = $y_size; + $value = $x_value; + } + + $value[] = 0; // just in case the carry adds an extra digit + + $carry = 0; + for ($i = 0, $j = 1; $j < $size; $i+=2, $j+=2) { + $sum = $x_value[$j] * 0x4000000 + $x_value[$i] + $y_value[$j] * 0x4000000 + $y_value[$i] + $carry; + $carry = $sum >= MATH_BIGINTEGER_MAX_DIGIT52; // eg. floor($sum / 2**52); only possible values (in any base) are 0 and 1 + $sum = $carry ? $sum - MATH_BIGINTEGER_MAX_DIGIT52 : $sum; + + $temp = (int) ($sum / 0x4000000); + + $value[$i] = (int) ($sum - 0x4000000 * $temp); // eg. a faster alternative to fmod($sum, 0x4000000) + $value[$j] = $temp; + } + + if ($j == $size) { // ie. if $y_size is odd + $sum = $x_value[$i] + $y_value[$i] + $carry; + $carry = $sum >= 0x4000000; + $value[$i] = $carry ? $sum - 0x4000000 : $sum; + ++$i; // ie. let $i = $j since we've just done $value[$i] + } + + if ($carry) { + for (; $value[$i] == 0x3FFFFFF; ++$i) { + $value[$i] = 0; + } + ++$value[$i]; + } + + return array( + MATH_BIGINTEGER_VALUE => $this->_trim($value), + MATH_BIGINTEGER_SIGN => $x_negative + ); + } + + /** + * Subtracts two BigIntegers. + * + * Here's an example: + * + * subtract($b); + * + * echo $c->toString(); // outputs -10 + * ?> + * + * + * @param Math_BigInteger $y + * @return Math_BigInteger + * @access public + * @internal Performs base-2**52 subtraction + */ + function subtract($y) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = new Math_BigInteger(); + $temp->value = gmp_sub($this->value, $y->value); + + return $this->_normalize($temp); + case MATH_BIGINTEGER_MODE_BCMATH: + $temp = new Math_BigInteger(); + $temp->value = bcsub($this->value, $y->value, 0); + + return $this->_normalize($temp); + } + + $temp = $this->_subtract($this->value, $this->is_negative, $y->value, $y->is_negative); + + $result = new Math_BigInteger(); + $result->value = $temp[MATH_BIGINTEGER_VALUE]; + $result->is_negative = $temp[MATH_BIGINTEGER_SIGN]; + + return $this->_normalize($result); + } + + /** + * Performs subtraction. + * + * @param Array $x_value + * @param Boolean $x_negative + * @param Array $y_value + * @param Boolean $y_negative + * @return Array + * @access private + */ + function _subtract($x_value, $x_negative, $y_value, $y_negative) + { + $x_size = count($x_value); + $y_size = count($y_value); + + if ($x_size == 0) { + return array( + MATH_BIGINTEGER_VALUE => $y_value, + MATH_BIGINTEGER_SIGN => !$y_negative + ); + } else if ($y_size == 0) { + return array( + MATH_BIGINTEGER_VALUE => $x_value, + MATH_BIGINTEGER_SIGN => $x_negative + ); + } + + // add, if appropriate (ie. -$x - +$y or +$x - -$y) + if ( $x_negative != $y_negative ) { + $temp = $this->_add($x_value, false, $y_value, false); + $temp[MATH_BIGINTEGER_SIGN] = $x_negative; + + return $temp; + } + + $diff = $this->_compare($x_value, $x_negative, $y_value, $y_negative); + + if ( !$diff ) { + return array( + MATH_BIGINTEGER_VALUE => array(), + MATH_BIGINTEGER_SIGN => false + ); + } + + // switch $x and $y around, if appropriate. + if ( (!$x_negative && $diff < 0) || ($x_negative && $diff > 0) ) { + $temp = $x_value; + $x_value = $y_value; + $y_value = $temp; + + $x_negative = !$x_negative; + + $x_size = count($x_value); + $y_size = count($y_value); + } + + // at this point, $x_value should be at least as big as - if not bigger than - $y_value + + $carry = 0; + for ($i = 0, $j = 1; $j < $y_size; $i+=2, $j+=2) { + $sum = $x_value[$j] * 0x4000000 + $x_value[$i] - $y_value[$j] * 0x4000000 - $y_value[$i] - $carry; + $carry = $sum < 0; // eg. floor($sum / 2**52); only possible values (in any base) are 0 and 1 + $sum = $carry ? $sum + MATH_BIGINTEGER_MAX_DIGIT52 : $sum; + + $temp = (int) ($sum / 0x4000000); + + $x_value[$i] = (int) ($sum - 0x4000000 * $temp); + $x_value[$j] = $temp; + } + + if ($j == $y_size) { // ie. if $y_size is odd + $sum = $x_value[$i] - $y_value[$i] - $carry; + $carry = $sum < 0; + $x_value[$i] = $carry ? $sum + 0x4000000 : $sum; + ++$i; + } + + if ($carry) { + for (; !$x_value[$i]; ++$i) { + $x_value[$i] = 0x3FFFFFF; + } + --$x_value[$i]; + } + + return array( + MATH_BIGINTEGER_VALUE => $this->_trim($x_value), + MATH_BIGINTEGER_SIGN => $x_negative + ); + } + + /** + * Multiplies two BigIntegers + * + * Here's an example: + * + * multiply($b); + * + * echo $c->toString(); // outputs 200 + * ?> + * + * + * @param Math_BigInteger $x + * @return Math_BigInteger + * @access public + */ + function multiply($x) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = new Math_BigInteger(); + $temp->value = gmp_mul($this->value, $x->value); + + return $this->_normalize($temp); + case MATH_BIGINTEGER_MODE_BCMATH: + $temp = new Math_BigInteger(); + $temp->value = bcmul($this->value, $x->value, 0); + + return $this->_normalize($temp); + } + + $temp = $this->_multiply($this->value, $this->is_negative, $x->value, $x->is_negative); + + $product = new Math_BigInteger(); + $product->value = $temp[MATH_BIGINTEGER_VALUE]; + $product->is_negative = $temp[MATH_BIGINTEGER_SIGN]; + + return $this->_normalize($product); + } + + /** + * Performs multiplication. + * + * @param Array $x_value + * @param Boolean $x_negative + * @param Array $y_value + * @param Boolean $y_negative + * @return Array + * @access private + */ + function _multiply($x_value, $x_negative, $y_value, $y_negative) + { + //if ( $x_value == $y_value ) { + // return array( + // MATH_BIGINTEGER_VALUE => $this->_square($x_value), + // MATH_BIGINTEGER_SIGN => $x_sign != $y_value + // ); + //} + + $x_length = count($x_value); + $y_length = count($y_value); + + if ( !$x_length || !$y_length ) { // a 0 is being multiplied + return array( + MATH_BIGINTEGER_VALUE => array(), + MATH_BIGINTEGER_SIGN => false + ); + } + + return array( + MATH_BIGINTEGER_VALUE => min($x_length, $y_length) < 2 * MATH_BIGINTEGER_KARATSUBA_CUTOFF ? + $this->_trim($this->_regularMultiply($x_value, $y_value)) : + $this->_trim($this->_karatsuba($x_value, $y_value)), + MATH_BIGINTEGER_SIGN => $x_negative != $y_negative + ); + } + + /** + * Performs long multiplication on two BigIntegers + * + * Modeled after 'multiply' in MutableBigInteger.java. + * + * @param Array $x_value + * @param Array $y_value + * @return Array + * @access private + */ + function _regularMultiply($x_value, $y_value) + { + $x_length = count($x_value); + $y_length = count($y_value); + + if ( !$x_length || !$y_length ) { // a 0 is being multiplied + return array(); + } + + if ( $x_length < $y_length ) { + $temp = $x_value; + $x_value = $y_value; + $y_value = $temp; + + $x_length = count($x_value); + $y_length = count($y_value); + } + + $product_value = $this->_array_repeat(0, $x_length + $y_length); + + // the following for loop could be removed if the for loop following it + // (the one with nested for loops) initially set $i to 0, but + // doing so would also make the result in one set of unnecessary adds, + // since on the outermost loops first pass, $product->value[$k] is going + // to always be 0 + + $carry = 0; + + for ($j = 0; $j < $x_length; ++$j) { // ie. $i = 0 + $temp = $x_value[$j] * $y_value[0] + $carry; // $product_value[$k] == 0 + $carry = (int) ($temp / 0x4000000); + $product_value[$j] = (int) ($temp - 0x4000000 * $carry); + } + + $product_value[$j] = $carry; + + // the above for loop is what the previous comment was talking about. the + // following for loop is the "one with nested for loops" + for ($i = 1; $i < $y_length; ++$i) { + $carry = 0; + + for ($j = 0, $k = $i; $j < $x_length; ++$j, ++$k) { + $temp = $product_value[$k] + $x_value[$j] * $y_value[$i] + $carry; + $carry = (int) ($temp / 0x4000000); + $product_value[$k] = (int) ($temp - 0x4000000 * $carry); + } + + $product_value[$k] = $carry; + } + + return $product_value; + } + + /** + * Performs Karatsuba multiplication on two BigIntegers + * + * See {@link http://en.wikipedia.org/wiki/Karatsuba_algorithm Karatsuba algorithm} and + * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=120 MPM 5.2.3}. + * + * @param Array $x_value + * @param Array $y_value + * @return Array + * @access private + */ + function _karatsuba($x_value, $y_value) + { + $m = min(count($x_value) >> 1, count($y_value) >> 1); + + if ($m < MATH_BIGINTEGER_KARATSUBA_CUTOFF) { + return $this->_regularMultiply($x_value, $y_value); + } + + $x1 = array_slice($x_value, $m); + $x0 = array_slice($x_value, 0, $m); + $y1 = array_slice($y_value, $m); + $y0 = array_slice($y_value, 0, $m); + + $z2 = $this->_karatsuba($x1, $y1); + $z0 = $this->_karatsuba($x0, $y0); + + $z1 = $this->_add($x1, false, $x0, false); + $temp = $this->_add($y1, false, $y0, false); + $z1 = $this->_karatsuba($z1[MATH_BIGINTEGER_VALUE], $temp[MATH_BIGINTEGER_VALUE]); + $temp = $this->_add($z2, false, $z0, false); + $z1 = $this->_subtract($z1, false, $temp[MATH_BIGINTEGER_VALUE], false); + + $z2 = array_merge(array_fill(0, 2 * $m, 0), $z2); + $z1[MATH_BIGINTEGER_VALUE] = array_merge(array_fill(0, $m, 0), $z1[MATH_BIGINTEGER_VALUE]); + + $xy = $this->_add($z2, false, $z1[MATH_BIGINTEGER_VALUE], $z1[MATH_BIGINTEGER_SIGN]); + $xy = $this->_add($xy[MATH_BIGINTEGER_VALUE], $xy[MATH_BIGINTEGER_SIGN], $z0, false); + + return $xy[MATH_BIGINTEGER_VALUE]; + } + + /** + * Performs squaring + * + * @param Array $x + * @return Array + * @access private + */ + function _square($x = false) + { + return count($x) < 2 * MATH_BIGINTEGER_KARATSUBA_CUTOFF ? + $this->_trim($this->_baseSquare($x)) : + $this->_trim($this->_karatsubaSquare($x)); + } + + /** + * Performs traditional squaring on two BigIntegers + * + * Squaring can be done faster than multiplying a number by itself can be. See + * {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=7 HAC 14.2.4} / + * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=141 MPM 5.3} for more information. + * + * @param Array $value + * @return Array + * @access private + */ + function _baseSquare($value) + { + if ( empty($value) ) { + return array(); + } + $square_value = $this->_array_repeat(0, 2 * count($value)); + + for ($i = 0, $max_index = count($value) - 1; $i <= $max_index; ++$i) { + $i2 = $i << 1; + + $temp = $square_value[$i2] + $value[$i] * $value[$i]; + $carry = (int) ($temp / 0x4000000); + $square_value[$i2] = (int) ($temp - 0x4000000 * $carry); + + // note how we start from $i+1 instead of 0 as we do in multiplication. + for ($j = $i + 1, $k = $i2 + 1; $j <= $max_index; ++$j, ++$k) { + $temp = $square_value[$k] + 2 * $value[$j] * $value[$i] + $carry; + $carry = (int) ($temp / 0x4000000); + $square_value[$k] = (int) ($temp - 0x4000000 * $carry); + } + + // the following line can yield values larger 2**15. at this point, PHP should switch + // over to floats. + $square_value[$i + $max_index + 1] = $carry; + } + + return $square_value; + } + + /** + * Performs Karatsuba "squaring" on two BigIntegers + * + * See {@link http://en.wikipedia.org/wiki/Karatsuba_algorithm Karatsuba algorithm} and + * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=151 MPM 5.3.4}. + * + * @param Array $value + * @return Array + * @access private + */ + function _karatsubaSquare($value) + { + $m = count($value) >> 1; + + if ($m < MATH_BIGINTEGER_KARATSUBA_CUTOFF) { + return $this->_baseSquare($value); + } + + $x1 = array_slice($value, $m); + $x0 = array_slice($value, 0, $m); + + $z2 = $this->_karatsubaSquare($x1); + $z0 = $this->_karatsubaSquare($x0); + + $z1 = $this->_add($x1, false, $x0, false); + $z1 = $this->_karatsubaSquare($z1[MATH_BIGINTEGER_VALUE]); + $temp = $this->_add($z2, false, $z0, false); + $z1 = $this->_subtract($z1, false, $temp[MATH_BIGINTEGER_VALUE], false); + + $z2 = array_merge(array_fill(0, 2 * $m, 0), $z2); + $z1[MATH_BIGINTEGER_VALUE] = array_merge(array_fill(0, $m, 0), $z1[MATH_BIGINTEGER_VALUE]); + + $xx = $this->_add($z2, false, $z1[MATH_BIGINTEGER_VALUE], $z1[MATH_BIGINTEGER_SIGN]); + $xx = $this->_add($xx[MATH_BIGINTEGER_VALUE], $xx[MATH_BIGINTEGER_SIGN], $z0, false); + + return $xx[MATH_BIGINTEGER_VALUE]; + } + + /** + * Divides two BigIntegers. + * + * Returns an array whose first element contains the quotient and whose second element contains the + * "common residue". If the remainder would be positive, the "common residue" and the remainder are the + * same. If the remainder would be negative, the "common residue" is equal to the sum of the remainder + * and the divisor (basically, the "common residue" is the first positive modulo). + * + * Here's an example: + * + * divide($b); + * + * echo $quotient->toString(); // outputs 0 + * echo "\r\n"; + * echo $remainder->toString(); // outputs 10 + * ?> + * + * + * @param Math_BigInteger $y + * @return Array + * @access public + * @internal This function is based off of {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=9 HAC 14.20}. + */ + function divide($y) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $quotient = new Math_BigInteger(); + $remainder = new Math_BigInteger(); + + list($quotient->value, $remainder->value) = gmp_div_qr($this->value, $y->value); + + if (gmp_sign($remainder->value) < 0) { + $remainder->value = gmp_add($remainder->value, gmp_abs($y->value)); + } + + return array($this->_normalize($quotient), $this->_normalize($remainder)); + case MATH_BIGINTEGER_MODE_BCMATH: + $quotient = new Math_BigInteger(); + $remainder = new Math_BigInteger(); + + $quotient->value = bcdiv($this->value, $y->value, 0); + $remainder->value = bcmod($this->value, $y->value); + + if ($remainder->value[0] == '-') { + $remainder->value = bcadd($remainder->value, $y->value[0] == '-' ? substr($y->value, 1) : $y->value, 0); + } + + return array($this->_normalize($quotient), $this->_normalize($remainder)); + } + + if (count($y->value) == 1) { + list($q, $r) = $this->_divide_digit($this->value, $y->value[0]); + $quotient = new Math_BigInteger(); + $remainder = new Math_BigInteger(); + $quotient->value = $q; + $remainder->value = array($r); + $quotient->is_negative = $this->is_negative != $y->is_negative; + return array($this->_normalize($quotient), $this->_normalize($remainder)); + } + + static $zero; + if ( !isset($zero) ) { + $zero = new Math_BigInteger(); + } + + $x = $this->copy(); + $y = $y->copy(); + + $x_sign = $x->is_negative; + $y_sign = $y->is_negative; + + $x->is_negative = $y->is_negative = false; + + $diff = $x->compare($y); + + if ( !$diff ) { + $temp = new Math_BigInteger(); + $temp->value = array(1); + $temp->is_negative = $x_sign != $y_sign; + return array($this->_normalize($temp), $this->_normalize(new Math_BigInteger())); + } + + if ( $diff < 0 ) { + // if $x is negative, "add" $y. + if ( $x_sign ) { + $x = $y->subtract($x); + } + return array($this->_normalize(new Math_BigInteger()), $this->_normalize($x)); + } + + // normalize $x and $y as described in HAC 14.23 / 14.24 + $msb = $y->value[count($y->value) - 1]; + for ($shift = 0; !($msb & 0x2000000); ++$shift) { + $msb <<= 1; + } + $x->_lshift($shift); + $y->_lshift($shift); + $y_value = &$y->value; + + $x_max = count($x->value) - 1; + $y_max = count($y->value) - 1; + + $quotient = new Math_BigInteger(); + $quotient_value = &$quotient->value; + $quotient_value = $this->_array_repeat(0, $x_max - $y_max + 1); + + static $temp, $lhs, $rhs; + if (!isset($temp)) { + $temp = new Math_BigInteger(); + $lhs = new Math_BigInteger(); + $rhs = new Math_BigInteger(); + } + $temp_value = &$temp->value; + $rhs_value = &$rhs->value; + + // $temp = $y << ($x_max - $y_max-1) in base 2**26 + $temp_value = array_merge($this->_array_repeat(0, $x_max - $y_max), $y_value); + + while ( $x->compare($temp) >= 0 ) { + // calculate the "common residue" + ++$quotient_value[$x_max - $y_max]; + $x = $x->subtract($temp); + $x_max = count($x->value) - 1; + } + + for ($i = $x_max; $i >= $y_max + 1; --$i) { + $x_value = &$x->value; + $x_window = array( + isset($x_value[$i]) ? $x_value[$i] : 0, + isset($x_value[$i - 1]) ? $x_value[$i - 1] : 0, + isset($x_value[$i - 2]) ? $x_value[$i - 2] : 0 + ); + $y_window = array( + $y_value[$y_max], + ( $y_max > 0 ) ? $y_value[$y_max - 1] : 0 + ); + + $q_index = $i - $y_max - 1; + if ($x_window[0] == $y_window[0]) { + $quotient_value[$q_index] = 0x3FFFFFF; + } else { + $quotient_value[$q_index] = (int) ( + ($x_window[0] * 0x4000000 + $x_window[1]) + / + $y_window[0] + ); + } + + $temp_value = array($y_window[1], $y_window[0]); + + $lhs->value = array($quotient_value[$q_index]); + $lhs = $lhs->multiply($temp); + + $rhs_value = array($x_window[2], $x_window[1], $x_window[0]); + + while ( $lhs->compare($rhs) > 0 ) { + --$quotient_value[$q_index]; + + $lhs->value = array($quotient_value[$q_index]); + $lhs = $lhs->multiply($temp); + } + + $adjust = $this->_array_repeat(0, $q_index); + $temp_value = array($quotient_value[$q_index]); + $temp = $temp->multiply($y); + $temp_value = &$temp->value; + $temp_value = array_merge($adjust, $temp_value); + + $x = $x->subtract($temp); + + if ($x->compare($zero) < 0) { + $temp_value = array_merge($adjust, $y_value); + $x = $x->add($temp); + + --$quotient_value[$q_index]; + } + + $x_max = count($x_value) - 1; + } + + // unnormalize the remainder + $x->_rshift($shift); + + $quotient->is_negative = $x_sign != $y_sign; + + // calculate the "common residue", if appropriate + if ( $x_sign ) { + $y->_rshift($shift); + $x = $y->subtract($x); + } + + return array($this->_normalize($quotient), $this->_normalize($x)); + } + + /** + * Divides a BigInteger by a regular integer + * + * abc / x = a00 / x + b0 / x + c / x + * + * @param Array $dividend + * @param Array $divisor + * @return Array + * @access private + */ + function _divide_digit($dividend, $divisor) + { + $carry = 0; + $result = array(); + + for ($i = count($dividend) - 1; $i >= 0; --$i) { + $temp = 0x4000000 * $carry + $dividend[$i]; + $result[$i] = (int) ($temp / $divisor); + $carry = (int) ($temp - $divisor * $result[$i]); + } + + return array($result, $carry); + } + + /** + * Performs modular exponentiation. + * + * Here's an example: + * + * modPow($b, $c); + * + * echo $c->toString(); // outputs 10 + * ?> + * + * + * @param Math_BigInteger $e + * @param Math_BigInteger $n + * @return Math_BigInteger + * @access public + * @internal The most naive approach to modular exponentiation has very unreasonable requirements, and + * and although the approach involving repeated squaring does vastly better, it, too, is impractical + * for our purposes. The reason being that division - by far the most complicated and time-consuming + * of the basic operations (eg. +,-,*,/) - occurs multiple times within it. + * + * Modular reductions resolve this issue. Although an individual modular reduction takes more time + * then an individual division, when performed in succession (with the same modulo), they're a lot faster. + * + * The two most commonly used modular reductions are Barrett and Montgomery reduction. Montgomery reduction, + * although faster, only works when the gcd of the modulo and of the base being used is 1. In RSA, when the + * base is a power of two, the modulo - a product of two primes - is always going to have a gcd of 1 (because + * the product of two odd numbers is odd), but what about when RSA isn't used? + * + * In contrast, Barrett reduction has no such constraint. As such, some bigint implementations perform a + * Barrett reduction after every operation in the modpow function. Others perform Barrett reductions when the + * modulo is even and Montgomery reductions when the modulo is odd. BigInteger.java's modPow method, however, + * uses a trick involving the Chinese Remainder Theorem to factor the even modulo into two numbers - one odd and + * the other, a power of two - and recombine them, later. This is the method that this modPow function uses. + * {@link http://islab.oregonstate.edu/papers/j34monex.pdf Montgomery Reduction with Even Modulus} elaborates. + */ + function modPow($e, $n) + { + $n = $this->bitmask !== false && $this->bitmask->compare($n) < 0 ? $this->bitmask : $n->abs(); + + if ($e->compare(new Math_BigInteger()) < 0) { + $e = $e->abs(); + + $temp = $this->modInverse($n); + if ($temp === false) { + return false; + } + + return $this->_normalize($temp->modPow($e, $n)); + } + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = new Math_BigInteger(); + $temp->value = gmp_powm($this->value, $e->value, $n->value); + + return $this->_normalize($temp); + case MATH_BIGINTEGER_MODE_BCMATH: + $temp = new Math_BigInteger(); + $temp->value = bcpowmod($this->value, $e->value, $n->value, 0); + + return $this->_normalize($temp); + } + + if ( empty($e->value) ) { + $temp = new Math_BigInteger(); + $temp->value = array(1); + return $this->_normalize($temp); + } + + if ( $e->value == array(1) ) { + list(, $temp) = $this->divide($n); + return $this->_normalize($temp); + } + + if ( $e->value == array(2) ) { + $temp = new Math_BigInteger(); + $temp->value = $this->_square($this->value); + list(, $temp) = $temp->divide($n); + return $this->_normalize($temp); + } + + return $this->_normalize($this->_slidingWindow($e, $n, MATH_BIGINTEGER_BARRETT)); + + // is the modulo odd? + if ( $n->value[0] & 1 ) { + return $this->_normalize($this->_slidingWindow($e, $n, MATH_BIGINTEGER_MONTGOMERY)); + } + // if it's not, it's even + + // find the lowest set bit (eg. the max pow of 2 that divides $n) + for ($i = 0; $i < count($n->value); ++$i) { + if ( $n->value[$i] ) { + $temp = decbin($n->value[$i]); + $j = strlen($temp) - strrpos($temp, '1') - 1; + $j+= 26 * $i; + break; + } + } + // at this point, 2^$j * $n/(2^$j) == $n + + $mod1 = $n->copy(); + $mod1->_rshift($j); + $mod2 = new Math_BigInteger(); + $mod2->value = array(1); + $mod2->_lshift($j); + + $part1 = ( $mod1->value != array(1) ) ? $this->_slidingWindow($e, $mod1, MATH_BIGINTEGER_MONTGOMERY) : new Math_BigInteger(); + $part2 = $this->_slidingWindow($e, $mod2, MATH_BIGINTEGER_POWEROF2); + + $y1 = $mod2->modInverse($mod1); + $y2 = $mod1->modInverse($mod2); + + $result = $part1->multiply($mod2); + $result = $result->multiply($y1); + + $temp = $part2->multiply($mod1); + $temp = $temp->multiply($y2); + + $result = $result->add($temp); + list(, $result) = $result->divide($n); + + return $this->_normalize($result); + } + + /** + * Performs modular exponentiation. + * + * Alias for Math_BigInteger::modPow() + * + * @param Math_BigInteger $e + * @param Math_BigInteger $n + * @return Math_BigInteger + * @access public + */ + function powMod($e, $n) + { + return $this->modPow($e, $n); + } + + /** + * Sliding Window k-ary Modular Exponentiation + * + * Based on {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=27 HAC 14.85} / + * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=210 MPM 7.7}. In a departure from those algorithims, + * however, this function performs a modular reduction after every multiplication and squaring operation. + * As such, this function has the same preconditions that the reductions being used do. + * + * @param Math_BigInteger $e + * @param Math_BigInteger $n + * @param Integer $mode + * @return Math_BigInteger + * @access private + */ + function _slidingWindow($e, $n, $mode) + { + static $window_ranges = array(7, 25, 81, 241, 673, 1793); // from BigInteger.java's oddModPow function + //static $window_ranges = array(0, 7, 36, 140, 450, 1303, 3529); // from MPM 7.3.1 + + $e_value = $e->value; + $e_length = count($e_value) - 1; + $e_bits = decbin($e_value[$e_length]); + for ($i = $e_length - 1; $i >= 0; --$i) { + $e_bits.= str_pad(decbin($e_value[$i]), 26, '0', STR_PAD_LEFT); + } + + $e_length = strlen($e_bits); + + // calculate the appropriate window size. + // $window_size == 3 if $window_ranges is between 25 and 81, for example. + for ($i = 0, $window_size = 1; $e_length > $window_ranges[$i] && $i < count($window_ranges); ++$window_size, ++$i); + + $n_value = $n->value; + + // precompute $this^0 through $this^$window_size + $powers = array(); + $powers[1] = $this->_prepareReduce($this->value, $n_value, $mode); + $powers[2] = $this->_squareReduce($powers[1], $n_value, $mode); + + // we do every other number since substr($e_bits, $i, $j+1) (see below) is supposed to end + // in a 1. ie. it's supposed to be odd. + $temp = 1 << ($window_size - 1); + for ($i = 1; $i < $temp; ++$i) { + $i2 = $i << 1; + $powers[$i2 + 1] = $this->_multiplyReduce($powers[$i2 - 1], $powers[2], $n_value, $mode); + } + + $result = array(1); + $result = $this->_prepareReduce($result, $n_value, $mode); + + for ($i = 0; $i < $e_length; ) { + if ( !$e_bits[$i] ) { + $result = $this->_squareReduce($result, $n_value, $mode); + ++$i; + } else { + for ($j = $window_size - 1; $j > 0; --$j) { + if ( !empty($e_bits[$i + $j]) ) { + break; + } + } + + for ($k = 0; $k <= $j; ++$k) {// eg. the length of substr($e_bits, $i, $j+1) + $result = $this->_squareReduce($result, $n_value, $mode); + } + + $result = $this->_multiplyReduce($result, $powers[bindec(substr($e_bits, $i, $j + 1))], $n_value, $mode); + + $i+=$j + 1; + } + } + + $temp = new Math_BigInteger(); + $temp->value = $this->_reduce($result, $n_value, $mode); + + return $temp; + } + + /** + * Modular reduction + * + * For most $modes this will return the remainder. + * + * @see _slidingWindow() + * @access private + * @param Array $x + * @param Array $n + * @param Integer $mode + * @return Array + */ + function _reduce($x, $n, $mode) + { + switch ($mode) { + case MATH_BIGINTEGER_MONTGOMERY: + return $this->_montgomery($x, $n); + case MATH_BIGINTEGER_BARRETT: + return $this->_barrett($x, $n); + case MATH_BIGINTEGER_POWEROF2: + $lhs = new Math_BigInteger(); + $lhs->value = $x; + $rhs = new Math_BigInteger(); + $rhs->value = $n; + return $x->_mod2($n); + case MATH_BIGINTEGER_CLASSIC: + $lhs = new Math_BigInteger(); + $lhs->value = $x; + $rhs = new Math_BigInteger(); + $rhs->value = $n; + list(, $temp) = $lhs->divide($rhs); + return $temp->value; + case MATH_BIGINTEGER_NONE: + return $x; + default: + // an invalid $mode was provided + } + } + + /** + * Modular reduction preperation + * + * @see _slidingWindow() + * @access private + * @param Array $x + * @param Array $n + * @param Integer $mode + * @return Array + */ + function _prepareReduce($x, $n, $mode) + { + if ($mode == MATH_BIGINTEGER_MONTGOMERY) { + return $this->_prepMontgomery($x, $n); + } + return $this->_reduce($x, $n, $mode); + } + + /** + * Modular multiply + * + * @see _slidingWindow() + * @access private + * @param Array $x + * @param Array $y + * @param Array $n + * @param Integer $mode + * @return Array + */ + function _multiplyReduce($x, $y, $n, $mode) + { + if ($mode == MATH_BIGINTEGER_MONTGOMERY) { + return $this->_montgomeryMultiply($x, $y, $n); + } + $temp = $this->_multiply($x, false, $y, false); + return $this->_reduce($temp[MATH_BIGINTEGER_VALUE], $n, $mode); + } + + /** + * Modular square + * + * @see _slidingWindow() + * @access private + * @param Array $x + * @param Array $n + * @param Integer $mode + * @return Array + */ + function _squareReduce($x, $n, $mode) + { + if ($mode == MATH_BIGINTEGER_MONTGOMERY) { + return $this->_montgomeryMultiply($x, $x, $n); + } + return $this->_reduce($this->_square($x), $n, $mode); + } + + /** + * Modulos for Powers of Two + * + * Calculates $x%$n, where $n = 2**$e, for some $e. Since this is basically the same as doing $x & ($n-1), + * we'll just use this function as a wrapper for doing that. + * + * @see _slidingWindow() + * @access private + * @param Math_BigInteger + * @return Math_BigInteger + */ + function _mod2($n) + { + $temp = new Math_BigInteger(); + $temp->value = array(1); + return $this->bitwise_and($n->subtract($temp)); + } + + /** + * Barrett Modular Reduction + * + * See {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=14 HAC 14.3.3} / + * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=165 MPM 6.2.5} for more information. Modified slightly, + * so as not to require negative numbers (initially, this script didn't support negative numbers). + * + * Employs "folding", as described at + * {@link http://www.cosic.esat.kuleuven.be/publications/thesis-149.pdf#page=66 thesis-149.pdf#page=66}. To quote from + * it, "the idea [behind folding] is to find a value x' such that x (mod m) = x' (mod m), with x' being smaller than x." + * + * Unfortunately, the "Barrett Reduction with Folding" algorithm described in thesis-149.pdf is not, as written, all that + * usable on account of (1) its not using reasonable radix points as discussed in + * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=162 MPM 6.2.2} and (2) the fact that, even with reasonable + * radix points, it only works when there are an even number of digits in the denominator. The reason for (2) is that + * (x >> 1) + (x >> 1) != x / 2 + x / 2. If x is even, they're the same, but if x is odd, they're not. See the in-line + * comments for details. + * + * @see _slidingWindow() + * @access private + * @param Array $n + * @param Array $m + * @return Array + */ + function _barrett($n, $m) + { + static $cache = array( + MATH_BIGINTEGER_VARIABLE => array(), + MATH_BIGINTEGER_DATA => array() + ); + + $m_length = count($m); + + // if ($this->_compare($n, $this->_square($m)) >= 0) { + if (count($n) > 2 * $m_length) { + $lhs = new Math_BigInteger(); + $rhs = new Math_BigInteger(); + $lhs->value = $n; + $rhs->value = $m; + list(, $temp) = $lhs->divide($rhs); + return $temp->value; + } + + // if (m.length >> 1) + 2 <= m.length then m is too small and n can't be reduced + if ($m_length < 5) { + return $this->_regularBarrett($n, $m); + } + + // n = 2 * m.length + + if ( ($key = array_search($m, $cache[MATH_BIGINTEGER_VARIABLE])) === false ) { + $key = count($cache[MATH_BIGINTEGER_VARIABLE]); + $cache[MATH_BIGINTEGER_VARIABLE][] = $m; + + $lhs = new Math_BigInteger(); + $lhs_value = &$lhs->value; + $lhs_value = $this->_array_repeat(0, $m_length + ($m_length >> 1)); + $lhs_value[] = 1; + $rhs = new Math_BigInteger(); + $rhs->value = $m; + + list($u, $m1) = $lhs->divide($rhs); + $u = $u->value; + $m1 = $m1->value; + + $cache[MATH_BIGINTEGER_DATA][] = array( + 'u' => $u, // m.length >> 1 (technically (m.length >> 1) + 1) + 'm1'=> $m1 // m.length + ); + } else { + extract($cache[MATH_BIGINTEGER_DATA][$key]); + } + + $cutoff = $m_length + ($m_length >> 1); + $lsd = array_slice($n, 0, $cutoff); // m.length + (m.length >> 1) + $msd = array_slice($n, $cutoff); // m.length >> 1 + $lsd = $this->_trim($lsd); + $temp = $this->_multiply($msd, false, $m1, false); + $n = $this->_add($lsd, false, $temp[MATH_BIGINTEGER_VALUE], false); // m.length + (m.length >> 1) + 1 + + if ($m_length & 1) { + return $this->_regularBarrett($n[MATH_BIGINTEGER_VALUE], $m); + } + + // (m.length + (m.length >> 1) + 1) - (m.length - 1) == (m.length >> 1) + 2 + $temp = array_slice($n[MATH_BIGINTEGER_VALUE], $m_length - 1); + // if even: ((m.length >> 1) + 2) + (m.length >> 1) == m.length + 2 + // if odd: ((m.length >> 1) + 2) + (m.length >> 1) == (m.length - 1) + 2 == m.length + 1 + $temp = $this->_multiply($temp, false, $u, false); + // if even: (m.length + 2) - ((m.length >> 1) + 1) = m.length - (m.length >> 1) + 1 + // if odd: (m.length + 1) - ((m.length >> 1) + 1) = m.length - (m.length >> 1) + $temp = array_slice($temp[MATH_BIGINTEGER_VALUE], ($m_length >> 1) + 1); + // if even: (m.length - (m.length >> 1) + 1) + m.length = 2 * m.length - (m.length >> 1) + 1 + // if odd: (m.length - (m.length >> 1)) + m.length = 2 * m.length - (m.length >> 1) + $temp = $this->_multiply($temp, false, $m, false); + + // at this point, if m had an odd number of digits, we'd be subtracting a 2 * m.length - (m.length >> 1) digit + // number from a m.length + (m.length >> 1) + 1 digit number. ie. there'd be an extra digit and the while loop + // following this comment would loop a lot (hence our calling _regularBarrett() in that situation). + + $result = $this->_subtract($n[MATH_BIGINTEGER_VALUE], false, $temp[MATH_BIGINTEGER_VALUE], false); + + while ($this->_compare($result[MATH_BIGINTEGER_VALUE], $result[MATH_BIGINTEGER_SIGN], $m, false) >= 0) { + $result = $this->_subtract($result[MATH_BIGINTEGER_VALUE], $result[MATH_BIGINTEGER_SIGN], $m, false); + } + + return $result[MATH_BIGINTEGER_VALUE]; + } + + /** + * (Regular) Barrett Modular Reduction + * + * For numbers with more than four digits Math_BigInteger::_barrett() is faster. The difference between that and this + * is that this function does not fold the denominator into a smaller form. + * + * @see _slidingWindow() + * @access private + * @param Array $x + * @param Array $n + * @return Array + */ + function _regularBarrett($x, $n) + { + static $cache = array( + MATH_BIGINTEGER_VARIABLE => array(), + MATH_BIGINTEGER_DATA => array() + ); + + $n_length = count($n); + + if (count($x) > 2 * $n_length) { + $lhs = new Math_BigInteger(); + $rhs = new Math_BigInteger(); + $lhs->value = $x; + $rhs->value = $n; + list(, $temp) = $lhs->divide($rhs); + return $temp->value; + } + + if ( ($key = array_search($n, $cache[MATH_BIGINTEGER_VARIABLE])) === false ) { + $key = count($cache[MATH_BIGINTEGER_VARIABLE]); + $cache[MATH_BIGINTEGER_VARIABLE][] = $n; + $lhs = new Math_BigInteger(); + $lhs_value = &$lhs->value; + $lhs_value = $this->_array_repeat(0, 2 * $n_length); + $lhs_value[] = 1; + $rhs = new Math_BigInteger(); + $rhs->value = $n; + list($temp, ) = $lhs->divide($rhs); // m.length + $cache[MATH_BIGINTEGER_DATA][] = $temp->value; + } + + // 2 * m.length - (m.length - 1) = m.length + 1 + $temp = array_slice($x, $n_length - 1); + // (m.length + 1) + m.length = 2 * m.length + 1 + $temp = $this->_multiply($temp, false, $cache[MATH_BIGINTEGER_DATA][$key], false); + // (2 * m.length + 1) - (m.length - 1) = m.length + 2 + $temp = array_slice($temp[MATH_BIGINTEGER_VALUE], $n_length + 1); + + // m.length + 1 + $result = array_slice($x, 0, $n_length + 1); + // m.length + 1 + $temp = $this->_multiplyLower($temp, false, $n, false, $n_length + 1); + // $temp == array_slice($temp->_multiply($temp, false, $n, false)->value, 0, $n_length + 1) + + if ($this->_compare($result, false, $temp[MATH_BIGINTEGER_VALUE], $temp[MATH_BIGINTEGER_SIGN]) < 0) { + $corrector_value = $this->_array_repeat(0, $n_length + 1); + $corrector_value[] = 1; + $result = $this->_add($result, false, $corrector, false); + $result = $result[MATH_BIGINTEGER_VALUE]; + } + + // at this point, we're subtracting a number with m.length + 1 digits from another number with m.length + 1 digits + $result = $this->_subtract($result, false, $temp[MATH_BIGINTEGER_VALUE], $temp[MATH_BIGINTEGER_SIGN]); + while ($this->_compare($result[MATH_BIGINTEGER_VALUE], $result[MATH_BIGINTEGER_SIGN], $n, false) > 0) { + $result = $this->_subtract($result[MATH_BIGINTEGER_VALUE], $result[MATH_BIGINTEGER_SIGN], $n, false); + } + + return $result[MATH_BIGINTEGER_VALUE]; + } + + /** + * Performs long multiplication up to $stop digits + * + * If you're going to be doing array_slice($product->value, 0, $stop), some cycles can be saved. + * + * @see _regularBarrett() + * @param Array $x_value + * @param Boolean $x_negative + * @param Array $y_value + * @param Boolean $y_negative + * @return Array + * @access private + */ + function _multiplyLower($x_value, $x_negative, $y_value, $y_negative, $stop) + { + $x_length = count($x_value); + $y_length = count($y_value); + + if ( !$x_length || !$y_length ) { // a 0 is being multiplied + return array( + MATH_BIGINTEGER_VALUE => array(), + MATH_BIGINTEGER_SIGN => false + ); + } + + if ( $x_length < $y_length ) { + $temp = $x_value; + $x_value = $y_value; + $y_value = $temp; + + $x_length = count($x_value); + $y_length = count($y_value); + } + + $product_value = $this->_array_repeat(0, $x_length + $y_length); + + // the following for loop could be removed if the for loop following it + // (the one with nested for loops) initially set $i to 0, but + // doing so would also make the result in one set of unnecessary adds, + // since on the outermost loops first pass, $product->value[$k] is going + // to always be 0 + + $carry = 0; + + for ($j = 0; $j < $x_length; ++$j) { // ie. $i = 0, $k = $i + $temp = $x_value[$j] * $y_value[0] + $carry; // $product_value[$k] == 0 + $carry = (int) ($temp / 0x4000000); + $product_value[$j] = (int) ($temp - 0x4000000 * $carry); + } + + if ($j < $stop) { + $product_value[$j] = $carry; + } + + // the above for loop is what the previous comment was talking about. the + // following for loop is the "one with nested for loops" + + for ($i = 1; $i < $y_length; ++$i) { + $carry = 0; + + for ($j = 0, $k = $i; $j < $x_length && $k < $stop; ++$j, ++$k) { + $temp = $product_value[$k] + $x_value[$j] * $y_value[$i] + $carry; + $carry = (int) ($temp / 0x4000000); + $product_value[$k] = (int) ($temp - 0x4000000 * $carry); + } + + if ($k < $stop) { + $product_value[$k] = $carry; + } + } + + return array( + MATH_BIGINTEGER_VALUE => $this->_trim($product_value), + MATH_BIGINTEGER_SIGN => $x_negative != $y_negative + ); + } + + /** + * Montgomery Modular Reduction + * + * ($x->_prepMontgomery($n))->_montgomery($n) yields $x % $n. + * {@link http://math.libtomcrypt.com/files/tommath.pdf#page=170 MPM 6.3} provides insights on how this can be + * improved upon (basically, by using the comba method). gcd($n, 2) must be equal to one for this function + * to work correctly. + * + * @see _prepMontgomery() + * @see _slidingWindow() + * @access private + * @param Array $x + * @param Array $n + * @return Array + */ + function _montgomery($x, $n) + { + static $cache = array( + MATH_BIGINTEGER_VARIABLE => array(), + MATH_BIGINTEGER_DATA => array() + ); + + if ( ($key = array_search($n, $cache[MATH_BIGINTEGER_VARIABLE])) === false ) { + $key = count($cache[MATH_BIGINTEGER_VARIABLE]); + $cache[MATH_BIGINTEGER_VARIABLE][] = $x; + $cache[MATH_BIGINTEGER_DATA][] = $this->_modInverse67108864($n); + } + + $k = count($n); + + $result = array(MATH_BIGINTEGER_VALUE => $x); + + for ($i = 0; $i < $k; ++$i) { + $temp = $result[MATH_BIGINTEGER_VALUE][$i] * $cache[MATH_BIGINTEGER_DATA][$key]; + $temp = (int) ($temp - 0x4000000 * ((int) ($temp / 0x4000000))); + $temp = $this->_regularMultiply(array($temp), $n); + $temp = array_merge($this->_array_repeat(0, $i), $temp); + $result = $this->_add($result[MATH_BIGINTEGER_VALUE], false, $temp, false); + } + + $result[MATH_BIGINTEGER_VALUE] = array_slice($result[MATH_BIGINTEGER_VALUE], $k); + + if ($this->_compare($result, false, $n, false) >= 0) { + $result = $this->_subtract($result[MATH_BIGINTEGER_VALUE], false, $n, false); + } + + return $result[MATH_BIGINTEGER_VALUE]; + } + + /** + * Montgomery Multiply + * + * Interleaves the montgomery reduction and long multiplication algorithms together as described in + * {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=13 HAC 14.36} + * + * @see _prepMontgomery() + * @see _montgomery() + * @access private + * @param Array $x + * @param Array $y + * @param Array $m + * @return Array + */ + function _montgomeryMultiply($x, $y, $m) + { + $temp = $this->_multiply($x, false, $y, false); + return $this->_montgomery($temp[MATH_BIGINTEGER_VALUE], $m); + + static $cache = array( + MATH_BIGINTEGER_VARIABLE => array(), + MATH_BIGINTEGER_DATA => array() + ); + + if ( ($key = array_search($m, $cache[MATH_BIGINTEGER_VARIABLE])) === false ) { + $key = count($cache[MATH_BIGINTEGER_VARIABLE]); + $cache[MATH_BIGINTEGER_VARIABLE][] = $m; + $cache[MATH_BIGINTEGER_DATA][] = $this->_modInverse67108864($m); + } + + $n = max(count($x), count($y), count($m)); + $x = array_pad($x, $n, 0); + $y = array_pad($y, $n, 0); + $m = array_pad($m, $n, 0); + $a = array(MATH_BIGINTEGER_VALUE => $this->_array_repeat(0, $n + 1)); + for ($i = 0; $i < $n; ++$i) { + $temp = $a[MATH_BIGINTEGER_VALUE][0] + $x[$i] * $y[0]; + $temp = (int) ($temp - 0x4000000 * ((int) ($temp / 0x4000000))); + $temp = $temp * $cache[MATH_BIGINTEGER_DATA][$key]; + $temp = (int) ($temp - 0x4000000 * ((int) ($temp / 0x4000000))); + $temp = $this->_add($this->_regularMultiply(array($x[$i]), $y), false, $this->_regularMultiply(array($temp), $m), false); + $a = $this->_add($a[MATH_BIGINTEGER_VALUE], false, $temp[MATH_BIGINTEGER_VALUE], false); + $a[MATH_BIGINTEGER_VALUE] = array_slice($a[MATH_BIGINTEGER_VALUE], 1); + } + if ($this->_compare($a[MATH_BIGINTEGER_VALUE], false, $m, false) >= 0) { + $a = $this->_subtract($a[MATH_BIGINTEGER_VALUE], false, $m, false); + } + return $a[MATH_BIGINTEGER_VALUE]; + } + + /** + * Prepare a number for use in Montgomery Modular Reductions + * + * @see _montgomery() + * @see _slidingWindow() + * @access private + * @param Array $x + * @param Array $n + * @return Array + */ + function _prepMontgomery($x, $n) + { + $lhs = new Math_BigInteger(); + $lhs->value = array_merge($this->_array_repeat(0, count($n)), $x); + $rhs = new Math_BigInteger(); + $rhs->value = $n; + + list(, $temp) = $lhs->divide($rhs); + return $temp->value; + } + + /** + * Modular Inverse of a number mod 2**26 (eg. 67108864) + * + * Based off of the bnpInvDigit function implemented and justified in the following URL: + * + * {@link http://www-cs-students.stanford.edu/~tjw/jsbn/jsbn.js} + * + * The following URL provides more info: + * + * {@link http://groups.google.com/group/sci.crypt/msg/7a137205c1be7d85} + * + * As for why we do all the bitmasking... strange things can happen when converting from floats to ints. For + * instance, on some computers, var_dump((int) -4294967297) yields int(-1) and on others, it yields + * int(-2147483648). To avoid problems stemming from this, we use bitmasks to guarantee that ints aren't + * auto-converted to floats. The outermost bitmask is present because without it, there's no guarantee that + * the "residue" returned would be the so-called "common residue". We use fmod, in the last step, because the + * maximum possible $x is 26 bits and the maximum $result is 16 bits. Thus, we have to be able to handle up to + * 40 bits, which only 64-bit floating points will support. + * + * Thanks to Pedro Gimeno Fortea for input! + * + * @see _montgomery() + * @access private + * @param Array $x + * @return Integer + */ + function _modInverse67108864($x) // 2**26 == 67108864 + { + $x = -$x[0]; + $result = $x & 0x3; // x**-1 mod 2**2 + $result = ($result * (2 - $x * $result)) & 0xF; // x**-1 mod 2**4 + $result = ($result * (2 - ($x & 0xFF) * $result)) & 0xFF; // x**-1 mod 2**8 + $result = ($result * ((2 - ($x & 0xFFFF) * $result) & 0xFFFF)) & 0xFFFF; // x**-1 mod 2**16 + $result = fmod($result * (2 - fmod($x * $result, 0x4000000)), 0x4000000); // x**-1 mod 2**26 + return $result & 0x3FFFFFF; + } + + /** + * Calculates modular inverses. + * + * Say you have (30 mod 17 * x mod 17) mod 17 == 1. x can be found using modular inverses. + * + * Here's an example: + * + * modInverse($b); + * echo $c->toString(); // outputs 4 + * + * echo "\r\n"; + * + * $d = $a->multiply($c); + * list(, $d) = $d->divide($b); + * echo $d; // outputs 1 (as per the definition of modular inverse) + * ?> + * + * + * @param Math_BigInteger $n + * @return mixed false, if no modular inverse exists, Math_BigInteger, otherwise. + * @access public + * @internal See {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=21 HAC 14.64} for more information. + */ + function modInverse($n) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = new Math_BigInteger(); + $temp->value = gmp_invert($this->value, $n->value); + + return ( $temp->value === false ) ? false : $this->_normalize($temp); + } + + static $zero, $one; + if (!isset($zero)) { + $zero = new Math_BigInteger(); + $one = new Math_BigInteger(1); + } + + // $x mod $n == $x mod -$n. + $n = $n->abs(); + + if ($this->compare($zero) < 0) { + $temp = $this->abs(); + $temp = $temp->modInverse($n); + return $negated === false ? false : $this->_normalize($n->subtract($temp)); + } + + extract($this->extendedGCD($n)); + + if (!$gcd->equals($one)) { + return false; + } + + $x = $x->compare($zero) < 0 ? $x->add($n) : $x; + + return $this->compare($zero) < 0 ? $this->_normalize($n->subtract($x)) : $this->_normalize($x); + } + + /** + * Calculates the greatest common divisor and Bzout's identity. + * + * Say you have 693 and 609. The GCD is 21. Bzout's identity states that there exist integers x and y such that + * 693*x + 609*y == 21. In point of fact, there are actually an infinite number of x and y combinations and which + * combination is returned is dependant upon which mode is in use. See + * {@link http://en.wikipedia.org/wiki/B%C3%A9zout%27s_identity Bzout's identity - Wikipedia} for more information. + * + * Here's an example: + * + * extendedGCD($b)); + * + * echo $gcd->toString() . "\r\n"; // outputs 21 + * echo $a->toString() * $x->toString() + $b->toString() * $y->toString(); // outputs 21 + * ?> + * + * + * @param Math_BigInteger $n + * @return Math_BigInteger + * @access public + * @internal Calculates the GCD using the binary xGCD algorithim described in + * {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pdf#page=19 HAC 14.61}. As the text above 14.61 notes, + * the more traditional algorithim requires "relatively costly multiple-precision divisions". + */ + function extendedGCD($n) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + extract(gmp_gcdext($this->value, $n->value)); + + return array( + 'gcd' => $this->_normalize(new Math_BigInteger($g)), + 'x' => $this->_normalize(new Math_BigInteger($s)), + 'y' => $this->_normalize(new Math_BigInteger($t)) + ); + case MATH_BIGINTEGER_MODE_BCMATH: + // it might be faster to use the binary xGCD algorithim here, as well, but (1) that algorithim works + // best when the base is a power of 2 and (2) i don't think it'd make much difference, anyway. as is, + // the basic extended euclidean algorithim is what we're using. + + $u = $this->value; + $v = $n->value; + + $a = '1'; + $b = '0'; + $c = '0'; + $d = '1'; + + while (bccomp($v, '0', 0) != 0) { + $q = bcdiv($u, $v, 0); + + $temp = $u; + $u = $v; + $v = bcsub($temp, bcmul($v, $q, 0), 0); + + $temp = $a; + $a = $c; + $c = bcsub($temp, bcmul($a, $q, 0), 0); + + $temp = $b; + $b = $d; + $d = bcsub($temp, bcmul($b, $q, 0), 0); + } + + return array( + 'gcd' => $this->_normalize(new Math_BigInteger($u)), + 'x' => $this->_normalize(new Math_BigInteger($a)), + 'y' => $this->_normalize(new Math_BigInteger($b)) + ); + } + + $y = $n->copy(); + $x = $this->copy(); + $g = new Math_BigInteger(); + $g->value = array(1); + + while ( !(($x->value[0] & 1)|| ($y->value[0] & 1)) ) { + $x->_rshift(1); + $y->_rshift(1); + $g->_lshift(1); + } + + $u = $x->copy(); + $v = $y->copy(); + + $a = new Math_BigInteger(); + $b = new Math_BigInteger(); + $c = new Math_BigInteger(); + $d = new Math_BigInteger(); + + $a->value = $d->value = $g->value = array(1); + $b->value = $c->value = array(); + + while ( !empty($u->value) ) { + while ( !($u->value[0] & 1) ) { + $u->_rshift(1); + if ( (!empty($a->value) && ($a->value[0] & 1)) || (!empty($b->value) && ($b->value[0] & 1)) ) { + $a = $a->add($y); + $b = $b->subtract($x); + } + $a->_rshift(1); + $b->_rshift(1); + } + + while ( !($v->value[0] & 1) ) { + $v->_rshift(1); + if ( (!empty($d->value) && ($d->value[0] & 1)) || (!empty($c->value) && ($c->value[0] & 1)) ) { + $c = $c->add($y); + $d = $d->subtract($x); + } + $c->_rshift(1); + $d->_rshift(1); + } + + if ($u->compare($v) >= 0) { + $u = $u->subtract($v); + $a = $a->subtract($c); + $b = $b->subtract($d); + } else { + $v = $v->subtract($u); + $c = $c->subtract($a); + $d = $d->subtract($b); + } + } + + return array( + 'gcd' => $this->_normalize($g->multiply($v)), + 'x' => $this->_normalize($c), + 'y' => $this->_normalize($d) + ); + } + + /** + * Calculates the greatest common divisor + * + * Say you have 693 and 609. The GCD is 21. + * + * Here's an example: + * + * extendedGCD($b); + * + * echo $gcd->toString() . "\r\n"; // outputs 21 + * ?> + * + * + * @param Math_BigInteger $n + * @return Math_BigInteger + * @access public + */ + function gcd($n) + { + extract($this->extendedGCD($n)); + return $gcd; + } + + /** + * Absolute value. + * + * @return Math_BigInteger + * @access public + */ + function abs() + { + $temp = new Math_BigInteger(); + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp->value = gmp_abs($this->value); + break; + case MATH_BIGINTEGER_MODE_BCMATH: + $temp->value = (bccomp($this->value, '0', 0) < 0) ? substr($this->value, 1) : $this->value; + break; + default: + $temp->value = $this->value; + } + + return $temp; + } + + /** + * Compares two numbers. + * + * Although one might think !$x->compare($y) means $x != $y, it, in fact, means the opposite. The reason for this is + * demonstrated thusly: + * + * $x > $y: $x->compare($y) > 0 + * $x < $y: $x->compare($y) < 0 + * $x == $y: $x->compare($y) == 0 + * + * Note how the same comparison operator is used. If you want to test for equality, use $x->equals($y). + * + * @param Math_BigInteger $x + * @return Integer < 0 if $this is less than $x; > 0 if $this is greater than $x, and 0 if they are equal. + * @access public + * @see equals() + * @internal Could return $this->subtract($x), but that's not as fast as what we do do. + */ + function compare($y) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + return gmp_cmp($this->value, $y->value); + case MATH_BIGINTEGER_MODE_BCMATH: + return bccomp($this->value, $y->value, 0); + } + + return $this->_compare($this->value, $this->is_negative, $y->value, $y->is_negative); + } + + /** + * Compares two numbers. + * + * @param Array $x_value + * @param Boolean $x_negative + * @param Array $y_value + * @param Boolean $y_negative + * @return Integer + * @see compare() + * @access private + */ + function _compare($x_value, $x_negative, $y_value, $y_negative) + { + if ( $x_negative != $y_negative ) { + return ( !$x_negative && $y_negative ) ? 1 : -1; + } + + $result = $x_negative ? -1 : 1; + + if ( count($x_value) != count($y_value) ) { + return ( count($x_value) > count($y_value) ) ? $result : -$result; + } + $size = max(count($x_value), count($y_value)); + + $x_value = array_pad($x_value, $size, 0); + $y_value = array_pad($y_value, $size, 0); + + for ($i = count($x_value) - 1; $i >= 0; --$i) { + if ($x_value[$i] != $y_value[$i]) { + return ( $x_value[$i] > $y_value[$i] ) ? $result : -$result; + } + } + + return 0; + } + + /** + * Tests the equality of two numbers. + * + * If you need to see if one number is greater than or less than another number, use Math_BigInteger::compare() + * + * @param Math_BigInteger $x + * @return Boolean + * @access public + * @see compare() + */ + function equals($x) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + return gmp_cmp($this->value, $x->value) == 0; + default: + return $this->value === $x->value && $this->is_negative == $x->is_negative; + } + } + + /** + * Set Precision + * + * Some bitwise operations give different results depending on the precision being used. Examples include left + * shift, not, and rotates. + * + * @param Math_BigInteger $x + * @access public + * @return Math_BigInteger + */ + function setPrecision($bits) + { + $this->precision = $bits; + if ( MATH_BIGINTEGER_MODE != MATH_BIGINTEGER_MODE_BCMATH ) { + $this->bitmask = new Math_BigInteger(chr((1 << ($bits & 0x7)) - 1) . str_repeat(chr(0xFF), $bits >> 3), 256); + } else { + $this->bitmask = new Math_BigInteger(bcpow('2', $bits, 0)); + } + + $temp = $this->_normalize($this); + $this->value = $temp->value; + } + + /** + * Logical And + * + * @param Math_BigInteger $x + * @access public + * @internal Implemented per a request by Lluis Pamies i Juarez + * @return Math_BigInteger + */ + function bitwise_and($x) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = new Math_BigInteger(); + $temp->value = gmp_and($this->value, $x->value); + + return $this->_normalize($temp); + case MATH_BIGINTEGER_MODE_BCMATH: + $left = $this->toBytes(); + $right = $x->toBytes(); + + $length = max(strlen($left), strlen($right)); + + $left = str_pad($left, $length, chr(0), STR_PAD_LEFT); + $right = str_pad($right, $length, chr(0), STR_PAD_LEFT); + + return $this->_normalize(new Math_BigInteger($left & $right, 256)); + } + + $result = $this->copy(); + + $length = min(count($x->value), count($this->value)); + + $result->value = array_slice($result->value, 0, $length); + + for ($i = 0; $i < $length; ++$i) { + $result->value[$i] = $result->value[$i] & $x->value[$i]; + } + + return $this->_normalize($result); + } + + /** + * Logical Or + * + * @param Math_BigInteger $x + * @access public + * @internal Implemented per a request by Lluis Pamies i Juarez + * @return Math_BigInteger + */ + function bitwise_or($x) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = new Math_BigInteger(); + $temp->value = gmp_or($this->value, $x->value); + + return $this->_normalize($temp); + case MATH_BIGINTEGER_MODE_BCMATH: + $left = $this->toBytes(); + $right = $x->toBytes(); + + $length = max(strlen($left), strlen($right)); + + $left = str_pad($left, $length, chr(0), STR_PAD_LEFT); + $right = str_pad($right, $length, chr(0), STR_PAD_LEFT); + + return $this->_normalize(new Math_BigInteger($left | $right, 256)); + } + + $length = max(count($this->value), count($x->value)); + $result = $this->copy(); + $result->value = array_pad($result->value, 0, $length); + $x->value = array_pad($x->value, 0, $length); + + for ($i = 0; $i < $length; ++$i) { + $result->value[$i] = $this->value[$i] | $x->value[$i]; + } + + return $this->_normalize($result); + } + + /** + * Logical Exclusive-Or + * + * @param Math_BigInteger $x + * @access public + * @internal Implemented per a request by Lluis Pamies i Juarez + * @return Math_BigInteger + */ + function bitwise_xor($x) + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + $temp = new Math_BigInteger(); + $temp->value = gmp_xor($this->value, $x->value); + + return $this->_normalize($temp); + case MATH_BIGINTEGER_MODE_BCMATH: + $left = $this->toBytes(); + $right = $x->toBytes(); + + $length = max(strlen($left), strlen($right)); + + $left = str_pad($left, $length, chr(0), STR_PAD_LEFT); + $right = str_pad($right, $length, chr(0), STR_PAD_LEFT); + + return $this->_normalize(new Math_BigInteger($left ^ $right, 256)); + } + + $length = max(count($this->value), count($x->value)); + $result = $this->copy(); + $result->value = array_pad($result->value, 0, $length); + $x->value = array_pad($x->value, 0, $length); + + for ($i = 0; $i < $length; ++$i) { + $result->value[$i] = $this->value[$i] ^ $x->value[$i]; + } + + return $this->_normalize($result); + } + + /** + * Logical Not + * + * @access public + * @internal Implemented per a request by Lluis Pamies i Juarez + * @return Math_BigInteger + */ + function bitwise_not() + { + // calculuate "not" without regard to $this->precision + // (will always result in a smaller number. ie. ~1 isn't 1111 1110 - it's 0) + $temp = $this->toBytes(); + $pre_msb = decbin(ord($temp[0])); + $temp = ~$temp; + $msb = decbin(ord($temp[0])); + if (strlen($msb) == 8) { + $msb = substr($msb, strpos($msb, '0')); + } + $temp[0] = chr(bindec($msb)); + + // see if we need to add extra leading 1's + $current_bits = strlen($pre_msb) + 8 * strlen($temp) - 8; + $new_bits = $this->precision - $current_bits; + if ($new_bits <= 0) { + return $this->_normalize(new Math_BigInteger($temp, 256)); + } + + // generate as many leading 1's as we need to. + $leading_ones = chr((1 << ($new_bits & 0x7)) - 1) . str_repeat(chr(0xFF), $new_bits >> 3); + $this->_base256_lshift($leading_ones, $current_bits); + + $temp = str_pad($temp, ceil($this->bits / 8), chr(0), STR_PAD_LEFT); + + return $this->_normalize(new Math_BigInteger($leading_ones | $temp, 256)); + } + + /** + * Logical Right Shift + * + * Shifts BigInteger's by $shift bits, effectively dividing by 2**$shift. + * + * @param Integer $shift + * @return Math_BigInteger + * @access public + * @internal The only version that yields any speed increases is the internal version. + */ + function bitwise_rightShift($shift) + { + $temp = new Math_BigInteger(); + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + static $two; + + if (!isset($two)) { + $two = gmp_init('2'); + } + + $temp->value = gmp_div_q($this->value, gmp_pow($two, $shift)); + + break; + case MATH_BIGINTEGER_MODE_BCMATH: + $temp->value = bcdiv($this->value, bcpow('2', $shift, 0), 0); + + break; + default: // could just replace _lshift with this, but then all _lshift() calls would need to be rewritten + // and I don't want to do that... + $temp->value = $this->value; + $temp->_rshift($shift); + } + + return $this->_normalize($temp); + } + + /** + * Logical Left Shift + * + * Shifts BigInteger's by $shift bits, effectively multiplying by 2**$shift. + * + * @param Integer $shift + * @return Math_BigInteger + * @access public + * @internal The only version that yields any speed increases is the internal version. + */ + function bitwise_leftShift($shift) + { + $temp = new Math_BigInteger(); + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + static $two; + + if (!isset($two)) { + $two = gmp_init('2'); + } + + $temp->value = gmp_mul($this->value, gmp_pow($two, $shift)); + + break; + case MATH_BIGINTEGER_MODE_BCMATH: + $temp->value = bcmul($this->value, bcpow('2', $shift, 0), 0); + + break; + default: // could just replace _rshift with this, but then all _lshift() calls would need to be rewritten + // and I don't want to do that... + $temp->value = $this->value; + $temp->_lshift($shift); + } + + return $this->_normalize($temp); + } + + /** + * Logical Left Rotate + * + * Instead of the top x bits being dropped they're appended to the shifted bit string. + * + * @param Integer $shift + * @return Math_BigInteger + * @access public + */ + function bitwise_leftRotate($shift) + { + $bits = $this->toBytes(); + + if ($this->precision > 0) { + $precision = $this->precision; + if ( MATH_BIGINTEGER_MODE == MATH_BIGINTEGER_MODE_BCMATH ) { + $mask = $this->bitmask->subtract(new Math_BigInteger(1)); + $mask = $mask->toBytes(); + } else { + $mask = $this->bitmask->toBytes(); + } + } else { + $temp = ord($bits[0]); + for ($i = 0; $temp >> $i; ++$i); + $precision = 8 * strlen($bits) - 8 + $i; + $mask = chr((1 << ($precision & 0x7)) - 1) . str_repeat(chr(0xFF), $precision >> 3); + } + + if ($shift < 0) { + $shift+= $precision; + } + $shift%= $precision; + + if (!$shift) { + return $this->copy(); + } + + $left = $this->bitwise_leftShift($shift); + $left = $left->bitwise_and(new Math_BigInteger($mask, 256)); + $right = $this->bitwise_rightShift($precision - $shift); + $result = MATH_BIGINTEGER_MODE != MATH_BIGINTEGER_MODE_BCMATH ? $left->bitwise_or($right) : $left->add($right); + return $this->_normalize($result); + } + + /** + * Logical Right Rotate + * + * Instead of the bottom x bits being dropped they're prepended to the shifted bit string. + * + * @param Integer $shift + * @return Math_BigInteger + * @access public + */ + function bitwise_rightRotate($shift) + { + return $this->bitwise_leftRotate(-$shift); + } + + /** + * Set random number generator function + * + * $generator should be the name of a random generating function whose first parameter is the minimum + * value and whose second parameter is the maximum value. If this function needs to be seeded, it should + * be seeded prior to calling Math_BigInteger::random() or Math_BigInteger::randomPrime() + * + * If the random generating function is not explicitly set, it'll be assumed to be mt_rand(). + * + * @see random() + * @see randomPrime() + * @param optional String $generator + * @access public + */ + function setRandomGenerator($generator) + { + $this->generator = $generator; + } + + /** + * Generate a random number + * + * @param optional Integer $min + * @param optional Integer $max + * @return Math_BigInteger + * @access public + */ + function random($min = false, $max = false) + { + if ($min === false) { + $min = new Math_BigInteger(0); + } + + if ($max === false) { + $max = new Math_BigInteger(0x7FFFFFFF); + } + + $compare = $max->compare($min); + + if (!$compare) { + return $this->_normalize($min); + } else if ($compare < 0) { + // if $min is bigger then $max, swap $min and $max + $temp = $max; + $max = $min; + $min = $temp; + } + + $generator = $this->generator; + + $max = $max->subtract($min); + $max = ltrim($max->toBytes(), chr(0)); + $size = strlen($max) - 1; + $random = ''; + + $bytes = $size & 1; + for ($i = 0; $i < $bytes; ++$i) { + $random.= chr($generator(0, 255)); + } + + $blocks = $size >> 1; + for ($i = 0; $i < $blocks; ++$i) { + // mt_rand(-2147483648, 0x7FFFFFFF) always produces -2147483648 on some systems + $random.= pack('n', $generator(0, 0xFFFF)); + } + + $temp = new Math_BigInteger($random, 256); + if ($temp->compare(new Math_BigInteger(substr($max, 1), 256)) > 0) { + $random = chr($generator(0, ord($max[0]) - 1)) . $random; + } else { + $random = chr($generator(0, ord($max[0]) )) . $random; + } + + $random = new Math_BigInteger($random, 256); + + return $this->_normalize($random->add($min)); + } + + /** + * Generate a random prime number. + * + * If there's not a prime within the given range, false will be returned. If more than $timeout seconds have elapsed, + * give up and return false. + * + * @param optional Integer $min + * @param optional Integer $max + * @param optional Integer $timeout + * @return Math_BigInteger + * @access public + * @internal See {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap4.pdf#page=15 HAC 4.44}. + */ + function randomPrime($min = false, $max = false, $timeout = false) + { + $compare = $max->compare($min); + + if (!$compare) { + return $min; + } else if ($compare < 0) { + // if $min is bigger then $max, swap $min and $max + $temp = $max; + $max = $min; + $min = $temp; + } + + // gmp_nextprime() requires PHP 5 >= 5.2.0 per . + if ( MATH_BIGINTEGER_MODE == MATH_BIGINTEGER_MODE_GMP && function_exists('gmp_nextprime') ) { + // we don't rely on Math_BigInteger::random()'s min / max when gmp_nextprime() is being used since this function + // does its own checks on $max / $min when gmp_nextprime() is used. When gmp_nextprime() is not used, however, + // the same $max / $min checks are not performed. + if ($min === false) { + $min = new Math_BigInteger(0); + } + + if ($max === false) { + $max = new Math_BigInteger(0x7FFFFFFF); + } + + $x = $this->random($min, $max); + + $x->value = gmp_nextprime($x->value); + + if ($x->compare($max) <= 0) { + return $x; + } + + $x->value = gmp_nextprime($min->value); + + if ($x->compare($max) <= 0) { + return $x; + } + + return false; + } + + static $one, $two; + if (!isset($one)) { + $one = new Math_BigInteger(1); + $two = new Math_BigInteger(2); + } + + $start = time(); + + $x = $this->random($min, $max); + if ($x->equals($two)) { + return $x; + } + + $x->_make_odd(); + if ($x->compare($max) > 0) { + // if $x > $max then $max is even and if $min == $max then no prime number exists between the specified range + if ($min->equals($max)) { + return false; + } + $x = $min->copy(); + $x->_make_odd(); + } + + $initial_x = $x->copy(); + + while (true) { + if ($timeout !== false && time() - $start > $timeout) { + return false; + } + + if ($x->isPrime()) { + return $x; + } + + $x = $x->add($two); + + if ($x->compare($max) > 0) { + $x = $min->copy(); + if ($x->equals($two)) { + return $x; + } + $x->_make_odd(); + } + + if ($x->equals($initial_x)) { + return false; + } + } + } + + /** + * Make the current number odd + * + * If the current number is odd it'll be unchanged. If it's even, one will be added to it. + * + * @see randomPrime() + * @access private + */ + function _make_odd() + { + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + gmp_setbit($this->value, 0); + break; + case MATH_BIGINTEGER_MODE_BCMATH: + if ($this->value[strlen($this->value) - 1] % 2 == 0) { + $this->value = bcadd($this->value, '1'); + } + break; + default: + $this->value[0] |= 1; + } + } + + /** + * Checks a numer to see if it's prime + * + * Assuming the $t parameter is not set, this function has an error rate of 2**-80. The main motivation for the + * $t parameter is distributability. Math_BigInteger::randomPrime() can be distributed accross multiple pageloads + * on a website instead of just one. + * + * @param optional Integer $t + * @return Boolean + * @access public + * @internal Uses the + * {@link http://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test Miller-Rabin primality test}. See + * {@link http://www.cacr.math.uwaterloo.ca/hac/about/chap4.pdf#page=8 HAC 4.24}. + */ + function isPrime($t = false) + { + $length = strlen($this->toBytes()); + + if (!$t) { + // see HAC 4.49 "Note (controlling the error probability)" + if ($length >= 163) { $t = 2; } // floor(1300 / 8) + else if ($length >= 106) { $t = 3; } // floor( 850 / 8) + else if ($length >= 81 ) { $t = 4; } // floor( 650 / 8) + else if ($length >= 68 ) { $t = 5; } // floor( 550 / 8) + else if ($length >= 56 ) { $t = 6; } // floor( 450 / 8) + else if ($length >= 50 ) { $t = 7; } // floor( 400 / 8) + else if ($length >= 43 ) { $t = 8; } // floor( 350 / 8) + else if ($length >= 37 ) { $t = 9; } // floor( 300 / 8) + else if ($length >= 31 ) { $t = 12; } // floor( 250 / 8) + else if ($length >= 25 ) { $t = 15; } // floor( 200 / 8) + else if ($length >= 18 ) { $t = 18; } // floor( 150 / 8) + else { $t = 27; } + } + + // ie. gmp_testbit($this, 0) + // ie. isEven() or !isOdd() + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + return gmp_prob_prime($this->value, $t) != 0; + case MATH_BIGINTEGER_MODE_BCMATH: + if ($this->value === '2') { + return true; + } + if ($this->value[strlen($this->value) - 1] % 2 == 0) { + return false; + } + break; + default: + if ($this->value == array(2)) { + return true; + } + if (~$this->value[0] & 1) { + return false; + } + } + + static $primes, $zero, $one, $two; + + if (!isset($primes)) { + $primes = array( + 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, + 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, + 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, + 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, + 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, + 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, + 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, + 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, + 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, + 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, + 953, 967, 971, 977, 983, 991, 997 + ); + + if ( MATH_BIGINTEGER_MODE != MATH_BIGINTEGER_MODE_INTERNAL ) { + for ($i = 0; $i < count($primes); ++$i) { + $primes[$i] = new Math_BigInteger($primes[$i]); + } + } + + $zero = new Math_BigInteger(); + $one = new Math_BigInteger(1); + $two = new Math_BigInteger(2); + } + + if ($this->equals($one)) { + return false; + } + + // see HAC 4.4.1 "Random search for probable primes" + if ( MATH_BIGINTEGER_MODE != MATH_BIGINTEGER_MODE_INTERNAL ) { + foreach ($primes as $prime) { + list(, $r) = $this->divide($prime); + if ($r->equals($zero)) { + return $this->equals($prime); + } + } + } else { + $value = $this->value; + foreach ($primes as $prime) { + list(, $r) = $this->_divide_digit($value, $prime); + if (!$r) { + return count($value) == 1 && $value[0] == $prime; + } + } + } + + $n = $this->copy(); + $n_1 = $n->subtract($one); + $n_2 = $n->subtract($two); + + $r = $n_1->copy(); + $r_value = $r->value; + // ie. $s = gmp_scan1($n, 0) and $r = gmp_div_q($n, gmp_pow(gmp_init('2'), $s)); + if ( MATH_BIGINTEGER_MODE == MATH_BIGINTEGER_MODE_BCMATH ) { + $s = 0; + // if $n was 1, $r would be 0 and this would be an infinite loop, hence our $this->equals($one) check earlier + while ($r->value[strlen($r->value) - 1] % 2 == 0) { + $r->value = bcdiv($r->value, '2', 0); + ++$s; + } + } else { + for ($i = 0, $r_length = count($r_value); $i < $r_length; ++$i) { + $temp = ~$r_value[$i] & 0xFFFFFF; + for ($j = 1; ($temp >> $j) & 1; ++$j); + if ($j != 25) { + break; + } + } + $s = 26 * $i + $j - 1; + $r->_rshift($s); + } + + for ($i = 0; $i < $t; ++$i) { + $a = $this->random($two, $n_2); + $y = $a->modPow($r, $n); + + if (!$y->equals($one) && !$y->equals($n_1)) { + for ($j = 1; $j < $s && !$y->equals($n_1); ++$j) { + $y = $y->modPow($two, $n); + if ($y->equals($one)) { + return false; + } + } + + if (!$y->equals($n_1)) { + return false; + } + } + } + return true; + } + + /** + * Logical Left Shift + * + * Shifts BigInteger's by $shift bits. + * + * @param Integer $shift + * @access private + */ + function _lshift($shift) + { + if ( $shift == 0 ) { + return; + } + + $num_digits = (int) ($shift / 26); + $shift %= 26; + $shift = 1 << $shift; + + $carry = 0; + + for ($i = 0; $i < count($this->value); ++$i) { + $temp = $this->value[$i] * $shift + $carry; + $carry = (int) ($temp / 0x4000000); + $this->value[$i] = (int) ($temp - $carry * 0x4000000); + } + + if ( $carry ) { + $this->value[] = $carry; + } + + while ($num_digits--) { + array_unshift($this->value, 0); + } + } + + /** + * Logical Right Shift + * + * Shifts BigInteger's by $shift bits. + * + * @param Integer $shift + * @access private + */ + function _rshift($shift) + { + if ($shift == 0) { + return; + } + + $num_digits = (int) ($shift / 26); + $shift %= 26; + $carry_shift = 26 - $shift; + $carry_mask = (1 << $shift) - 1; + + if ( $num_digits ) { + $this->value = array_slice($this->value, $num_digits); + } + + $carry = 0; + + for ($i = count($this->value) - 1; $i >= 0; --$i) { + $temp = $this->value[$i] >> $shift | $carry; + $carry = ($this->value[$i] & $carry_mask) << $carry_shift; + $this->value[$i] = $temp; + } + + $this->value = $this->_trim($this->value); + } + + /** + * Normalize + * + * Removes leading zeros and truncates (if necessary) to maintain the appropriate precision + * + * @param Math_BigInteger + * @return Math_BigInteger + * @see _trim() + * @access private + */ + function _normalize($result) + { + $result->precision = $this->precision; + $result->bitmask = $this->bitmask; + + switch ( MATH_BIGINTEGER_MODE ) { + case MATH_BIGINTEGER_MODE_GMP: + if (!empty($result->bitmask->value)) { + $result->value = gmp_and($result->value, $result->bitmask->value); + } + + return $result; + case MATH_BIGINTEGER_MODE_BCMATH: + if (!empty($result->bitmask->value)) { + $result->value = bcmod($result->value, $result->bitmask->value); + } + + return $result; + } + + $value = &$result->value; + + if ( !count($value) ) { + return $result; + } + + $value = $this->_trim($value); + + if (!empty($result->bitmask->value)) { + $length = min(count($value), count($this->bitmask->value)); + $value = array_slice($value, 0, $length); + + for ($i = 0; $i < $length; ++$i) { + $value[$i] = $value[$i] & $this->bitmask->value[$i]; + } + } + + return $result; + } + + /** + * Trim + * + * Removes leading zeros + * + * @return Math_BigInteger + * @access private + */ + function _trim($value) + { + for ($i = count($value) - 1; $i >= 0; --$i) { + if ( $value[$i] ) { + break; + } + unset($value[$i]); + } + + return $value; + } + + /** + * Array Repeat + * + * @param $input Array + * @param $multiplier mixed + * @return Array + * @access private + */ + function _array_repeat($input, $multiplier) + { + return ($multiplier) ? array_fill(0, $multiplier, $input) : array(); + } + + /** + * Logical Left Shift + * + * Shifts binary strings $shift bits, essentially multiplying by 2**$shift. + * + * @param $x String + * @param $shift Integer + * @return String + * @access private + */ + function _base256_lshift(&$x, $shift) + { + if ($shift == 0) { + return; + } + + $num_bytes = $shift >> 3; // eg. floor($shift/8) + $shift &= 7; // eg. $shift % 8 + + $carry = 0; + for ($i = strlen($x) - 1; $i >= 0; --$i) { + $temp = ord($x[$i]) << $shift | $carry; + $x[$i] = chr($temp); + $carry = $temp >> 8; + } + $carry = ($carry != 0) ? chr($carry) : ''; + $x = $carry . $x . str_repeat(chr(0), $num_bytes); + } + + /** + * Logical Right Shift + * + * Shifts binary strings $shift bits, essentially dividing by 2**$shift and returning the remainder. + * + * @param $x String + * @param $shift Integer + * @return String + * @access private + */ + function _base256_rshift(&$x, $shift) + { + if ($shift == 0) { + $x = ltrim($x, chr(0)); + return ''; + } + + $num_bytes = $shift >> 3; // eg. floor($shift/8) + $shift &= 7; // eg. $shift % 8 + + $remainder = ''; + if ($num_bytes) { + $start = $num_bytes > strlen($x) ? -strlen($x) : -$num_bytes; + $remainder = substr($x, $start); + $x = substr($x, 0, -$num_bytes); + } + + $carry = 0; + $carry_shift = 8 - $shift; + for ($i = 0; $i < strlen($x); ++$i) { + $temp = (ord($x[$i]) >> $shift) | $carry; + $carry = (ord($x[$i]) << $carry_shift) & 0xFF; + $x[$i] = chr($temp); + } + $x = ltrim($x, chr(0)); + + $remainder = chr($carry >> $carry_shift) . $remainder; + + return ltrim($remainder, chr(0)); + } + + // one quirk about how the following functions are implemented is that PHP defines N to be an unsigned long + // at 32-bits, while java's longs are 64-bits. + + /** + * Converts 32-bit integers to bytes. + * + * @param Integer $x + * @return String + * @access private + */ + function _int2bytes($x) + { + return ltrim(pack('N', $x), chr(0)); + } + + /** + * Converts bytes to 32-bit integers + * + * @param String $x + * @return Integer + * @access private + */ + function _bytes2int($x) + { + $temp = unpack('Nint', str_pad($x, 4, chr(0), STR_PAD_LEFT)); + return $temp['int']; + } } \ No newline at end of file -- cgit v1.2.3-54-g00ecf From 4e44cf906bb4fc884f645388c2c90ca1bad9a88f Mon Sep 17 00:00:00 2001 From: James Walker Date: Fri, 12 Mar 2010 20:02:00 -0500 Subject: converting key generation to new crypt library --- plugins/OStatus/classes/Magicsig.php | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/plugins/OStatus/classes/Magicsig.php b/plugins/OStatus/classes/Magicsig.php index d1d6a6d45..82b6017de 100644 --- a/plugins/OStatus/classes/Magicsig.php +++ b/plugins/OStatus/classes/Magicsig.php @@ -102,7 +102,17 @@ class Magicsig extends Memcached_DataObject public function generate($user_id, $key_length = 512) { - // @fixme new key generation + $rsa = new Crypt_RSA(); + + extract($rsa->createKey()); + + $rsa->loadKey($privatekey); + + $this->privateKey = $rsa; + + $this->publicKey = new Crypt_RSA(); + $this->publicKey->loadKey($publickey); + $this->user_id = $user_id; $this->insert(); } @@ -113,7 +123,7 @@ class Magicsig extends Memcached_DataObject $mod = base64_url_encode($this->publicKey->modulus->toBytes()); $exp = base64_url_encode($this->publicKey->exponent->toBytes()); $private_exp = ''; - if ($full_pair && $private_key->getExponent()) { + if ($full_pair && $this->privateKey->exponent->toBytes()) { $private_exp = '.' . base64_url_encode($this->privateKey->exponent->toBytes()); } -- cgit v1.2.3-54-g00ecf From 135c0c8a7fa56a6d4008f73314bb6f18551e869a Mon Sep 17 00:00:00 2001 From: James Walker Date: Fri, 12 Mar 2010 21:44:18 -0500 Subject: cleaning up key generation --- plugins/OStatus/classes/Magicsig.php | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/plugins/OStatus/classes/Magicsig.php b/plugins/OStatus/classes/Magicsig.php index 82b6017de..73690965f 100644 --- a/plugins/OStatus/classes/Magicsig.php +++ b/plugins/OStatus/classes/Magicsig.php @@ -40,8 +40,8 @@ class Magicsig extends Memcached_DataObject public $keypair; public $alg; - private $publicKey; - private $privateKey; + public $publicKey; + public $privateKey; public function __construct($alg = 'RSA-SHA256') { @@ -100,18 +100,19 @@ class Magicsig extends Memcached_DataObject return parent::insert(); } - public function generate($user_id, $key_length = 512) + public function generate($user_id) { $rsa = new Crypt_RSA(); + + $keypair = $rsa->createKey(); - extract($rsa->createKey()); - - $rsa->loadKey($privatekey); + $rsa->loadKey($keypair['privatekey']); - $this->privateKey = $rsa; + $this->privateKey = new Crypt_RSA(); + $this->privateKey->loadKey($keypair['privatekey']); $this->publicKey = new Crypt_RSA(); - $this->publicKey->loadKey($publickey); + $this->publicKey->loadKey($keypair['publickey']); $this->user_id = $user_id; $this->insert(); @@ -186,7 +187,7 @@ class Magicsig extends Memcached_DataObject switch ($this->alg) { case 'RSA-SHA256': - return 'magicsig_sha256'; + return 'sha256'; } } -- cgit v1.2.3-54-g00ecf From a9dabbe77e8ab575aaf5c3742e2cddb4874e6881 Mon Sep 17 00:00:00 2001 From: James Walker Date: Sat, 13 Mar 2010 10:37:08 -0500 Subject: * wrong param order to in_array * in getContent() if "type" isn't set, assume text (per atom spec) --- lib/activity.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/activity.php b/lib/activity.php index 125d391b0..738200c0b 100644 --- a/lib/activity.php +++ b/lib/activity.php @@ -457,7 +457,7 @@ class ActivityUtils // slavishly following http://atompub.org/rfc4287.html#rfc.section.4.1.3.3 - if ($type == 'text') { + if (empty($type) || $type == 'text') { return $contentEl->textContent; } else if ($type == 'html') { $text = $contentEl->textContent; @@ -476,7 +476,7 @@ class ActivityUtils $text .= $doc->saveXML($child); } return trim($text); - } else if (in_array(array('text/xml', 'application/xml'), $type) || + } else if (in_array($type, array('text/xml', 'application/xml')) || preg_match('#(+|/)xml$#', $type)) { throw new ClientException(_("Can't handle embedded XML content yet.")); } else if (strncasecmp($type, 'text/', 5)) { -- cgit v1.2.3-54-g00ecf From 9111c5c6fe3507d69e0908d48339ddc484c64d70 Mon Sep 17 00:00:00 2001 From: James Walker Date: Sat, 13 Mar 2010 14:36:51 -0500 Subject: allow profile_url to be used in ostatus:attention --- plugins/OStatus/actions/usersalmon.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/OStatus/actions/usersalmon.php b/plugins/OStatus/actions/usersalmon.php index c8a16e06f..15e8c1869 100644 --- a/plugins/OStatus/actions/usersalmon.php +++ b/plugins/OStatus/actions/usersalmon.php @@ -82,7 +82,8 @@ class UsersalmonAction extends SalmonAction throw new ClientException("In reply to a notice not by this user"); } } else if (!empty($context->attention)) { - if (!in_array($this->user->uri, $context->attention)) { + if (!in_array($this->user->uri, $context->attention) && + !in_array(common_profile_url($this->user->nickname), $context->attention)) { common_log(LOG_ERR, "{$this->user->uri} not in attention list (".implode(',', $context->attention).")"); throw new ClientException("To the attention of user(s) not including this one!"); } -- cgit v1.2.3-54-g00ecf From d2c4ff5f7c8f1aa0319489fcd91bc6b91bde24cb Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Sat, 13 Mar 2010 11:54:04 -0800 Subject: Ticket 2239: white space before apostrophe in metadata of status of notice --- actions/shownotice.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/actions/shownotice.php b/actions/shownotice.php index d09100f67..a1933ff63 100644 --- a/actions/shownotice.php +++ b/actions/shownotice.php @@ -172,7 +172,7 @@ class ShownoticeAction extends OwnerDesignAction function title() { if (!empty($this->profile->fullname)) { - $base = $this->profile->fullname . ' (' . $this->profile->nickname . ') '; + $base = $this->profile->fullname . ' (' . $this->profile->nickname . ')'; } else { $base = $this->profile->nickname; } -- cgit v1.2.3-54-g00ecf From 14c488ebb02a7d1ca5837453f1ffdb673db31b25 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Sat, 13 Mar 2010 12:12:06 -0800 Subject: Fix for _m() usage with context in StatusNet main code. --- lib/language.php | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/lib/language.php b/lib/language.php index 64b59e739..76c788025 100644 --- a/lib/language.php +++ b/lib/language.php @@ -202,16 +202,19 @@ function _mdomain($backtrace) static $cached; $path = $backtrace[0]['file']; if (!isset($cached[$path])) { + $final = 'statusnet'; // assume default domain if (DIRECTORY_SEPARATOR !== '/') { $path = strtr($path, DIRECTORY_SEPARATOR, '/'); } - $cut = strpos($path, '/plugins/') + 9; - $cut2 = strpos($path, '/', $cut); - if ($cut && $cut2) { - $cached[$path] = substr($path, $cut, $cut2 - $cut); - } else { - return null; + $cut = strpos($path, '/plugins/'); + if ($cut) { + $cut += strlen('/plugins/'); + $cut2 = strpos($path, '/', $cut); + if ($cut && $cut2) { + $final = substr($path, $cut, $cut2 - $cut); + } } + $cached[$path] = $final; } return $cached[$path]; } -- cgit v1.2.3-54-g00ecf From 56402597ddc8fbae0777ceaefc90d0473b8d31a4 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Sat, 13 Mar 2010 12:19:07 -0800 Subject: Throw a quick button label into ostatus .po file for french to test with --- plugins/OStatus/locale/fr/LC_MESSAGES/OStatus.po | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/OStatus/locale/fr/LC_MESSAGES/OStatus.po b/plugins/OStatus/locale/fr/LC_MESSAGES/OStatus.po index f17dfa50a..0956d2f9b 100644 --- a/plugins/OStatus/locale/fr/LC_MESSAGES/OStatus.po +++ b/plugins/OStatus/locale/fr/LC_MESSAGES/OStatus.po @@ -104,3 +104,6 @@ msgstr "" #: actions/feedsubsettings.php:231 msgid "Previewing feed:" msgstr "" + +msgid "Confirm" +msgstr "Confirmer" -- cgit v1.2.3-54-g00ecf From 99ca84e68ed8cce97caa605fad04110d420c41b3 Mon Sep 17 00:00:00 2001 From: James Walker Date: Sat, 13 Mar 2010 15:46:54 -0500 Subject: changing keypair to text to hold a full 1024bit keypair --- plugins/OStatus/classes/Magicsig.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/OStatus/classes/Magicsig.php b/plugins/OStatus/classes/Magicsig.php index 73690965f..5705ecc11 100644 --- a/plugins/OStatus/classes/Magicsig.php +++ b/plugins/OStatus/classes/Magicsig.php @@ -72,8 +72,8 @@ class Magicsig extends Memcached_DataObject { return array(new ColumnDef('user_id', 'integer', null, false, 'PRI'), - new ColumnDef('keypair', 'varchar', - 255, false), + new ColumnDef('keypair', 'text', + false, false), new ColumnDef('alg', 'varchar', 64, false)); } -- cgit v1.2.3-54-g00ecf From 5b078eadd9fac008fc2f37627ba9a0b124893ccb Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sat, 13 Mar 2010 16:48:21 -0500 Subject: Assigned an identifier for the representative user and group profile --- actions/showgroup.php | 3 ++- lib/userprofile.php | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/actions/showgroup.php b/actions/showgroup.php index 5704b13d1..a0d05ba37 100644 --- a/actions/showgroup.php +++ b/actions/showgroup.php @@ -221,7 +221,8 @@ class ShowgroupAction extends GroupDesignAction function showGroupProfile() { - $this->elementStart('div', 'entity_profile vcard author'); + $this->elementStart('div', array('id' => 'i', + 'class' => 'entity_profile vcard author')); $this->element('h2', null, _('Group profile')); diff --git a/lib/userprofile.php b/lib/userprofile.php index 8464c2446..1e4543a5a 100644 --- a/lib/userprofile.php +++ b/lib/userprofile.php @@ -71,7 +71,8 @@ class UserProfile extends Widget { if (Event::handle('StartProfilePageProfileSection', array(&$this->out, $this->profile))) { - $this->out->elementStart('div', 'entity_profile vcard author'); + $this->out->elementStart('div', array('id' => 'i', + 'class' => 'entity_profile vcard author')); $this->out->element('h2', null, _('User profile')); if (Event::handle('StartProfilePageProfileElements', array(&$this->out, $this->profile))) { -- cgit v1.2.3-54-g00ecf From 85cf90cf0fb613bab38ce8e0142544a044fe0d1d Mon Sep 17 00:00:00 2001 From: James Walker Date: Sat, 13 Mar 2010 18:35:00 -0500 Subject: Performing & allowing host-meta discovery by http url (in addition to webfinger acct) --- plugins/OStatus/actions/userxrd.php | 15 +++++++++------ plugins/OStatus/lib/discovery.php | 11 ++++++----- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/plugins/OStatus/actions/userxrd.php b/plugins/OStatus/actions/userxrd.php index 414de9364..eb80a5ad4 100644 --- a/plugins/OStatus/actions/userxrd.php +++ b/plugins/OStatus/actions/userxrd.php @@ -32,12 +32,15 @@ class UserxrdAction extends XrdAction parent::prepare($args); $this->uri = $this->trimmed('uri'); - $acct = Discovery::normalize($this->uri); - - list($nick, $domain) = explode('@', substr(urldecode($acct), 5)); - $nick = common_canonical_nickname($nick); - - $this->user = User::staticGet('nickname', $nick); + $this->uri = Discovery::normalize($this->uri); + + if (Discovery::isWebfinger($this->uri)) { + list($nick, $domain) = explode('@', substr(urldecode($this->uri), 5)); + $nick = common_canonical_nickname($nick); + $this->user = User::staticGet('nickname', $nick); + } else { + $this->user = User::staticGet('uri', $this->uri); + } if (!$this->user) { $this->clientError(_('No such user.'), 404); return false; diff --git a/plugins/OStatus/lib/discovery.php b/plugins/OStatus/lib/discovery.php index f8449b309..df2fea64f 100644 --- a/plugins/OStatus/lib/discovery.php +++ b/plugins/OStatus/lib/discovery.php @@ -157,12 +157,13 @@ class Discovery_LRDD_Host_Meta implements Discovery_LRDD { public function discover($uri) { - if (!Discovery::isWebfinger($uri)) { - return false; + if (Discovery::isWebfinger($uri)) { + // We have a webfinger acct: - start with host-meta + list($name, $domain) = explode('@', $uri); + } else { + $domain = parse_url($uri, PHP_URL_HOST); } - - // We have a webfinger acct: - start with host-meta - list($name, $domain) = explode('@', $uri); + $url = 'http://'. $domain .'/.well-known/host-meta'; $xrd = Discovery::fetchXrd($url); -- cgit v1.2.3-54-g00ecf From c4f89b06f1e7fe969e049c7dfe672bdfd6e5c8f9 Mon Sep 17 00:00:00 2001 From: James Walker Date: Sun, 14 Mar 2010 12:57:24 -0400 Subject: give preference to rel="photo" (per latest ActivityStreams spec), but still support rel="avatar" for compat --- lib/activity.php | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/activity.php b/lib/activity.php index 738200c0b..6acf37a8a 100644 --- a/lib/activity.php +++ b/lib/activity.php @@ -681,9 +681,16 @@ class ActivityObject if ($this->type == self::PERSON || $this->type == self::GROUP) { $this->displayName = $this->title; - $avatars = ActivityUtils::getLinks($element, 'avatar'); - foreach ($avatars as $link) { - $this->avatarLinks[] = new AvatarLink($link); + $photos = ActivityUtils::getLinks($element, 'photo'); + if (count($photos)) { + foreach ($photos as $link) { + $this->avatarLinks[] = new AvatarLink($link); + } + } else { + $avatars = ActivityUtils::getLinks($element, 'avatar'); + foreach ($avatars as $link) { + $this->avatarLinks[] = new AvatarLink($link); + } } $this->poco = new PoCo($element); -- cgit v1.2.3-54-g00ecf From 6e5e75f341fde6f4ef6b0ad01b38a85bd9583a30 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sun, 14 Mar 2010 14:06:14 -0400 Subject: Updated plugin to open external links on a new window that are not attachments --- plugins/OpenExternalLinkTarget/OpenExternalLinkTargetPlugin.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/OpenExternalLinkTarget/OpenExternalLinkTargetPlugin.php b/plugins/OpenExternalLinkTarget/OpenExternalLinkTargetPlugin.php index ebb0189e0..6756f1993 100644 --- a/plugins/OpenExternalLinkTarget/OpenExternalLinkTargetPlugin.php +++ b/plugins/OpenExternalLinkTarget/OpenExternalLinkTargetPlugin.php @@ -45,7 +45,7 @@ class OpenExternalLinkTargetPlugin extends Plugin { function onEndShowScripts($action) { - $action->inlineScript('$("a[rel~=external]").click(function(){ window.open(this.href); return false; });'); + $action->inlineScript('$("a[rel~=external]:not([class~=attachment])").live("click", function(){ window.open(this.href); return false; });'); return true; } -- cgit v1.2.3-54-g00ecf From 00cac4c8b18f8b36bda548b465bfb5ee9ad9cfff Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sun, 14 Mar 2010 14:11:21 -0400 Subject: Added rel=external to geo location link --- lib/noticelist.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/noticelist.php b/lib/noticelist.php index 811b7e4f1..0d4cd4dd9 100644 --- a/lib/noticelist.php +++ b/lib/noticelist.php @@ -443,7 +443,8 @@ class NoticeListItem extends Widget $name); } else { $xstr = new XMLStringer(false); - $xstr->elementStart('a', array('href' => $url)); + $xstr->elementStart('a', array('href' => $url, + 'rel' => 'external')); $xstr->element('abbr', array('class' => 'geo', 'title' => $latlon), $name); -- cgit v1.2.3-54-g00ecf From 2f380f6a9a16970e3fb1b469fb2f1384aaf455a2 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sun, 14 Mar 2010 15:01:24 -0400 Subject: Using rel=external instead of class=external for jOverlay title link --- lib/attachmentlist.php | 6 ++---- theme/base/css/display.css | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/lib/attachmentlist.php b/lib/attachmentlist.php index 51ceca857..dc6709d67 100644 --- a/lib/attachmentlist.php +++ b/lib/attachmentlist.php @@ -248,9 +248,7 @@ class Attachment extends AttachmentListItem $this->out->elementStart('div', array('id' => 'attachment_view', 'class' => 'hentry')); $this->out->elementStart('div', 'entry-title'); - $this->out->elementStart('a', $this->linkAttr()); - $this->out->element('span', null, $this->linkTitle()); - $this->out->elementEnd('a'); + $this->out->element('a', $this->linkAttr(), $this->linkTitle()); $this->out->elementEnd('div'); $this->out->elementStart('div', 'entry-content'); @@ -296,7 +294,7 @@ class Attachment extends AttachmentListItem } function linkAttr() { - return array('class' => 'external', 'href' => $this->attachment->url); + return array('rel' => 'external', 'href' => $this->attachment->url); } function linkTitle() { diff --git a/theme/base/css/display.css b/theme/base/css/display.css index 782d3dc71..a2e4cdf2a 100644 --- a/theme/base/css/display.css +++ b/theme/base/css/display.css @@ -1326,7 +1326,7 @@ margin-bottom:0; padding:11px; min-height:auto; } -#jOverlayContent .external span { +#jOverlayContent .entry-title { display:block; margin-bottom:11px; } -- cgit v1.2.3-54-g00ecf From fe0c010ae394de2ef2aa27d70de40d2c41f5f006 Mon Sep 17 00:00:00 2001 From: Siebrand Mazeland Date: Sun, 14 Mar 2010 23:30:19 +0100 Subject: Localisation updates for !StatusNet from !translatewiki.net !sntrans Signed-off-by: Siebrand Mazeland --- locale/ar/LC_MESSAGES/statusnet.po | 108 ++++++++++++------------- locale/arz/LC_MESSAGES/statusnet.po | 108 ++++++++++++------------- locale/bg/LC_MESSAGES/statusnet.po | 108 ++++++++++++------------- locale/br/LC_MESSAGES/statusnet.po | 143 +++++++++++++++++----------------- locale/ca/LC_MESSAGES/statusnet.po | 108 ++++++++++++------------- locale/cs/LC_MESSAGES/statusnet.po | 108 ++++++++++++------------- locale/de/LC_MESSAGES/statusnet.po | 131 ++++++++++++++++--------------- locale/el/LC_MESSAGES/statusnet.po | 138 ++++++++++++++++---------------- locale/en_GB/LC_MESSAGES/statusnet.po | 108 ++++++++++++------------- locale/es/LC_MESSAGES/statusnet.po | 108 ++++++++++++------------- locale/fa/LC_MESSAGES/statusnet.po | 108 ++++++++++++------------- locale/fi/LC_MESSAGES/statusnet.po | 108 ++++++++++++------------- locale/fr/LC_MESSAGES/statusnet.po | 117 ++++++++++++++-------------- locale/ga/LC_MESSAGES/statusnet.po | 108 ++++++++++++------------- locale/he/LC_MESSAGES/statusnet.po | 108 ++++++++++++------------- locale/hsb/LC_MESSAGES/statusnet.po | 111 +++++++++++++------------- locale/ia/LC_MESSAGES/statusnet.po | 117 ++++++++++++++-------------- locale/is/LC_MESSAGES/statusnet.po | 108 ++++++++++++------------- locale/it/LC_MESSAGES/statusnet.po | 117 ++++++++++++++-------------- locale/ja/LC_MESSAGES/statusnet.po | 108 ++++++++++++------------- locale/ko/LC_MESSAGES/statusnet.po | 108 ++++++++++++------------- locale/mk/LC_MESSAGES/statusnet.po | 129 +++++++++++++++--------------- locale/nb/LC_MESSAGES/statusnet.po | 108 ++++++++++++------------- locale/nl/LC_MESSAGES/statusnet.po | 117 ++++++++++++++-------------- locale/nn/LC_MESSAGES/statusnet.po | 108 ++++++++++++------------- locale/pl/LC_MESSAGES/statusnet.po | 117 ++++++++++++++-------------- locale/pt/LC_MESSAGES/statusnet.po | 108 ++++++++++++------------- locale/pt_BR/LC_MESSAGES/statusnet.po | 108 ++++++++++++------------- locale/ru/LC_MESSAGES/statusnet.po | 108 ++++++++++++------------- locale/statusnet.po | 104 ++++++++++++------------- locale/sv/LC_MESSAGES/statusnet.po | 108 ++++++++++++------------- locale/te/LC_MESSAGES/statusnet.po | 108 ++++++++++++------------- locale/tr/LC_MESSAGES/statusnet.po | 108 ++++++++++++------------- locale/uk/LC_MESSAGES/statusnet.po | 117 ++++++++++++++-------------- locale/vi/LC_MESSAGES/statusnet.po | 108 ++++++++++++------------- locale/zh_CN/LC_MESSAGES/statusnet.po | 108 ++++++++++++------------- locale/zh_TW/LC_MESSAGES/statusnet.po | 108 ++++++++++++------------- 37 files changed, 2082 insertions(+), 2076 deletions(-) diff --git a/locale/ar/LC_MESSAGES/statusnet.po b/locale/ar/LC_MESSAGES/statusnet.po index 16e050cee..6a4221755 100644 --- a/locale/ar/LC_MESSAGES/statusnet.po +++ b/locale/ar/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:42:03+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:26:37+0000\n" "Language-Team: Arabic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ar\n" "X-Message-Group: out-statusnet\n" @@ -563,9 +563,9 @@ msgstr "الحساب" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "الاسم المستعار" @@ -707,7 +707,7 @@ msgstr "لا حجم." msgid "Invalid size." msgstr "حجم غير صالح." -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "أفتار" @@ -739,7 +739,7 @@ msgid "Preview" msgstr "معاينة" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "احذف" @@ -977,7 +977,7 @@ msgstr "أمتأكد من أنك تريد حذف هذا الإشعار؟" msgid "Do not delete this notice" msgstr "لا تحذف هذا الإشعار" -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "احذف هذا الإشعار" @@ -2595,8 +2595,8 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 حرفًا إنجليزيًا أو رقمًا بدون نقاط أو مسافات" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "الاسم الكامل" @@ -2623,9 +2623,9 @@ msgid "Bio" msgstr "السيرة" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "الموقع" @@ -2639,7 +2639,7 @@ msgstr "شارك مكاني الحالي عند إرسال إشعارات" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "الوسوم" @@ -3063,7 +3063,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "اشترك" @@ -3099,7 +3099,7 @@ msgstr "لا يمكنك تكرار ملاحظتك الشخصية." msgid "You already repeated that notice." msgstr "أنت كررت هذه الملاحظة بالفعل." -#: actions/repeat.php:114 lib/noticelist.php:676 +#: actions/repeat.php:114 lib/noticelist.php:677 msgid "Repeated" msgstr "مكرر" @@ -3239,7 +3239,7 @@ msgstr "المنظمة" msgid "Description" msgstr "الوصف" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "إحصاءات" @@ -3355,67 +3355,67 @@ msgstr "مجموعة %s" msgid "%1$s group, page %2$d" msgstr "%1$s أعضاء المجموعة, الصفحة %2$d" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 msgid "Group profile" msgstr "ملف المجموعة الشخصي" -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "مسار" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 msgid "Note" msgstr "ملاحظة" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "الكنى" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, php-format msgid "FOAF for %s group" msgstr "" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 msgid "Members" msgstr "الأعضاء" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(لا شيء)" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "جميع الأعضاء" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 msgid "Created" msgstr "أنشئ" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3430,7 +3430,7 @@ msgstr "" "[انضم الآن](%%%%action.register%%%%) لتصبح عضوًا في هذه المجموعة ومجموعات " "أخرى عديدة! ([اقرأ المزيد](%%%%doc.help%%%%))" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3442,7 +3442,7 @@ msgstr "" "en.wikipedia.org/wiki/Micro-blogging) المبنية على البرنامج الحر [StatusNet]" "(http://status.net/). يتشارك أعضاؤها رسائل قصيرة عن حياتهم واهتماماتهم. " -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "الإداريون" @@ -3967,12 +3967,12 @@ msgstr "لا مدخل هوية." msgid "Tag %s" msgstr "" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "ملف المستخدم الشخصي" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "صورة" @@ -4867,11 +4867,11 @@ msgstr "اسحب" msgid "Attachments" msgstr "مرفقات" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "المؤلف" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 msgid "Provider" msgstr "المزود" @@ -5668,7 +5668,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 msgid "from" msgstr "من" @@ -5818,23 +5818,23 @@ msgstr "غ" msgid "at" msgstr "في" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 msgid "in context" msgstr "في السياق" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 msgid "Repeated by" msgstr "مكرر بواسطة" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "رُد على هذا الإشعار" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 msgid "Reply" msgstr "رُد" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 msgid "Notice repeated" msgstr "الإشعار مكرر" @@ -6102,45 +6102,45 @@ msgstr "ألغِ الاشتراك مع هذا المستخدم" msgid "Unsubscribe" msgstr "ألغِ الاشتراك" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "عدّل الأفتار" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "تصرفات المستخدم" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 msgid "Edit profile settings" msgstr "عدّل إعدادات الملف الشخصي" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "عدّل" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "أرسل رسالة مباشرة إلى هذا المستخدم" -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "رسالة" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 #, fuzzy msgid "User role" msgstr "ملف المستخدم الشخصي" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 msgctxt "role" msgid "Administrator" msgstr "إداري" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 msgctxt "role" msgid "Moderator" msgstr "مراقب" diff --git a/locale/arz/LC_MESSAGES/statusnet.po b/locale/arz/LC_MESSAGES/statusnet.po index 7b6735e0e..b359f287a 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-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:42:07+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:26:40+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 (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: arz\n" "X-Message-Group: out-statusnet\n" @@ -569,9 +569,9 @@ msgstr "الحساب" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "الاسم المستعار" @@ -713,7 +713,7 @@ msgstr "لا حجم." msgid "Invalid size." msgstr "حجم غير صالح." -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "أفتار" @@ -745,7 +745,7 @@ msgid "Preview" msgstr "عاين" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "احذف" @@ -988,7 +988,7 @@ msgstr "أمتأكد من أنك تريد حذف هذا الإشعار؟" msgid "Do not delete this notice" msgstr "لا تحذف هذا الإشعار" -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "احذف هذا الإشعار" @@ -2606,8 +2606,8 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "الاسم الكامل" @@ -2634,9 +2634,9 @@ msgid "Bio" msgstr "السيرة" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "الموقع" @@ -2650,7 +2650,7 @@ msgstr "" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "الوسوم" @@ -3073,7 +3073,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "اشترك" @@ -3109,7 +3109,7 @@ msgstr "ما ينفعش تكرر الملاحظه بتاعتك." msgid "You already repeated that notice." msgstr "انت عيدت الملاحظه دى فعلا." -#: actions/repeat.php:114 lib/noticelist.php:676 +#: actions/repeat.php:114 lib/noticelist.php:677 msgid "Repeated" msgstr "مكرر" @@ -3249,7 +3249,7 @@ msgstr "المنظمه" msgid "Description" msgstr "الوصف" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "إحصاءات" @@ -3365,67 +3365,67 @@ msgstr "مجموعه %s" msgid "%1$s group, page %2$d" msgstr "%1$s أعضاء المجموعة, الصفحه %2$d" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 msgid "Group profile" msgstr "ملف المجموعه الشخصي" -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "مسار" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 msgid "Note" msgstr "ملاحظة" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "الكنى" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, php-format msgid "FOAF for %s group" msgstr "" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 msgid "Members" msgstr "الأعضاء" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(لا شيء)" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "جميع الأعضاء" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 msgid "Created" msgstr "أنشئ" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3435,7 +3435,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3444,7 +3444,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "الإداريون" @@ -3971,12 +3971,12 @@ msgstr "لا مدخل هويه." msgid "Tag %s" msgstr "" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "ملف المستخدم الشخصي" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "صورة" @@ -4893,11 +4893,11 @@ msgstr "بطّل" msgid "Attachments" msgstr "مرفقات" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "المؤلف" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 msgid "Provider" msgstr "المزود" @@ -5634,7 +5634,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 msgid "from" msgstr "من" @@ -5785,23 +5785,23 @@ msgstr "غ" msgid "at" msgstr "في" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 msgid "in context" msgstr "فى السياق" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 msgid "Repeated by" msgstr "متكرر من" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "رُد على هذا الإشعار" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 msgid "Reply" msgstr "رُد" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 msgid "Notice repeated" msgstr "الإشعار مكرر" @@ -6069,46 +6069,46 @@ msgstr "ألغِ الاشتراك مع هذا المستخدم" msgid "Unsubscribe" msgstr "ألغِ الاشتراك" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "عدّل الأفتار" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "تصرفات المستخدم" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 msgid "Edit profile settings" msgstr "عدّل إعدادات الملف الشخصي" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "عدّل" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "أرسل رساله مباشره إلى هذا المستخدم" -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "رسالة" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 #, fuzzy msgid "User role" msgstr "ملف المستخدم الشخصي" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 #, fuzzy msgctxt "role" msgid "Administrator" msgstr "الإداريون" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 msgctxt "role" msgid "Moderator" msgstr "" diff --git a/locale/bg/LC_MESSAGES/statusnet.po b/locale/bg/LC_MESSAGES/statusnet.po index 57d024979..8acc5f377 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-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:42:10+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:26: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 (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: bg\n" "X-Message-Group: out-statusnet\n" @@ -575,9 +575,9 @@ msgstr "Сметка" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "Псевдоним" @@ -721,7 +721,7 @@ msgstr "Няма размер." msgid "Invalid size." msgstr "Неправилен размер." -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Аватар" @@ -754,7 +754,7 @@ msgid "Preview" msgstr "Преглед" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "Изтриване" @@ -1000,7 +1000,7 @@ msgstr "Наистина ли искате да изтриете тази бел msgid "Do not delete this notice" msgstr "Да не се изтрива бележката" -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "Изтриване на бележката" @@ -2725,8 +2725,8 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "От 1 до 64 малки букви или цифри, без пунктоация и интервали" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "Пълно име" @@ -2753,9 +2753,9 @@ msgid "Bio" msgstr "За мен" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "Местоположение" @@ -2769,7 +2769,7 @@ msgstr "" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "Етикети" @@ -3216,7 +3216,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "Адрес на профила ви в друга, съвместима услуга за микроблогване" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "Абониране" @@ -3254,7 +3254,7 @@ msgstr "Не можете да повтаряте собствена бележ msgid "You already repeated that notice." msgstr "Вече сте повторили тази бележка." -#: actions/repeat.php:114 lib/noticelist.php:676 +#: actions/repeat.php:114 lib/noticelist.php:677 msgid "Repeated" msgstr "Повторено" @@ -3398,7 +3398,7 @@ msgstr "Организация" msgid "Description" msgstr "Описание" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "Статистики" @@ -3511,67 +3511,67 @@ msgstr "Група %s" msgid "%1$s group, page %2$d" msgstr "Членове на групата %s, страница %d" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 msgid "Group profile" msgstr "Профил на групата" -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "URL" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 msgid "Note" msgstr "Бележка" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "Псевдоними" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Емисия с бележки на %s" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Емисия с бележки на %s" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "Емисия с бележки на %s" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, php-format msgid "FOAF for %s group" msgstr "Изходяща кутия за %s" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 msgid "Members" msgstr "Членове" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "Всички членове" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 msgid "Created" msgstr "Създадена на" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3581,7 +3581,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3590,7 +3590,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "Администратори" @@ -4132,12 +4132,12 @@ msgstr "Няма такъв документ." msgid "Tag %s" msgstr "Етикети" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "Потребителски профил" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "Снимка" @@ -5099,11 +5099,11 @@ msgstr "Премахване" msgid "Attachments" msgstr "" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "Автор" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 msgid "Provider" msgstr "Доставчик" @@ -5851,7 +5851,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 msgid "from" msgstr "от" @@ -6005,23 +6005,23 @@ msgstr "З" msgid "at" msgstr "" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 msgid "in context" msgstr "в контекст" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 msgid "Repeated by" msgstr "Повторено от" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "Отговаряне на тази бележка" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 msgid "Reply" msgstr "Отговор" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 msgid "Notice repeated" msgstr "Бележката е повторена." @@ -6299,46 +6299,46 @@ msgstr "Отписване от този потребител" msgid "Unsubscribe" msgstr "Отписване" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Редактиране на аватара" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "Потребителски действия" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 msgid "Edit profile settings" msgstr "Редактиране на профила" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "Редактиране" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "Изпращате на пряко съобщение до този потребител." -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "Съобщение" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 #, fuzzy msgid "User role" msgstr "Потребителски профил" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 #, fuzzy msgctxt "role" msgid "Administrator" msgstr "Администратори" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 msgctxt "role" msgid "Moderator" msgstr "" diff --git a/locale/br/LC_MESSAGES/statusnet.po b/locale/br/LC_MESSAGES/statusnet.po index 613ecff7b..9a5a4bc0b 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-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:42:13+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:26:45+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: br\n" "X-Message-Group: out-statusnet\n" @@ -276,11 +276,11 @@ msgstr "Ne c'helloc'h ket ho stankañ ho unan !" #: actions/apiblockcreate.php:126 msgid "Block user failed." -msgstr "N'eo ket bet stanke an implijer." +msgstr "N'eus ket bet tu da stankañ an implijer." #: actions/apiblockdestroy.php:114 msgid "Unblock user failed." -msgstr "N'eus ket bet tu distankañ an implijer." +msgstr "N'eus ket bet tu da zistankañ an implijer." #: actions/apidirectmessage.php:89 #, php-format @@ -562,9 +562,9 @@ msgstr "Kont" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "Lesanv" @@ -706,7 +706,7 @@ msgstr "Ment ebet." msgid "Invalid size." msgstr "Ment direizh." -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Avatar" @@ -738,7 +738,7 @@ msgid "Preview" msgstr "Rakwelet" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "Diverkañ" @@ -848,7 +848,7 @@ msgstr "Distankañ" #: actions/blockedfromgroup.php:320 lib/unblockform.php:80 msgid "Unblock this user" -msgstr "Distankañ an implijer-se" +msgstr "Distankañ an implijer-mañ" #: actions/bookmarklet.php:50 msgid "Post to " @@ -977,13 +977,13 @@ msgstr "Ha sur oc'h ho peus c'hoant dilemel an ali-mañ ?" msgid "Do not delete this notice" msgstr "Arabat dilemel an ali-mañ" -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "Dilemel an ali-mañ" #: actions/deleteuser.php:67 msgid "You cannot delete users." -msgstr "Ne c'helloc'h ket diverkañ implijerien" +msgstr "N'hallit ket diverkañ implijerien." #: actions/deleteuser.php:74 msgid "You can only delete local users." @@ -1001,7 +1001,7 @@ msgstr "" #: actions/deleteuser.php:151 lib/deleteuserform.php:77 msgid "Delete this user" -msgstr "Diverkañ an implijer-se" +msgstr "Diverkañ an implijer-mañ" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 #: lib/groupnav.php:119 @@ -1339,7 +1339,7 @@ msgstr "Penndibaboù enrollet" #: actions/emailsettings.php:320 msgid "No email address." -msgstr "N'eus chomlec'h postel ebet." +msgstr "Chomlec'h postel ebet." #: actions/emailsettings.php:327 msgid "Cannot normalize that email address" @@ -1879,7 +1879,7 @@ msgstr "Fall eo ar postel : %s" #: actions/invite.php:110 msgid "Invitation(s) sent" -msgstr "Kaset eo bet ar bedadenn(où)" +msgstr "Pedadenn(où) kaset" #: actions/invite.php:112 msgid "Invite new users" @@ -1926,7 +1926,7 @@ msgstr "Chomlec'hioù an implijerien da bediñ (unan dre linenn)" #: actions/invite.php:192 msgid "Personal message" -msgstr "Kemenadenn bersonel" +msgstr "Kemennadenn bersonel" #: actions/invite.php:194 msgid "Optionally add a personal message to the invitation." @@ -2130,7 +2130,7 @@ msgstr "" #: actions/newmessage.php:181 msgid "Message sent" -msgstr "Kaset eo bet ar gemenadenn" +msgstr "Kemennadenn kaset" #: actions/newmessage.php:185 #, php-format @@ -2350,7 +2350,7 @@ msgstr "Kemmañ ho ger tremen." #: actions/passwordsettings.php:96 actions/recoverpassword.php:231 msgid "Password change" -msgstr "Kemmañ ar ger-tremen" +msgstr "Kemmañ ger-tremen" #: actions/passwordsettings.php:104 msgid "Old password" @@ -2387,7 +2387,7 @@ msgstr "Ne glot ket ar gerioù-tremen." #: actions/passwordsettings.php:165 msgid "Incorrect old password" -msgstr "ger-termen kozh amreizh" +msgstr "Ger-termen kozh direizh" #: actions/passwordsettings.php:181 msgid "Error saving user; invalid." @@ -2536,7 +2536,7 @@ msgstr "Atav" #: actions/pathsadminpanel.php:329 msgid "Use SSL" -msgstr "Implij SSl" +msgstr "Implijout SSL" #: actions/pathsadminpanel.php:330 msgid "When to use SSL" @@ -2602,8 +2602,8 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "Anv klok" @@ -2630,9 +2630,9 @@ msgid "Bio" msgstr "Buhezskrid" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "Lec'hiadur" @@ -2646,7 +2646,7 @@ msgstr "" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "Balizennoù" @@ -3063,7 +3063,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "En em enskrivañ" @@ -3099,7 +3099,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:676 +#: actions/repeat.php:114 lib/noticelist.php:677 msgid "Repeated" msgstr "Adlavaret" @@ -3157,7 +3157,7 @@ msgstr "" #: actions/repliesrss.php:72 #, php-format msgid "Replies to %1$s on %2$s!" -msgstr "" +msgstr "Respontoù da %1$s war %2$s !" #: actions/revokerole.php:75 #, fuzzy @@ -3166,7 +3166,7 @@ msgstr "Ne c'helloc'h ket kas kemennadennoù d'an implijer-mañ." #: actions/revokerole.php:82 msgid "User doesn't have this role." -msgstr "" +msgstr "n'en deus ket an implijer-mañ ar rol-se." #: actions/rsd.php:146 actions/version.php:157 msgid "StatusNet" @@ -3237,7 +3237,7 @@ msgstr "" msgid "Description" msgstr "" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "Stadegoù" @@ -3348,67 +3348,67 @@ msgstr "strollad %s" msgid "%1$s group, page %2$d" msgstr "" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 msgid "Group profile" msgstr "Profil ar strollad" -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "URL" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 msgid "Note" msgstr "Notenn" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "Aliasoù" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "Oberoù ar strollad" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, php-format msgid "FOAF for %s group" msgstr "" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 msgid "Members" msgstr "Izili" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(hini ebet)" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "An holl izili" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 msgid "Created" msgstr "Krouet" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3418,7 +3418,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3427,7 +3427,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "Merourien" @@ -3526,7 +3526,7 @@ msgstr "" #: actions/showstream.php:305 #, php-format msgid "Repeat of %s" -msgstr "" +msgstr "Adkemeret eus %s" #: actions/silence.php:65 actions/unsilence.php:65 msgid "You cannot silence users on this site." @@ -3636,9 +3636,8 @@ msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" #: actions/sitenoticeadminpanel.php:56 -#, fuzzy msgid "Site Notice" -msgstr "Ali" +msgstr "Ali al lec'hienn" #: actions/sitenoticeadminpanel.php:67 #, fuzzy @@ -3952,12 +3951,12 @@ msgstr "" msgid "Tag %s" msgstr "" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "Skeudenn" @@ -4841,11 +4840,11 @@ msgstr "" msgid "Attachments" msgstr "" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "Aozer" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 msgid "Provider" msgstr "Pourvezer" @@ -4932,7 +4931,7 @@ msgstr "" #: lib/command.php:336 #, php-format msgid "%s joined group %s" -msgstr "%s zo emezelet er strollad %s" +msgstr "emezelet eo %s er strollad %s" #: lib/command.php:373 #, php-format @@ -5570,7 +5569,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 msgid "from" msgstr "eus" @@ -5720,23 +5719,23 @@ msgstr "K" msgid "at" msgstr "e" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 msgid "in context" msgstr "" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 msgid "Repeated by" msgstr "" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 msgid "Reply" msgstr "Respont" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 msgid "Notice repeated" msgstr "" @@ -6004,46 +6003,46 @@ msgstr "" msgid "Unsubscribe" msgstr "" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Kemmañ an Avatar" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "Obererezh an implijer" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 msgid "Edit profile settings" msgstr "" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "Aozañ" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "Kas ur gemennadenn war-eeun d'an implijer-mañ" -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "Kemennadenn" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "Habaskaat" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 #, fuzzy msgid "User role" msgstr "Strolladoù implijerien" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 #, fuzzy msgctxt "role" msgid "Administrator" msgstr "Merourien" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 #, fuzzy msgctxt "role" msgid "Moderator" diff --git a/locale/ca/LC_MESSAGES/statusnet.po b/locale/ca/LC_MESSAGES/statusnet.po index 80c46e2bb..51d332093 100644 --- a/locale/ca/LC_MESSAGES/statusnet.po +++ b/locale/ca/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:42:16+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:26:48+0000\n" "Language-Team: Catalan\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ca\n" "X-Message-Group: out-statusnet\n" @@ -591,9 +591,9 @@ msgstr "Compte" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "Sobrenom" @@ -739,7 +739,7 @@ msgstr "Cap mida." msgid "Invalid size." msgstr "Mida invàlida." -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Avatar" @@ -772,7 +772,7 @@ msgid "Preview" msgstr "Vista prèvia" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "Suprimeix" @@ -1024,7 +1024,7 @@ msgstr "N'estàs segur que vols eliminar aquesta notificació?" msgid "Do not delete this notice" msgstr "No es pot esborrar la notificació." -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "Eliminar aquesta nota" @@ -2755,8 +2755,8 @@ msgstr "" "1-64 lletres en minúscula o números, sense signes de puntuació o espais" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "Nom complet" @@ -2784,9 +2784,9 @@ msgid "Bio" msgstr "Biografia" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "Ubicació" @@ -2800,7 +2800,7 @@ msgstr "" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "Etiquetes" @@ -3258,7 +3258,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL del teu perfil en un altre servei de microblogging compatible" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "Subscriure's" @@ -3301,7 +3301,7 @@ msgstr "No pots registrar-te si no estàs d'acord amb la llicència." msgid "You already repeated that notice." msgstr "Ja heu blocat l'usuari." -#: actions/repeat.php:114 lib/noticelist.php:676 +#: actions/repeat.php:114 lib/noticelist.php:677 msgid "Repeated" msgstr "Repetit" @@ -3449,7 +3449,7 @@ msgstr "Paginació" msgid "Description" msgstr "Descripció" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "Estadístiques" @@ -3562,67 +3562,67 @@ msgstr "%s grup" msgid "%1$s group, page %2$d" msgstr "%s membre/s en el grup, pàgina %d" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 msgid "Group profile" msgstr "Perfil del grup" -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "URL" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 msgid "Note" msgstr "Avisos" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "Àlies" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "Accions del grup" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Feed d'avisos del grup %s" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Feed d'avisos del grup %s" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "Feed d'avisos del grup %s" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, php-format msgid "FOAF for %s group" msgstr "Safata de sortida per %s" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 msgid "Members" msgstr "Membres" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Cap)" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "Tots els membres" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 msgid "Created" msgstr "S'ha creat" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3632,7 +3632,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3643,7 +3643,7 @@ msgstr "" "**%s** és un grup d'usuaris a %%%%site.name%%%%, un servei de [microblogging]" "(http://ca.wikipedia.org/wiki/Microblogging)" -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "Administradors" @@ -4195,12 +4195,12 @@ msgstr "No argument de la id." msgid "Tag %s" msgstr "Etiqueta %s" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "Perfil de l'usuari" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "Foto" @@ -5160,11 +5160,11 @@ msgstr "Suprimeix" msgid "Attachments" msgstr "Adjuncions" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "Autoria" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 msgid "Provider" msgstr "Proveïdor" @@ -5913,7 +5913,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 msgid "from" msgstr "de" @@ -6068,23 +6068,23 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 msgid "in context" msgstr "en context" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 msgid "Repeated by" msgstr "Repetit per" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "respondre a aquesta nota" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 msgid "Reply" msgstr "Respon" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 #, fuzzy msgid "Notice repeated" msgstr "Notificació publicada" @@ -6360,46 +6360,46 @@ msgstr "Deixar d'estar subscrit des d'aquest usuari" msgid "Unsubscribe" msgstr "Cancel·lar subscripció" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Edita l'avatar" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "Accions de l'usuari" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 msgid "Edit profile settings" msgstr "Edita la configuració del perfil" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "Edita" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "Enviar un missatge directe a aquest usuari" -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "Missatge" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "Modera" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 #, fuzzy msgid "User role" msgstr "Perfil de l'usuari" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 #, fuzzy msgctxt "role" msgid "Administrator" msgstr "Administradors" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 #, fuzzy msgctxt "role" msgid "Moderator" diff --git a/locale/cs/LC_MESSAGES/statusnet.po b/locale/cs/LC_MESSAGES/statusnet.po index 74a2f9cc9..46f864bbc 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-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:42:19+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:27:02+0000\n" "Language-Team: Czech\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: cs\n" "X-Message-Group: out-statusnet\n" @@ -586,9 +586,9 @@ msgstr "O nás" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "Přezdívka" @@ -737,7 +737,7 @@ msgstr "Žádná velikost" msgid "Invalid size." msgstr "Neplatná velikost" -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Obrázek" @@ -770,7 +770,7 @@ msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "Odstranit" @@ -1023,7 +1023,7 @@ msgstr "" msgid "Do not delete this notice" msgstr "Žádné takové oznámení." -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "Odstranit toto oznámení" @@ -2735,8 +2735,8 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 znaků nebo čísel, bez teček, čárek a mezer" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "Celé jméno" @@ -2763,9 +2763,9 @@ msgid "Bio" msgstr "O mě" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "Umístění" @@ -2779,7 +2779,7 @@ msgstr "" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "" @@ -3212,7 +3212,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "Adresa profilu na jiných kompatibilních mikroblozích." #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "Odebírat" @@ -3253,7 +3253,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:676 +#: actions/repeat.php:114 lib/noticelist.php:677 #, fuzzy msgid "Repeated" msgstr "Vytvořit" @@ -3402,7 +3402,7 @@ msgstr "Umístění" msgid "Description" msgstr "Odběry" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "Statistiky" @@ -3513,70 +3513,70 @@ msgstr "" msgid "%1$s group, page %2$d" msgstr "Všechny odběry" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 #, fuzzy msgid "Group profile" msgstr "Žádné takové oznámení." -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 msgid "Note" msgstr "Poznámka" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Feed sdělení pro %s" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Feed sdělení pro %s" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "Feed sdělení pro %s" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, fuzzy, php-format msgid "FOAF for %s group" msgstr "Feed sdělení pro %s" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 #, fuzzy msgid "Members" msgstr "Členem od" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 #, fuzzy msgid "Created" msgstr "Vytvořit" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3586,7 +3586,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3595,7 +3595,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "" @@ -4135,13 +4135,13 @@ msgstr "Žádný takový dokument." msgid "Tag %s" msgstr "" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 #, fuzzy msgid "User profile" msgstr "Uživatel nemá profil." #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "" @@ -5103,11 +5103,11 @@ msgstr "Odstranit" msgid "Attachments" msgstr "" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 msgid "Provider" msgstr "Poskytovatel" @@ -5864,7 +5864,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 #, fuzzy msgid "from" msgstr " od " @@ -6021,26 +6021,26 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 #, fuzzy msgid "in context" msgstr "Žádný obsah!" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 #, fuzzy msgid "Repeated by" msgstr "Vytvořit" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 #, fuzzy msgid "Reply" msgstr "odpověď" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 #, fuzzy msgid "Notice repeated" msgstr "Sdělení" @@ -6321,46 +6321,46 @@ msgstr "" msgid "Unsubscribe" msgstr "Odhlásit" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Upravit avatar" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "Akce uživatele" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 #, fuzzy msgid "Edit profile settings" msgstr "Nastavené Profilu" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "" -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "Zpráva" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 #, fuzzy msgid "User role" msgstr "Uživatel nemá profil." -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 msgctxt "role" msgid "Administrator" msgstr "" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 msgctxt "role" msgid "Moderator" msgstr "" diff --git a/locale/de/LC_MESSAGES/statusnet.po b/locale/de/LC_MESSAGES/statusnet.po index 5f98f4650..01ff74d19 100644 --- a/locale/de/LC_MESSAGES/statusnet.po +++ b/locale/de/LC_MESSAGES/statusnet.po @@ -15,12 +15,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:42:22+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:27:05+0000\n" "Language-Team: German\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: out-statusnet\n" @@ -534,9 +534,8 @@ msgid "Invalid nickname / password!" msgstr "Benutzername oder Passwort falsch." #: actions/apioauthauthorize.php:159 -#, fuzzy msgid "Database error deleting OAuth application user." -msgstr "Fehler bei den Nutzereinstellungen." +msgstr "Datenbank Fehler beim Löschen des OAuth Anwendungs Nutzers." #: actions/apioauthauthorize.php:185 msgid "Database error inserting OAuth application user." @@ -590,9 +589,9 @@ msgstr "Konto" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "Nutzername" @@ -737,7 +736,7 @@ msgstr "Keine Größe." msgid "Invalid size." msgstr "Ungültige Größe." -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Avatar" @@ -770,7 +769,7 @@ msgid "Preview" msgstr "Vorschau" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "Löschen" @@ -1016,7 +1015,7 @@ msgstr "Bist du sicher, dass du diese Nachricht löschen möchtest?" msgid "Do not delete this notice" msgstr "Diese Nachricht nicht löschen" -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "Nachricht löschen" @@ -2183,9 +2182,9 @@ msgid "%1$s is already an admin for group \"%2$s\"." msgstr "%1$s ist bereits Administrator der Gruppe \"%2$s\"." #: actions/makeadmin.php:133 -#, fuzzy, php-format +#, php-format msgid "Can't get membership record for %1$s in group %2$s." -msgstr "Konnte Benutzer %s aus der Gruppe %s nicht entfernen" +msgstr "Konnte keinen Mitgliedseintrag für %1$s aus Gruppe %2$s empfangen." #: actions/makeadmin.php:146 #, php-format @@ -2743,8 +2742,8 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 Kleinbuchstaben oder Ziffern, keine Sonder- oder Leerzeichen" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "Vollständiger Name" @@ -2772,9 +2771,9 @@ msgid "Bio" msgstr "Biografie" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "Aufenthaltsort" @@ -2788,7 +2787,7 @@ msgstr "Teile meine aktuelle Position wenn ich Nachrichten sende" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "Stichwörter" @@ -3258,7 +3257,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "Profil-URL bei einem anderen kompatiblen Microbloggingdienst" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "Abonnieren" @@ -3295,7 +3294,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:676 +#: actions/repeat.php:114 lib/noticelist.php:677 msgid "Repeated" msgstr "Wiederholt" @@ -3439,7 +3438,7 @@ msgstr "Organisation" msgid "Description" msgstr "Beschreibung" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "Statistiken" @@ -3555,67 +3554,67 @@ msgstr "%s Gruppe" msgid "%1$s group, page %2$d" msgstr "%1$s Gruppe, Seite %d" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 msgid "Group profile" msgstr "Gruppenprofil" -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "URL" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 msgid "Note" msgstr "Nachricht" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "Pseudonyme" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "Gruppenaktionen" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Nachrichtenfeed der Gruppe %s (RSS 1.0)" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Nachrichtenfeed der Gruppe %s (RSS 2.0)" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Nachrichtenfeed der Gruppe %s (Atom)" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, php-format msgid "FOAF for %s group" msgstr "Postausgang von %s" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 msgid "Members" msgstr "Mitglieder" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Kein)" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "Alle Mitglieder" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 msgid "Created" msgstr "Erstellt" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3625,7 +3624,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3638,7 +3637,7 @@ msgstr "" "Freien Software [StatusNet](http://status.net/). Seine Mitglieder erstellen " "kurze Nachrichten über Ihr Leben und Interessen. " -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "Administratoren" @@ -4184,12 +4183,12 @@ msgstr "Kein ID Argument." msgid "Tag %s" msgstr "Tag %s" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "Benutzerprofil" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "Foto" @@ -5121,11 +5120,11 @@ msgstr "Entfernen" msgid "Attachments" msgstr "Anhänge" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "Autor" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 msgid "Provider" msgstr "Anbieter" @@ -5171,9 +5170,9 @@ msgid "Could not find a user with nickname %s" msgstr "Die bestätigte E-Mail-Adresse konnte nicht gespeichert werden." #: lib/command.php:143 -#, fuzzy, php-format +#, php-format msgid "Could not find a local user with nickname %s" -msgstr "Die bestätigte E-Mail-Adresse konnte nicht gespeichert werden." +msgstr "Konnte keinen lokalen Nutzer mit dem Nick %s finden" #: lib/command.php:176 msgid "Sorry, this command is not yet implemented." @@ -5253,6 +5252,8 @@ msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" +"%s ist ein entferntes Profil; man kann direkte Nachrichten nur an Nutzer auf " +"dem selben Server senden." #: lib/command.php:450 #, php-format @@ -5304,9 +5305,8 @@ msgid "Specify the name of the user to subscribe to" msgstr "Gib den Namen des Benutzers an, den du abonnieren möchtest" #: lib/command.php:602 -#, fuzzy msgid "Can't subscribe to OMB profiles by command." -msgstr "Du hast dieses Profil nicht abonniert." +msgstr "OMB Profile können nicht mit einem Kommando abonniert werden." #: lib/command.php:608 #, php-format @@ -5700,9 +5700,9 @@ msgid "[%s]" msgstr "[%s]" #: lib/jabber.php:408 -#, fuzzy, php-format +#, php-format msgid "Unknown inbox source %d." -msgstr "Unbekannte Sprache „%s“" +msgstr "Unbekannte inbox Quelle %d." #: lib/joinform.php:114 msgid "Join" @@ -5965,7 +5965,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:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 msgid "from" msgstr "von" @@ -6035,9 +6035,8 @@ 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 -#, fuzzy msgid "Could not determine file's MIME type." -msgstr "Konnte öffentlichen Stream nicht abrufen." +msgstr "Konnte den MIME-Typ nicht feststellen." #: lib/mediafile.php:270 #, php-format @@ -6124,23 +6123,23 @@ msgstr "W" msgid "at" msgstr "in" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 msgid "in context" msgstr "im Zusammenhang" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 msgid "Repeated by" msgstr "Wiederholt von" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "Auf diese Nachricht antworten" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 msgid "Reply" msgstr "Antworten" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 msgid "Notice repeated" msgstr "Nachricht wiederholt" @@ -6409,44 +6408,44 @@ msgstr "Lösche dein Abonnement von diesem Benutzer" msgid "Unsubscribe" msgstr "Abbestellen" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Avatar bearbeiten" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "Benutzeraktionen" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 msgid "Edit profile settings" msgstr "Profil Einstellungen ändern" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "Bearbeiten" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "Direkte Nachricht an Benutzer verschickt" -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "Nachricht" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "Moderieren" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 msgid "User role" msgstr "Benutzerrolle" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 msgctxt "role" msgid "Administrator" msgstr "Administrator" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 msgctxt "role" msgid "Moderator" msgstr "Moderator" diff --git a/locale/el/LC_MESSAGES/statusnet.po b/locale/el/LC_MESSAGES/statusnet.po index 8364d1ebf..beac936c4 100644 --- a/locale/el/LC_MESSAGES/statusnet.po +++ b/locale/el/LC_MESSAGES/statusnet.po @@ -1,6 +1,7 @@ # Translation of StatusNet to Greek # # Author@translatewiki.net: Crazymadlover +# Author@translatewiki.net: Dead3y3 # Author@translatewiki.net: Omnipaedista # -- # 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-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:42:26+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:27:09+0000\n" "Language-Team: Greek\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: el\n" "X-Message-Group: out-statusnet\n" @@ -28,31 +29,30 @@ msgstr "Πρόσβαση" #. TRANS: Page notice #: actions/accessadminpanel.php:67 -#, fuzzy msgid "Site access settings" -msgstr "Ρυθμίσεις OpenID" +msgstr "Ρυθμίσεις πρόσβασης ιστοτόπου" #. TRANS: Form legend for registration form. #: actions/accessadminpanel.php:161 -#, fuzzy msgid "Registration" -msgstr "Περιγραφή" +msgstr "Εγγραφή" #. TRANS: Checkbox instructions for admin setting "Private" #: actions/accessadminpanel.php:165 msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "" +"Απαγόρευση ανωνύμων χρηστών (μη συνδεδεμένων) από το να βλέπουν τον ιστότοπο;" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 msgctxt "LABEL" msgid "Private" -msgstr "" +msgstr "Ιδιωτικό" #. TRANS: Checkbox instructions for admin setting "Invite only" #: actions/accessadminpanel.php:174 msgid "Make registration invitation only." -msgstr "" +msgstr "Κάντε την εγγραφή να είναι με πρόσκληση μόνο." #. TRANS: Checkbox label for configuring site as invite only. #: actions/accessadminpanel.php:176 @@ -62,24 +62,22 @@ msgstr "" #. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations) #: actions/accessadminpanel.php:183 msgid "Disable new registrations." -msgstr "" +msgstr "Απενεργοποίηση των νέων εγγραφών" #. TRANS: Checkbox label for disabling new user registrations. #: actions/accessadminpanel.php:185 msgid "Closed" -msgstr "" +msgstr "Κλειστό" #. TRANS: Title / tooltip for button to save access settings in site admin panel #: actions/accessadminpanel.php:202 -#, fuzzy msgid "Save access settings" -msgstr "Ρυθμίσεις OpenID" +msgstr "Αποθήκευση ρυθμίσεων πρόσβασης" #: actions/accessadminpanel.php:203 -#, fuzzy msgctxt "BUTTON" msgid "Save" -msgstr "Αποχώρηση" +msgstr "Αποθήκευση" #. TRANS: Server error when page not found (404) #: actions/all.php:64 actions/public.php:98 actions/replies.php:93 @@ -113,9 +111,9 @@ msgstr "Κανένας τέτοιος χρήστης." #. TRANS: Page title. %1$s is user nickname, %2$d is page number #: actions/all.php:86 -#, fuzzy, php-format +#, php-format msgid "%1$s and friends, page %2$d" -msgstr "%s και οι φίλοι του/της" +msgstr "%1$s και φίλοι, σελίδα 2%$d" #. TRANS: Page title. %1$s is user nickname #. TRANS: H1 text. %1$s is user nickname @@ -150,6 +148,8 @@ msgstr "Ροή φίλων του/της %s (Atom)" msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" +"Αυτό είναι το χρονοδιάγραμμα για %s και φίλους, αλλά κανείς δεν έχει κάνει " +"καμία αποστολή ακόμα." #: actions/all.php:139 #, php-format @@ -157,6 +157,8 @@ msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" +"Δοκιμάστε την εγγραφή σε περισσότερους ανθρώπους, [ενταχθείτε σε μια ομάδα] " +"(%%action.groups%%) ή αποστείλετε κάτι ο ίδιος." #. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@" #: actions/all.php:142 @@ -575,9 +577,9 @@ msgstr "Λογαριασμός" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "Ψευδώνυμο" @@ -721,7 +723,7 @@ msgstr "" msgid "Invalid size." msgstr "" -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "" @@ -753,7 +755,7 @@ msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "Διαγραφή" @@ -1004,7 +1006,7 @@ msgstr "Είσαι σίγουρος ότι θες να διαγράψεις αυ msgid "Do not delete this notice" msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "" @@ -2681,8 +2683,8 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 μικρά γράμματα ή αριθμοί, χωρίς σημεία στίξης ή κενά" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "Ονοματεπώνυμο" @@ -2710,9 +2712,9 @@ msgid "Bio" msgstr "Βιογραφικό" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "Τοποθεσία" @@ -2726,7 +2728,7 @@ msgstr "" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "" @@ -3172,7 +3174,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "" @@ -3211,7 +3213,7 @@ msgstr "" msgid "You already repeated that notice." msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." -#: actions/repeat.php:114 lib/noticelist.php:676 +#: actions/repeat.php:114 lib/noticelist.php:677 #, fuzzy msgid "Repeated" msgstr "Δημιουργία" @@ -3355,7 +3357,7 @@ msgstr "Προσκλήσεις" msgid "Description" msgstr "Περιγραφή" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "" @@ -3467,68 +3469,68 @@ msgstr "" msgid "%1$s group, page %2$d" msgstr "Αδύνατη η αποθήκευση των νέων πληροφοριών του προφίλ" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 #, fuzzy msgid "Group profile" msgstr "Αδύνατη η αποθήκευση του προφίλ." -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 msgid "Note" msgstr "" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, fuzzy, php-format msgid "FOAF for %s group" msgstr "Αδύνατη η αποθήκευση του προφίλ." -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 msgid "Members" msgstr "Μέλη" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 msgid "Created" msgstr "Δημιουργημένος" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3538,7 +3540,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3547,7 +3549,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "Διαχειριστές" @@ -4080,12 +4082,12 @@ msgstr "" msgid "Tag %s" msgstr "" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "Προφίλ χρήστη" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "" @@ -5010,11 +5012,11 @@ msgstr "" msgid "Attachments" msgstr "" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 msgid "Provider" msgstr "" @@ -5749,7 +5751,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 msgid "from" msgstr "από" @@ -5902,23 +5904,23 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 msgid "in context" msgstr "" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 msgid "Repeated by" msgstr "Επαναλαμβάνεται από" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 msgid "Reply" msgstr "" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 #, fuzzy msgid "Notice repeated" msgstr "Ρυθμίσεις OpenID" @@ -6194,46 +6196,46 @@ msgstr "" msgid "Unsubscribe" msgstr "" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 msgid "Edit profile settings" msgstr "Επεξεργασία ρυθμίσεων προφίλ" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "Επεξεργασία" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "" -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "Μήνυμα" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 #, fuzzy msgid "User role" msgstr "Προφίλ χρήστη" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 #, fuzzy msgctxt "role" msgid "Administrator" msgstr "Διαχειριστές" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 msgctxt "role" msgid "Moderator" msgstr "" diff --git a/locale/en_GB/LC_MESSAGES/statusnet.po b/locale/en_GB/LC_MESSAGES/statusnet.po index 4a50e8a19..2044bd0c9 100644 --- a/locale/en_GB/LC_MESSAGES/statusnet.po +++ b/locale/en_GB/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:42:29+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:27:12+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 (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: en-gb\n" "X-Message-Group: out-statusnet\n" @@ -580,9 +580,9 @@ msgstr "Account" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "Nickname" @@ -724,7 +724,7 @@ msgstr "No size." msgid "Invalid size." msgstr "Invalid size." -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Avatar" @@ -756,7 +756,7 @@ msgid "Preview" msgstr "Preview" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "Delete" @@ -1002,7 +1002,7 @@ msgstr "Are you sure you want to delete this notice?" msgid "Do not delete this notice" msgstr "Do not delete this notice" -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "Delete this notice" @@ -2697,8 +2697,8 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 lowercase letters or numbers, no punctuation or spaces" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "Full name" @@ -2725,9 +2725,9 @@ msgid "Bio" msgstr "Bio" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "Location" @@ -2741,7 +2741,7 @@ msgstr "" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "Tags" @@ -3192,7 +3192,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL of your profile on another compatible microblogging service" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "Subscribe" @@ -3228,7 +3228,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:676 +#: actions/repeat.php:114 lib/noticelist.php:677 msgid "Repeated" msgstr "Repeated" @@ -3371,7 +3371,7 @@ msgstr "Organization" msgid "Description" msgstr "Description" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "Statistics" @@ -3489,67 +3489,67 @@ msgstr "%s group" msgid "%1$s group, page %2$d" msgstr "%1$s group, page %2$d" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 msgid "Group profile" msgstr "Group profile" -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "URL" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 msgid "Note" msgstr "Note" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "Group actions" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Notice feed for %s group (RSS 1.0)" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Notice feed for %s group (RSS 2.0)" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Notice feed for %s group (Atom)" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, php-format msgid "FOAF for %s group" msgstr "Outbox for %s" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 msgid "Members" msgstr "Members" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(None)" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "All members" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 msgid "Created" msgstr "Created" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3564,7 +3564,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:463 +#: actions/showgroup.php:464 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3577,7 +3577,7 @@ msgstr "" "[StatusNet](http://status.net/) tool. Its members share short messages about " "their life and interests. " -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "Admins" @@ -4115,12 +4115,12 @@ msgstr "No ID argument." msgid "Tag %s" msgstr "Tag %s" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "User profile" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "Photo" @@ -5059,11 +5059,11 @@ msgstr "Revoke" msgid "Attachments" msgstr "" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 msgid "Provider" msgstr "Provider" @@ -5806,7 +5806,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 msgid "from" msgstr "from" @@ -5956,23 +5956,23 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 msgid "in context" msgstr "in context" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 msgid "Repeated by" msgstr "Repeated by" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "Reply to this notice" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 msgid "Reply" msgstr "Reply" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 msgid "Notice repeated" msgstr "Notice repeated" @@ -6240,46 +6240,46 @@ msgstr "Unsubscribe from this user" msgid "Unsubscribe" msgstr "Unsubscribe" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Edit Avatar" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "User actions" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 msgid "Edit profile settings" msgstr "Edit profile settings" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "Send a direct message to this user" -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "Message" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 #, fuzzy msgid "User role" msgstr "User profile" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 #, fuzzy msgctxt "role" msgid "Administrator" msgstr "Admins" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 msgctxt "role" msgid "Moderator" msgstr "" diff --git a/locale/es/LC_MESSAGES/statusnet.po b/locale/es/LC_MESSAGES/statusnet.po index 1f18b6066..712cb1a97 100644 --- a/locale/es/LC_MESSAGES/statusnet.po +++ b/locale/es/LC_MESSAGES/statusnet.po @@ -13,12 +13,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:42:32+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:27:15+0000\n" "Language-Team: Spanish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: es\n" "X-Message-Group: out-statusnet\n" @@ -587,9 +587,9 @@ msgstr "Cuenta" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "Apodo" @@ -733,7 +733,7 @@ msgstr "Ningún tamaño." msgid "Invalid size." msgstr "Tamaño inválido." -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Avatar" @@ -765,7 +765,7 @@ msgid "Preview" msgstr "Vista previa" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "Borrar" @@ -1012,7 +1012,7 @@ msgstr "¿Estás seguro de que quieres eliminar este aviso?" msgid "Do not delete this notice" msgstr "No eliminar este mensaje" -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "Borrar este aviso" @@ -2737,8 +2737,8 @@ msgstr "" "1-64 letras en minúscula o números, sin signos de puntuación o espacios" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "Nombre completo" @@ -2765,9 +2765,9 @@ msgid "Bio" msgstr "Biografía" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "Ubicación" @@ -2781,7 +2781,7 @@ msgstr "Compartir mi ubicación actual al publicar los mensajes" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "Tags" @@ -3242,7 +3242,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "El URL de tu perfil en otro servicio de microblogueo compatible" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "Suscribirse" @@ -3280,7 +3280,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:676 +#: actions/repeat.php:114 lib/noticelist.php:677 msgid "Repeated" msgstr "Repetido" @@ -3422,7 +3422,7 @@ msgstr "Organización" msgid "Description" msgstr "Descripción" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "Estadísticas" @@ -3534,68 +3534,68 @@ msgstr "Grupo %s" msgid "%1$s group, page %2$d" msgstr "Miembros del grupo %s, página %d" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 msgid "Group profile" msgstr "Perfil del grupo" -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "URL" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 msgid "Note" msgstr "Nota" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "Alias" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "Acciones del grupo" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Feed de avisos de grupo %s" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Feed de avisos de grupo %s" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "Feed de avisos de grupo %s" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, php-format msgid "FOAF for %s group" msgstr "Bandeja de salida para %s" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 #, fuzzy msgid "Members" msgstr "Miembros" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Ninguno)" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "Todos los miembros" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 msgid "Created" msgstr "Creado" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3605,7 +3605,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3616,7 +3616,7 @@ msgstr "" "**%s** es un grupo de usuarios en %%%%site.name%%%%, un servicio [micro-" "blogging](http://en.wikipedia.org/wiki/Micro-blogging) " -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "Administradores" @@ -4163,12 +4163,12 @@ msgstr "No existe argumento de ID." msgid "Tag %s" msgstr "%s tag" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "Perfil de usuario" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "Foto" @@ -5122,11 +5122,11 @@ msgstr "Revocar" msgid "Attachments" msgstr "" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "Autor" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 msgid "Provider" msgstr "Proveedor" @@ -5877,7 +5877,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 msgid "from" msgstr "desde" @@ -6033,24 +6033,24 @@ msgstr "" msgid "at" msgstr "en" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 msgid "in context" msgstr "en contexto" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 #, fuzzy msgid "Repeated by" msgstr "Crear" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "Responder este aviso." -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 msgid "Reply" msgstr "Responder" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 #, fuzzy msgid "Notice repeated" msgstr "Aviso borrado" @@ -6331,46 +6331,46 @@ msgstr "Desuscribirse de este usuario" msgid "Unsubscribe" msgstr "Cancelar suscripción" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "editar avatar" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "Acciones de usuario" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 msgid "Edit profile settings" msgstr "Editar configuración del perfil" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "Editar" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "Enviar un mensaje directo a este usuario" -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "Mensaje" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "Moderar" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 #, fuzzy msgid "User role" msgstr "Perfil de usuario" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 #, fuzzy msgctxt "role" msgid "Administrator" msgstr "Administradores" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 #, fuzzy msgctxt "role" msgid "Moderator" diff --git a/locale/fa/LC_MESSAGES/statusnet.po b/locale/fa/LC_MESSAGES/statusnet.po index c781194ad..9c7e9d9e5 100644 --- a/locale/fa/LC_MESSAGES/statusnet.po +++ b/locale/fa/LC_MESSAGES/statusnet.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:42:38+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:27:21+0000\n" "Last-Translator: Ahmad Sufi Mahmudi\n" "Language-Team: Persian\n" "MIME-Version: 1.0\n" @@ -20,7 +20,7 @@ msgstr "" "X-Language-Code: fa\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" #. TRANS: Page title @@ -579,9 +579,9 @@ msgstr "حساب کاربری" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "نام کاربری" @@ -725,7 +725,7 @@ msgstr "بدون اندازه." msgid "Invalid size." msgstr "اندازه‌ی نادرست" -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "چهره" @@ -758,7 +758,7 @@ msgid "Preview" msgstr "پیش‌نمایش" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "حذف" @@ -1012,7 +1012,7 @@ msgstr "آیا اطمینان دارید که می‌خواهید این پیا msgid "Do not delete this notice" msgstr "این پیام را پاک نکن" -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "این پیام را پاک کن" @@ -2706,8 +2706,8 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "۱-۶۴ کاراکتر کوچک یا اعداد، بدون نقطه گذاری یا فاصله" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "نام‌کامل" @@ -2734,9 +2734,9 @@ msgid "Bio" msgstr "شرح‌حال" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "موقعیت" @@ -2750,7 +2750,7 @@ msgstr "" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "برچسب‌ها" @@ -3175,7 +3175,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "" @@ -3211,7 +3211,7 @@ msgstr "شما نمی توانید آگهی خودتان را تکرار کنی msgid "You already repeated that notice." msgstr "شما قبلا آن آگهی را تکرار کردید." -#: actions/repeat.php:114 lib/noticelist.php:676 +#: actions/repeat.php:114 lib/noticelist.php:677 msgid "Repeated" msgstr "" @@ -3358,7 +3358,7 @@ msgstr "صفحه بندى" msgid "Description" msgstr "" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "آمار" @@ -3471,67 +3471,67 @@ msgstr "" msgid "%1$s group, page %2$d" msgstr "اعضای گروه %s، صفحهٔ %d" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 msgid "Group profile" msgstr "" -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 msgid "Note" msgstr "" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "نام های مستعار" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, php-format msgid "FOAF for %s group" msgstr "" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 msgid "Members" msgstr "اعضا" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "هیچ" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "همه ی اعضا" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 msgid "Created" msgstr "ساخته شد" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3541,7 +3541,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3550,7 +3550,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "" @@ -4089,12 +4089,12 @@ msgstr "" msgid "Tag %s" msgstr "" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "پروفایل کاربر" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "" @@ -5015,11 +5015,11 @@ msgstr "حذف" msgid "Attachments" msgstr "ضمائم" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "مؤلف" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 msgid "Provider" msgstr "مهیا کننده" @@ -5756,7 +5756,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 msgid "from" msgstr "از" @@ -5911,23 +5911,23 @@ msgstr "" msgid "at" msgstr "در" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 msgid "in context" msgstr "در زمینه" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 msgid "Repeated by" msgstr "تکرار از" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "به این آگهی جواب دهید" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 msgid "Reply" msgstr "جواب دادن" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 msgid "Notice repeated" msgstr "آگهی تکرار شد" @@ -6196,45 +6196,45 @@ msgstr "" msgid "Unsubscribe" msgstr "" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "ویرایش اواتور" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 msgid "Edit profile settings" msgstr "ویرایش تنظیمات پروفيل" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "ویرایش" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "پیام مستقیم به این کاربر بفرستید" -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "پیام" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 #, fuzzy msgid "User role" msgstr "پروفایل کاربر" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 msgctxt "role" msgid "Administrator" msgstr "" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 msgctxt "role" msgid "Moderator" msgstr "" diff --git a/locale/fi/LC_MESSAGES/statusnet.po b/locale/fi/LC_MESSAGES/statusnet.po index aa53f56f2..e9ebda511 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-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:42:35+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:27:18+0000\n" "Language-Team: Finnish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fi\n" "X-Message-Group: out-statusnet\n" @@ -594,9 +594,9 @@ msgstr "Käyttäjätili" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "Tunnus" @@ -743,7 +743,7 @@ msgstr "Kokoa ei ole." msgid "Invalid size." msgstr "Koko ei kelpaa." -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Kuva" @@ -775,7 +775,7 @@ msgid "Preview" msgstr "Esikatselu" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "Poista" @@ -1025,7 +1025,7 @@ msgstr "Oletko varma että haluat poistaa tämän päivityksen?" msgid "Do not delete this notice" msgstr "Älä poista tätä päivitystä" -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "Poista tämä päivitys" @@ -2784,8 +2784,8 @@ msgstr "" "välilyöntejä" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "Koko nimi" @@ -2812,9 +2812,9 @@ msgid "Bio" msgstr "Tietoja" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "Kotipaikka" @@ -2828,7 +2828,7 @@ msgstr "" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "Tagit" @@ -3286,7 +3286,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "Profiilisi URL-osoite toisessa yhteensopivassa mikroblogauspalvelussa" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "Tilaa" @@ -3330,7 +3330,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:676 +#: actions/repeat.php:114 lib/noticelist.php:677 #, fuzzy msgid "Repeated" msgstr "Luotu" @@ -3484,7 +3484,7 @@ msgstr "Sivutus" msgid "Description" msgstr "Kuvaus" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "Tilastot" @@ -3596,67 +3596,67 @@ msgstr "Ryhmä %s" msgid "%1$s group, page %2$d" msgstr "Ryhmän %s jäsenet, sivu %d" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 msgid "Group profile" msgstr "Ryhmän profiili" -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "URL" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 msgid "Note" msgstr "Huomaa" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "Aliakset" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "Ryhmän toiminnot" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Syöte ryhmän %s päivityksille (RSS 1.0)" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Syöte ryhmän %s päivityksille (RSS 2.0)" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Syöte ryhmän %s päivityksille (Atom)" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, php-format msgid "FOAF for %s group" msgstr "Käyttäjän %s lähetetyt viestit" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 msgid "Members" msgstr "Jäsenet" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Tyhjä)" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "Kaikki jäsenet" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 msgid "Created" msgstr "Luotu" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3666,7 +3666,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3677,7 +3677,7 @@ msgstr "" "**%s** on ryhmä palvelussa %%%%site.name%%%%, joka on [mikroblogauspalvelu]" "(http://en.wikipedia.org/wiki/Micro-blogging)" -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "Ylläpitäjät" @@ -4228,12 +4228,12 @@ msgstr "Ei id parametria." msgid "Tag %s" msgstr "Tagi %s" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "Käyttäjän profiili" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "Kuva" @@ -5208,11 +5208,11 @@ msgstr "Poista" msgid "Attachments" msgstr "" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 #, fuzzy msgid "Provider" msgstr "Profiili" @@ -5976,7 +5976,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 #, fuzzy msgid "from" msgstr " lähteestä " @@ -6132,25 +6132,25 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 #, fuzzy msgid "in context" msgstr "Ei sisältöä!" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 #, fuzzy msgid "Repeated by" msgstr "Luotu" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "Vastaa tähän päivitykseen" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 msgid "Reply" msgstr "Vastaus" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 #, fuzzy msgid "Notice repeated" msgstr "Päivitys on poistettu." @@ -6433,48 +6433,48 @@ msgstr "Peruuta tämän käyttäjän tilaus" msgid "Unsubscribe" msgstr "Peruuta tilaus" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 #, fuzzy msgid "Edit Avatar" msgstr "Kuva" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "Käyttäjän toiminnot" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 #, fuzzy msgid "Edit profile settings" msgstr "Profiiliasetukset" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "Lähetä suora viesti tälle käyttäjälle" -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "Viesti" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 #, fuzzy msgid "User role" msgstr "Käyttäjän profiili" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 #, fuzzy msgctxt "role" msgid "Administrator" msgstr "Ylläpitäjät" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 msgctxt "role" msgid "Moderator" msgstr "" diff --git a/locale/fr/LC_MESSAGES/statusnet.po b/locale/fr/LC_MESSAGES/statusnet.po index 02bdef611..8665d9785 100644 --- a/locale/fr/LC_MESSAGES/statusnet.po +++ b/locale/fr/LC_MESSAGES/statusnet.po @@ -14,12 +14,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:42:42+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:27:24+0000\n" "Language-Team: French\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: out-statusnet\n" @@ -593,9 +593,9 @@ msgstr "Compte" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "Pseudo" @@ -739,7 +739,7 @@ msgstr "Aucune taille" msgid "Invalid size." msgstr "Taille incorrecte." -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Avatar" @@ -773,7 +773,7 @@ msgid "Preview" msgstr "Aperçu" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "Supprimer" @@ -1019,7 +1019,7 @@ msgstr "Voulez-vous vraiment supprimer cet avis ?" msgid "Do not delete this notice" msgstr "Ne pas supprimer cet avis" -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "Supprimer cet avis" @@ -2750,8 +2750,8 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1 à 64 lettres minuscules ou chiffres, sans ponctuation ni espaces" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "Nom complet" @@ -2778,9 +2778,9 @@ msgid "Bio" msgstr "Bio" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "Emplacement" @@ -2794,7 +2794,7 @@ msgstr "Partager ma localisation lorsque je poste des avis" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "Marques" @@ -3265,7 +3265,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL de votre profil sur un autre service de micro-blogging compatible" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "S’abonner" @@ -3302,7 +3302,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:676 +#: actions/repeat.php:114 lib/noticelist.php:677 msgid "Repeated" msgstr "Repris" @@ -3448,7 +3448,7 @@ msgstr "Organisation" msgid "Description" msgstr "Description" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "Statistiques" @@ -3569,67 +3569,67 @@ msgstr "Groupe %s" msgid "%1$s group, page %2$d" msgstr "Groupe %1$s, page %2$d" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 msgid "Group profile" msgstr "Profil du groupe" -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "URL" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 msgid "Note" msgstr "Note" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "Alias" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "Actions du groupe" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Fil des avis du groupe %s (RSS 1.0)" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Fil des avis du groupe %s (RSS 2.0)" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Fil des avis du groupe %s (Atom)" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, php-format msgid "FOAF for %s group" msgstr "ami d’un ami pour le groupe %s" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 msgid "Members" msgstr "Membres" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(aucun)" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "Tous les membres" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 msgid "Created" msgstr "Créé" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3645,7 +3645,7 @@ msgstr "" "action.register%%%%) pour devenir membre de ce groupe et bien plus ! ([En " "lire plus](%%%%doc.help%%%%))" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3658,7 +3658,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:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "Administrateurs" @@ -4218,12 +4218,12 @@ msgstr "Aucun argument d’identifiant." msgid "Tag %s" msgstr "Marque %s" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "Profil de l’utilisateur" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "Photo" @@ -5161,11 +5161,11 @@ msgstr "Révoquer" msgid "Attachments" msgstr "Pièces jointes" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "Auteur" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 msgid "Provider" msgstr "Fournisseur" @@ -5211,9 +5211,9 @@ msgid "Could not find a user with nickname %s" msgstr "Impossible de trouver un utilisateur avec le pseudo %s" #: lib/command.php:143 -#, fuzzy, php-format +#, php-format msgid "Could not find a local user with nickname %s" -msgstr "Impossible de trouver un utilisateur avec le pseudo %s" +msgstr "Impossible de trouver un utilisateur local portant le pseudo %s" #: lib/command.php:176 msgid "Sorry, this command is not yet implemented." @@ -5293,6 +5293,8 @@ msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" +"%s est un profil distant ; vous ne pouvez envoyer de messages directs qu'aux " +"utilisateurs du même serveur." #: lib/command.php:450 #, php-format @@ -5348,9 +5350,8 @@ msgid "Specify the name of the user to subscribe to" msgstr "Indiquez le nom de l’utilisateur auquel vous souhaitez vous abonner" #: lib/command.php:602 -#, fuzzy msgid "Can't subscribe to OMB profiles by command." -msgstr "Vous n’êtes pas abonné(e) à ce profil." +msgstr "Impossible de s'inscrire aux profils OMB par cette commande." #: lib/command.php:608 #, php-format @@ -6030,7 +6031,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:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 msgid "from" msgstr "de" @@ -6186,23 +6187,23 @@ msgstr "O" msgid "at" msgstr "chez" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 msgid "in context" msgstr "dans le contexte" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 msgid "Repeated by" msgstr "Repris par" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "Répondre à cet avis" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 msgid "Reply" msgstr "Répondre" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 msgid "Notice repeated" msgstr "Avis repris" @@ -6470,44 +6471,44 @@ msgstr "Ne plus suivre cet utilisateur" msgid "Unsubscribe" msgstr "Désabonnement" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Modifier l’avatar" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "Actions de l’utilisateur" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 msgid "Edit profile settings" msgstr "Modifier les paramètres du profil" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "Modifier" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "Envoyer un message à cet utilisateur" -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "Message" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "Modérer" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 msgid "User role" msgstr "Rôle de l'utilisateur" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 msgctxt "role" msgid "Administrator" msgstr "Administrateur" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 msgctxt "role" msgid "Moderator" msgstr "Modérateur" diff --git a/locale/ga/LC_MESSAGES/statusnet.po b/locale/ga/LC_MESSAGES/statusnet.po index ee14c3a2f..9a4d6adbe 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-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:42:45+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:27:27+0000\n" "Language-Team: Irish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ga\n" "X-Message-Group: out-statusnet\n" @@ -591,9 +591,9 @@ msgstr "Sobre" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "Alcume" @@ -742,7 +742,7 @@ msgstr "Sen tamaño." msgid "Invalid size." msgstr "Tamaño inválido." -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Avatar" @@ -775,7 +775,7 @@ msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 #, fuzzy msgid "Delete" msgstr "eliminar" @@ -1038,7 +1038,7 @@ msgstr "Estas seguro que queres eliminar este chío?" msgid "Do not delete this notice" msgstr "Non se pode eliminar este chíos." -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 #, fuzzy msgid "Delete this notice" msgstr "Eliminar chío" @@ -2815,8 +2815,8 @@ msgstr "" "De 1 a 64 letras minúsculas ou númeors, nin espazos nin signos de puntuación" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "Nome completo" @@ -2844,9 +2844,9 @@ msgid "Bio" msgstr "Bio" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "Localización" @@ -2860,7 +2860,7 @@ msgstr "" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "Tags" @@ -3327,7 +3327,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "Enderezo do teu perfil en outro servizo de microblogaxe compatíbel" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "Subscribir" @@ -3370,7 +3370,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:676 +#: actions/repeat.php:114 lib/noticelist.php:677 #, fuzzy msgid "Repeated" msgstr "Crear" @@ -3520,7 +3520,7 @@ msgstr "Invitación(s) enviada(s)." msgid "Description" msgstr "Subscricións" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "Estatísticas" @@ -3632,73 +3632,73 @@ msgstr "" msgid "%1$s group, page %2$d" msgstr "Tódalas subscricións" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 #, fuzzy msgid "Group profile" msgstr "Non existe o perfil." -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 #, fuzzy msgid "Note" msgstr "Chíos" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 #, fuzzy msgid "Group actions" msgstr "Outras opcions" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Fonte de chíos para %s" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Fonte de chíos para %s" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "Fonte de chíos para %s" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, fuzzy, php-format msgid "FOAF for %s group" msgstr "Band. Saída para %s" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 #, fuzzy msgid "Members" msgstr "Membro dende" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 #, fuzzy msgid "(None)" msgstr "(nada)" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 #, fuzzy msgid "Created" msgstr "Crear" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3712,7 +3712,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:463 +#: actions/showgroup.php:464 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3725,7 +3725,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:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "" @@ -4279,13 +4279,13 @@ msgstr "Non hai argumento id." msgid "Tag %s" msgstr "Tags" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 #, fuzzy msgid "User profile" msgstr "O usuario non ten perfil." #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "" @@ -5269,11 +5269,11 @@ msgstr "Eliminar" msgid "Attachments" msgstr "" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 #, fuzzy msgid "Provider" msgstr "Perfil" @@ -6127,7 +6127,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 #, fuzzy msgid "from" msgstr " dende " @@ -6286,27 +6286,27 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 #, fuzzy msgid "in context" msgstr "Sen contido!" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 #, fuzzy msgid "Repeated by" msgstr "Crear" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 #, fuzzy msgid "Reply to this notice" msgstr "Non se pode eliminar este chíos." -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 #, fuzzy msgid "Reply" msgstr "contestar" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 #, fuzzy msgid "Notice repeated" msgstr "Chío publicado" @@ -6600,50 +6600,50 @@ msgstr "Desuscribir de %s" msgid "Unsubscribe" msgstr "Eliminar subscrición" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 #, fuzzy msgid "Edit Avatar" msgstr "Avatar" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 #, fuzzy msgid "User actions" msgstr "Outras opcions" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 #, fuzzy msgid "Edit profile settings" msgstr "Configuración de perfil" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 #, fuzzy msgid "Send a direct message to this user" msgstr "Non podes enviar mensaxes a este usurio." -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 #, fuzzy msgid "Message" msgstr "Nova mensaxe" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 #, fuzzy msgid "User role" msgstr "O usuario non ten perfil." -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 msgctxt "role" msgid "Administrator" msgstr "" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 msgctxt "role" msgid "Moderator" msgstr "" diff --git a/locale/he/LC_MESSAGES/statusnet.po b/locale/he/LC_MESSAGES/statusnet.po index 72ddfb14b..02d720ce9 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-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:43:00+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:27:29+0000\n" "Language-Team: Hebrew\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: out-statusnet\n" @@ -584,9 +584,9 @@ msgstr "אודות" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "כינוי" @@ -734,7 +734,7 @@ msgstr "אין גודל." msgid "Invalid size." msgstr "גודל לא חוקי." -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "תמונה" @@ -767,7 +767,7 @@ msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 #, fuzzy msgid "Delete" msgstr "מחק" @@ -1023,7 +1023,7 @@ msgstr "" msgid "Do not delete this notice" msgstr "אין הודעה כזו." -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "" @@ -2742,8 +2742,8 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1 עד 64 אותיות אנגליות קטנות או מספרים, ללא סימני פיסוק או רווחים." #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "שם מלא" @@ -2771,9 +2771,9 @@ msgid "Bio" msgstr "ביוגרפיה" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "מיקום" @@ -2787,7 +2787,7 @@ msgstr "" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "" @@ -3215,7 +3215,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "כתובת הפרופיל שלך בשרות ביקרובלוג תואם אחר" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "הירשם כמנוי" @@ -3256,7 +3256,7 @@ msgstr "לא ניתן להירשם ללא הסכמה לרשיון" msgid "You already repeated that notice." msgstr "כבר נכנסת למערכת!" -#: actions/repeat.php:114 lib/noticelist.php:676 +#: actions/repeat.php:114 lib/noticelist.php:677 #, fuzzy msgid "Repeated" msgstr "צור" @@ -3405,7 +3405,7 @@ msgstr "מיקום" msgid "Description" msgstr "הרשמות" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "סטטיסטיקה" @@ -3516,71 +3516,71 @@ msgstr "" msgid "%1$s group, page %2$d" msgstr "כל המנויים" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 #, fuzzy msgid "Group profile" msgstr "אין הודעה כזו." -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 #, fuzzy msgid "Note" msgstr "הודעות" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "הזנת הודעות של %s" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "הזנת הודעות של %s" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "הזנת הודעות של %s" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, fuzzy, php-format msgid "FOAF for %s group" msgstr "הזנת הודעות של %s" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 #, fuzzy msgid "Members" msgstr "חבר מאז" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 #, fuzzy msgid "Created" msgstr "צור" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3590,7 +3590,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3599,7 +3599,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "" @@ -4137,13 +4137,13 @@ msgstr "אין מסמך כזה." msgid "Tag %s" msgstr "" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 #, fuzzy msgid "User profile" msgstr "למשתמש אין פרופיל." #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "" @@ -5104,11 +5104,11 @@ msgstr "הסר" msgid "Attachments" msgstr "" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 #, fuzzy msgid "Provider" msgstr "פרופיל" @@ -5864,7 +5864,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 msgid "from" msgstr "" @@ -6021,26 +6021,26 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 #, fuzzy msgid "in context" msgstr "אין תוכן!" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 #, fuzzy msgid "Repeated by" msgstr "צור" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 #, fuzzy msgid "Reply" msgstr "הגב" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 #, fuzzy msgid "Notice repeated" msgstr "הודעות" @@ -6324,48 +6324,48 @@ msgstr "" msgid "Unsubscribe" msgstr "בטל מנוי" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 #, fuzzy msgid "Edit Avatar" msgstr "תמונה" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 #, fuzzy msgid "Edit profile settings" msgstr "הגדרות הפרופיל" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "" -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 #, fuzzy msgid "Message" msgstr "הודעה חדשה" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 #, fuzzy msgid "User role" msgstr "למשתמש אין פרופיל." -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 msgctxt "role" msgid "Administrator" msgstr "" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 msgctxt "role" msgid "Moderator" msgstr "" diff --git a/locale/hsb/LC_MESSAGES/statusnet.po b/locale/hsb/LC_MESSAGES/statusnet.po index 0856b4277..48239383c 100644 --- a/locale/hsb/LC_MESSAGES/statusnet.po +++ b/locale/hsb/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:43:05+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:27:32+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: hsb\n" "X-Message-Group: out-statusnet\n" @@ -560,9 +560,9 @@ msgstr "Konto" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "Přimjeno" @@ -704,7 +704,7 @@ msgstr "Žana wulkosć." msgid "Invalid size." msgstr "Njepłaćiwa wulkosć." -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Awatar" @@ -737,7 +737,7 @@ msgid "Preview" msgstr "Přehlad" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "Zničić" @@ -975,7 +975,7 @@ msgstr "Chceš woprawdźe tutu zdźělenku wušmórnyć?" msgid "Do not delete this notice" msgstr "Tutu zdźělenku njewušmórnyć" -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "Tutu zdźělenku wušmórnyć" @@ -2591,8 +2591,8 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "Dospołne mjeno" @@ -2619,9 +2619,9 @@ msgid "Bio" msgstr "Biografija" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "Městno" @@ -2635,7 +2635,7 @@ msgstr "" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "" @@ -3053,7 +3053,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "Abonować" @@ -3089,7 +3089,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:676 +#: actions/repeat.php:114 lib/noticelist.php:677 msgid "Repeated" msgstr "Wospjetowany" @@ -3226,7 +3226,7 @@ msgstr "Organizacija" msgid "Description" msgstr "Wopisanje" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "Statistika" @@ -3337,67 +3337,67 @@ msgstr "" msgid "%1$s group, page %2$d" msgstr "%1$s skupina, strona %2$d" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 msgid "Group profile" msgstr "Skupinski profil" -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "URL" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 msgid "Note" msgstr "" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "Aliasy" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "Skupinske akcije" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, php-format msgid "FOAF for %s group" msgstr "" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 msgid "Members" msgstr "Čłonojo" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Žadyn)" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "Wšitcy čłonojo" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 msgid "Created" msgstr "Wutworjeny" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3407,7 +3407,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3416,7 +3416,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "Administratorojo" @@ -3933,12 +3933,12 @@ msgstr "Žadyn argument ID." msgid "Tag %s" msgstr "" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "Wužiwarski profil" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "Foto" @@ -4820,11 +4820,11 @@ msgstr "Wotwołać" msgid "Attachments" msgstr "" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "Awtor" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 msgid "Provider" msgstr "" @@ -5000,9 +5000,8 @@ msgid "Specify the name of the user to subscribe to" msgstr "" #: lib/command.php:602 -#, fuzzy msgid "Can't subscribe to OMB profiles by command." -msgstr "Njejsy tón profil abonował." +msgstr "OMB-profile njedadźa so přez přikaz abonować." #: lib/command.php:608 #, php-format @@ -5553,7 +5552,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 msgid "from" msgstr "wot" @@ -5703,23 +5702,23 @@ msgstr "Z" msgid "at" msgstr "" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 msgid "in context" msgstr "" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 msgid "Repeated by" msgstr "Wospjetowany wot" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "Na tutu zdźělenku wotmołwić" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 msgid "Reply" msgstr "Wotmołwić" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 msgid "Notice repeated" msgstr "Zdźělenka wospjetowana" @@ -5987,44 +5986,44 @@ msgstr "Tutoho wužiwarja wotskazać" msgid "Unsubscribe" msgstr "Wotskazać" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Awatar wobdźěłać" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "Wužiwarske akcije" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 msgid "Edit profile settings" msgstr "Profilowe nastajenja wobdźěłać" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "Wobdźěłać" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "Tutomu wužiwarja direktnu powěsć pósłać" -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "Powěsć" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 msgid "User role" msgstr "Wužiwarska róla" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 msgctxt "role" msgid "Administrator" msgstr "Administrator" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 msgctxt "role" msgid "Moderator" msgstr "" diff --git a/locale/ia/LC_MESSAGES/statusnet.po b/locale/ia/LC_MESSAGES/statusnet.po index 3169d6fa4..520fbf782 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-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:43:09+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:27:35+0000\n" "Language-Team: Interlingua\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: out-statusnet\n" @@ -578,9 +578,9 @@ msgstr "Conto" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "Pseudonymo" @@ -726,7 +726,7 @@ msgstr "Nulle dimension." msgid "Invalid size." msgstr "Dimension invalide." -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Avatar" @@ -759,7 +759,7 @@ msgid "Preview" msgstr "Previsualisation" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "Deler" @@ -1005,7 +1005,7 @@ msgstr "Es tu secur de voler deler iste nota?" msgid "Do not delete this notice" msgstr "Non deler iste nota" -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "Deler iste nota" @@ -2720,8 +2720,8 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 minusculas o numeros, sin punctuation o spatios" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "Nomine complete" @@ -2748,9 +2748,9 @@ msgid "Bio" msgstr "Bio" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "Loco" @@ -2764,7 +2764,7 @@ msgstr "Divulgar mi loco actual quando io publica notas" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "Etiquettas" @@ -3226,7 +3226,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL de tu profilo in un altere servicio de microblogging compatibile" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "Subscriber" @@ -3264,7 +3264,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:676 +#: actions/repeat.php:114 lib/noticelist.php:677 msgid "Repeated" msgstr "Repetite" @@ -3407,7 +3407,7 @@ msgstr "Organisation" msgid "Description" msgstr "Description" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "Statisticas" @@ -3528,67 +3528,67 @@ msgstr "Gruppo %s" msgid "%1$s group, page %2$d" msgstr "Gruppo %1$s, pagina %2$d" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 msgid "Group profile" msgstr "Profilo del gruppo" -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "URL" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 msgid "Note" msgstr "Nota" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "Aliases" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "Actiones del gruppo" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Syndication de notas pro le gruppo %s (RSS 1.0)" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Syndication de notas pro le gruppo %s (RSS 2.0)" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Syndication de notas pro le gruppo %s (Atom)" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, php-format msgid "FOAF for %s group" msgstr "Amico de un amico pro le gruppo %s" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 msgid "Members" msgstr "Membros" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Nulle)" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "Tote le membros" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 msgid "Created" msgstr "Create" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3603,7 +3603,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:463 +#: actions/showgroup.php:464 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3616,7 +3616,7 @@ msgstr "" "[StatusNet](http://status.net/). Su membros condivide breve messages super " "lor vita e interesses. " -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "Administratores" @@ -4168,12 +4168,12 @@ msgstr "Nulle parametro de ID." msgid "Tag %s" msgstr "Etiquetta %s" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "Profilo del usator" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "Photo" @@ -5103,11 +5103,11 @@ msgstr "Revocar" msgid "Attachments" msgstr "Annexos" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "Autor" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 msgid "Provider" msgstr "Providitor" @@ -5153,9 +5153,9 @@ msgid "Could not find a user with nickname %s" msgstr "Non poteva trovar un usator con pseudonymo %s" #: lib/command.php:143 -#, fuzzy, php-format +#, php-format msgid "Could not find a local user with nickname %s" -msgstr "Non poteva trovar un usator con pseudonymo %s" +msgstr "Non poteva trovar un usator local con pseudonymo %s" #: lib/command.php:176 msgid "Sorry, this command is not yet implemented." @@ -5235,6 +5235,8 @@ msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" +"%s es un profilo remote; tu pote solmente inviar messages directe a usatores " +"super le mesme servitor." #: lib/command.php:450 #, php-format @@ -5286,9 +5288,8 @@ msgid "Specify the name of the user to subscribe to" msgstr "Specifica le nomine del usator al qual subscriber te" #: lib/command.php:602 -#, fuzzy msgid "Can't subscribe to OMB profiles by command." -msgstr "Tu non es subscribite a iste profilo." +msgstr "Impossibile subscriber se a profilos OMB per medio de un commando." #: lib/command.php:608 #, php-format @@ -5963,7 +5964,7 @@ msgstr "" "altere usatores in conversation. Altere personas pote inviar te messages que " "solmente tu pote leger." -#: lib/mailbox.php:227 lib/noticelist.php:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 msgid "from" msgstr "de" @@ -6119,23 +6120,23 @@ msgstr "W" msgid "at" msgstr "a" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 msgid "in context" msgstr "in contexto" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 msgid "Repeated by" msgstr "Repetite per" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "Responder a iste nota" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 msgid "Reply" msgstr "Responder" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 msgid "Notice repeated" msgstr "Nota repetite" @@ -6403,44 +6404,44 @@ msgstr "Cancellar subscription a iste usator" msgid "Unsubscribe" msgstr "Cancellar subscription" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Modificar avatar" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "Actiones de usator" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 msgid "Edit profile settings" msgstr "Modificar configuration de profilo" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "Modificar" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "Inviar un message directe a iste usator" -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "Message" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "Moderar" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 msgid "User role" msgstr "Rolo de usator" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 msgctxt "role" msgid "Administrator" msgstr "Administrator" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 msgctxt "role" msgid "Moderator" msgstr "Moderator" diff --git a/locale/is/LC_MESSAGES/statusnet.po b/locale/is/LC_MESSAGES/statusnet.po index 71caf4b56..0aaa833df 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-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:43:19+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:27:38+0000\n" "Language-Team: Icelandic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: is\n" "X-Message-Group: out-statusnet\n" @@ -585,9 +585,9 @@ msgstr "Aðgangur" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "Stuttnefni" @@ -733,7 +733,7 @@ msgstr "Engin stærð." msgid "Invalid size." msgstr "Ótæk stærð." -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Mynd" @@ -765,7 +765,7 @@ msgid "Preview" msgstr "Forsýn" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "Eyða" @@ -1015,7 +1015,7 @@ msgstr "Ertu viss um að þú viljir eyða þessu babli?" msgid "Do not delete this notice" msgstr "" -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "Eyða þessu babli" @@ -2762,8 +2762,8 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 lágstafir eða tölustafir, engin greinarmerki eða bil" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "Fullt nafn" @@ -2793,9 +2793,9 @@ msgid "Bio" msgstr "Lýsing" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "Staðsetning" @@ -2809,7 +2809,7 @@ msgstr "" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "Merki" @@ -3257,7 +3257,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "Veffang persónulegrar síðu á samvirkandi örbloggsþjónustu" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "Gerast áskrifandi" @@ -3302,7 +3302,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:676 +#: actions/repeat.php:114 lib/noticelist.php:677 #, fuzzy msgid "Repeated" msgstr "Í sviðsljósinu" @@ -3449,7 +3449,7 @@ msgstr "Uppröðun" msgid "Description" msgstr "Lýsing" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "Tölfræði" @@ -3561,67 +3561,67 @@ msgstr "%s hópurinn" msgid "%1$s group, page %2$d" msgstr "Hópmeðlimir %s, síða %d" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 msgid "Group profile" msgstr "Hópssíðan" -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "Vefslóð" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 msgid "Note" msgstr "Athugasemd" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "Hópsaðgerðir" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, fuzzy, php-format msgid "FOAF for %s group" msgstr "%s hópurinn" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 msgid "Members" msgstr "Meðlimir" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Ekkert)" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "Allir meðlimir" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 msgid "Created" msgstr "" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3631,7 +3631,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3640,7 +3640,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "" @@ -4182,12 +4182,12 @@ msgstr "Ekkert einkenni gefið upp." msgid "Tag %s" msgstr "Merki %s" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "Persónuleg síða notanda" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "Ljósmynd" @@ -5156,11 +5156,11 @@ msgstr "Fjarlægja" msgid "Attachments" msgstr "" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 msgid "Provider" msgstr "" @@ -5910,7 +5910,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 #, fuzzy msgid "from" msgstr "frá" @@ -6066,24 +6066,24 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 msgid "in context" msgstr "" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 #, fuzzy msgid "Repeated by" msgstr "Í sviðsljósinu" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "Svara þessu babli" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 msgid "Reply" msgstr "Svara" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 #, fuzzy msgid "Notice repeated" msgstr "Babl sent inn" @@ -6363,45 +6363,45 @@ msgstr "Hætta sem áskrifandi að þessum notanda" msgid "Unsubscribe" msgstr "Fara úr áskrift" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "Notandaaðgerðir" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 msgid "Edit profile settings" msgstr "" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "Senda bein skilaboð til þessa notanda" -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "Skilaboð" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 #, fuzzy msgid "User role" msgstr "Persónuleg síða notanda" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 msgctxt "role" msgid "Administrator" msgstr "" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 msgctxt "role" msgid "Moderator" msgstr "" diff --git a/locale/it/LC_MESSAGES/statusnet.po b/locale/it/LC_MESSAGES/statusnet.po index 96328690d..6ecfdc0d2 100644 --- a/locale/it/LC_MESSAGES/statusnet.po +++ b/locale/it/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:43:26+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:27:41+0000\n" "Language-Team: Italian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: it\n" "X-Message-Group: out-statusnet\n" @@ -582,9 +582,9 @@ msgstr "Account" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "Soprannome" @@ -727,7 +727,7 @@ msgstr "Nessuna dimensione." msgid "Invalid size." msgstr "Dimensione non valida." -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Immagine" @@ -760,7 +760,7 @@ msgid "Preview" msgstr "Anteprima" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "Elimina" @@ -1005,7 +1005,7 @@ msgstr "Vuoi eliminare questo messaggio?" msgid "Do not delete this notice" msgstr "Non eliminare il messaggio" -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "Elimina questo messaggio" @@ -2720,8 +2720,8 @@ msgstr "" "1-64 lettere minuscole o numeri, senza spazi o simboli di punteggiatura" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "Nome" @@ -2748,9 +2748,9 @@ msgid "Bio" msgstr "Biografia" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "Ubicazione" @@ -2764,7 +2764,7 @@ msgstr "Condividi la mia posizione attuale quando invio messaggi" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "Etichette" @@ -3226,7 +3226,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL del tuo profilo su un altro servizio di microblog compatibile" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "Abbonati" @@ -3264,7 +3264,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:676 +#: actions/repeat.php:114 lib/noticelist.php:677 msgid "Repeated" msgstr "Ripetuti" @@ -3407,7 +3407,7 @@ msgstr "Organizzazione" msgid "Description" msgstr "Descrizione" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "Statistiche" @@ -3527,67 +3527,67 @@ msgstr "Gruppo %s" msgid "%1$s group, page %2$d" msgstr "Gruppi di %1$s, pagina %2$d" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 msgid "Group profile" msgstr "Profilo del gruppo" -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "URL" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 msgid "Note" msgstr "Nota" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "Alias" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "Azioni dei gruppi" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Feed dei messaggi per il gruppo %s (RSS 1.0)" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Feed dei messaggi per il gruppo %s (RSS 2.0)" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Feed dei messaggi per il gruppo %s (Atom)" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, php-format msgid "FOAF for %s group" msgstr "FOAF per il gruppo %s" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 msgid "Members" msgstr "Membri" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(nessuno)" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "Tutti i membri" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 msgid "Created" msgstr "Creato" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3603,7 +3603,7 @@ msgstr "" "stesso](%%%%action.register%%%%) per far parte di questo gruppo e di molti " "altri! ([Maggiori informazioni](%%%%doc.help%%%%))" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3615,7 +3615,7 @@ msgstr "" "(http://it.wikipedia.org/wiki/Microblogging) basato sul software libero " "[StatusNet](http://status.net/)." -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "Amministratori" @@ -4165,12 +4165,12 @@ msgstr "Nessun argomento ID." msgid "Tag %s" msgstr "Etichetta %s" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "Profilo utente" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "Fotografia" @@ -5104,11 +5104,11 @@ msgstr "Revoca" msgid "Attachments" msgstr "Allegati" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "Autore" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 msgid "Provider" msgstr "Provider" @@ -5154,9 +5154,9 @@ msgid "Could not find a user with nickname %s" msgstr "Impossibile trovare un utente col soprannome %s" #: lib/command.php:143 -#, fuzzy, php-format +#, php-format msgid "Could not find a local user with nickname %s" -msgstr "Impossibile trovare un utente col soprannome %s" +msgstr "Impossibile trovare un utente locale col soprannome %s" #: lib/command.php:176 msgid "Sorry, this command is not yet implemented." @@ -5236,6 +5236,8 @@ msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" +"%s è un profilo remoto. È possibile inviare messaggi privati solo agli " +"utenti sullo stesso server." #: lib/command.php:450 #, php-format @@ -5287,9 +5289,8 @@ msgid "Specify the name of the user to subscribe to" msgstr "Specifica il nome dell'utente a cui abbonarti." #: lib/command.php:602 -#, fuzzy msgid "Can't subscribe to OMB profiles by command." -msgstr "Non hai una abbonamento a quel profilo." +msgstr "Impossibile abbonarsi ai profili OMB attraverso un comando." #: lib/command.php:608 #, php-format @@ -5967,7 +5968,7 @@ msgstr "" "iniziare una conversazione con altri utenti. Altre persone possono mandare " "messaggi riservati solamente a te." -#: lib/mailbox.php:227 lib/noticelist.php:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 msgid "from" msgstr "via" @@ -6122,23 +6123,23 @@ msgstr "O" msgid "at" msgstr "presso" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 msgid "in context" msgstr "in una discussione" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 msgid "Repeated by" msgstr "Ripetuto da" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "Rispondi a questo messaggio" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 msgid "Reply" msgstr "Rispondi" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 msgid "Notice repeated" msgstr "Messaggio ripetuto" @@ -6406,44 +6407,44 @@ msgstr "Annulla l'abbonamento da questo utente" msgid "Unsubscribe" msgstr "Disabbonati" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Modifica immagine" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "Azioni utente" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 msgid "Edit profile settings" msgstr "Modifica impostazioni del profilo" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "Modifica" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "Invia un messaggio diretto a questo utente" -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "Messaggio" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "Modera" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 msgid "User role" msgstr "Ruolo dell'utente" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 msgctxt "role" msgid "Administrator" msgstr "Amministratore" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 msgctxt "role" msgid "Moderator" msgstr "Moderatore" diff --git a/locale/ja/LC_MESSAGES/statusnet.po b/locale/ja/LC_MESSAGES/statusnet.po index a3e00a367..98abb124e 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-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:43:30+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:27:45+0000\n" "Language-Team: Japanese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ja\n" "X-Message-Group: out-statusnet\n" @@ -578,9 +578,9 @@ msgstr "アカウント" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "ニックネーム" @@ -722,7 +722,7 @@ msgstr "サイズがありません。" msgid "Invalid size." msgstr "不正なサイズ。" -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "アバター" @@ -754,7 +754,7 @@ msgid "Preview" msgstr "プレビュー" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "削除" @@ -1001,7 +1001,7 @@ msgstr "本当にこのつぶやきを削除しますか?" msgid "Do not delete this notice" msgstr "このつぶやきを削除できません。" -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "このつぶやきを削除" @@ -2716,8 +2716,8 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64文字の、小文字アルファベットか数字で、スペースや句読点は除く" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "フルネーム" @@ -2744,9 +2744,9 @@ msgid "Bio" msgstr "自己紹介" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "場所" @@ -2760,7 +2760,7 @@ msgstr "つぶやきを投稿するときには私の現在の場所を共有し #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "タグ" @@ -3219,7 +3219,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "プロファイルサービスまたはマイクロブロギングサービスのURL" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "フォロー" @@ -3258,7 +3258,7 @@ msgstr "自分のつぶやきは繰り返せません。" msgid "You already repeated that notice." msgstr "すでにそのつぶやきを繰り返しています。" -#: actions/repeat.php:114 lib/noticelist.php:676 +#: actions/repeat.php:114 lib/noticelist.php:677 msgid "Repeated" msgstr "繰り返された" @@ -3403,7 +3403,7 @@ msgstr "組織" msgid "Description" msgstr "概要" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "統計データ" @@ -3525,67 +3525,67 @@ msgstr "%s グループ" msgid "%1$s group, page %2$d" msgstr "%1$s グループ、ページ %2$d" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 msgid "Group profile" msgstr "グループプロファイル" -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "URL" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 msgid "Note" msgstr "ノート" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "別名" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "グループアクション" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "%s グループのつぶやきフィード (RSS 1.0)" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "%s グループのつぶやきフィード (RSS 2.0)" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "%s グループのつぶやきフィード (Atom)" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, php-format msgid "FOAF for %s group" msgstr "%s グループの FOAF" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 msgid "Members" msgstr "メンバー" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(なし)" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "全てのメンバー" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 msgid "Created" msgstr "作成日" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3600,7 +3600,7 @@ msgstr "" "する短いメッセージを共有します。[今すぐ参加](%%%%action.register%%%%) してこ" "のグループの一員になりましょう! ([もっと読む](%%%%doc.help%%%%))" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3613,7 +3613,7 @@ msgstr "" "wikipedia.org/wiki/Micro-blogging) サービス。メンバーは彼らの暮らしと興味に関" "する短いメッセージを共有します。" -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "管理者" @@ -4176,12 +4176,12 @@ msgstr "ID引数がありません。" msgid "Tag %s" msgstr "タグ %s" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "ユーザプロファイル" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "写真" @@ -5124,11 +5124,11 @@ msgstr "取消し" msgid "Attachments" msgstr "添付" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "作者" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 msgid "Provider" msgstr "プロバイダ" @@ -5940,7 +5940,7 @@ msgstr "" "に引き込むプライベートメッセージを送ることができます。人々はあなただけへの" "メッセージを送ることができます。" -#: lib/mailbox.php:227 lib/noticelist.php:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 msgid "from" msgstr "from" @@ -6103,23 +6103,23 @@ msgstr "西" msgid "at" msgstr "at" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 msgid "in context" msgstr "" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 msgid "Repeated by" msgstr "" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "このつぶやきへ返信" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 msgid "Reply" msgstr "返信" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 msgid "Notice repeated" msgstr "つぶやきを繰り返しました" @@ -6387,47 +6387,47 @@ msgstr "この利用者からのフォローを解除する" msgid "Unsubscribe" msgstr "フォロー解除" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "アバターを編集する" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "利用者アクション" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 msgid "Edit profile settings" msgstr "プロファイル設定編集" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "編集" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "この利用者にダイレクトメッセージを送る" -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "メッセージ" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 #, fuzzy msgid "Moderate" msgstr "管理" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 #, fuzzy msgid "User role" msgstr "ユーザプロファイル" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 #, fuzzy msgctxt "role" msgid "Administrator" msgstr "管理者" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 #, fuzzy msgctxt "role" msgid "Moderator" diff --git a/locale/ko/LC_MESSAGES/statusnet.po b/locale/ko/LC_MESSAGES/statusnet.po index ce01a9966..4e79cdf8b 100644 --- a/locale/ko/LC_MESSAGES/statusnet.po +++ b/locale/ko/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:43:33+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:27:48+0000\n" "Language-Team: Korean\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ko\n" "X-Message-Group: out-statusnet\n" @@ -588,9 +588,9 @@ msgstr "계정" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "별명" @@ -738,7 +738,7 @@ msgstr "사이즈가 없습니다." msgid "Invalid size." msgstr "옳지 않은 크기" -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "아바타" @@ -770,7 +770,7 @@ msgid "Preview" msgstr "미리보기" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "삭제" @@ -1025,7 +1025,7 @@ msgstr "정말로 통지를 삭제하시겠습니까?" msgid "Do not delete this notice" msgstr "이 통지를 지울 수 없습니다." -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "이 게시글 삭제하기" @@ -2780,8 +2780,8 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64자 사이에 영소문자, 숫자로만 씁니다. 기호나 공백을 쓰면 안 됩니다." #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "실명" @@ -2809,9 +2809,9 @@ msgid "Bio" msgstr "자기소개" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "위치" @@ -2825,7 +2825,7 @@ msgstr "" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "태그" @@ -3273,7 +3273,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "다른 마이크로블로깅 서비스의 귀하의 프로필 URL" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "구독" @@ -3316,7 +3316,7 @@ msgstr "라이선스에 동의하지 않는다면 등록할 수 없습니다." msgid "You already repeated that notice." msgstr "당신은 이미 이 사용자를 차단하고 있습니다." -#: actions/repeat.php:114 lib/noticelist.php:676 +#: actions/repeat.php:114 lib/noticelist.php:677 #, fuzzy msgid "Repeated" msgstr "생성" @@ -3465,7 +3465,7 @@ msgstr "페이지수" msgid "Description" msgstr "설명" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "통계" @@ -3577,68 +3577,68 @@ msgstr "%s 그룹" msgid "%1$s group, page %2$d" msgstr "%s 그룹 회원, %d페이지" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 msgid "Group profile" msgstr "그룹 프로필" -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "URL" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 msgid "Note" msgstr "설명" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "그룹 행동" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "%s 그룹을 위한 공지피드" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "%s 그룹을 위한 공지피드" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "%s 그룹을 위한 공지피드" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, php-format msgid "FOAF for %s group" msgstr "%s의 보낸쪽지함" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 msgid "Members" msgstr "회원" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(없습니다.)" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "모든 회원" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 #, fuzzy msgid "Created" msgstr "생성" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3648,7 +3648,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3659,7 +3659,7 @@ msgstr "" "**%s** 는 %%%%site.name%%%% [마이크로블로깅)(http://en.wikipedia.org/wiki/" "Micro-blogging)의 사용자 그룹입니다. " -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 #, fuzzy msgid "Admins" msgstr "관리자" @@ -4206,12 +4206,12 @@ msgstr "id 인자가 없습니다." msgid "Tag %s" msgstr "태그 %s" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "이용자 프로필" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "사진" @@ -5182,11 +5182,11 @@ msgstr "삭제" msgid "Attachments" msgstr "" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 #, fuzzy msgid "Provider" msgstr "프로필" @@ -5933,7 +5933,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 #, fuzzy msgid "from" msgstr "다음에서:" @@ -6089,25 +6089,25 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 #, fuzzy msgid "in context" msgstr "내용이 없습니다!" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 #, fuzzy msgid "Repeated by" msgstr "생성" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "이 게시글에 대해 답장하기" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 msgid "Reply" msgstr "답장하기" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 #, fuzzy msgid "Notice repeated" msgstr "게시글이 등록되었습니다." @@ -6390,48 +6390,48 @@ msgstr "이 사용자로부터 구독취소합니다." msgid "Unsubscribe" msgstr "구독 해제" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 #, fuzzy msgid "Edit Avatar" msgstr "아바타" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "사용자 동작" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 #, fuzzy msgid "Edit profile settings" msgstr "프로필 세팅" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "이 회원에게 직접 메시지를 보냅니다." -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "메시지" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 #, fuzzy msgid "User role" msgstr "이용자 프로필" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 #, fuzzy msgctxt "role" msgid "Administrator" msgstr "관리자" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 msgctxt "role" msgid "Moderator" msgstr "" diff --git a/locale/mk/LC_MESSAGES/statusnet.po b/locale/mk/LC_MESSAGES/statusnet.po index 7b85fa9bb..c88e265f2 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-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:43:36+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:27:51+0000\n" "Language-Team: Macedonian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: out-statusnet\n" @@ -582,9 +582,9 @@ msgstr "Сметка" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "Прекар" @@ -728,7 +728,7 @@ msgstr "Нема големина." msgid "Invalid size." msgstr "Погрешна големина." -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Аватар" @@ -762,7 +762,7 @@ msgid "Preview" msgstr "Преглед" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "Бриши" @@ -1009,7 +1009,7 @@ msgstr "Дали сте сигурни дека сакате да ја избр msgid "Do not delete this notice" msgstr "Не ја бриши оваа забелешка" -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "Бриши ја оваа забелешка" @@ -1566,11 +1566,11 @@ msgstr "Не можев да ги претворам жетоните за ба #: actions/finishremotesubscribe.php:118 msgid "Remote service uses unknown version of OMB protocol." -msgstr "Оддалечената служба користи непозната верзија на OMB протокол." +msgstr "Далечинската служба користи непозната верзија на OMB протокол." #: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306 msgid "Error updating remote profile" -msgstr "Грешка во подновувањето на оддалечениот профил" +msgstr "Грешка во подновувањето на далечинскиот профил" #: actions/getfile.php:79 msgid "No such file." @@ -2730,8 +2730,8 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 мали букви или бројки. Без интерпукциски знаци и празни места." #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "Цело име" @@ -2758,9 +2758,9 @@ msgid "Bio" msgstr "Биографија" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "Локација" @@ -2774,7 +2774,7 @@ msgstr "Сподели ја мојата тековна локација при #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "Ознаки" @@ -3222,7 +3222,7 @@ msgstr "Оддалечена претплата" #: actions/remotesubscribe.php:124 msgid "Subscribe to a remote user" -msgstr "Претплати се на оддалечен корисник" +msgstr "Претплати се на далечински корисник" #: actions/remotesubscribe.php:129 msgid "User nickname" @@ -3241,7 +3241,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL на Вашиот профил на друга компатибилна служба за микроблогирање." #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "Претплати се" @@ -3279,7 +3279,7 @@ msgstr "Не можете да повторувате сопствена заб msgid "You already repeated that notice." msgstr "Веќе ја имате повторено таа забелешка." -#: actions/repeat.php:114 lib/noticelist.php:676 +#: actions/repeat.php:114 lib/noticelist.php:677 msgid "Repeated" msgstr "Повторено" @@ -3422,7 +3422,7 @@ msgstr "Организација" msgid "Description" msgstr "Опис" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "Статистики" @@ -3545,67 +3545,67 @@ msgstr "Група %s" msgid "%1$s group, page %2$d" msgstr "Група %1$s, стр. %2$d" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 msgid "Group profile" msgstr "Профил на група" -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "URL" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 msgid "Note" msgstr "Забелешка" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "Алијаси" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "Групни дејства" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Канал со забелешки за групата %s (RSS 1.0)" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Канал со забелешки за групата %s (RSS 2.0)" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Канал со забелешки за групата%s (Atom)" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, php-format msgid "FOAF for %s group" msgstr "FOAF за групата %s" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 msgid "Members" msgstr "Членови" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Нема)" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "Сите членови" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 msgid "Created" msgstr "Создадено" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3621,7 +3621,7 @@ msgstr "" "се](%%%%action.register%%%%) за да станете дел од оваа група и многу повеќе! " "([Прочитајте повеќе](%%%%doc.help%%%%))" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3634,7 +3634,7 @@ msgstr "" "слободната програмска алатка [StatusNet](http://status.net/). Нејзините " "членови си разменуваат кратки пораки за нивниот живот и интереси. " -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "Администратори" @@ -4065,7 +4065,7 @@ msgstr "Нема таков профил." #: actions/subscribe.php:117 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." msgstr "" -"Не можете да се претплатите на OMB 0.1 оддалечен профил со ова дејство." +"Не можете да се претплатите на OMB 0.1 далечински профил со ова дејство." #: actions/subscribe.php:145 msgid "Subscribed" @@ -4188,12 +4188,12 @@ msgstr "Нема ID-аргумент." msgid "Tag %s" msgstr "Означи %s" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "Кориснички профил" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "Фото" @@ -4953,7 +4953,7 @@ msgstr "Пред" #: lib/activity.php:453 msgid "Can't handle remote content yet." -msgstr "Сè уште не е поддржана обработката на оддалечена содржина." +msgstr "Сè уште не е поддржана обработката на далечинска содржина." #: lib/activity.php:481 msgid "Can't handle embedded XML content yet." @@ -5126,11 +5126,11 @@ msgstr "Одземи" msgid "Attachments" msgstr "Прилози" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "Автор" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 msgid "Provider" msgstr "Обезбедувач" @@ -5176,9 +5176,9 @@ msgid "Could not find a user with nickname %s" msgstr "Не можев да пронајдам корисник со прекар %s" #: lib/command.php:143 -#, fuzzy, php-format +#, php-format msgid "Could not find a local user with nickname %s" -msgstr "Не можев да пронајдам корисник со прекар %s" +msgstr "Не можев да пронајдам локален корисник со прекар %s" #: lib/command.php:176 msgid "Sorry, this command is not yet implemented." @@ -5258,6 +5258,8 @@ msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" +"%s е далечински профил; можете да праќате директни пораки само до корисници " +"на истиот сервер." #: lib/command.php:450 #, php-format @@ -5312,9 +5314,8 @@ msgid "Specify the name of the user to subscribe to" msgstr "Назначете го името на корисникот на којшто сакате да се претплатите" #: lib/command.php:602 -#, fuzzy msgid "Can't subscribe to OMB profiles by command." -msgstr "Не сте претплатени на тој профил." +msgstr "Не можете да се претплаќате на OMB профили по наредба." #: lib/command.php:608 #, php-format @@ -5988,7 +5989,7 @@ msgstr "" "впуштите во разговор со други корисници. Луѓето можат да ви испраќаат пораки " "што ќе можете да ги видите само Вие." -#: lib/mailbox.php:227 lib/noticelist.php:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 msgid "from" msgstr "од" @@ -6146,23 +6147,23 @@ msgstr "З" msgid "at" msgstr "во" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 msgid "in context" msgstr "во контекст" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 msgid "Repeated by" msgstr "Повторено од" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "Одговори на забелешкава" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 msgid "Reply" msgstr "Одговор" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 msgid "Notice repeated" msgstr "Забелешката е повторена" @@ -6188,7 +6189,7 @@ msgstr "Грешка во внесувањето на аватарот" #: lib/oauthstore.php:311 msgid "Error inserting remote profile" -msgstr "Грешка во внесувањето на оддалечениот профил" +msgstr "Грешка во внесувањето на далечинскиот профил" #: lib/oauthstore.php:345 msgid "Duplicate notice" @@ -6430,44 +6431,44 @@ msgstr "Откажи претплата од овој корсиник" msgid "Unsubscribe" msgstr "Откажи ја претплатата" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Уреди аватар" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "Кориснички дејства" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 msgid "Edit profile settings" msgstr "Уреди нагодувања на профилот" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "Уреди" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "Испрати му директна порака на корисников" -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "Порака" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "Модерирај" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 msgid "User role" msgstr "Корисничка улога" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 msgctxt "role" msgid "Administrator" msgstr "Администратор" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 msgctxt "role" msgid "Moderator" msgstr "Модератор" diff --git a/locale/nb/LC_MESSAGES/statusnet.po b/locale/nb/LC_MESSAGES/statusnet.po index 3845dca75..e12d8fa70 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-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:43:40+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:27:54+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 (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: out-statusnet\n" @@ -575,9 +575,9 @@ msgstr "Konto" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "Nick" @@ -719,7 +719,7 @@ msgstr "Ingen størrelse." msgid "Invalid size." msgstr "Ugyldig størrelse" -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Brukerbilde" @@ -751,7 +751,7 @@ msgid "Preview" msgstr "Forhåndsvis" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "Slett" @@ -997,7 +997,7 @@ msgstr "Er du sikker på at du vil slette denne notisen?" msgid "Do not delete this notice" msgstr "Ikke slett denne notisen" -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "Slett denne notisen" @@ -2655,8 +2655,8 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 små bokstaver eller nummer, ingen punktum eller mellomrom" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "Fullt navn" @@ -2684,9 +2684,9 @@ msgid "Bio" msgstr "Om meg" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "" @@ -2700,7 +2700,7 @@ msgstr "" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "Tagger" @@ -3142,7 +3142,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "" @@ -3180,7 +3180,7 @@ msgstr "" msgid "You already repeated that notice." msgstr "Du er allerede logget inn!" -#: actions/repeat.php:114 lib/noticelist.php:676 +#: actions/repeat.php:114 lib/noticelist.php:677 msgid "Repeated" msgstr "Gjentatt" @@ -3325,7 +3325,7 @@ msgstr "Organisasjon" msgid "Description" msgstr "Beskrivelse" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "Statistikk" @@ -3437,67 +3437,67 @@ msgstr "%s gruppe" msgid "%1$s group, page %2$d" msgstr "%1$s gruppe, side %2$d" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 msgid "Group profile" msgstr "Gruppeprofil" -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "Nettadresse" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 msgid "Note" msgstr "" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Notismating for %s gruppe (RSS 1.0)" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Notismating for %s gruppe (RSS 2.0)" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Notismating for %s gruppe (Atom)" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, fuzzy, php-format msgid "FOAF for %s group" msgstr "Klarte ikke å lagre profil." -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 msgid "Members" msgstr "Medlemmer" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Ingen)" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "Alle medlemmer" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 msgid "Created" msgstr "Opprettet" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3513,7 +3513,7 @@ msgstr "" "%%%) for å bli medlem av denne gruppen og mange fler. ([Les mer](%%%%doc.help" "%%%%))" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3526,7 +3526,7 @@ msgstr "" "programvareverktøyet [StatusNet](http://status.net/). Dets medlemmer deler " "korte meldinger om deres liv og interesser. " -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "Administratorer" @@ -4068,13 +4068,13 @@ msgstr "" msgid "Tag %s" msgstr "Tagger" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 #, fuzzy msgid "User profile" msgstr "Klarte ikke å lagre profil." #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "" @@ -4977,11 +4977,11 @@ msgstr "Tilbakekall" msgid "Attachments" msgstr "Vedlegg" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "Forfatter" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 msgid "Provider" msgstr "Leverandør" @@ -5801,7 +5801,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:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 msgid "from" msgstr "fra" @@ -5953,23 +5953,23 @@ msgstr "V" msgid "at" msgstr "" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 msgid "in context" msgstr "" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 msgid "Repeated by" msgstr "Repetert av" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "Svar på denne notisen" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 msgid "Reply" msgstr "Svar" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 msgid "Notice repeated" msgstr "Notis repetert" @@ -6242,45 +6242,45 @@ msgstr "" msgid "Unsubscribe" msgstr "" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 #, fuzzy msgid "Edit Avatar" msgstr "Brukerbilde" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 msgid "Edit profile settings" msgstr "Endre profilinnstillinger" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "Rediger" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "Send en direktemelding til denne brukeren" -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "Melding" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "Moderer" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 msgid "User role" msgstr "Brukerrolle" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 msgctxt "role" msgid "Administrator" msgstr "Administrator" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 msgctxt "role" msgid "Moderator" msgstr "Moderator" diff --git a/locale/nl/LC_MESSAGES/statusnet.po b/locale/nl/LC_MESSAGES/statusnet.po index 09e782be1..4be97e8e3 100644 --- a/locale/nl/LC_MESSAGES/statusnet.po +++ b/locale/nl/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:43:46+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:28:01+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: out-statusnet\n" @@ -592,9 +592,9 @@ msgstr "Gebruiker" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "Gebruikersnaam" @@ -738,7 +738,7 @@ msgstr "Geen afmeting." msgid "Invalid size." msgstr "Ongeldige afmetingen." -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Avatar" @@ -771,7 +771,7 @@ msgid "Preview" msgstr "Voorvertoning" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "Verwijderen" @@ -1018,7 +1018,7 @@ msgstr "Weet u zeker dat u deze aankondiging wilt verwijderen?" msgid "Do not delete this notice" msgstr "Deze mededeling niet verwijderen" -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "Deze mededeling verwijderen" @@ -2747,8 +2747,8 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 kleine letters of cijfers, geen leestekens of spaties" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "Volledige naam" @@ -2775,9 +2775,9 @@ msgid "Bio" msgstr "Beschrijving" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "Locatie" @@ -2791,7 +2791,7 @@ msgstr "Mijn huidige locatie weergeven bij het plaatsen van mededelingen" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "Labels" @@ -3262,7 +3262,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "De URL van uw profiel bij een andere, compatibele microblogdienst" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "Abonneren" @@ -3300,7 +3300,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:676 +#: actions/repeat.php:114 lib/noticelist.php:677 msgid "Repeated" msgstr "Herhaald" @@ -3443,7 +3443,7 @@ msgstr "Organisatie" msgid "Description" msgstr "Beschrijving" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "Statistieken" @@ -3566,67 +3566,67 @@ msgstr "%s groep" msgid "%1$s group, page %2$d" msgstr "Groep %1$s, pagina %2$d" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 msgid "Group profile" msgstr "Groepsprofiel" -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "URL" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 msgid "Note" msgstr "Opmerking" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "Aliassen" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "Groepshandelingen" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Mededelingenfeed voor groep %s (RSS 1.0)" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Mededelingenfeed voor groep %s (RSS 2.0)" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Mededelingenfeed voor groep %s (Atom)" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, php-format msgid "FOAF for %s group" msgstr "Vriend van een vriend voor de groep %s" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 msgid "Members" msgstr "Leden" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(geen)" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "Alle leden" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 msgid "Created" msgstr "Aangemaakt" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3642,7 +3642,7 @@ msgstr "" "lid te worden van deze groep en nog veel meer! [Meer lezen...](%%%%doc.help%%" "%%)" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3655,7 +3655,7 @@ msgstr "" "[StatusNet](http://status.net/). De leden wisselen korte mededelingen uit " "over hun ervaringen en interesses. " -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "Beheerders" @@ -4216,12 +4216,12 @@ msgstr "Geen ID-argument." msgid "Tag %s" msgstr "Label %s" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "Gebruikersprofiel" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "Foto" @@ -5165,11 +5165,11 @@ msgstr "Intrekken" msgid "Attachments" msgstr "Bijlagen" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "Auteur" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 msgid "Provider" msgstr "Provider" @@ -5215,9 +5215,9 @@ msgid "Could not find a user with nickname %s" msgstr "De gebruiker %s is niet aangetroffen" #: lib/command.php:143 -#, fuzzy, php-format +#, php-format msgid "Could not find a local user with nickname %s" -msgstr "De gebruiker %s is niet aangetroffen" +msgstr "De lokale gebruiker %s is niet aangetroffen" #: lib/command.php:176 msgid "Sorry, this command is not yet implemented." @@ -5297,6 +5297,8 @@ msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" +"%s is een profiel op afstand. U kunt alle privéberichten verzenden aan " +"gebruikers op dezelfde server." #: lib/command.php:450 #, php-format @@ -5352,9 +5354,8 @@ msgid "Specify the name of the user to subscribe to" msgstr "Geef de naam op van de gebruiker waarop u wilt abonneren" #: lib/command.php:602 -#, fuzzy msgid "Can't subscribe to OMB profiles by command." -msgstr "U bent niet geabonneerd op dat profiel." +msgstr "Abonneren op OMB-profielen op commando is niet mogelijk." #: lib/command.php:608 #, php-format @@ -6034,7 +6035,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:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 msgid "from" msgstr "van" @@ -6192,23 +6193,23 @@ msgstr "W" msgid "at" msgstr "op" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 msgid "in context" msgstr "in context" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 msgid "Repeated by" msgstr "Herhaald door" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "Op deze mededeling antwoorden" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 msgid "Reply" msgstr "Antwoorden" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 msgid "Notice repeated" msgstr "Mededeling herhaald" @@ -6477,44 +6478,44 @@ msgstr "Uitschrijven van deze gebruiker" msgid "Unsubscribe" msgstr "Abonnement opheffen" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Avatar bewerken" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "Gebruikershandelingen" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 msgid "Edit profile settings" msgstr "Profielinstellingen bewerken" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "Bewerken" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "Deze gebruiker een direct bericht zenden" -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "Bericht" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "Modereren" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 msgid "User role" msgstr "Gebruikersrol" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 msgctxt "role" msgid "Administrator" msgstr "Beheerder" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 msgctxt "role" msgid "Moderator" msgstr "Moderator" diff --git a/locale/nn/LC_MESSAGES/statusnet.po b/locale/nn/LC_MESSAGES/statusnet.po index 900e9fa19..65463a3fc 100644 --- a/locale/nn/LC_MESSAGES/statusnet.po +++ b/locale/nn/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:43:43+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:27:57+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 (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nn\n" "X-Message-Group: out-statusnet\n" @@ -586,9 +586,9 @@ msgstr "Konto" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "Kallenamn" @@ -736,7 +736,7 @@ msgstr "Ingen storleik." msgid "Invalid size." msgstr "Ugyldig storleik." -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Brukarbilete" @@ -768,7 +768,7 @@ msgid "Preview" msgstr "Forhandsvis" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "Slett" @@ -1024,7 +1024,7 @@ msgstr "Sikker på at du vil sletta notisen?" msgid "Do not delete this notice" msgstr "Kan ikkje sletta notisen." -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "Slett denne notisen" @@ -2786,8 +2786,8 @@ msgstr "" "1-64 små bokstavar eller tal, ingen punktum (og liknande) eller mellomrom" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "Fullt namn" @@ -2815,9 +2815,9 @@ msgid "Bio" msgstr "Om meg" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "Plassering" @@ -2831,7 +2831,7 @@ msgstr "" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "Merkelappar" @@ -3286,7 +3286,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL til profilsida di på ei anna kompatibel mikrobloggingteneste." #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "Ting" @@ -3329,7 +3329,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:676 +#: actions/repeat.php:114 lib/noticelist.php:677 #, fuzzy msgid "Repeated" msgstr "Lag" @@ -3478,7 +3478,7 @@ msgstr "Paginering" msgid "Description" msgstr "Beskriving" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "Statistikk" @@ -3590,68 +3590,68 @@ msgstr "%s gruppe" msgid "%1$s group, page %2$d" msgstr "%s medlemmar i gruppa, side %d" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 msgid "Group profile" msgstr "Gruppe profil" -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "URL" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 msgid "Note" msgstr "Merknad" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "Gruppe handlingar" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Notisstraum for %s gruppa" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Notisstraum for %s gruppa" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "Notisstraum for %s gruppa" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, php-format msgid "FOAF for %s group" msgstr "Utboks for %s" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 msgid "Members" msgstr "Medlemmar" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Ingen)" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "Alle medlemmar" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 #, fuzzy msgid "Created" msgstr "Lag" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3661,7 +3661,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3672,7 +3672,7 @@ msgstr "" "**%s** er ei brukargruppe på %%%%site.name%%%%, ei [mikroblogging](http://en." "wikipedia.org/wiki/Micro-blogging)-teneste" -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 #, fuzzy msgid "Admins" msgstr "Administrator" @@ -4220,12 +4220,12 @@ msgstr "Manglar argumentet ID." msgid "Tag %s" msgstr "Merkelapp %s" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "Brukarprofil" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "Bilete" @@ -5199,11 +5199,11 @@ msgstr "Fjern" msgid "Attachments" msgstr "" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 #, fuzzy msgid "Provider" msgstr "Profil" @@ -5960,7 +5960,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 #, fuzzy msgid "from" msgstr " frå " @@ -6116,25 +6116,25 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 #, fuzzy msgid "in context" msgstr "Ingen innhald." -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 #, fuzzy msgid "Repeated by" msgstr "Lag" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "Svar på denne notisen" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 msgid "Reply" msgstr "Svar" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 #, fuzzy msgid "Notice repeated" msgstr "Melding lagra" @@ -6417,48 +6417,48 @@ msgstr "Fjern tinging fra denne brukaren" msgid "Unsubscribe" msgstr "Fjern tinging" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 #, fuzzy msgid "Edit Avatar" msgstr "Brukarbilete" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "Brukarverkty" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 #, fuzzy msgid "Edit profile settings" msgstr "Profilinnstillingar" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "Send ei direktemelding til denne brukaren" -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "Melding" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 #, fuzzy msgid "User role" msgstr "Brukarprofil" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 #, fuzzy msgctxt "role" msgid "Administrator" msgstr "Administrator" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 msgctxt "role" msgid "Moderator" msgstr "" diff --git a/locale/pl/LC_MESSAGES/statusnet.po b/locale/pl/LC_MESSAGES/statusnet.po index d7120fab9..64104175e 100644 --- a/locale/pl/LC_MESSAGES/statusnet.po +++ b/locale/pl/LC_MESSAGES/statusnet.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:43:49+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:28:05+0000\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" @@ -19,7 +19,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pl\n" "X-Message-Group: out-statusnet\n" @@ -582,9 +582,9 @@ msgstr "Konto" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "Pseudonim" @@ -726,7 +726,7 @@ msgstr "Brak rozmiaru." msgid "Invalid size." msgstr "Nieprawidłowy rozmiar." -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Awatar" @@ -758,7 +758,7 @@ msgid "Preview" msgstr "Podgląd" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "Usuń" @@ -1003,7 +1003,7 @@ msgstr "Jesteś pewien, że chcesz usunąć ten wpis?" msgid "Do not delete this notice" msgstr "Nie usuwaj tego wpisu" -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "Usuń ten wpis" @@ -2707,8 +2707,8 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 małe litery lub liczby, bez spacji i znaków przestankowych" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "Imię i nazwisko" @@ -2735,9 +2735,9 @@ msgid "Bio" msgstr "O mnie" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "Położenie" @@ -2751,7 +2751,7 @@ msgstr "Podziel się swoim obecnym położeniem podczas wysyłania wpisów" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "Znaczniki" @@ -3214,7 +3214,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "Adres URL profilu na innej, zgodnej usłudze mikroblogowania" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "Subskrybuj" @@ -3252,7 +3252,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:676 +#: actions/repeat.php:114 lib/noticelist.php:677 msgid "Repeated" msgstr "Powtórzono" @@ -3395,7 +3395,7 @@ msgstr "Organizacja" msgid "Description" msgstr "Opis" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "Statystyki" @@ -3516,67 +3516,67 @@ msgstr "Grupa %s" msgid "%1$s group, page %2$d" msgstr "Grupa %1$s, strona %2$d" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 msgid "Group profile" msgstr "Profil grupy" -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "Adres URL" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 msgid "Note" msgstr "Wpis" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "Aliasy" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "Działania grupy" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Kanał wpisów dla grupy %s (RSS 1.0)" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Kanał wpisów dla grupy %s (RSS 2.0)" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Kanał wpisów dla grupy %s (Atom)" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, php-format msgid "FOAF for %s group" msgstr "FOAF dla grupy %s" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 msgid "Members" msgstr "Członkowie" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Brak)" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "Wszyscy członkowie" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 msgid "Created" msgstr "Utworzono" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3592,7 +3592,7 @@ msgstr "" "action.register%%%%), aby stać się częścią tej grupy i wiele więcej. " "([Przeczytaj więcej](%%%%doc.help%%%%))" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3605,7 +3605,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:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "Administratorzy" @@ -4159,12 +4159,12 @@ msgstr "Brak parametru identyfikatora." msgid "Tag %s" msgstr "Znacznik %s" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "Profil użytkownika" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "Zdjęcie" @@ -5098,11 +5098,11 @@ msgstr "Unieważnij" msgid "Attachments" msgstr "Załączniki" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "Autor" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 msgid "Provider" msgstr "Dostawca" @@ -5148,9 +5148,9 @@ msgid "Could not find a user with nickname %s" msgstr "Nie można odnaleźć użytkownika z pseudonimem %s." #: lib/command.php:143 -#, fuzzy, php-format +#, php-format msgid "Could not find a local user with nickname %s" -msgstr "Nie można odnaleźć użytkownika z pseudonimem %s." +msgstr "Nie można odnaleźć lokalnego użytkownika z pseudonimem %s." #: lib/command.php:176 msgid "Sorry, this command is not yet implemented." @@ -5230,6 +5230,8 @@ msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" +"%s to zdalny profil; można wysyłać bezpośrednie wiadomości tylko do " +"użytkowników na tym samym serwerze." #: lib/command.php:450 #, php-format @@ -5281,9 +5283,8 @@ msgid "Specify the name of the user to subscribe to" msgstr "Podaj nazwę użytkownika do subskrybowania." #: lib/command.php:602 -#, fuzzy msgid "Can't subscribe to OMB profiles by command." -msgstr "Nie jesteś subskrybowany do tego profilu." +msgstr "Nie można subskrybować profili OMB za pomocą polecenia." #: lib/command.php:608 #, php-format @@ -5964,7 +5965,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:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 msgid "from" msgstr "z" @@ -6117,23 +6118,23 @@ msgstr "Zachód" msgid "at" msgstr "w" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 msgid "in context" msgstr "w rozmowie" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 msgid "Repeated by" msgstr "Powtórzone przez" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "Odpowiedz na ten wpis" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 msgid "Reply" msgstr "Odpowiedz" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 msgid "Notice repeated" msgstr "Powtórzono wpis" @@ -6402,44 +6403,44 @@ msgstr "Zrezygnuj z subskrypcji tego użytkownika" msgid "Unsubscribe" msgstr "Zrezygnuj z subskrypcji" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Zmodyfikuj awatar" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "Czynności użytkownika" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 msgid "Edit profile settings" msgstr "Zmodyfikuj ustawienia profilu" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "Edycja" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "Wyślij bezpośrednią wiadomość do tego użytkownika" -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "Wiadomość" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "Moderuj" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 msgid "User role" msgstr "Rola użytkownika" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 msgctxt "role" msgid "Administrator" msgstr "Administrator" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 msgctxt "role" msgid "Moderator" msgstr "Moderator" diff --git a/locale/pt/LC_MESSAGES/statusnet.po b/locale/pt/LC_MESSAGES/statusnet.po index 368e38c69..90c5e7dcb 100644 --- a/locale/pt/LC_MESSAGES/statusnet.po +++ b/locale/pt/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:43:52+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:28:08+0000\n" "Language-Team: Portuguese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: out-statusnet\n" @@ -580,9 +580,9 @@ msgstr "Conta" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "Utilizador" @@ -726,7 +726,7 @@ msgstr "Tamanho não definido." msgid "Invalid size." msgstr "Tamanho inválido." -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Avatar" @@ -758,7 +758,7 @@ msgid "Preview" msgstr "Antevisão" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "Apagar" @@ -1011,7 +1011,7 @@ msgstr "Tem a certeza de que quer apagar esta nota?" msgid "Do not delete this notice" msgstr "Não apagar esta nota" -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "Apagar esta nota" @@ -2753,8 +2753,8 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 letras minúsculas ou números, sem pontuação ou espaços" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "Nome completo" @@ -2781,9 +2781,9 @@ msgid "Bio" msgstr "Biografia" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "Localidade" @@ -2797,7 +2797,7 @@ msgstr "Compartilhar a minha localização presente ao publicar notas" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "Categorias" @@ -3262,7 +3262,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL do seu perfil noutro serviço de microblogues compatível" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "Subscrever" @@ -3300,7 +3300,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:676 +#: actions/repeat.php:114 lib/noticelist.php:677 msgid "Repeated" msgstr "Repetida" @@ -3449,7 +3449,7 @@ msgstr "Paginação" msgid "Description" msgstr "Descrição" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "Estatísticas" @@ -3570,67 +3570,67 @@ msgstr "Grupo %s" msgid "%1$s group, page %2$d" msgstr "Membros do grupo %1$s, página %2$d" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 msgid "Group profile" msgstr "Perfil do grupo" -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "URL" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 msgid "Note" msgstr "Anotação" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "Sinónimos" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "Acções do grupo" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Fonte de notas do grupo %s (RSS 1.0)" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Fonte de notas do grupo %s (RSS 2.0)" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Fonte de notas do grupo %s (Atom)" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, php-format msgid "FOAF for %s group" msgstr "FOAF do grupo %s" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 msgid "Members" msgstr "Membros" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Nenhum)" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "Todos os membros" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 msgid "Created" msgstr "Criado" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3646,7 +3646,7 @@ msgstr "" "[Registe-se agora](%%action.register%%) para se juntar a este grupo e a " "muitos mais! ([Saber mais](%%doc.help%%))" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3659,7 +3659,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:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "Gestores" @@ -4219,12 +4219,12 @@ msgstr "Argumento de identificação (ID) em falta." msgid "Tag %s" msgstr "Categoria %s" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "Perfil" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "Foto" @@ -5184,11 +5184,11 @@ msgstr "Remover" msgid "Attachments" msgstr "Anexos" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "Autor" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 msgid "Provider" msgstr "Fornecedor" @@ -6044,7 +6044,7 @@ msgstr "" "conversa com outros utilizadores. Outros podem enviar-lhe mensagens, a que " "só você terá acesso." -#: lib/mailbox.php:227 lib/noticelist.php:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 msgid "from" msgstr "de" @@ -6200,23 +6200,23 @@ msgstr "O" msgid "at" msgstr "coords." -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 msgid "in context" msgstr "no contexto" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 msgid "Repeated by" msgstr "Repetida por" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "Responder a esta nota" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 msgid "Reply" msgstr "Responder" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 msgid "Notice repeated" msgstr "Nota repetida" @@ -6484,46 +6484,46 @@ msgstr "Deixar de subscrever este utilizador" msgid "Unsubscribe" msgstr "Abandonar" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Editar Avatar" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "Acções do utilizador" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 msgid "Edit profile settings" msgstr "Editar configurações do perfil" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "Editar" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "Enviar mensagem directa a este utilizador" -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "Mensagem" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "Moderar" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 #, fuzzy msgid "User role" msgstr "Perfil" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 #, fuzzy msgctxt "role" msgid "Administrator" msgstr "Gestores" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 #, fuzzy msgctxt "role" msgid "Moderator" diff --git a/locale/pt_BR/LC_MESSAGES/statusnet.po b/locale/pt_BR/LC_MESSAGES/statusnet.po index 5bf084134..433a21c36 100644 --- a/locale/pt_BR/LC_MESSAGES/statusnet.po +++ b/locale/pt_BR/LC_MESSAGES/statusnet.po @@ -12,12 +12,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:43:55+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:28:11+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 (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt-br\n" "X-Message-Group: out-statusnet\n" @@ -589,9 +589,9 @@ msgstr "Conta" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "Usuário" @@ -733,7 +733,7 @@ msgstr "Sem tamanho definido." msgid "Invalid size." msgstr "Tamanho inválido." -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Avatar" @@ -766,7 +766,7 @@ msgid "Preview" msgstr "Visualização" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "Excluir" @@ -1013,7 +1013,7 @@ msgstr "Tem certeza que deseja excluir esta mensagem?" msgid "Do not delete this notice" msgstr "Não excluir esta mensagem." -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "Excluir esta mensagem" @@ -2742,8 +2742,8 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 letras minúsculas ou números, sem pontuações ou espaços" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "Nome completo" @@ -2770,9 +2770,9 @@ msgid "Bio" msgstr "Descrição" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "Localização" @@ -2786,7 +2786,7 @@ msgstr "Compartilhe minha localização atual ao publicar mensagens" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "Etiquetas" @@ -3253,7 +3253,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL do seu perfil em outro serviço de microblog compatível" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "Assinar" @@ -3290,7 +3290,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:676 +#: actions/repeat.php:114 lib/noticelist.php:677 msgid "Repeated" msgstr "Repetida" @@ -3436,7 +3436,7 @@ msgstr "Organização" msgid "Description" msgstr "Descrição" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "Estatísticas" @@ -3557,67 +3557,67 @@ msgstr "Grupo %s" msgid "%1$s group, page %2$d" msgstr "Grupo %1$s, pág. %2$d" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 msgid "Group profile" msgstr "Perfil do grupo" -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "Site" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 msgid "Note" msgstr "Mensagem" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "Apelidos" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "Ações do grupo" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Fonte de mensagens do grupo %s (RSS 1.0)" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Fonte de mensagens do grupo %s (RSS 2.0)" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Fonte de mensagens do grupo %s (Atom)" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, php-format msgid "FOAF for %s group" msgstr "FOAF para o grupo %s" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 msgid "Members" msgstr "Membros" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Nenhum)" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "Todos os membros" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 msgid "Created" msgstr "Criado" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3633,7 +3633,7 @@ msgstr "" "para se tornar parte deste grupo e muito mais! ([Saiba mais](%%%%doc.help%%%" "%))" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3646,7 +3646,7 @@ msgstr "" "[StatusNet](http://status.net/). Seus membros compartilham mensagens curtas " "sobre suas vidas e interesses. " -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "Administradores" @@ -4205,12 +4205,12 @@ msgstr "Nenhum argumento de ID." msgid "Tag %s" msgstr "Etiqueta %s" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "Perfil do usuário" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "Imagem" @@ -5160,11 +5160,11 @@ msgstr "Revogar" msgid "Attachments" msgstr "Anexos" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "Autor" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 msgid "Provider" msgstr "Operadora" @@ -6022,7 +6022,7 @@ msgstr "" "privadas para envolver outras pessoas em uma conversa. Você também pode " "receber mensagens privadas." -#: lib/mailbox.php:227 lib/noticelist.php:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 msgid "from" msgstr "de" @@ -6180,23 +6180,23 @@ msgstr "O" msgid "at" msgstr "em" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 msgid "in context" msgstr "no contexto" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 msgid "Repeated by" msgstr "Repetida por" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "Responder a esta mensagem" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 msgid "Reply" msgstr "Responder" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 msgid "Notice repeated" msgstr "Mensagem repetida" @@ -6464,45 +6464,45 @@ msgstr "Cancelar a assinatura deste usuário" msgid "Unsubscribe" msgstr "Cancelar" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Editar o avatar" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "Ações do usuário" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 msgid "Edit profile settings" msgstr "Editar as configurações do perfil" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "Editar" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "Enviar uma mensagem para este usuário." -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "Mensagem" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "Moderar" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 #, fuzzy msgid "User role" msgstr "Perfil do usuário" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 msgctxt "role" msgid "Administrator" msgstr "Administrador" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 #, fuzzy msgctxt "role" msgid "Moderator" diff --git a/locale/ru/LC_MESSAGES/statusnet.po b/locale/ru/LC_MESSAGES/statusnet.po index 2f5df9f69..8e31c8270 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-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:43:59+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:28:14+0000\n" "Language-Team: Russian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: out-statusnet\n" @@ -585,9 +585,9 @@ msgstr "Настройки" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "Имя" @@ -729,7 +729,7 @@ msgstr "Нет размера." msgid "Invalid size." msgstr "Неверный размер." -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Аватара" @@ -762,7 +762,7 @@ msgid "Preview" msgstr "Просмотр" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "Удалить" @@ -1008,7 +1008,7 @@ msgstr "Вы уверены, что хотите удалить эту запи msgid "Do not delete this notice" msgstr "Не удалять эту запись" -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "Удалить эту запись" @@ -2726,8 +2726,8 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 латинских строчных буквы или цифры, без пробелов" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "Полное имя" @@ -2754,9 +2754,9 @@ msgid "Bio" msgstr "Биография" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "Месторасположение" @@ -2770,7 +2770,7 @@ msgstr "Делиться своим текущим местоположение #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "Теги" @@ -3233,7 +3233,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "Адрес URL твоего профиля на другом подходящем сервисе микроблогинга" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "Подписаться" @@ -3269,7 +3269,7 @@ msgstr "Вы не можете повторить собственную зап msgid "You already repeated that notice." msgstr "Вы уже повторили эту запись." -#: actions/repeat.php:114 lib/noticelist.php:676 +#: actions/repeat.php:114 lib/noticelist.php:677 msgid "Repeated" msgstr "Повторено" @@ -3413,7 +3413,7 @@ msgstr "Организация" msgid "Description" msgstr "Описание" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "Статистика" @@ -3534,67 +3534,67 @@ msgstr "Группа %s" msgid "%1$s group, page %2$d" msgstr "Группа %1$s, страница %2$d" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 msgid "Group profile" msgstr "Профиль группы" -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "URL" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 msgid "Note" msgstr "Запись" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "Алиасы" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "Действия группы" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Лента записей группы %s (RSS 1.0)" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Лента записей группы %s (RSS 2.0)" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Лента записей группы %s (Atom)" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, php-format msgid "FOAF for %s group" msgstr "FOAF для группы %s" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 msgid "Members" msgstr "Участники" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(пока ничего нет)" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "Все участники" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 msgid "Created" msgstr "Создано" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3610,7 +3610,7 @@ msgstr "" "action.register%%%%), чтобы стать участником группы и получить множество " "других возможностей! ([Читать далее](%%%%doc.help%%%%))" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3623,7 +3623,7 @@ msgstr "" "обеспечении [StatusNet](http://status.net/). Участники обмениваются " "короткими сообщениями о своей жизни и интересах. " -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "Администраторы" @@ -4180,12 +4180,12 @@ msgstr "Нет аргумента ID." msgid "Tag %s" msgstr "Теги %s" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "Профиль пользователя" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "Фото" @@ -5116,11 +5116,11 @@ msgstr "Отозвать" msgid "Attachments" msgstr "Вложения" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "Автор" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 msgid "Provider" msgstr "Сервис" @@ -5977,7 +5977,7 @@ msgstr "" "вовлечения других пользователей в разговор. Сообщения, получаемые от других " "людей, видите только вы." -#: lib/mailbox.php:227 lib/noticelist.php:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 msgid "from" msgstr "от " @@ -6132,23 +6132,23 @@ msgstr "з. д." msgid "at" msgstr "на" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 msgid "in context" msgstr "в контексте" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 msgid "Repeated by" msgstr "Повторено" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "Ответить на эту запись" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 msgid "Reply" msgstr "Ответить" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 msgid "Notice repeated" msgstr "Запись повторена" @@ -6416,44 +6416,44 @@ msgstr "Отписаться от этого пользователя" msgid "Unsubscribe" msgstr "Отписаться" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Изменить аватару" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "Действия пользователя" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 msgid "Edit profile settings" msgstr "Изменение настроек профиля" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "Редактировать" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "Послать приватное сообщение этому пользователю." -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "Сообщение" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "Модерировать" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 msgid "User role" msgstr "Роль пользователя" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 msgctxt "role" msgid "Administrator" msgstr "Администратор" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 msgctxt "role" msgid "Moderator" msgstr "Модератор" diff --git a/locale/statusnet.po b/locale/statusnet.po index 5e59df581..8f43b3f93 100644 --- a/locale/statusnet.po +++ b/locale/statusnet.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-12 23:41+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -556,9 +556,9 @@ msgstr "" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "" @@ -700,7 +700,7 @@ msgstr "" msgid "Invalid size." msgstr "" -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "" @@ -732,7 +732,7 @@ msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "" @@ -970,7 +970,7 @@ msgstr "" msgid "Do not delete this notice" msgstr "" -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "" @@ -2581,8 +2581,8 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "" @@ -2609,9 +2609,9 @@ msgid "Bio" msgstr "" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "" @@ -2625,7 +2625,7 @@ msgstr "" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "" @@ -3042,7 +3042,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "" @@ -3078,7 +3078,7 @@ msgstr "" msgid "You already repeated that notice." msgstr "" -#: actions/repeat.php:114 lib/noticelist.php:676 +#: actions/repeat.php:114 lib/noticelist.php:677 msgid "Repeated" msgstr "" @@ -3215,7 +3215,7 @@ msgstr "" msgid "Description" msgstr "" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "" @@ -3326,67 +3326,67 @@ msgstr "" msgid "%1$s group, page %2$d" msgstr "" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 msgid "Group profile" msgstr "" -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 msgid "Note" msgstr "" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, php-format msgid "FOAF for %s group" msgstr "" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 msgid "Members" msgstr "" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 msgid "Created" msgstr "" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3396,7 +3396,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3405,7 +3405,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "" @@ -3922,12 +3922,12 @@ msgstr "" msgid "Tag %s" msgstr "" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "" @@ -4809,11 +4809,11 @@ msgstr "" msgid "Attachments" msgstr "" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 msgid "Provider" msgstr "" @@ -5535,7 +5535,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 msgid "from" msgstr "" @@ -5685,23 +5685,23 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 msgid "in context" msgstr "" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 msgid "Repeated by" msgstr "" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 msgid "Reply" msgstr "" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 msgid "Notice repeated" msgstr "" @@ -5969,44 +5969,44 @@ msgstr "" msgid "Unsubscribe" msgstr "" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 msgid "Edit profile settings" msgstr "" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "" -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 msgid "User role" msgstr "" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 msgctxt "role" msgid "Administrator" msgstr "" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 msgctxt "role" msgid "Moderator" msgstr "" diff --git a/locale/sv/LC_MESSAGES/statusnet.po b/locale/sv/LC_MESSAGES/statusnet.po index a1ca8cdf8..4226c757d 100644 --- a/locale/sv/LC_MESSAGES/statusnet.po +++ b/locale/sv/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:44:04+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:28:18+0000\n" "Language-Team: Swedish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: sv\n" "X-Message-Group: out-statusnet\n" @@ -573,9 +573,9 @@ msgstr "Konto" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "Smeknamn" @@ -717,7 +717,7 @@ msgstr "Ingen storlek." msgid "Invalid size." msgstr "Ogiltig storlek." -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Avatar" @@ -750,7 +750,7 @@ msgid "Preview" msgstr "Förhandsgranska" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "Ta bort" @@ -997,7 +997,7 @@ msgstr "Är du säker på att du vill ta bort denna notis?" msgid "Do not delete this notice" msgstr "Ta inte bort denna notis" -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "Ta bort denna notis" @@ -2705,8 +2705,8 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 små bokstäver eller nummer, inga punkter eller mellanslag" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "Fullständigt namn" @@ -2733,9 +2733,9 @@ msgid "Bio" msgstr "Biografi" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "Plats" @@ -2749,7 +2749,7 @@ msgstr "Dela min nuvarande plats när jag skickar notiser" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "Taggar" @@ -3216,7 +3216,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL till din profil på en annan kompatibel mikrobloggtjänst" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "Prenumerera" @@ -3254,7 +3254,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:676 +#: actions/repeat.php:114 lib/noticelist.php:677 msgid "Repeated" msgstr "Upprepad" @@ -3398,7 +3398,7 @@ msgstr "Organisation" msgid "Description" msgstr "Beskrivning" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "Statistik" @@ -3520,67 +3520,67 @@ msgstr "%s grupp" msgid "%1$s group, page %2$d" msgstr "%1$s grupp, sida %2$d" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 msgid "Group profile" msgstr "Grupprofil" -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "URL" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 msgid "Note" msgstr "Notis" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "Alias" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "Åtgärder för grupp" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Flöde av notiser för %s grupp (RSS 1.0)" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Flöde av notiser för %s grupp (RSS 2.0)" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Flöde av notiser för %s grupp (Atom)" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, php-format msgid "FOAF for %s group" msgstr "FOAF för %s grupp" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 msgid "Members" msgstr "Medlemmar" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Ingen)" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "Alla medlemmar" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 msgid "Created" msgstr "Skapad" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3595,7 +3595,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:463 +#: actions/showgroup.php:464 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3608,7 +3608,7 @@ msgstr "" "[StatusNet](http://status.net/). Dess medlemmar delar korta meddelande om " "sina liv och intressen. " -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "Administratörer" @@ -4163,12 +4163,12 @@ msgstr "Inget ID-argument." msgid "Tag %s" msgstr "Tagg %s" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "Användarprofil" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "Foto" @@ -5101,11 +5101,11 @@ msgstr "Återkalla" msgid "Attachments" msgstr "Bilagor" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "Författare" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 msgid "Provider" msgstr "Tillhandahållare" @@ -5957,7 +5957,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:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 msgid "from" msgstr "från" @@ -6113,23 +6113,23 @@ msgstr "V" msgid "at" msgstr "på" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 msgid "in context" msgstr "i sammanhang" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 msgid "Repeated by" msgstr "Upprepad av" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "Svara på denna notis" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 msgid "Reply" msgstr "Svara" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 msgid "Notice repeated" msgstr "Notis upprepad" @@ -6397,46 +6397,46 @@ msgstr "Avsluta prenumerationen på denna användare" msgid "Unsubscribe" msgstr "Avsluta pren." -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Redigera avatar" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "Åtgärder för användare" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 msgid "Edit profile settings" msgstr "Redigera profilinställningar" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "Redigera" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "Skicka ett direktmeddelande till denna användare" -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "Meddelande" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "Moderera" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 #, fuzzy msgid "User role" msgstr "Användarprofil" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 #, fuzzy msgctxt "role" msgid "Administrator" msgstr "Administratörer" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 #, fuzzy msgctxt "role" msgid "Moderator" diff --git a/locale/te/LC_MESSAGES/statusnet.po b/locale/te/LC_MESSAGES/statusnet.po index 1449adf15..6adfdc447 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-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:44:07+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:28:21+0000\n" "Language-Team: Telugu\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: te\n" "X-Message-Group: out-statusnet\n" @@ -569,9 +569,9 @@ msgstr "ఖాతా" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "పేరు" @@ -714,7 +714,7 @@ msgstr "పరిమాణం లేదు." msgid "Invalid size." msgstr "తప్పుడు పరిమాణం." -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "అవతారం" @@ -746,7 +746,7 @@ msgid "Preview" msgstr "మునుజూపు" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "తొలగించు" @@ -990,7 +990,7 @@ msgstr "మీరు నిజంగానే ఈ నోటీసుని త msgid "Do not delete this notice" msgstr "ఈ నోటీసుని తొలగించకు" -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "ఈ నోటీసుని తొలగించు" @@ -2647,8 +2647,8 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 చిన్నబడి అక్షరాలు లేదా అంకెలు, విరామచిహ్నాలు మరియు ఖాళీలు తప్ప" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "పూర్తి పేరు" @@ -2675,9 +2675,9 @@ msgid "Bio" msgstr "స్వపరిచయం" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "ప్రాంతం" @@ -2691,7 +2691,7 @@ msgstr "" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "ట్యాగులు" @@ -3131,7 +3131,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "చందాచేరు" @@ -3168,7 +3168,7 @@ msgstr "మీ నోటీసుని మీరే పునరావృతి msgid "You already repeated that notice." msgstr "మీరు ఇప్పటికే ఆ నోటీసుని పునరావృతించారు." -#: actions/repeat.php:114 lib/noticelist.php:676 +#: actions/repeat.php:114 lib/noticelist.php:677 #, fuzzy msgid "Repeated" msgstr "సృష్టితం" @@ -3315,7 +3315,7 @@ msgstr "సంస్ధ" msgid "Description" msgstr "వివరణ" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "గణాంకాలు" @@ -3428,67 +3428,67 @@ msgstr "%s గుంపు" msgid "%1$s group, page %2$d" msgstr "%1$s గుంపు , %2$dవ పేజీ" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 msgid "Group profile" msgstr "గుంపు ప్రొఫైలు" -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 msgid "Note" msgstr "గమనిక" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "మారుపేర్లు" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "గుంపు చర్యలు" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "%s యొక్క సందేశముల ఫీడు" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "%s యొక్క సందేశముల ఫీడు" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "%s యొక్క సందేశముల ఫీడు" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, php-format msgid "FOAF for %s group" msgstr "%s గుంపు" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 msgid "Members" msgstr "సభ్యులు" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(ఏమీలేదు)" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "అందరు సభ్యులూ" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 msgid "Created" msgstr "సృష్టితం" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3498,7 +3498,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3507,7 +3507,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "నిర్వాహకులు" @@ -4042,12 +4042,12 @@ msgstr "అటువంటి పత్రమేమీ లేదు." msgid "Tag %s" msgstr "" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "వాడుకరి ప్రొఫైలు" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "ఫొటో" @@ -4959,11 +4959,11 @@ msgstr "తొలగించు" msgid "Attachments" msgstr "జోడింపులు" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "రచయిత" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 #, fuzzy msgid "Provider" msgstr "ప్రొఫైలు" @@ -5736,7 +5736,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 msgid "from" msgstr "నుండి" @@ -5892,24 +5892,24 @@ msgstr "ప" msgid "at" msgstr "" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 msgid "in context" msgstr "సందర్భంలో" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 #, fuzzy msgid "Repeated by" msgstr "సృష్టితం" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "ఈ నోటీసుపై స్పందించండి" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 msgid "Reply" msgstr "స్పందించండి" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 #, fuzzy msgid "Notice repeated" msgstr "నోటీసుని తొలగించాం." @@ -6186,45 +6186,45 @@ msgstr "ఈ వాడుకరి నుండి చందామాను" msgid "Unsubscribe" msgstr "చందామాను" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "అవతారాన్ని మార్చు" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "వాడుకరి చర్యలు" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 #, fuzzy msgid "Edit profile settings" msgstr "ఫ్రొఫైలు అమరికలు" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "మార్చు" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "ఈ వాడుకరికి ఒక నేరు సందేశాన్ని పంపించండి" -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "సందేశం" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 msgid "User role" msgstr "వాడుకరి పాత్ర" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 msgctxt "role" msgid "Administrator" msgstr "నిర్వాహకులు" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 msgctxt "role" msgid "Moderator" msgstr "సమన్వయకర్త" diff --git a/locale/tr/LC_MESSAGES/statusnet.po b/locale/tr/LC_MESSAGES/statusnet.po index 07b518790..bc4e25d10 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-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:44:10+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:28:23+0000\n" "Language-Team: Turkish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tr\n" "X-Message-Group: out-statusnet\n" @@ -589,9 +589,9 @@ msgstr "Hakkında" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "Takma ad" @@ -740,7 +740,7 @@ msgstr "" msgid "Invalid size." msgstr "Geçersiz büyüklük." -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Avatar" @@ -773,7 +773,7 @@ msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "" @@ -1028,7 +1028,7 @@ msgstr "" msgid "Do not delete this notice" msgstr "Böyle bir durum mesajı yok." -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "" @@ -2751,8 +2751,8 @@ msgstr "" "verilmez" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "Tam İsim" @@ -2781,9 +2781,9 @@ msgid "Bio" msgstr "Hakkında" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "Yer" @@ -2797,7 +2797,7 @@ msgstr "" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "" @@ -3228,7 +3228,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "Abone ol" @@ -3268,7 +3268,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:676 +#: actions/repeat.php:114 lib/noticelist.php:677 #, fuzzy msgid "Repeated" msgstr "Yarat" @@ -3417,7 +3417,7 @@ msgstr "Yer" msgid "Description" msgstr "Abonelikler" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "İstatistikler" @@ -3528,71 +3528,71 @@ msgstr "" msgid "%1$s group, page %2$d" msgstr "Bütün abonelikler" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 #, fuzzy msgid "Group profile" msgstr "Böyle bir durum mesajı yok." -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 #, fuzzy msgid "Note" msgstr "Durum mesajları" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "%s için durum RSS beslemesi" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "%s için durum RSS beslemesi" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "%s için durum RSS beslemesi" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, fuzzy, php-format msgid "FOAF for %s group" msgstr "%s için durum RSS beslemesi" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 #, fuzzy msgid "Members" msgstr "Üyelik başlangıcı" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 #, fuzzy msgid "Created" msgstr "Yarat" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3602,7 +3602,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3611,7 +3611,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "" @@ -4150,13 +4150,13 @@ msgstr "Böyle bir belge yok." msgid "Tag %s" msgstr "" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 #, fuzzy msgid "User profile" msgstr "Kullanıcının profili yok." #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "" @@ -5113,11 +5113,11 @@ msgstr "Kaldır" msgid "Attachments" msgstr "" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 #, fuzzy msgid "Provider" msgstr "Profil" @@ -5873,7 +5873,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 msgid "from" msgstr "" @@ -6029,26 +6029,26 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 #, fuzzy msgid "in context" msgstr "İçerik yok!" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 #, fuzzy msgid "Repeated by" msgstr "Yarat" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 #, fuzzy msgid "Reply" msgstr "cevapla" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 #, fuzzy msgid "Notice repeated" msgstr "Durum mesajları" @@ -6330,47 +6330,47 @@ msgstr "" msgid "Unsubscribe" msgstr "Aboneliği sonlandır" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 #, fuzzy msgid "Edit Avatar" msgstr "Avatar" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 #, fuzzy msgid "Edit profile settings" msgstr "Profil ayarları" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "" -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 #, fuzzy msgid "User role" msgstr "Kullanıcının profili yok." -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 msgctxt "role" msgid "Administrator" msgstr "" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 msgctxt "role" msgid "Moderator" msgstr "" diff --git a/locale/uk/LC_MESSAGES/statusnet.po b/locale/uk/LC_MESSAGES/statusnet.po index ab9a9bad1..d679449b2 100644 --- a/locale/uk/LC_MESSAGES/statusnet.po +++ b/locale/uk/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:44:13+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:28:35+0000\n" "Language-Team: Ukrainian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: out-statusnet\n" @@ -582,9 +582,9 @@ msgstr "Акаунт" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "Ім’я користувача" @@ -728,7 +728,7 @@ msgstr "Немає розміру." msgid "Invalid size." msgstr "Недійсний розмір." -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Аватара" @@ -760,7 +760,7 @@ msgid "Preview" msgstr "Перегляд" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "Видалити" @@ -1004,7 +1004,7 @@ msgstr "Ви впевненні, що бажаєте видалити цей д msgid "Do not delete this notice" msgstr "Не видаляти цей допис" -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "Видалити допис" @@ -2716,8 +2716,8 @@ msgstr "" "1-64 літери нижнього регістру і цифри, ніякої пунктуації або інтервалів" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "Повне ім’я" @@ -2744,9 +2744,9 @@ msgid "Bio" msgstr "Про себе" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "Розташування" @@ -2760,7 +2760,7 @@ msgstr "Показувати мою поточну локацію при над #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "Теґи" @@ -3224,7 +3224,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL-адреса Вашого профілю на іншому сумісному сервісі" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "Підписатись" @@ -3261,7 +3261,7 @@ msgstr "Ви не можете повторювати свої власні до msgid "You already repeated that notice." msgstr "Ви вже повторили цей допис." -#: actions/repeat.php:114 lib/noticelist.php:676 +#: actions/repeat.php:114 lib/noticelist.php:677 msgid "Repeated" msgstr "Повторено" @@ -3404,7 +3404,7 @@ msgstr "Організація" msgid "Description" msgstr "Опис" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "Статистика" @@ -3525,67 +3525,67 @@ msgstr "Група %s" msgid "%1$s group, page %2$d" msgstr "Група %1$s, сторінка %2$d" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 msgid "Group profile" msgstr "Профіль групи" -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "URL" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 msgid "Note" msgstr "Зауваження" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "Додаткові імена" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "Діяльність групи" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Стрічка дописів групи %s (RSS 1.0)" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Стрічка дописів групи %s (RSS 2.0)" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "Стрічка дописів групи %s (Atom)" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, php-format msgid "FOAF for %s group" msgstr "FOAF для групи %s" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 msgid "Members" msgstr "Учасники" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Пусто)" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "Всі учасники" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 msgid "Created" msgstr "Створено" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3600,7 +3600,7 @@ msgstr "" "короткі дописи про своє життя та інтереси. [Приєднуйтесь](%%action.register%" "%) зараз і долучіться до спілкування! ([Дізнатися більше](%%doc.help%%))" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3613,7 +3613,7 @@ msgstr "" "забезпеченні [StatusNet](http://status.net/). Члени цієї групи роблять " "короткі дописи про своє життя та інтереси. " -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "Адміни" @@ -4165,12 +4165,12 @@ msgstr "Немає ID аргументу." msgid "Tag %s" msgstr "Позначити %s" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 msgid "User profile" msgstr "Профіль користувача." #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "Фото" @@ -5097,11 +5097,11 @@ msgstr "Відкликати" msgid "Attachments" msgstr "Вкладення" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "Автор" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 msgid "Provider" msgstr "Провайдер" @@ -5147,9 +5147,9 @@ msgid "Could not find a user with nickname %s" msgstr "Не вдалося знайти користувача з іменем %s" #: lib/command.php:143 -#, fuzzy, php-format +#, php-format msgid "Could not find a local user with nickname %s" -msgstr "Не вдалося знайти користувача з іменем %s" +msgstr "Не вдалося знайти локального користувача з іменем %s" #: lib/command.php:176 msgid "Sorry, this command is not yet implemented." @@ -5229,6 +5229,8 @@ msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" +"%s — це віддалений профіль; Ви можете надсилати приватні повідомлення лише " +"користувачам одного з вами сервісу." #: lib/command.php:450 #, php-format @@ -5280,9 +5282,8 @@ msgid "Specify the name of the user to subscribe to" msgstr "Зазначте ім’я користувача, до якого бажаєте підписатись" #: lib/command.php:602 -#, fuzzy msgid "Can't subscribe to OMB profiles by command." -msgstr "Ви не підписані до цього профілю." +msgstr "Не можу підписатись до профілю OMB за командою." #: lib/command.php:608 #, php-format @@ -5955,7 +5956,7 @@ msgstr "" "повідомлення аби долучити користувачів до розмови. Такі повідомлення бачите " "лише Ви." -#: lib/mailbox.php:227 lib/noticelist.php:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 msgid "from" msgstr "від" @@ -6110,23 +6111,23 @@ msgstr "Зах." msgid "at" msgstr "в" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 msgid "in context" msgstr "в контексті" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 msgid "Repeated by" msgstr "Повторено" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "Відповісти на цей допис" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 msgid "Reply" msgstr "Відповісти" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 msgid "Notice repeated" msgstr "Допис повторили" @@ -6394,44 +6395,44 @@ msgstr "Відписатись від цього користувача" msgid "Unsubscribe" msgstr "Відписатись" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Аватара" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "Діяльність користувача" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 msgid "Edit profile settings" msgstr "Налаштування профілю" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "Правка" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "Надіслати пряме повідомлення цьому користувачеві" -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "Повідомлення" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "Модерувати" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 msgid "User role" msgstr "Роль користувача" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 msgctxt "role" msgid "Administrator" msgstr "Адміністратор" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 msgctxt "role" msgid "Moderator" msgstr "Модератор" diff --git a/locale/vi/LC_MESSAGES/statusnet.po b/locale/vi/LC_MESSAGES/statusnet.po index 3848e101c..68fc6523c 100644 --- a/locale/vi/LC_MESSAGES/statusnet.po +++ b/locale/vi/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:44:16+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:28:37+0000\n" "Language-Team: Vietnamese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: vi\n" "X-Message-Group: out-statusnet\n" @@ -591,9 +591,9 @@ msgstr "Giới thiệu" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "Biệt danh" @@ -741,7 +741,7 @@ msgstr "Không có kích thước." msgid "Invalid size." msgstr "Kích thước không hợp lệ." -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "Hình đại diện" @@ -776,7 +776,7 @@ msgid "Preview" msgstr "Xem trước" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 #, fuzzy msgid "Delete" msgstr "Xóa tin nhắn" @@ -1034,7 +1034,7 @@ msgstr "Bạn có chắc chắn là muốn xóa tin nhắn này không?" msgid "Do not delete this notice" msgstr "Không thể xóa tin nhắn này." -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 #, fuzzy msgid "Delete this notice" msgstr "Xóa tin nhắn" @@ -2848,8 +2848,8 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 chữ cái thường hoặc là chữ số, không có dấu chấm hay " #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "Tên đầy đủ" @@ -2877,9 +2877,9 @@ msgid "Bio" msgstr "Lý lịch" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "Thành phố" @@ -2893,7 +2893,7 @@ msgstr "" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "Từ khóa" @@ -3346,7 +3346,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "URL trong hồ sơ cá nhân của bạn ở trên các trang microblogging khác" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "Theo bạn này" @@ -3387,7 +3387,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:676 +#: actions/repeat.php:114 lib/noticelist.php:677 #, fuzzy msgid "Repeated" msgstr "Tạo" @@ -3536,7 +3536,7 @@ msgstr "Thư mời đã gửi" msgid "Description" msgstr "Mô tả" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "Số liệu thống kê" @@ -3648,72 +3648,72 @@ msgstr "%s và nhóm" msgid "%1$s group, page %2$d" msgstr "Thành viên" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 #, fuzzy msgid "Group profile" msgstr "Thông tin nhóm" -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 #, fuzzy msgid "Note" msgstr "Tin nhắn" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 #, fuzzy msgid "Group actions" msgstr "Mã nhóm" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "Dòng tin nhắn cho %s" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "Dòng tin nhắn cho %s" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "Dòng tin nhắn cho %s" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, php-format msgid "FOAF for %s group" msgstr "Hộp thư đi của %s" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 msgid "Members" msgstr "Thành viên" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 #, fuzzy msgid "All members" msgstr "Thành viên" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 #, fuzzy msgid "Created" msgstr "Tạo" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3723,7 +3723,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3732,7 +3732,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "" @@ -4290,13 +4290,13 @@ msgstr "Không có tài liệu nào." msgid "Tag %s" msgstr "Từ khóa" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 #, fuzzy msgid "User profile" msgstr "Hồ sơ" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "" @@ -5271,11 +5271,11 @@ msgstr "Xóa" msgid "Attachments" msgstr "" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 #, fuzzy msgid "Provider" msgstr "Hồ sơ " @@ -6095,7 +6095,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 #, fuzzy msgid "from" msgstr " từ " @@ -6255,26 +6255,26 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 #, fuzzy msgid "in context" msgstr "Không có nội dung!" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 #, fuzzy msgid "Repeated by" msgstr "Tạo" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 #, fuzzy msgid "Reply to this notice" msgstr "Trả lời tin nhắn này" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 msgid "Reply" msgstr "Trả lời" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 #, fuzzy msgid "Notice repeated" msgstr "Tin đã gửi" @@ -6569,50 +6569,50 @@ msgstr "Ngừng đăng ký từ người dùng này" msgid "Unsubscribe" msgstr "Hết theo" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 #, fuzzy msgid "Edit Avatar" msgstr "Hình đại diện" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 #, fuzzy msgid "User actions" msgstr "Không tìm thấy action" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 #, fuzzy msgid "Edit profile settings" msgstr "Các thiết lập cho Hồ sơ cá nhân" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 #, fuzzy msgid "Send a direct message to this user" msgstr "Bạn đã theo những người này:" -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 #, fuzzy msgid "Message" msgstr "Tin mới nhất" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 #, fuzzy msgid "User role" msgstr "Hồ sơ" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 msgctxt "role" msgid "Administrator" msgstr "" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 msgctxt "role" msgid "Moderator" msgstr "" diff --git a/locale/zh_CN/LC_MESSAGES/statusnet.po b/locale/zh_CN/LC_MESSAGES/statusnet.po index e6542c3a7..e64a31790 100644 --- a/locale/zh_CN/LC_MESSAGES/statusnet.po +++ b/locale/zh_CN/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:44:18+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:28:41+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 (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hans\n" "X-Message-Group: out-statusnet\n" @@ -588,9 +588,9 @@ msgstr "帐号" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "昵称" @@ -739,7 +739,7 @@ msgstr "没有大小。" msgid "Invalid size." msgstr "大小不正确。" -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "头像" @@ -771,7 +771,7 @@ msgid "Preview" msgstr "预览" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 #, fuzzy msgid "Delete" msgstr "删除" @@ -1030,7 +1030,7 @@ msgstr "确定要删除这条消息吗?" msgid "Do not delete this notice" msgstr "无法删除通告。" -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 #, fuzzy msgid "Delete this notice" msgstr "删除通告" @@ -2789,8 +2789,8 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1 到 64 个小写字母或数字,不包含标点及空白" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "全名" @@ -2818,9 +2818,9 @@ msgid "Bio" msgstr "自述" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "位置" @@ -2834,7 +2834,7 @@ msgstr "" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "标签" @@ -3278,7 +3278,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "您在其他兼容的微博客服务的个人信息URL" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "订阅" @@ -3321,7 +3321,7 @@ msgstr "您必须同意此授权方可注册。" msgid "You already repeated that notice." msgstr "您已成功阻止该用户:" -#: actions/repeat.php:114 lib/noticelist.php:676 +#: actions/repeat.php:114 lib/noticelist.php:677 #, fuzzy msgid "Repeated" msgstr "创建" @@ -3471,7 +3471,7 @@ msgstr "分页" msgid "Description" msgstr "描述" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "统计" @@ -3583,71 +3583,71 @@ msgstr "%s 组" msgid "%1$s group, page %2$d" msgstr "%s 组成员, 第 %d 页" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 #, fuzzy msgid "Group profile" msgstr "组资料" -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "URL 互联网地址" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 #, fuzzy msgid "Note" msgstr "通告" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "组动作" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "%s 的通告聚合" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, fuzzy, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "%s 的通告聚合" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, fuzzy, php-format msgid "Notice feed for %s group (Atom)" msgstr "%s 的通告聚合" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, php-format msgid "FOAF for %s group" msgstr "%s 的发件箱" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 #, fuzzy msgid "Members" msgstr "注册于" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(没有)" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "所有成员" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 #, fuzzy msgid "Created" msgstr "创建" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3657,7 +3657,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, fuzzy, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3668,7 +3668,7 @@ msgstr "" "**%s** 是一个 %%%%site.name%%%% 的用户组,一个微博客服务 [micro-blogging]" "(http://en.wikipedia.org/wiki/Micro-blogging)" -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 #, fuzzy msgid "Admins" msgstr "admin管理员" @@ -4219,13 +4219,13 @@ msgstr "没有这份文档。" msgid "Tag %s" msgstr "标签" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 #, fuzzy msgid "User profile" msgstr "用户没有个人信息。" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "相片" @@ -5201,11 +5201,11 @@ msgstr "移除" msgid "Attachments" msgstr "" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 #, fuzzy msgid "Provider" msgstr "个人信息" @@ -5970,7 +5970,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 #, fuzzy msgid "from" msgstr " 从 " @@ -6129,27 +6129,27 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 #, fuzzy msgid "in context" msgstr "没有内容!" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 #, fuzzy msgid "Repeated by" msgstr "创建" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 #, fuzzy msgid "Reply to this notice" msgstr "无法删除通告。" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 #, fuzzy msgid "Reply" msgstr "回复" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 #, fuzzy msgid "Notice repeated" msgstr "消息已发布。" @@ -6440,51 +6440,51 @@ msgstr "取消订阅 %s" msgid "Unsubscribe" msgstr "退订" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 #, fuzzy msgid "Edit Avatar" msgstr "头像" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 #, fuzzy msgid "User actions" msgstr "未知动作" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 #, fuzzy msgid "Edit profile settings" msgstr "个人设置" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 #, fuzzy msgid "Send a direct message to this user" msgstr "无法向此用户发送消息。" -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 #, fuzzy msgid "Message" msgstr "新消息" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 #, fuzzy msgid "User role" msgstr "用户没有个人信息。" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 #, fuzzy msgctxt "role" msgid "Administrator" msgstr "admin管理员" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 msgctxt "role" msgid "Moderator" msgstr "" diff --git a/locale/zh_TW/LC_MESSAGES/statusnet.po b/locale/zh_TW/LC_MESSAGES/statusnet.po index ae1cd9546..5672a6f0d 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-03-12 23:41+0000\n" -"PO-Revision-Date: 2010-03-12 23:44:21+0000\n" +"POT-Creation-Date: 2010-03-14 22:26+0000\n" +"PO-Revision-Date: 2010-03-14 22:28:45+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 (r63655); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r63757); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hant\n" "X-Message-Group: out-statusnet\n" @@ -580,9 +580,9 @@ msgstr "關於" #: actions/apioauthauthorize.php:313 actions/login.php:230 #: actions/profilesettings.php:106 actions/register.php:424 -#: actions/showgroup.php:244 actions/tagother.php:94 +#: actions/showgroup.php:245 actions/tagother.php:94 #: actions/userauthorization.php:145 lib/groupeditform.php:152 -#: lib/userprofile.php:131 +#: lib/userprofile.php:132 msgid "Nickname" msgstr "暱稱" @@ -729,7 +729,7 @@ msgstr "無尺寸" msgid "Invalid size." msgstr "尺寸錯誤" -#: actions/avatarsettings.php:67 actions/showgroup.php:229 +#: actions/avatarsettings.php:67 actions/showgroup.php:230 #: lib/accountsettingsaction.php:112 msgid "Avatar" msgstr "個人圖像" @@ -762,7 +762,7 @@ msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 actions/showapplication.php:252 -#: lib/deleteuserform.php:66 lib/noticelist.php:657 +#: lib/deleteuserform.php:66 lib/noticelist.php:658 msgid "Delete" msgstr "" @@ -1017,7 +1017,7 @@ msgstr "" msgid "Do not delete this notice" msgstr "無此通知" -#: actions/deletenotice.php:146 lib/noticelist.php:657 +#: actions/deletenotice.php:146 lib/noticelist.php:658 msgid "Delete this notice" msgstr "" @@ -2695,8 +2695,8 @@ msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64個小寫英文字母或數字,勿加標點符號或空格" #: actions/profilesettings.php:111 actions/register.php:448 -#: actions/showgroup.php:255 actions/tagother.php:104 -#: lib/groupeditform.php:157 lib/userprofile.php:149 +#: actions/showgroup.php:256 actions/tagother.php:104 +#: lib/groupeditform.php:157 lib/userprofile.php:150 msgid "Full name" msgstr "全名" @@ -2724,9 +2724,9 @@ msgid "Bio" msgstr "自我介紹" #: actions/profilesettings.php:132 actions/register.php:471 -#: actions/showgroup.php:264 actions/tagother.php:112 +#: actions/showgroup.php:265 actions/tagother.php:112 #: actions/userauthorization.php:166 lib/groupeditform.php:177 -#: lib/userprofile.php:164 +#: lib/userprofile.php:165 msgid "Location" msgstr "地點" @@ -2740,7 +2740,7 @@ msgstr "" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 -#: lib/subscriptionlist.php:108 lib/userprofile.php:209 +#: lib/subscriptionlist.php:108 lib/userprofile.php:210 msgid "Tags" msgstr "" @@ -3162,7 +3162,7 @@ msgid "URL of your profile on another compatible microblogging service" msgstr "" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 -#: lib/userprofile.php:394 +#: lib/userprofile.php:395 msgid "Subscribe" msgstr "" @@ -3201,7 +3201,7 @@ msgstr "" msgid "You already repeated that notice." msgstr "無此使用者" -#: actions/repeat.php:114 lib/noticelist.php:676 +#: actions/repeat.php:114 lib/noticelist.php:677 #, fuzzy msgid "Repeated" msgstr "新增" @@ -3347,7 +3347,7 @@ msgstr "地點" msgid "Description" msgstr "所有訂閱" -#: actions/showapplication.php:192 actions/showgroup.php:438 +#: actions/showapplication.php:192 actions/showgroup.php:439 #: lib/profileaction.php:176 msgid "Statistics" msgstr "" @@ -3458,70 +3458,70 @@ msgstr "" msgid "%1$s group, page %2$d" msgstr "所有訂閱" -#: actions/showgroup.php:226 +#: actions/showgroup.php:227 #, fuzzy msgid "Group profile" msgstr "無此通知" -#: actions/showgroup.php:271 actions/tagother.php:118 -#: actions/userauthorization.php:175 lib/userprofile.php:177 +#: actions/showgroup.php:272 actions/tagother.php:118 +#: actions/userauthorization.php:175 lib/userprofile.php:178 msgid "URL" msgstr "" -#: actions/showgroup.php:282 actions/tagother.php:128 -#: actions/userauthorization.php:187 lib/userprofile.php:194 +#: actions/showgroup.php:283 actions/tagother.php:128 +#: actions/userauthorization.php:187 lib/userprofile.php:195 msgid "Note" msgstr "" -#: actions/showgroup.php:292 lib/groupeditform.php:184 +#: actions/showgroup.php:293 lib/groupeditform.php:184 msgid "Aliases" msgstr "" -#: actions/showgroup.php:301 +#: actions/showgroup.php:302 msgid "Group actions" msgstr "" -#: actions/showgroup.php:337 +#: actions/showgroup.php:338 #, php-format msgid "Notice feed for %s group (RSS 1.0)" msgstr "" -#: actions/showgroup.php:343 +#: actions/showgroup.php:344 #, php-format msgid "Notice feed for %s group (RSS 2.0)" msgstr "" -#: actions/showgroup.php:349 +#: actions/showgroup.php:350 #, php-format msgid "Notice feed for %s group (Atom)" msgstr "" -#: actions/showgroup.php:354 +#: actions/showgroup.php:355 #, fuzzy, php-format msgid "FOAF for %s group" msgstr "無此通知" -#: actions/showgroup.php:390 actions/showgroup.php:447 lib/groupnav.php:91 +#: actions/showgroup.php:391 actions/showgroup.php:448 lib/groupnav.php:91 #, fuzzy msgid "Members" msgstr "何時加入會員的呢?" -#: actions/showgroup.php:395 lib/profileaction.php:117 +#: actions/showgroup.php:396 lib/profileaction.php:117 #: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" -#: actions/showgroup.php:401 +#: actions/showgroup.php:402 msgid "All members" msgstr "" -#: actions/showgroup.php:441 +#: actions/showgroup.php:442 #, fuzzy msgid "Created" msgstr "新增" -#: actions/showgroup.php:457 +#: actions/showgroup.php:458 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3531,7 +3531,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" -#: actions/showgroup.php:463 +#: actions/showgroup.php:464 #, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." @@ -3540,7 +3540,7 @@ msgid "" "their life and interests. " msgstr "" -#: actions/showgroup.php:491 +#: actions/showgroup.php:492 msgid "Admins" msgstr "" @@ -4076,13 +4076,13 @@ msgstr "無此文件" msgid "Tag %s" msgstr "" -#: actions/tagother.php:77 lib/userprofile.php:75 +#: actions/tagother.php:77 lib/userprofile.php:76 #, fuzzy msgid "User profile" msgstr "無此通知" #: actions/tagother.php:81 actions/userauthorization.php:132 -#: lib/userprofile.php:102 +#: lib/userprofile.php:103 msgid "Photo" msgstr "" @@ -5017,11 +5017,11 @@ msgstr "" msgid "Attachments" msgstr "" -#: lib/attachmentlist.php:265 +#: lib/attachmentlist.php:263 msgid "Author" msgstr "" -#: lib/attachmentlist.php:278 +#: lib/attachmentlist.php:276 msgid "Provider" msgstr "" @@ -5766,7 +5766,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:484 +#: lib/mailbox.php:227 lib/noticelist.php:485 msgid "from" msgstr "" @@ -5921,25 +5921,25 @@ msgstr "" msgid "at" msgstr "" -#: lib/noticelist.php:568 +#: lib/noticelist.php:569 #, fuzzy msgid "in context" msgstr "無內容" -#: lib/noticelist.php:603 +#: lib/noticelist.php:604 #, fuzzy msgid "Repeated by" msgstr "新增" -#: lib/noticelist.php:630 +#: lib/noticelist.php:631 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:631 +#: lib/noticelist.php:632 msgid "Reply" msgstr "" -#: lib/noticelist.php:675 +#: lib/noticelist.php:676 #, fuzzy msgid "Notice repeated" msgstr "更新個人圖像" @@ -6218,47 +6218,47 @@ msgstr "" msgid "Unsubscribe" msgstr "" -#: lib/userprofile.php:116 +#: lib/userprofile.php:117 #, fuzzy msgid "Edit Avatar" msgstr "個人圖像" -#: lib/userprofile.php:236 +#: lib/userprofile.php:237 msgid "User actions" msgstr "" -#: lib/userprofile.php:251 +#: lib/userprofile.php:252 #, fuzzy msgid "Edit profile settings" msgstr "線上即時通設定" -#: lib/userprofile.php:252 +#: lib/userprofile.php:253 msgid "Edit" msgstr "" -#: lib/userprofile.php:275 +#: lib/userprofile.php:276 msgid "Send a direct message to this user" msgstr "" -#: lib/userprofile.php:276 +#: lib/userprofile.php:277 msgid "Message" msgstr "" -#: lib/userprofile.php:314 +#: lib/userprofile.php:315 msgid "Moderate" msgstr "" -#: lib/userprofile.php:352 +#: lib/userprofile.php:353 #, fuzzy msgid "User role" msgstr "無此通知" -#: lib/userprofile.php:354 +#: lib/userprofile.php:355 msgctxt "role" msgid "Administrator" msgstr "" -#: lib/userprofile.php:355 +#: lib/userprofile.php:356 msgctxt "role" msgid "Moderator" msgstr "" -- cgit v1.2.3-54-g00ecf From 3e2b806e755064d9bcf5ad63faa83329455ffbc2 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 15 Mar 2010 09:42:25 -0700 Subject: Add scripts/docgen.php to build basic doxygen HTML docs from doc comments, either for core or a given plugin. Nothing too fancy yet; style and layout needs some loving! --- scripts/docgen.php | 84 +++ scripts/doxygen.tmpl | 1516 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1600 insertions(+) create mode 100755 scripts/docgen.php create mode 100644 scripts/doxygen.tmpl diff --git a/scripts/docgen.php b/scripts/docgen.php new file mode 100755 index 000000000..78bbe37d8 --- /dev/null +++ b/scripts/docgen.php @@ -0,0 +1,84 @@ +#!/usr/bin/env php + STATUSNET_VERSION, + '%%indir%%' => $indir, + '%%pattern%%' => $pattern, + '%%outdir%%' => $outdir, + '%%htmlout%%' => $outdir, + '%%exclude%%' => $exclude, +); + +var_dump($replacements); + +$template = file_get_contents(dirname(__FILE__) . '/doxygen.tmpl'); +$template = strtr($template, $replacements); + +$templateFile = tempnam(sys_get_temp_dir(), 'statusnet-doxygen'); +file_put_contents($templateFile, $template); + +$cmd = "doxygen " . escapeshellarg($templateFile); + +$retval = 0; +passthru($cmd, $retval); + +if ($retval == 0) { + echo "Done!\n"; + unlink($templateFile); + exit(0); +} else { + echo "Failed! Doxygen config left in $templateFile\n"; + exit($retval); +} + diff --git a/scripts/doxygen.tmpl b/scripts/doxygen.tmpl new file mode 100644 index 000000000..15d03e3bb --- /dev/null +++ b/scripts/doxygen.tmpl @@ -0,0 +1,1516 @@ +# Doxyfile 1.6.1 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file +# that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# http://www.gnu.org/software/libiconv for the list of possible encodings. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = StatusNet + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = %%version%% + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = %%outdir%% + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, +# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, +# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English +# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, +# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, +# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = YES + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = %%indir%% + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like regular Qt-style comments +# (thus requiring an explicit @brief command for a brief description.) + +JAVADOC_AUTOBRIEF = NO + +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will +# interpret the first line (until the first dot) of a Qt-style +# comment as the brief description. If set to NO, the comments +# will behave just like regular Qt-style comments (thus requiring +# an explicit \brief command for a brief description.) + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce +# a new page for each member. If set to NO, the documentation of a member will +# be part of the file/class/namespace that contains it. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 8 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java +# sources only. Doxygen will then generate output that is more tailored for +# Java. For instance, namespaces will be presented as packages, qualified +# scopes will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources only. Doxygen will then generate output that is more tailored for +# Fortran. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for +# VHDL. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Doxygen selects the parser to use depending on the extension of the files it parses. +# With this tag you can assign which parser to use for a given extension. +# Doxygen has a built-in mapping, but you can override or extend it using this tag. +# The format is ext=language, where ext is a file extension, and language is one of +# the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP, +# Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat +# .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran), +# use: inc=Fortran f=C. Note that for custom extensions you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. + +EXTENSION_MAPPING = + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should +# set this tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. +# func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. +# Doxygen will parse them like normal C++ but will assume all classes use public +# instead of private inheritance when no explicit protection keyword is present. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate getter +# and setter methods for a property. Setting this option to YES (the default) +# will make doxygen to replace the get and set methods by a property in the +# documentation. This will only work if the methods are indeed getting or +# setting a simple type. If this is not the case, or you want to show the +# methods anyway, you should set this option to NO. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum +# is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically +# be useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. + +TYPEDEF_HIDES_STRUCT = NO + +# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to +# determine which symbols to keep in memory and which to flush to disk. +# When the cache is full, less often used symbols will be written to disk. +# For small to medium size projects (<1000 input files) the default value is +# probably good enough. For larger projects a too small cache size can cause +# doxygen to be busy swapping symbols to and from disk most of the time +# causing a significant performance penality. +# If the system has enough physical memory increasing the cache will improve the +# performance by keeping more symbols in memory. Note that the value works on +# a logarithmic scale so increasing the size by one will rougly double the +# memory usage. The cache size is given by this formula: +# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, +# corresponding to a cache size of 2^16 = 65536 symbols + +SYMBOL_CACHE_SIZE = 0 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = NO + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base +# name of the file that contains the anonymous namespace. By default +# anonymous namespace are hidden. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the (brief and detailed) documentation of class members so that constructors and destructors are listed first. If set to NO (the default) the constructors will appear in the respective orders defined by SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the +# hierarchy of group names into alphabetical order. If set to NO (the default) +# the group names will appear in their defined order. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +# If the sources in your project are distributed over multiple directories +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +# in the documentation. The default is NO. + +SHOW_DIRECTORIES = NO + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. +# This will remove the Files entry from the Quick Index and from the +# Folder Tree View (if specified). The default is YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the +# Namespaces page. +# This will remove the Namespaces entry from the Quick Index +# and from the Folder Tree View (if specified). The default is YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command , where is the value of +# the FILE_VERSION_FILTER tag, and is the name of an input file +# provided by doxygen. Whatever the program writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by +# doxygen. The layout file controls the global structure of the generated output files +# in an output format independent way. The create the layout file that represents +# doxygen's defaults, run doxygen with the -l option. You can optionally specify a +# file name after the option, if omitted DoxygenLayout.xml will be used as the name +# of the layout file. + +LAYOUT_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be abled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = NO + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = %%indir%% + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is +# also the default input encoding. Doxygen uses libiconv (or the iconv built +# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for +# the list of possible encodings. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx +# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 + +FILE_PATTERNS = %%pattern%% + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +# fixme for some reason this doesn't work? + +EXCLUDE = config.php extlib local plugins scripts + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or +# directories that are symbolic links (a Unix filesystem feature) are excluded +# from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. Note that the wildcards are matched +# against the file with absolute path, so to exclude all test directories +# for example use the pattern */test/* + +EXCLUDE_PATTERNS = %%exclude%% + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command , where +# is the value of the INPUT_FILTER tag, and is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. +# If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. +# Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. +# The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER +# is applied to all files. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = YES + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = NO + +# If the REFERENCES_RELATION tag is set to YES +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = NO + +# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) +# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from +# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will +# link to the source code. +# Otherwise they will link to the documentation. + +REFERENCES_LINK_SOURCE = YES + +# If the USE_HTAGS tag is set to YES then the references to source code +# will point to the HTML generated by the htags(1) tool instead of doxygen +# built-in source browser. The htags tool is part of GNU's global source +# tagging system (see http://www.gnu.org/software/global/global.html). You +# will need version 4.8.6 or higher. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = NO + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = %%htmlout%% + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# stylesheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. For this to work a browser that supports +# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox +# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). + +HTML_DYNAMIC_SECTIONS = NO + +# If the GENERATE_DOCSET tag is set to YES, additional index files +# will be generated that can be used as input for Apple's Xcode 3 +# integrated development environment, introduced with OSX 10.5 (Leopard). +# To create a documentation set, doxygen will generate a Makefile in the +# HTML output directory. Running make will produce the docset in that +# directory and running "make install" will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find +# it at startup. +# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information. + +GENERATE_DOCSET = NO + +# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the +# feed. A documentation feed provides an umbrella under which multiple +# documentation sets from a single provider (such as a company or product suite) +# can be grouped. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that +# should uniquely identify the documentation set bundle. This should be a +# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen +# will append .docset to the name. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING +# is used to encode HtmlHelp index (hhk), content (hhc) and project file +# content. + +CHM_INDEX_ENCODING = + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER +# are set, an additional index file will be generated that can be used as input for +# Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated +# HTML documentation. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can +# be used to specify the file name of the resulting .qch file. +# The path specified is relative to the HTML output folder. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#namespace + +QHP_NAMESPACE = + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#virtual-folders + +QHP_VIRTUAL_FOLDER = doc + +# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add. +# For more information please see +# http://doc.trolltech.com/qthelpproject.html#custom-filters + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see +# Qt Help Project / Custom Filters. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's +# filter section matches. +# Qt Help Project / Filter Attributes. + +QHP_SECT_FILTER_ATTRS = + +# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can +# be used to specify the location of Qt's qhelpgenerator. +# If non-empty doxygen will try to run qhelpgenerator on the generated +# .qhp file. + +QHG_LOCATION = + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. +# If the tag value is set to YES, a side panel will be generated +# containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). +# Windows users are probably better off using the HTML help feature. + +GENERATE_TREEVIEW = NO + +# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, +# and Class Hierarchy pages using a tree view instead of an ordered list. + +USE_INLINE_TREES = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +# Use this tag to change the font size of Latex formulas included +# as images in the HTML documentation. The default is 10. Note that +# when you change the font size after a successful doxygen run you need +# to manually remove any form_*.png images from the HTML output directory +# to force them to be regenerated. + +FORMULA_FONTSIZE = 10 + +# When the SEARCHENGINE tag is enable doxygen will generate a search box for the HTML output. The underlying search engine uses javascript +# and DHTML and should work on any modern browser. Note that when using HTML help (GENERATE_HTMLHELP) or Qt help (GENERATE_QHP) +# there is already a search function so this one should typically +# be disabled. + +SEARCHENGINE = YES + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = NO + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = YES + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = YES + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +# If LATEX_SOURCE_CODE is set to YES then doxygen will include source code with syntax highlighting in the LaTeX output. Note that which sources are shown also depends on other settings such as SOURCE_BROWSER. + +LATEX_SOURCE_CODE = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. +# This is useful +# if you want to understand what is going on. +# On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = NO + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_DEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator +# instead of the = operator. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse +# the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option is superseded by the HAVE_DOT option below. This is only a +# fallback. It is recommended to install and use dot, since it yields more +# powerful graphs. + +CLASS_DIAGRAMS = YES + +# You can define message sequence charts within doxygen comments using the \msc +# command. Doxygen will then run the mscgen tool (see +# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the +# documentation. The MSCGEN_PATH tag allows you to specify the directory where +# the mscgen tool resides. If left empty the tool is assumed to be found in the +# default search path. + +MSCGEN_PATH = + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = NO + +# By default doxygen will write a font called FreeSans.ttf to the output +# directory and reference it in all dot files that doxygen generates. This +# font does not include all possible unicode characters however, so when you need +# these (or just want a differently looking font) you can specify the font name +# using DOT_FONTNAME. You need need to make sure dot is able to find the font, +# which can be done by putting it in a standard location or by setting the +# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory +# containing the font. + +DOT_FONTNAME = FreeSans + +# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. +# The default size is 10pt. + +DOT_FONTSIZE = 10 + +# By default doxygen will tell dot to use the output directory to look for the +# FreeSans.ttf font (which doxygen will put there itself). If you specify a +# different font using DOT_FONTNAME you can set the path where dot +# can find it using this tag. + +DOT_FONTPATH = + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for groups, showing the direct groups dependencies + +GROUP_GRAPHS = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = NO + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT options are set to YES then +# doxygen will generate a call dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable call graphs +# for selected functions only using the \callgraph command. + +CALL_GRAPH = NO + +# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then +# doxygen will generate a caller dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable caller +# graphs for selected functions only using the \callergraph command. + +CALLER_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES +# then doxygen will show the dependencies a directory has on other directories +# in a graphical way. The dependency relations are determined by the #include +# relations between the files in the directories. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are png, jpg, or gif +# If left blank png will be used. + +DOT_IMAGE_FORMAT = png + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of +# nodes that will be shown in the graph. If the number of nodes in a graph +# becomes larger than this value, doxygen will truncate the graph, which is +# visualized by representing a node as a red box. Note that doxygen if the +# number of direct children of the root node in a graph is already larger than +# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note +# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. + +DOT_GRAPH_MAX_NODES = 50 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes +# that lay further from the root node will be omitted. Note that setting this +# option to 1 or 2 may greatly reduce the computation time needed for large +# code bases. Also note that the size of a graph can be further restricted by +# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. + +MAX_DOT_GRAPH_DEPTH = 0 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, because dot on Windows does not +# seem to support this out of the box. Warning: Depending on the platform used, +# enabling this option may lead to badly anti-aliased labels on the edges of +# a graph (i.e. they become hard to read). + +DOT_TRANSPARENT = NO + +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) +# support this, this feature is disabled by default. + +DOT_MULTI_TARGETS = YES + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES -- cgit v1.2.3-54-g00ecf From e9b671e3af17aaba1cbfb4dbe9e71fa4117cd0e3 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 15 Mar 2010 11:38:37 -0700 Subject: Consolidate and patch up redirection to remote notices. Now using the correct order consistently (URL, then URI if http/s), and as a niceness measure skipping the redirect if the only URL we have stored is the local one. (Could happen if remote OStatus feed has tag URIs and no alt link.) --- actions/shownotice.php | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/actions/shownotice.php b/actions/shownotice.php index d09100f67..a23027f7c 100644 --- a/actions/shownotice.php +++ b/actions/shownotice.php @@ -103,11 +103,6 @@ class ShownoticeAction extends OwnerDesignAction $this->user = User::staticGet('id', $this->profile->id); - if ($this->notice->is_local == Notice::REMOTE_OMB) { - common_redirect($this->notice->uri); - return false; - } - $this->avatar = $this->profile->getAvatar(AVATAR_PROFILE_SIZE); return true; @@ -198,13 +193,20 @@ class ShownoticeAction extends OwnerDesignAction if ($this->notice->is_local == Notice::REMOTE_OMB) { if (!empty($this->notice->url)) { - common_redirect($this->notice->url, 301); + $target = $this->notice->url; } else if (!empty($this->notice->uri) && preg_match('/^https?:/', $this->notice->uri)) { - common_redirect($this->notice->uri, 301); + // Old OMB posts saved the remote URL only into the URI field. + $target = $this->notice->uri; + } else { + // Shouldn't happen. + $target = false; + } + if ($target && $target != $this->selfUrl()) { + common_redirect($target, 301); + return false; } - } else { - $this->showPage(); } + $this->showPage(); } /** -- cgit v1.2.3-54-g00ecf From 7aa49b5e87efa2aa383b446b264f00608f1a5eac Mon Sep 17 00:00:00 2001 From: James Walker Date: Mon, 15 Mar 2010 15:17:31 -0400 Subject: use canonical user url in xrd --- plugins/OStatus/lib/xrdaction.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/OStatus/lib/xrdaction.php b/plugins/OStatus/lib/xrdaction.php index b3c1d8453..f1a56e0a8 100644 --- a/plugins/OStatus/lib/xrdaction.php +++ b/plugins/OStatus/lib/xrdaction.php @@ -46,10 +46,10 @@ class XrdAction extends Action if (empty($xrd->subject)) { $xrd->subject = Discovery::normalize($this->uri); } - $xrd->alias[] = common_profile_url($nick); + $xrd->alias[] = $this->user->uri; $xrd->links[] = array('rel' => Discovery::PROFILEPAGE, 'type' => 'text/html', - 'href' => common_profile_url($nick)); + 'href' => $this->user->uri); $xrd->links[] = array('rel' => Discovery::UPDATESFROM, 'href' => common_local_url('ApiTimelineUser', @@ -65,7 +65,7 @@ class XrdAction extends Action // XFN $xrd->links[] = array('rel' => 'http://gmpg.org/xfn/11', 'type' => 'text/html', - 'href' => common_profile_url($nick)); + 'href' => $this->user->uri); // FOAF $xrd->links[] = array('rel' => 'describedby', 'type' => 'application/rdf+xml', -- cgit v1.2.3-54-g00ecf From c9232d8f26f055a9a1124b4b3db510e80979bf18 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 15 Mar 2010 20:21:55 +0000 Subject: Ticket #2242: fix reading of inline XHTML content in Atom feeds for OStatus input. Lookup of the
    needed to check for the XHTML namespace. --- lib/activity.php | 2 +- plugins/OStatus/scripts/testfeed.php | 89 ++++++++++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 plugins/OStatus/scripts/testfeed.php diff --git a/lib/activity.php b/lib/activity.php index 6acf37a8a..ae65fe36f 100644 --- a/lib/activity.php +++ b/lib/activity.php @@ -463,7 +463,7 @@ class ActivityUtils $text = $contentEl->textContent; return htmlspecialchars_decode($text, ENT_QUOTES); } else if ($type == 'xhtml') { - $divEl = ActivityUtils::child($contentEl, 'div'); + $divEl = ActivityUtils::child($contentEl, 'div', 'http://www.w3.org/1999/xhtml'); if (empty($divEl)) { return null; } diff --git a/plugins/OStatus/scripts/testfeed.php b/plugins/OStatus/scripts/testfeed.php new file mode 100644 index 000000000..5e3ccd433 --- /dev/null +++ b/plugins/OStatus/scripts/testfeed.php @@ -0,0 +1,89 @@ +#!/usr/bin/env php +. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/../../..')); + +$longoptions = array('skip=', 'count='); + +$helptext = <<loadXML($xml)) { + print "Bad XML.\n"; + exit(1); +} + +if ($skip || $count) { + $entries = $feed->getElementsByTagNameNS(ActivityUtils::ATOM, 'entry'); + $remove = array(); + for ($i = 0; $i < $skip && $i < $entries->length; $i++) { + $item = $entries->item($i); + if ($item) { + $remove[] = $item; + } + } + if ($count) { + for ($i = $skip + $count; $i < $entries->length; $i++) { + $item = $entries->item($i); + if ($item) { + $remove[] = $item; + } + } + } + foreach ($remove as $item) { + $item->parentNode->removeChild($item); + } +} + +Event::handle('StartFeedSubReceive', array($sub, $feed)); + -- cgit v1.2.3-54-g00ecf From dfac4bfd095684daf935544ed3ae8b9e4eb9c08e Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 15 Mar 2010 20:26:42 +0000 Subject: Fix feed discovery: html:link@rel can contain multiple values; saw rel="updates alternate" in the wild at http://tantek.com/ which broke old discovery code. --- plugins/OStatus/lib/feeddiscovery.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/OStatus/lib/feeddiscovery.php b/plugins/OStatus/lib/feeddiscovery.php index ff76b229e..7761ea583 100644 --- a/plugins/OStatus/lib/feeddiscovery.php +++ b/plugins/OStatus/lib/feeddiscovery.php @@ -211,11 +211,11 @@ class FeedDiscovery $type = $node->attributes->getNamedItem('type'); $href = $node->attributes->getNamedItem('href'); if ($rel && $type && $href) { - $rel = trim($rel->value); + $rel = array_filter(explode(" ", $rel->value)); $type = trim($type->value); $href = trim($href->value); - if (trim($rel) == 'alternate' && array_key_exists($type, $feeds) && empty($feeds[$type])) { + if (in_array('alternate', $rel) && array_key_exists($type, $feeds) && empty($feeds[$type])) { // Save the first feed found of each type... $feeds[$type] = $this->resolveURI($href, $base); } -- cgit v1.2.3-54-g00ecf From cb471e0c96143c780c14e0864d70879a6308206e Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 15 Mar 2010 14:19:22 -0700 Subject: Blow more timeline caches on notice delete. Fixes paging on public and profile timelines after deleting something from the first page. --- classes/Notice.php | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/classes/Notice.php b/classes/Notice.php index a704053a0..f7194e339 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -119,6 +119,9 @@ class Notice extends Memcached_DataObject // NOTE: we don't clear queue items $result = parent::delete(); + + $this->blowOnDelete(); + return $result; } /** @@ -421,6 +424,18 @@ class Notice extends Memcached_DataObject $profile->blowNoticeCount(); } + /** + * Clear cache entries related to this notice at delete time. + * Necessary to avoid breaking paging on public, profile timelines. + */ + function blowOnDelete() + { + $this->blowOnInsert(); + + self::blow('profile:notice_ids:%d;last', $this->profile_id); + self::blow('public;last'); + } + /** save all urls in the notice to the db * * follow redirects and save all available file information @@ -589,7 +604,6 @@ class Notice extends Memcached_DataObject array(), 'public', $offset, $limit, $since_id, $max_id); - return Notice::getStreamByIds($ids); } -- cgit v1.2.3-54-g00ecf From 40cde2f7109cace8f37cd36c31420c38ad475d40 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Mon, 15 Mar 2010 22:10:32 +0000 Subject: Initial Twitpic-like media upload endpoint /api/statusnet/media/upload --- actions/apimediaupload.php | 141 +++++++++++++++++++++++++++++++++++++++++++++ lib/router.php | 6 ++ 2 files changed, 147 insertions(+) create mode 100644 actions/apimediaupload.php diff --git a/actions/apimediaupload.php b/actions/apimediaupload.php new file mode 100644 index 000000000..ec316edc8 --- /dev/null +++ b/actions/apimediaupload.php @@ -0,0 +1,141 @@ +. + * + * @category API + * @author Zach Copley + * @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); +} + +require_once INSTALLDIR . '/lib/apiauth.php'; +require_once INSTALLDIR . '/lib/mediafile.php'; + +/** + * Upload an image via the API. Returns a shortened URL for the image + * to the user. + * + * @category API + * @package StatusNet + * @author Zach Copley + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +class ApiMediaUploadAction extends ApiAuthAction +{ + /** + * Handle the request + * + * Grab the file from the 'media' param, then store, and shorten + * + * @todo Upload throttle! + * + * @param array $args $_REQUEST data (unused) + * + * @return void + */ + + function handle($args) + { + parent::handle($args); + + if ($_SERVER['REQUEST_METHOD'] != 'POST') { + $this->clientError( + _('This method requires a POST.'), + 400, $this->format + ); + return; + } + + // Workaround for PHP returning empty $_POST and $_FILES when POST + // length > post_max_size in php.ini + + if (empty($_FILES) + && empty($_POST) + && ($_SERVER['CONTENT_LENGTH'] > 0) + ) { + $msg = _('The server was unable to handle that much POST ' . + 'data (%s bytes) due to its current configuration.'); + + $this->clientError(sprintf($msg, $_SERVER['CONTENT_LENGTH'])); + return; + } + + $upload = null; + + try { + $upload = MediaFile::fromUpload('media', $this->auth_user); + } catch (ClientException $ce) { + $this->clientError($ce->getMessage()); + return; + } + + if (isset($upload)) { + $this->showResponse($upload); + } else { + $this->clientError('Upload failed.'); + return; + } + } + + /** + * Show a Twitpic-like response with the ID of the media file + * and a (hopefully) shortened URL for it. + * + * @param File $upload the uploaded file + * + * @return void + */ + function showResponse($upload) + { + $this->initDocument(); + $this->elementStart('rsp', array('stat' => 'ok')); + $this->element('mediaid', null, $upload->fileRecord->id); + $this->element('mediaurl', null, $upload->shortUrl()); + $this->elementEnd('rsp'); + $this->endDocument(); + } + + /** + * Overrided clientError to show a more Twitpic-like error + * + * @param String $msg an error message + * + */ + function clientError($msg) + { + $this->initDocument(); + $this->elementStart('rsp', array('stat' => 'fail')); + + // @todo add in error code + $errAttr = array('msg' => $msg); + + $this->element('err', $errAttr, null); + $this->elementEnd('rsp'); + $this->endDocument(); + } + +} diff --git a/lib/router.php b/lib/router.php index 706120e0b..a48ee875e 100644 --- a/lib/router.php +++ b/lib/router.php @@ -628,6 +628,12 @@ class Router array('action' => 'ApiTimelineTag', 'format' => '(xmljson|rss|atom)')); + // media related + $m->connect( + 'api/statusnet/media/upload', + array('action' => 'ApiMediaUpload') + ); + // search $m->connect('api/search.atom', array('action' => 'twitapisearchatom')); $m->connect('api/search.json', array('action' => 'twitapisearchjson')); -- cgit v1.2.3-54-g00ecf From 9ec24f59ca61bbbb45667b548a872e724f31ab3e Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 15 Mar 2010 15:41:57 -0700 Subject: Drop result ID from data objects on clone(). This keeps the original object working if it was in the middle of a query loop, even if the cloned object falls out of scope and triggers its destructor. This bug was hitting a number of places where we had the pattern: $db->find(); while($dbo->fetch()) { $x = clone($dbo); // do anything with $x other than storing it in an array } The cloned object's destructor would trigger on the second run through the loop, freeing the database result set -- not really what we wanted. (Loops that stored the clones into an array were fine, since the clones stay in scope in the array longer than the original does.) Detaching the database result from the clone lets us work with its data without interfering with the rest of the query. In the unlikely even that somebody is making clones in the middle of a query, then trying to continue the query with the clone instead of the original object, well they're gonna be broken now. --- classes/Safe_DataObject.php | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/classes/Safe_DataObject.php b/classes/Safe_DataObject.php index 021f7b506..08bc6846f 100644 --- a/classes/Safe_DataObject.php +++ b/classes/Safe_DataObject.php @@ -42,6 +42,25 @@ class Safe_DataObject extends DB_DataObject } } + /** + * Magic function called at clone() time. + * + * We use this to drop connection with some global resources. + * This supports the fairly common pattern where individual + * items being read in a loop via a single object are cloned + * for individual processing, then fall out of scope when the + * loop comes around again. + * + * As that triggers the destructor, we want to make sure that + * the original object doesn't have its database result killed. + * It will still be freed properly when the original object + * gets destroyed. + */ + function __clone() + { + $this->_DB_resultid = false; + } + /** * Magic function called at serialize() time. * -- cgit v1.2.3-54-g00ecf From 441e52718e4db4eb45bd5c76c5af446496f56f96 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 15 Mar 2010 15:08:16 -0700 Subject: Background deletion of user accounts. Notices are deleted in chunks, then the user itself when they're all gone. While deletion is in progress, the account is locked with the 'deleted' role, which disables all actions with rights control. Todo: * Pretty up the notice on the profile page about the pending delete. Show status? * Possibly more thorough account disabling, such as disallowing all use for login and access. * Improve error recovery; worst case is that an account gets left locked in 'deleted' state but the queue jobs have gotten dropped out. This would leave the username in use and any undeleted notices in place. --- actions/deleteuser.php | 10 ++++- classes/Profile.php | 3 ++ classes/Profile_role.php | 1 + lib/deluserqueuehandler.php | 95 +++++++++++++++++++++++++++++++++++++++++++++ lib/queuemanager.php | 3 ++ lib/userprofile.php | 11 ++++++ 6 files changed, 122 insertions(+), 1 deletion(-) create mode 100644 lib/deluserqueuehandler.php diff --git a/actions/deleteuser.php b/actions/deleteuser.php index c4f84fad2..4e6b27395 100644 --- a/actions/deleteuser.php +++ b/actions/deleteuser.php @@ -162,7 +162,15 @@ class DeleteuserAction extends ProfileFormAction function handlePost() { if (Event::handle('StartDeleteUser', array($this, $this->user))) { - $this->user->delete(); + // Mark the account as deleted and shove low-level deletion tasks + // to background queues. Removing a lot of posts can take a while... + if (!$this->user->hasRole(Profile_role::DELETED)) { + $this->user->grantRole(Profile_role::DELETED); + } + + $qm = QueueManager::get(); + $qm->enqueue($this->user, 'deluser'); + Event::handle('EndDeleteUser', array($this, $this->user)); } } diff --git a/classes/Profile.php b/classes/Profile.php index 91f6e4692..eded1ff71 100644 --- a/classes/Profile.php +++ b/classes/Profile.php @@ -732,6 +732,9 @@ class Profile extends Memcached_DataObject function hasRight($right) { $result = false; + if ($this->hasRole(Profile_role::DELETED)) { + return false; + } if (Event::handle('UserRightsCheck', array($this, $right, &$result))) { switch ($right) { diff --git a/classes/Profile_role.php b/classes/Profile_role.php index d0a0b31f0..e7aa1f0f0 100644 --- a/classes/Profile_role.php +++ b/classes/Profile_role.php @@ -53,6 +53,7 @@ class Profile_role extends Memcached_DataObject const ADMINISTRATOR = 'administrator'; const SANDBOXED = 'sandboxed'; const SILENCED = 'silenced'; + const DELETED = 'deleted'; // Pending final deletion of notices... public static function isValid($role) { diff --git a/lib/deluserqueuehandler.php b/lib/deluserqueuehandler.php new file mode 100644 index 000000000..4a1233a5e --- /dev/null +++ b/lib/deluserqueuehandler.php @@ -0,0 +1,95 @@ +. + */ + +/** + * Background job to delete prolific users without disrupting front-end too much. + * + * Up to 50 messages are deleted on each run through; when all messages are gone, + * the actual account is deleted. + * + * @package QueueHandler + * @maintainer Brion Vibber + */ + +class DelUserQueueHandler extends QueueHandler +{ + const DELETION_WINDOW = 50; + + public function transport() + { + return 'deluser'; + } + + public function handle($user) + { + if (!($user instanceof User)) { + common_log(LOG_ERR, "Got a bogus user, not deleting"); + return true; + } + + $user = User::staticGet('id', $user->id); + if (!$user) { + common_log(LOG_INFO, "User {$user->nickname} was deleted before we got here."); + return true; + } + + if (!$user->hasRole(Profile_role::DELETED)) { + common_log(LOG_INFO, "User {$user->nickname} is not pending deletion; aborting."); + return true; + } + + $notice = $this->getNextBatch($user); + if ($notice->N) { + common_log(LOG_INFO, "Deleting next {$notice->N} notices by {$user->nickname}"); + while ($notice->fetch()) { + $del = clone($notice); + $del->delete(); + } + + // @todo improve reliability in case we died during the above deletions + // with a fatal error. If the job is lost, we should perform some kind + // of garbage collection later. + + // Queue up the next batch. + $qm = QueueManager::get(); + $qm->enqueue($user, 'deluser'); + } else { + // Out of notices? Let's finish deleting this guy! + $user->delete(); + common_log(LOG_INFO, "User $user->id $user->nickname deleted."); + return true; + } + + return true; + } + + /** + * Fetch the next self::DELETION_WINDOW messages for this user. + * @return Notice + */ + protected function getNextBatch(User $user) + { + $notice = new Notice(); + $notice->profile_id = $user->id; + $notice->limit(self::DELETION_WINDOW); + $notice->find(); + return $notice; + } + +} diff --git a/lib/queuemanager.php b/lib/queuemanager.php index 87bd356aa..0829c8a8b 100644 --- a/lib/queuemanager.php +++ b/lib/queuemanager.php @@ -264,6 +264,9 @@ abstract class QueueManager extends IoManager $this->connect('sms', 'SmsQueueHandler'); } + // Background user management tasks... + $this->connect('deluser', 'DelUserQueueHandler'); + // Broadcasting profile updates to OMB remote subscribers $this->connect('profile', 'ProfileQueueHandler'); diff --git a/lib/userprofile.php b/lib/userprofile.php index 8464c2446..2c3b1ea45 100644 --- a/lib/userprofile.php +++ b/lib/userprofile.php @@ -228,6 +228,17 @@ class UserProfile extends Widget function showEntityActions() { + if ($this->profile->hasRole(Profile_role::DELETED)) { + $this->out->elementStart('div', 'entity_actions'); + $this->out->element('h2', null, _('User actions')); + $this->out->elementStart('ul'); + $this->out->elementStart('p', array('class' => 'profile_deleted')); + $this->out->text(_('User deletion in progress...')); + $this->out->elementEnd('p'); + $this->out->elementEnd('ul'); + $this->out->elementEnd('div'); + return; + } if (Event::handle('StartProfilePageActionsSection', array(&$this->out, $this->profile))) { $cur = common_current_user(); -- cgit v1.2.3-54-g00ecf From d1ea448c274334cfee49c8d53e61866145084433 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Mon, 15 Mar 2010 18:41:15 -0700 Subject: Always output a site logo via /api/statusnet/config.:format (so client devs have something to use) --- actions/apistatusnetconfig.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/actions/apistatusnetconfig.php b/actions/apistatusnetconfig.php index bff8313b5..66b23c02d 100644 --- a/actions/apistatusnetconfig.php +++ b/actions/apistatusnetconfig.php @@ -97,8 +97,6 @@ class ApiStatusnetConfigAction extends ApiAction // XXX: check that all sections and settings are legal XML elements - common_debug(var_export($this->keys, true)); - foreach ($this->keys as $section => $settings) { $this->elementStart($section); foreach ($settings as $setting) { @@ -110,6 +108,14 @@ class ApiStatusnetConfigAction extends ApiAction } else if ($value === true) { $value = 'true'; } + + // return theme logo if there's no site specific one + if (empty($value)) { + if ($section == 'site' && $setting == 'logo') { + $value = Theme::path('logo.png'); + } + } + $this->element($setting, null, $value); } $this->elementEnd($section); -- cgit v1.2.3-54-g00ecf From b994d529f4de53df6350e12b5e81889cee17f317 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Mon, 15 Mar 2010 19:06:06 -0700 Subject: Throw an exception if we receive a document instead of a feed's root element --- lib/activity.php | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/lib/activity.php b/lib/activity.php index ae65fe36f..d84eabf7c 100644 --- a/lib/activity.php +++ b/lib/activity.php @@ -1083,15 +1083,11 @@ class Activity $this->entry = $entry; - // @fixme Don't send in a DOMDocument + // Insist on a feed's root DOMElement; don't allow a DOMDocument if ($feed instanceof DOMDocument) { - common_log( - LOG_WARNING, - 'Activity::__construct() - ' - . 'DOMDocument passed in for feed by mistake. ' - . "Expecting a 'feed' DOMElement." + throw new ClientException( + _("Expecting a root feed element but got a whole XML document.") ); - $feed = $feed->getElementsByTagName('feed')->item(0); } $this->feed = $feed; -- cgit v1.2.3-54-g00ecf From fa1262f51e95fb64d64105cf2a6cce77a227cd6c Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Tue, 16 Mar 2010 17:31:05 +0800 Subject: Fixed IE7 prompting the user to download OpenSearch description xml after login (for a private site) Flow: 1. Browser (IE7) is redirected to the login page. 2. Browser reads the page, sees OpenSearch descriptions, tries to download them. Each request gets recorded by SN as the page the user should be redirected to after logging in (returnto). 3. User logs in, then gets redirected to the returnto action, which is an OpenSearch description. The OpenSearch descriptions aren't sensitive so making them public in a private site should be okay. (I recall fixing this in 0.8.x... :-( ) --- index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.php b/index.php index 65f251bcc..d6c617e1d 100644 --- a/index.php +++ b/index.php @@ -200,7 +200,7 @@ function checkMirror($action_obj, $args) function isLoginAction($action) { - static $loginActions = array('login', 'recoverpassword', 'api', 'doc', 'register', 'publicxrds', 'otp'); + static $loginActions = array('login', 'recoverpassword', 'api', 'doc', 'register', 'publicxrds', 'otp', 'opensearch'); $login = null; -- cgit v1.2.3-54-g00ecf From 8a9b3a858b5b7693198a10c0a9c84155cdb096b2 Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Tue, 9 Mar 2010 10:20:48 +0800 Subject: Fixed "Warning: syslog() expects parameter 1 to be long, string given" With the FirePHP plugin enabled, I get these warnings in the output page. This is because the StartLog handler inadvertly modifies the original (number) priority with the corresponding (string) FirePHP priority. --- plugins/FirePHP/FirePHPPlugin.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/FirePHP/FirePHPPlugin.php b/plugins/FirePHP/FirePHPPlugin.php index 452f79024..9143ff69c 100644 --- a/plugins/FirePHP/FirePHPPlugin.php +++ b/plugins/FirePHP/FirePHPPlugin.php @@ -52,8 +52,8 @@ class FirePHPPlugin extends Plugin { static $firephp_priorities = array(FirePHP::ERROR, FirePHP::ERROR, FirePHP::ERROR, FirePHP::ERROR, FirePHP::WARN, FirePHP::LOG, FirePHP::LOG, FirePHP::INFO); - $priority = $firephp_priorities[$priority]; - $this->firephp->fb($msg, $priority); + $fp_priority = $firephp_priorities[$priority]; + $this->firephp->fb($msg, $fp_priority); } function onPluginVersion(&$versions) -- cgit v1.2.3-54-g00ecf From f21f78364a9cbde2ca535a3983b384707ad097ae Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Tue, 16 Mar 2010 11:25:18 -0500 Subject: Change the workflow to get better discovery Tried to re-structure the workflow of discovery to get more and richer data and hints. --- plugins/OStatus/actions/ostatussub.php | 5 +- plugins/OStatus/classes/Ostatus_profile.php | 233 ++++++++++++++++------------ plugins/OStatus/lib/discovery.php | 78 +++------- plugins/OStatus/lib/discoveryhints.php | 182 ++++++++++++++++++++++ plugins/OStatus/lib/feeddiscovery.php | 4 +- plugins/OStatus/lib/linkheader.php | 63 ++++++++ 6 files changed, 401 insertions(+), 164 deletions(-) create mode 100644 plugins/OStatus/lib/discoveryhints.php create mode 100644 plugins/OStatus/lib/linkheader.php diff --git a/plugins/OStatus/actions/ostatussub.php b/plugins/OStatus/actions/ostatussub.php index 65dee2392..07081c2c6 100644 --- a/plugins/OStatus/actions/ostatussub.php +++ b/plugins/OStatus/actions/ostatussub.php @@ -149,7 +149,7 @@ class OStatusSubAction extends Action $fullname = $entity->fullname; $homepage = $entity->homepage; $location = $entity->location; - + if (!$avatar) { $avatar = Avatar::defaultImage(AVATAR_PROFILE_SIZE); } @@ -242,7 +242,7 @@ class OStatusSubAction extends Action if (Validate::email($this->profile_uri)) { $this->oprofile = Ostatus_profile::ensureWebfinger($this->profile_uri); } else if (Validate::uri($this->profile_uri)) { - $this->oprofile = Ostatus_profile::ensureProfile($this->profile_uri); + $this->oprofile = Ostatus_profile::ensureProfileURL($this->profile_uri); } else { $this->error = _m("Sorry, we could not reach that address. Please make sure that the OStatus address is like nickname@example.com or http://example.net/nickname"); common_debug('Invalid address format.', __FILE__); @@ -339,7 +339,6 @@ class OStatusSubAction extends Action } } - /** * Handle posts to this form * diff --git a/plugins/OStatus/classes/Ostatus_profile.php b/plugins/OStatus/classes/Ostatus_profile.php index 6ae8e4fd5..73f5d2322 100644 --- a/plugins/OStatus/classes/Ostatus_profile.php +++ b/plugins/OStatus/classes/Ostatus_profile.php @@ -708,18 +708,122 @@ class Ostatus_profile extends Memcached_DataObject * @return Ostatus_profile * @throws FeedSubException */ - public static function ensureProfile($profile_uri, $hints=array()) + + public static function ensureProfileURL($profile_url, $hints=array()) { - // Get the canonical feed URI and check it + $oprofile = self::getFromProfileURL($profile_url); + + if (!empty($oprofile)) { + return $oprofile; + } + + $hints['profileurl'] = $profile_url; + + // Fetch the URL + // XXX: HTTP caching + + $client = new HTTPClient(); + $client->setHeader('Accept', 'text/html,application/xhtml+xml'); + $response = $client->get($profile_url); + + if (!$response->isOk()) { + return null; + } + + // Check if we have a non-canonical URL + + $finalUrl = $response->getUrl(); + + if ($finalUrl != $profile_url) { + + $hints['profileurl'] = $finalUrl; + + $oprofile = self::getFromProfileURL($finalUrl); + + if (!empty($oprofile)) { + return $oprofile; + } + } + + // Try to get some hCard data + + $body = $response->getBody(); + + $hcardHints = DiscoveryHints::hcardHints($body, $finalUrl); + + if (!empty($hcardHints)) { + $hints = array_merge($hints, $hcardHints); + } + + // Check if they've got an LRDD header + + $lrdd = LinkHeader::getLink($response, 'lrdd', 'application/xrd+xml'); + + if (!empty($lrdd)) { + + $xrd = Discovery::fetchXrd($lrdd); + $xrdHints = DiscoveryHints::fromXRD($xrd); + + $hints = array_merge($hints, $xrdHints); + } + + // If discovery found a feedurl (probably from LRDD), use it. + + if (array_key_exists('feedurl', $hints)) { + return self::ensureFeedURL($hints['feedurl'], $hints); + } + + // Get the feed URL from HTML + $discover = new FeedDiscovery(); - if (isset($hints['feedurl'])) { - $feeduri = $hints['feedurl']; - $feeduri = $discover->discoverFromFeedURL($feeduri); - } else { - $feeduri = $discover->discoverFromURL($profile_uri); - $hints['feedurl'] = $feeduri; + + $feedurl = $discover->discoverFromHTML($finalUrl, $body); + + if (!empty($feedurl)) { + $hints['feedurl'] = $feedurl; + + return self::ensureFeedURL($feedurl, $hints); + } + } + + static function getFromProfileURL($profile_url) + { + $profile = Profile::staticGet('profileurl', $profile_url); + + if (empty($profile)) { + return null; + } + + // Is it a known Ostatus profile? + + $oprofile = Ostatus_profile::staticGet('profile_id', $profile->id); + + if (!empty($oprofile)) { + return $oprofile; } + // Is it a local user? + + $user = User::staticGet('id', $profile->id); + + if (!empty($user)) { + throw new Exception("'$profile_url' is the profile for local user '{$user->nickname}'."); + } + + // Continue discovery; it's a remote profile + // for OMB or some other protocol, may also + // support OStatus + + return null; + } + + public static function ensureFeedURL($feed_url, $hints=array()) + { + $discover = new FeedDiscovery(); + + $feeduri = $discover->discoverFromFeedURL($feed_url); + $hints['feedurl'] = $feeduri; + $huburi = $discover->getAtomLink('hub'); $hints['hub'] = $huburi; $salmonuri = $discover->getAtomLink(Salmon::NS_REPLIES); @@ -1303,7 +1407,7 @@ class Ostatus_profile extends Memcached_DataObject } } - // First, look it up + // Try looking it up $oprofile = Ostatus_profile::staticGet('uri', 'acct:'.$addr); @@ -1317,7 +1421,7 @@ class Ostatus_profile extends Memcached_DataObject $disco = new Discovery(); try { - $result = $disco->lookup($addr); + $xrd = $disco->lookup($addr); } catch (Exception $e) { // Save negative cache entry so we don't waste time looking it up again. // @fixme distinguish temporary failures? @@ -1327,38 +1431,26 @@ class Ostatus_profile extends Memcached_DataObject $hints = array('webfinger' => $addr); - foreach ($result->links as $link) { - switch ($link['rel']) { - case Discovery::PROFILEPAGE: - $hints['profileurl'] = $profileUrl = $link['href']; - break; - case Salmon::NS_REPLIES: - $hints['salmon'] = $salmonEndpoint = $link['href']; - break; - case Discovery::UPDATESFROM: - $hints['feedurl'] = $feedUrl = $link['href']; - break; - case Discovery::HCARD: - $hcardUrl = $link['href']; - break; - default: - common_log(LOG_NOTICE, "Don't know what to do with rel = '{$link['rel']}'"); - break; - } - } + $dhints = DiscoveryHints::fromXRD($xrd); + + $hints = array_merge($hints, $dhints); + + // If there's an Hcard, let's grab its info - if (isset($hcardUrl)) { - $hcardHints = self::slurpHcard($hcardUrl); - // Note: Webfinger > hcard - $hints = array_merge($hcardHints, $hints); + if (array_key_exists('hcard', $hints)) { + if (!array_key_exists('profileurl', $hints) || + $hints['hcard'] != $hints['profileurl']) { + $hcardHints = DiscoveryHints::fromHcardUrl($hints['hcard']); + $hints = array_merge($hcardHints, $hints); + } } // If we got a feed URL, try that - if (isset($feedUrl)) { + if (array_key_exists('feedurl', $hints)) { try { common_log(LOG_INFO, "Discovery on acct:$addr with feed URL $feedUrl"); - $oprofile = self::ensureProfile($feedUrl, $hints); + $oprofile = self::ensureFeedURL($hints['feedurl'], $hints); self::cacheSet(sprintf('ostatus_profile:webfinger:%s', $addr), $oprofile->uri); return $oprofile; } catch (Exception $e) { @@ -1369,10 +1461,10 @@ class Ostatus_profile extends Memcached_DataObject // If we got a profile page, try that! - if (isset($profileUrl)) { + if (array_key_exists('profileurl', $hints)) { try { common_log(LOG_INFO, "Discovery on acct:$addr with profile URL $profileUrl"); - $oprofile = self::ensureProfile($profileUrl, $hints); + $oprofile = self::ensureProfile($hints['profileurl'], $hints); self::cacheSet(sprintf('ostatus_profile:webfinger:%s', $addr), $oprofile->uri); return $oprofile; } catch (Exception $e) { @@ -1384,7 +1476,9 @@ class Ostatus_profile extends Memcached_DataObject // XXX: try hcard // XXX: try FOAF - if (isset($salmonEndpoint)) { + if (array_key_exists('salmon', $hints)) { + + $salmonEndpoint = $hints['salmon']; // An account URL, a salmon endpoint, and a dream? Not much to go // on, but let's give it a try @@ -1464,67 +1558,4 @@ class Ostatus_profile extends Memcached_DataObject return $file; } - - protected static function slurpHcard($url) - { - set_include_path(get_include_path() . PATH_SEPARATOR . INSTALLDIR . '/plugins/OStatus/extlib/hkit/'); - require_once('hkit.class.php'); - - $h = new hKit; - - // Google Buzz hcards need to be tidied. Probably others too. - - $h->tidy_mode = 'proxy'; // 'proxy', 'exec', 'php' or 'none' - - // Get by URL - $hcards = $h->getByURL('hcard', $url); - - if (empty($hcards)) { - return array(); - } - - // @fixme more intelligent guess on multi-hcard pages - $hcard = $hcards[0]; - - $hints = array(); - - $hints['profileurl'] = $url; - - if (array_key_exists('nickname', $hcard)) { - $hints['nickname'] = $hcard['nickname']; - } - - if (array_key_exists('fn', $hcard)) { - $hints['fullname'] = $hcard['fn']; - } else if (array_key_exists('n', $hcard)) { - $hints['fullname'] = implode(' ', $hcard['n']); - } - - if (array_key_exists('photo', $hcard)) { - $hints['avatar'] = $hcard['photo']; - } - - if (array_key_exists('note', $hcard)) { - $hints['bio'] = $hcard['note']; - } - - if (array_key_exists('adr', $hcard)) { - if (is_string($hcard['adr'])) { - $hints['location'] = $hcard['adr']; - } else if (is_array($hcard['adr'])) { - $hints['location'] = implode(' ', $hcard['adr']); - } - } - - if (array_key_exists('url', $hcard)) { - if (is_string($hcard['url'])) { - $hints['homepage'] = $hcard['url']; - } else if (is_array($hcard['url'])) { - // HACK get the last one; that's how our hcards look - $hints['homepage'] = $hcard['url'][count($hcard['url'])-1]; - } - } - - return $hints; - } } diff --git a/plugins/OStatus/lib/discovery.php b/plugins/OStatus/lib/discovery.php index f8449b309..6d245677a 100644 --- a/plugins/OStatus/lib/discovery.php +++ b/plugins/OStatus/lib/discovery.php @@ -40,7 +40,7 @@ class Discovery const PROFILEPAGE = 'http://webfinger.net/rel/profile-page'; const UPDATESFROM = 'http://schemas.google.com/g/2010#updates-from'; const HCARD = 'http://microformats.org/profile/hcard'; - + public $methods = array(); public function __construct() @@ -50,12 +50,11 @@ class Discovery $this->registerMethod('Discovery_LRDD_Link_HTML'); } - public function registerMethod($class) { $this->methods[] = $class; } - + /** * Given a "user id" make sure it's normalized to either a webfinger * acct: uri or a profile HTTP URL. @@ -78,7 +77,7 @@ class Discovery public static function isWebfinger($user_id) { $uri = Discovery::normalize($user_id); - + return (substr($uri, 0, 5) == 'acct:'); } @@ -99,7 +98,7 @@ class Discovery } else { $xrd_uri = $link['href']; } - + $xrd = $this->fetchXrd($xrd_uri); if ($xrd) { return $xrd; @@ -114,14 +113,13 @@ class Discovery if (!is_array($links)) { return false; } - + foreach ($links as $link) { if ($link['rel'] == $service) { return $link; } } } - public static function applyTemplate($template, $id) { @@ -130,7 +128,6 @@ class Discovery return $template; } - public static function fetchXrd($url) { try { @@ -171,7 +168,7 @@ class Discovery_LRDD_Host_Meta implements Discovery_LRDD if ($xrd->host != $domain) { return false; } - + return $xrd->links; } } @@ -187,7 +184,7 @@ class Discovery_LRDD_Link_Header implements Discovery_LRDD } catch (HTTP_Request2_Exception $e) { return false; } - + if ($response->getStatus() != 200) { return false; } @@ -196,51 +193,17 @@ class Discovery_LRDD_Link_Header implements Discovery_LRDD if (!$link_header) { // return false; } - + return Discovery_LRDD_Link_Header::parseHeader($link_header); } protected static function parseHeader($header) { - preg_match('/^<[^>]+>/', $header, $uri_reference); - //if (empty($uri_reference)) return; - - $links = array(); - - $link_uri = trim($uri_reference[0], '<>'); - $link_rel = array(); - $link_type = null; - - // remove uri-reference from header - $header = substr($header, strlen($uri_reference[0])); - - // parse link-params - $params = explode(';', $header); - - foreach ($params as $param) { - if (empty($param)) continue; - list($param_name, $param_value) = explode('=', $param, 2); - $param_name = trim($param_name); - $param_value = preg_replace('(^"|"$)', '', trim($param_value)); - - // for now we only care about 'rel' and 'type' link params - // TODO do something with the other links-params - switch ($param_name) { - case 'rel': - $link_rel = trim($param_value); - break; - - case 'type': - $link_type = trim($param_value); - } - } - - $links[] = array( - 'href' => $link_uri, - 'rel' => $link_rel, - 'type' => $link_type); + $lh = new LinkHeader($header); - return $links; + return array('href' => $lh->href, + 'rel' => $lh->rel, + 'type' => $lh->type); } } @@ -262,49 +225,48 @@ class Discovery_LRDD_Link_HTML implements Discovery_LRDD return Discovery_LRDD_Link_HTML::parse($response->getBody()); } - public function parse($html) { $links = array(); - + preg_match('/]*)?>(.*?)<\/head>/is', $html, $head_matches); $head_html = $head_matches[2]; - + preg_match_all('/]*>/i', $head_html, $link_matches); - + foreach ($link_matches[0] as $link_html) { $link_url = null; $link_rel = null; $link_type = null; - + preg_match('/\srel=(("|\')([^\\2]*?)\\2|[^"\'\s]+)/i', $link_html, $rel_matches); if ( isset($rel_matches[3]) ) { $link_rel = $rel_matches[3]; } else if ( isset($rel_matches[1]) ) { $link_rel = $rel_matches[1]; } - + preg_match('/\shref=(("|\')([^\\2]*?)\\2|[^"\'\s]+)/i', $link_html, $href_matches); if ( isset($href_matches[3]) ) { $link_uri = $href_matches[3]; } else if ( isset($href_matches[1]) ) { $link_uri = $href_matches[1]; } - + preg_match('/\stype=(("|\')([^\\2]*?)\\2|[^"\'\s]+)/i', $link_html, $type_matches); if ( isset($type_matches[3]) ) { $link_type = $type_matches[3]; } else if ( isset($type_matches[1]) ) { $link_type = $type_matches[1]; } - + $links[] = array( 'href' => $link_url, 'rel' => $link_rel, 'type' => $link_type, ); } - + return $links; } } diff --git a/plugins/OStatus/lib/discoveryhints.php b/plugins/OStatus/lib/discoveryhints.php new file mode 100644 index 000000000..db13793dd --- /dev/null +++ b/plugins/OStatus/lib/discoveryhints.php @@ -0,0 +1,182 @@ +. + */ + +class DiscoveryHints { + + static function fromXRD($xrd) + { + $hints = array(); + + foreach ($xrd->links as $link) { + switch ($link['rel']) { + case Discovery::PROFILEPAGE: + $hints['profileurl'] = $link['href']; + break; + case Salmon::NS_REPLIES: + $hints['salmon'] = $link['href']; + break; + case Discovery::UPDATESFROM: + $hints['feedurl'] = $link['href']; + break; + case Discovery::HCARD: + $hints['hcardurl'] = $link['href']; + break; + default: + break; + } + } + + return $hints; + } + + static function fromHcardUrl($url) + { + $client = new HTTPClient(); + $client->setHeader('Accept', 'text/html,application/xhtml+xml'); + $response = $client->get($url); + + if (!$response->isOk()) { + return null; + } + + return self::hcardHints($response->getBody(), + $response->getUrl()); + } + + static function hcardHints($body, $url) + { + common_debug("starting tidy"); + + $body = self::_tidy($body); + + common_debug("done with tidy"); + + set_include_path(get_include_path() . PATH_SEPARATOR . INSTALLDIR . '/plugins/OStatus/extlib/hkit/'); + require_once('hkit.class.php'); + + $h = new hKit; + + $hcards = $h->getByString('hcard', $body); + + if (empty($hcards)) { + return array(); + } + + if (count($hcards) == 1) { + $hcard = $hcards[0]; + } else { + foreach ($hcards as $try) { + if (array_key_exists('url', $try)) { + if (is_string($try['url']) && $try['url'] == $url) { + $hcard = $try; + break; + } else if (is_array($try['url'])) { + foreach ($try['url'] as $tryurl) { + if ($tryurl == $url) { + $hcard = $try; + break 2; + } + } + } + } + } + // last chance; grab the first one + if (empty($hcard)) { + $hcard = $hcards[0]; + } + } + + $hints = array(); + + if (array_key_exists('nickname', $hcard)) { + $hints['nickname'] = $hcard['nickname']; + } + + if (array_key_exists('fn', $hcard)) { + $hints['fullname'] = $hcard['fn']; + } else if (array_key_exists('n', $hcard)) { + $hints['fullname'] = implode(' ', $hcard['n']); + } + + if (array_key_exists('photo', $hcard)) { + $hints['avatar'] = $hcard['photo']; + } + + if (array_key_exists('note', $hcard)) { + $hints['bio'] = $hcard['note']; + } + + if (array_key_exists('adr', $hcard)) { + if (is_string($hcard['adr'])) { + $hints['location'] = $hcard['adr']; + } else if (is_array($hcard['adr'])) { + $hints['location'] = implode(' ', $hcard['adr']); + } + } + + if (array_key_exists('url', $hcard)) { + if (is_string($hcard['url'])) { + $hints['homepage'] = $hcard['url']; + } else if (is_array($hcard['url'])) { + // HACK get the last one; that's how our hcards look + $hints['homepage'] = $hcard['url'][count($hcard['url'])-1]; + } + } + + return $hints; + } + + private static function _tidy($body) + { + if (function_exists('tidy_parse_string')) { + common_debug("Tidying with extension"); + $text = tidy_parse_string($body); + $text = tidy_clean_repair($text); + return $body; + } else if ($fullpath = self::_findProgram('tidy')) { + common_debug("Tidying with program $fullpath"); + $tempfile = tempnam('/tmp', 'snht'); // statusnet hcard tidy + file_put_contents($tempfile, $source); + exec("$fullpath -utf8 -indent -asxhtml -numeric -bare -quiet $tempfile", $tidy); + unlink($tempfile); + return implode("\n", $tidy); + } else { + common_debug("Not tidying."); + return $body; + } + } + + private static function _findProgram($name) + { + $path = $_ENV['PATH']; + + $parts = explode(':', $path); + + foreach ($parts as $part) { + $fullpath = $part . '/' . $name; + if (is_executable($fullpath)) { + return $fullpath; + } + } + + return null; + } +} diff --git a/plugins/OStatus/lib/feeddiscovery.php b/plugins/OStatus/lib/feeddiscovery.php index ff76b229e..f9ea3e713 100644 --- a/plugins/OStatus/lib/feeddiscovery.php +++ b/plugins/OStatus/lib/feeddiscovery.php @@ -117,7 +117,7 @@ class FeedDiscovery return $this->discoverFromURL($target, false); } } - + return $this->initFromResponse($response); } @@ -202,7 +202,7 @@ class FeedDiscovery 'application/atom+xml' => false, 'application/rss+xml' => false, ); - + $nodes = $dom->getElementsByTagName('link'); for ($i = 0; $i < $nodes->length; $i++) { $node = $nodes->item($i); diff --git a/plugins/OStatus/lib/linkheader.php b/plugins/OStatus/lib/linkheader.php new file mode 100644 index 000000000..2f6c66dc9 --- /dev/null +++ b/plugins/OStatus/lib/linkheader.php @@ -0,0 +1,63 @@ +]+>/', $str, $uri_reference); + //if (empty($uri_reference)) return; + + $this->uri = trim($uri_reference[0], '<>'); + $this->rel = array(); + $this->type = null; + + // remove uri-reference from header + $str = substr($str, strlen($uri_reference[0])); + + // parse link-params + $params = explode(';', $str); + + foreach ($params as $param) { + if (empty($param)) continue; + list($param_name, $param_value) = explode('=', $param, 2); + $param_name = trim($param_name); + $param_value = preg_replace('(^"|"$)', '', trim($param_value)); + + // for now we only care about 'rel' and 'type' link params + // TODO do something with the other links-params + switch ($param_name) { + case 'rel': + $this->rel = trim($param_value); + break; + + case 'type': + $this->type = trim($param_value); + } + } + } + + static function getLink($response, $rel=null, $type=null) + { + $headers = $response->getHeader('Link'); + + // Can get an array or string, so try to simplify the path + if (!is_array($headers)) { + $headers = array($headers); + } + + foreach ($headers as $header) { + $lh = new LinkHeader($header); + + if ((is_null($rel) || $lh->rel == $rel) && + (is_null($type) || $lh->type == $type)) { + return $lh->href; + } + } + + return null; + } +} \ No newline at end of file -- cgit v1.2.3-54-g00ecf From 0be70e390b2f1ac12b9d8d7f2cbe66a5b93818ad Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Tue, 16 Mar 2010 19:34:20 +0100 Subject: Removed dangling stylesheet --- theme/base/css/thickbox.css | 163 -------------------------------------------- 1 file changed, 163 deletions(-) delete mode 100644 theme/base/css/thickbox.css diff --git a/theme/base/css/thickbox.css b/theme/base/css/thickbox.css deleted file mode 100644 index d24b9bedf..000000000 --- a/theme/base/css/thickbox.css +++ /dev/null @@ -1,163 +0,0 @@ -/* ----------------------------------------------------------------------------------------------------------------*/ -/* ---------->>> global settings needed for thickbox <<<-----------------------------------------------------------*/ -/* ----------------------------------------------------------------------------------------------------------------*/ -*{padding: 0; margin: 0;} - -/* ----------------------------------------------------------------------------------------------------------------*/ -/* ---------->>> thickbox specific link and font settings <<<------------------------------------------------------*/ -/* ----------------------------------------------------------------------------------------------------------------*/ -#TB_window { - font: 12px Arial, Helvetica, sans-serif; - color: #333333; -} - -#TB_secondLine { - font: 10px Arial, Helvetica, sans-serif; - color:#666666; -} - -#TB_window a:link {color: #666666;} -#TB_window a:visited {color: #666666;} -#TB_window a:hover {color: #000;} -#TB_window a:active {color: #666666;} -#TB_window a:focus{color: #666666;} - -/* ----------------------------------------------------------------------------------------------------------------*/ -/* ---------->>> thickbox settings <<<-----------------------------------------------------------------------------*/ -/* ----------------------------------------------------------------------------------------------------------------*/ -#TB_overlay { - position: fixed; - z-index:100; - top: 0px; - left: 0px; - height:100%; - width:100%; -} - -.TB_overlayMacFFBGHack {background: url(macFFBgHack.png) repeat;} -.TB_overlayBG { - background-color:#000; - filter:alpha(opacity=75); - -moz-opacity: 0.75; - opacity: 0.75; -} - -* html #TB_overlay { /* ie6 hack */ - position: absolute; - height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'); -} - -#TB_window { - position: fixed; - background: #ffffff; - z-index: 102; - color:#000000; - display:none; - border: 4px solid #525252; - text-align:left; - top:50%; - left:50%; -} - -* html #TB_window { /* ie6 hack */ -position: absolute; -margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px'); -} - -#TB_window img#TB_Image { - display:block; - margin: 15px 0 0 15px; - border-right: 1px solid #ccc; - border-bottom: 1px solid #ccc; - border-top: 1px solid #666; - border-left: 1px solid #666; -} - -#TB_caption{ - height:25px; - padding:7px 30px 10px 25px; - float:left; -} - -#TB_closeWindow{ - height:25px; - padding:11px 25px 10px 0; - float:right; -} - -#TB_closeAjaxWindow{ - padding:7px 10px 5px 0; - margin-bottom:1px; - text-align:right; - float:right; -} - -#TB_ajaxWindowTitle{ - float:left; - padding:7px 0 5px 10px; - margin-bottom:1px; -} - -#TB_title{ - background-color:#e8e8e8; - height:27px; -} - -#TB_ajaxContent{ - clear:both; - padding:2px 15px 15px 15px; - overflow:auto; - text-align:left; - line-height:1.4em; -} - -#TB_ajaxContent.TB_modal{ - padding:15px; -} - -#TB_ajaxContent p{ - padding:5px 0px 5px 0px; -} - -#TB_load{ - position: fixed; - display:none; - height:13px; - width:208px; - z-index:103; - top: 50%; - left: 50%; - margin: -6px 0 0 -104px; /* -height/2 0 0 -width/2 */ -} - -* html #TB_load { /* ie6 hack */ -position: absolute; -margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px'); -} - -#TB_HideSelect{ - z-index:99; - position:fixed; - top: 0; - left: 0; - background-color:#fff; - border:none; - filter:alpha(opacity=0); - -moz-opacity: 0; - opacity: 0; - height:100%; - width:100%; -} - -* html #TB_HideSelect { /* ie6 hack */ - position: absolute; - height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'); -} - -#TB_iframeContent{ - clear:both; - border:none; - margin-bottom:-1px; - margin-top:1px; - _margin-bottom:1px; -} -- cgit v1.2.3-54-g00ecf From e8c7873b79b73d983b6222869598a6fdfaec674f Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Tue, 16 Mar 2010 20:53:49 +0100 Subject: Added extra condition to focusing on notice form on page load. If the window location contains a fragument identifier, it will skip focus and do what the UA does natively. --- js/util.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/util.js b/js/util.js index 3efda0d7b..2e0f6e57b 100644 --- a/js/util.js +++ b/js/util.js @@ -86,7 +86,7 @@ var SN = { // StatusNet $('#'+form_id+' #'+SN.C.S.NoticeTextCount).text(jQuery.data(form[0], 'ElementData').MaxLength); } - if ($('body')[0].id != 'conversation') { + if ($('body')[0].id != 'conversation' && window.location.hash.length === 0) { $('#'+form_id+' textarea').focus(); } }, -- cgit v1.2.3-54-g00ecf From 910108b9ae18d75782f236248be9770a8d2efb9c Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Tue, 16 Mar 2010 21:02:56 +0100 Subject: Removed unnecessary form_id. Using jQuery .find() instead of constructing the selector. --- js/util.js | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/js/util.js b/js/util.js index 2e0f6e57b..f82ca992c 100644 --- a/js/util.js +++ b/js/util.js @@ -61,10 +61,8 @@ var SN = { // StatusNet U: { // Utils FormNoticeEnhancements: function(form) { - form_id = form.attr('id'); - if (jQuery.data(form[0], 'ElementData') === undefined) { - MaxLength = $('#'+form_id+' #'+SN.C.S.NoticeTextCount).text(); + MaxLength = form.find('#'+SN.C.S.NoticeTextCount).text(); if (typeof(MaxLength) == 'undefined') { MaxLength = SN.C.I.MaxLength; } @@ -72,7 +70,7 @@ var SN = { // StatusNet SN.U.Counter(form); - NDT = $('#'+form_id+' #'+SN.C.S.NoticeDataText); + NDT = form.find('#'+SN.C.S.NoticeDataText); NDT.bind('keyup', function(e) { SN.U.Counter(form); @@ -83,11 +81,11 @@ var SN = { // StatusNet }); } else { - $('#'+form_id+' #'+SN.C.S.NoticeTextCount).text(jQuery.data(form[0], 'ElementData').MaxLength); + form.find('#'+SN.C.S.NoticeTextCount).text(jQuery.data(form[0], 'ElementData').MaxLength); } if ($('body')[0].id != 'conversation' && window.location.hash.length === 0) { - $('#'+form_id+' textarea').focus(); + form.find('textarea').focus(); } }, @@ -105,7 +103,6 @@ var SN = { // StatusNet Counter: function(form) { SN.C.I.FormNoticeCurrent = form; - form_id = form.attr('id'); var MaxLength = jQuery.data(form[0], 'ElementData').MaxLength; @@ -113,8 +110,8 @@ var SN = { // StatusNet return; } - var remaining = MaxLength - $('#'+form_id+' #'+SN.C.S.NoticeDataText).val().length; - var counter = $('#'+form_id+' #'+SN.C.S.NoticeTextCount); + var remaining = MaxLength - form.find('#'+SN.C.S.NoticeDataText).val().length; + var counter = form.find('#'+SN.C.S.NoticeTextCount); if (remaining.toString() != counter.text()) { if (!SN.C.I.CounterBlackout || remaining === 0) { @@ -174,7 +171,6 @@ var SN = { // StatusNet FormNoticeXHR: function(form) { SN.C.I.NoticeDataGeo = {}; - form_id = form.attr('id'); form.append(''); form.ajaxForm({ dataType: 'xml', -- cgit v1.2.3-54-g00ecf From d9a9fd3779c592e3f4e0a8aea8e385ee2183c0b3 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 16 Mar 2010 14:18:37 -0700 Subject: Stub plugins administration panel, allows for disabling/re-enabling plugins from the default plugins list. --- actions/plugindisable.php | 78 ++++++++++++++++ actions/pluginenable.php | 166 ++++++++++++++++++++++++++++++++ actions/pluginsadminpanel.php | 110 ++++++++++++++++++++++ lib/adminpanelaction.php | 8 ++ lib/default.php | 3 +- lib/plugindisableform.php | 93 ++++++++++++++++++ lib/pluginenableform.php | 114 ++++++++++++++++++++++ lib/pluginlist.php | 213 ++++++++++++++++++++++++++++++++++++++++++ lib/router.php | 7 ++ lib/statusnet.php | 5 + 10 files changed, 796 insertions(+), 1 deletion(-) create mode 100644 actions/plugindisable.php create mode 100644 actions/pluginenable.php create mode 100644 actions/pluginsadminpanel.php create mode 100644 lib/plugindisableform.php create mode 100644 lib/pluginenableform.php create mode 100644 lib/pluginlist.php diff --git a/actions/plugindisable.php b/actions/plugindisable.php new file mode 100644 index 000000000..7f107b333 --- /dev/null +++ b/actions/plugindisable.php @@ -0,0 +1,78 @@ +. + * + * PHP version 5 + * + * @category Action + * @package StatusNet + * @author Brion Vibber + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Plugin enable action. + * + * (Re)-enables a plugin from the default plugins list. + * + * Takes parameters: + * + * - plugin: plugin name + * - token: session token to prevent CSRF attacks + * - ajax: boolean; whether to return Ajax or full-browser results + * + * Only works if the current user is logged in. + * + * @category Action + * @package StatusNet + * @author Brion Vibber + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 + * @link http://status.net/ + */ + +class PluginDisableAction extends PluginEnableAction +{ + /** + * Value to save into $config['plugins']['disable-'] + */ + protected function overrideValue() + { + return 1; + } + + protected function successShortTitle() + { + // TRANS: Page title for AJAX form return when a disabling a plugin. + return _m('plugin', 'Disabled'); + } + + protected function successNextForm() + { + return new EnablePluginForm($this, $this->plugin); + } +} + + diff --git a/actions/pluginenable.php b/actions/pluginenable.php new file mode 100644 index 000000000..2dbb3e395 --- /dev/null +++ b/actions/pluginenable.php @@ -0,0 +1,166 @@ +. + * + * PHP version 5 + * + * @category Action + * @package StatusNet + * @author Brion Vibber + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Plugin enable action. + * + * (Re)-enables a plugin from the default plugins list. + * + * Takes parameters: + * + * - plugin: plugin name + * - token: session token to prevent CSRF attacks + * - ajax: boolean; whether to return Ajax or full-browser results + * + * Only works if the current user is logged in. + * + * @category Action + * @package StatusNet + * @author Brion Vibber + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 + * @link http://status.net/ + */ + +class PluginEnableAction extends Action +{ + var $user; + var $plugin; + + /** + * Check pre-requisites and instantiate attributes + * + * @param Array $args array of arguments (URL, GET, POST) + * + * @return boolean success flag + */ + + function prepare($args) + { + parent::prepare($args); + + // @fixme these are pretty common, should a parent class factor these out? + + // Only allow POST requests + + if ($_SERVER['REQUEST_METHOD'] != 'POST') { + $this->clientError(_('This action only accepts POST requests.')); + return false; + } + + // CSRF protection + + $token = $this->trimmed('token'); + + if (!$token || $token != common_session_token()) { + $this->clientError(_('There was a problem with your session token.'. + ' Try again, please.')); + return false; + } + + // Only for logged-in users + + $this->user = common_current_user(); + + if (empty($this->user)) { + $this->clientError(_('Not logged in.')); + return false; + } + + if (!AdminPanelAction::canAdmin('plugins')) { + $this->clientError(_('You cannot administer plugins.')); + return false; + } + + $this->plugin = $this->arg('plugin'); + $defaultPlugins = common_config('plugins', 'default'); + if (!array_key_exists($this->plugin, $defaultPlugins)) { + $this->clientError(_('No such plugin.')); + return false; + } + + return true; + } + + /** + * Handle request + * + * Does the subscription and returns results. + * + * @param Array $args unused. + * + * @return void + */ + + function handle($args) + { + $key = 'disable-' . $this->plugin; + Config::save('plugins', $key, $this->overrideValue()); + + // @fixme this is a pretty common pattern and should be refactored down + if ($this->boolean('ajax')) { + $this->startHTML('text/xml;charset=utf-8'); + $this->elementStart('head'); + $this->element('title', null, $this->successShortTitle()); + $this->elementEnd('head'); + $this->elementStart('body'); + $form = $this->successNextForm(); + $form->show(); + $this->elementEnd('body'); + $this->elementEnd('html'); + } else { + $url = common_local_url('pluginsadminpanel'); + common_redirect($url, 303); + } + } + + /** + * Value to save into $config['plugins']['disable-'] + */ + protected function overrideValue() + { + return 0; + } + + protected function successShortTitle() + { + // TRANS: Page title for AJAX form return when enabling a plugin. + return _m('plugin', 'Enabled'); + } + + protected function successNextForm() + { + return new DisablePluginForm($this, $this->plugin); + } +} diff --git a/actions/pluginsadminpanel.php b/actions/pluginsadminpanel.php new file mode 100644 index 000000000..bc400bd51 --- /dev/null +++ b/actions/pluginsadminpanel.php @@ -0,0 +1,110 @@ +. + * + * @category Settings + * @package StatusNet + * @author Brion Vibber + * @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); +} + +/** + * Plugins settings + * + * @category Admin + * @package StatusNet + * @author Brion Vibber + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +class PluginsadminpanelAction extends AdminPanelAction +{ + + /** + * Returns the page title + * + * @return string page title + */ + + function title() + { + // TRANS: Tab and title for plugins admin panel. + return _('Plugins'); + } + + /** + * Instructions for using this form. + * + * @return string instructions + */ + + function getInstructions() + { + // TRANS: Instructions at top of plugin admin page. + return _('Additional plugins can be enabled and configured manually. ' . + 'See the online plugin ' . + 'documentation for more details.'); + } + + /** + * Show the plugins admin panel form + * + * @return void + */ + + function showForm() + { + $this->elementStart('fieldset', array('id' => 'settings_plugins_default')); + + // TRANS: Admin form section header + $this->element('legend', null, _('Default plugins'), 'default'); + + $this->showDefaultPlugins(); + + $this->elementEnd('fieldset'); + } + + /** + * Until we have a general plugin metadata infrastructure, for now + * we'll just list up the ones we know from the global default + * plugins list. + */ + protected function showDefaultPlugins() + { + $plugins = array_keys(common_config('plugins', 'default')); + natsort($plugins); + + if ($plugins) { + $list = new PluginList($plugins, $this); + $list->show(); + } else { + $this->element('p', null, + _('All default plugins have been disabled from the ' . + 'site\'s configuration file.')); + } + } +} diff --git a/lib/adminpanelaction.php b/lib/adminpanelaction.php index a927e2333..d87981b6a 100644 --- a/lib/adminpanelaction.php +++ b/lib/adminpanelaction.php @@ -407,6 +407,14 @@ class AdminPanelNav extends Widget $menu_title, $action_name == 'snapshotadminpanel', 'nav_snapshot_admin_panel'); } + if (AdminPanelAction::canAdmin('plugins')) { + // TRANS: Menu item title/tooltip + $menu_title = _('Plugins configuration'); + // TRANS: Menu item for site administration + $this->out->menuItem(common_local_url('pluginsadminpanel'), _('Plugins'), + $menu_title, $action_name == 'pluginsadminpanel', 'nav_design_admin_panel'); + } + Event::handle('EndAdminPanelNav', array($this)); } $this->action->elementEnd('ul'); diff --git a/lib/default.php b/lib/default.php index 10f3f1a97..eb0cb0b64 100644 --- a/lib/default.php +++ b/lib/default.php @@ -285,8 +285,9 @@ $default = 'RSSCloud' => null, 'OpenID' => null), ), + 'pluginlist' => array(), 'admin' => - array('panels' => array('design', 'site', 'user', 'paths', 'access', 'sessions', 'sitenotice')), + array('panels' => array('design', 'site', 'user', 'paths', 'access', 'sessions', 'sitenotice', 'plugins')), 'singleuser' => array('enabled' => false, 'nickname' => null), diff --git a/lib/plugindisableform.php b/lib/plugindisableform.php new file mode 100644 index 000000000..3cbabdb2c --- /dev/null +++ b/lib/plugindisableform.php @@ -0,0 +1,93 @@ +. + * + * @category Form + * @package StatusNet + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET') && !defined('LACONICA')) { + exit(1); +} + +/** + * Form for joining a group + * + * @category Form + * @package StatusNet + * @author Brion Vibber + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + * + * @see PluginEnableForm + */ + +class PluginDisableForm extends PluginEnableForm +{ + /** + * ID of the form + * + * @return string ID of the form + */ + + function id() + { + return 'plugin-disable-' . $this->plugin; + } + + /** + * class of the form + * + * @return string of the form class + */ + + function formClass() + { + return 'form_plugin_disable'; + } + + /** + * Action of the form + * + * @return string URL of the action + */ + + function action() + { + return common_local_url('plugindisable', + array('plugin' => $this->plugin)); + } + + /** + * Action elements + * + * @return void + */ + + function formActions() + { + // TRANS: Plugin admin panel controls + $this->out->submit('submit', _m('plugin', 'Disable')); + } + +} diff --git a/lib/pluginenableform.php b/lib/pluginenableform.php new file mode 100644 index 000000000..8683ffd0b --- /dev/null +++ b/lib/pluginenableform.php @@ -0,0 +1,114 @@ +. + * + * @category Form + * @package StatusNet + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET') && !defined('LACONICA')) { + exit(1); +} + +require_once INSTALLDIR.'/lib/form.php'; + +/** + * Form for joining a group + * + * @category Form + * @package StatusNet + * @author Brion Vibber + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + * + * @see PluginDisableForm + */ + +class PluginEnableForm extends Form +{ + /** + * Plugin to enable/disable + */ + + var $plugin = null; + + /** + * Constructor + * + * @param HTMLOutputter $out output channel + * @param string $plugin plugin to enable/disable + */ + + function __construct($out=null, $plugin=null) + { + parent::__construct($out); + + $this->plugin = $plugin; + } + + /** + * ID of the form + * + * @return string ID of the form + */ + + function id() + { + return 'plugin-enable-' . $this->plugin; + } + + /** + * class of the form + * + * @return string of the form class + */ + + function formClass() + { + return 'form_plugin_enable'; + } + + /** + * Action of the form + * + * @return string URL of the action + */ + + function action() + { + return common_local_url('pluginenable', + array('plugin' => $this->plugin)); + } + + /** + * Action elements + * + * @return void + */ + + function formActions() + { + // TRANS: Plugin admin panel controls + $this->out->submit('submit', _m('plugin', 'Enable')); + } +} diff --git a/lib/pluginlist.php b/lib/pluginlist.php new file mode 100644 index 000000000..07a17ba39 --- /dev/null +++ b/lib/pluginlist.php @@ -0,0 +1,213 @@ +. + * + * @category Settings + * @package StatusNet + * @author Brion Vibber + * @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); +} + +require INSTALLDIR . "/lib/pluginenableform.php"; +require INSTALLDIR . "/lib/plugindisableform.php"; + +/** + * Plugin list + * + * @category Admin + * @package StatusNet + * @author Brion Vibber + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +class PluginList extends Widget +{ + var $plugins = array(); + + function __construct($plugins, $out) + { + parent::__construct($out); + $this->plugins = $plugins; + } + + function show() + { + $this->startList(); + $this->showPlugins(); + $this->endList(); + } + + function startList() + { + $this->out->elementStart('table', 'plugin_list'); + } + + function endList() + { + $this->out->elementEnd('table'); + } + + function showPlugins() + { + foreach ($this->plugins as $plugin) { + $pli = $this->newListItem($plugin); + $pli->show(); + } + } + + function newListItem($plugin) + { + return new PluginListItem($plugin, $this->out); + } +} + +class PluginListItem extends Widget +{ + /** Current plugin. */ + var $plugin = null; + + /** Local cache for plugin version info */ + protected static $versions = false; + + function __construct($plugin, $out) + { + parent::__construct($out); + $this->plugin = $plugin; + } + + function show() + { + $meta = $this->metaInfo(); + + $this->out->elementStart('tr', array('id' => 'plugin-' . $this->plugin)); + + // Name and controls + $this->out->elementStart('td'); + $this->out->elementStart('div'); + if (!empty($meta['homepage'])) { + $this->out->elementStart('a', array('href' => $meta['homepage'])); + } + $this->out->text($this->plugin); + if (!empty($meta['homepage'])) { + $this->out->elementEnd('a'); + } + $this->out->elementEnd('div'); + + $form = $this->getControlForm(); + $form->show(); + + $this->out->elementEnd('td'); + + // Version and authors + $this->out->elementStart('td'); + if (!empty($meta['version'])) { + $this->out->elementStart('div'); + $this->out->text($meta['version']); + $this->out->elementEnd('div'); + } + if (!empty($meta['author'])) { + $this->out->elementStart('div'); + $this->out->text($meta['author']); + $this->out->elementEnd('div'); + } + $this->out->elementEnd('td'); + + // Description + $this->out->elementStart('td'); + if (!empty($meta['rawdescription'])) { + $this->out->raw($meta['rawdescription']); + } + $this->out->elementEnd('td'); + + $this->out->elementEnd('tr'); + } + + /** + * Pull up the appropriate control form for this plugin, depending + * on its current state. + * + * @return Form + */ + protected function getControlForm() + { + $key = 'disable-' . $this->plugin; + if (common_config('plugins', $key)) { + return new PluginEnableForm($this->out, $this->plugin); + } else { + return new PluginDisableForm($this->out, $this->plugin); + } + } + + /** + * Grab metadata about this plugin... + * Warning: horribly inefficient and may explode! + * Doesn't work for disabled plugins either. + * + * @fixme pull structured data from plugin source + */ + function metaInfo() + { + $versions = self::getPluginVersions(); + $found = false; + + foreach ($versions as $info) { + // hack for URL shorteners... "LilUrl (ur1.ca)" etc + list($name, ) = explode(' ', $info['name']); + + if ($name == $this->plugin) { + if ($found) { + // hack for URL shorteners... + $found['rawdescription'] .= "
    \n" . $info['rawdescription']; + } else { + $found = $info; + } + } + } + + if ($found) { + return $found; + } else { + return array('name' => $this->plugin, + 'rawdescription' => _m('plugin-description', + '(Plugin descriptions unavailable when disabled.)')); + } + } + + /** + * Lazy-load the set of active plugin version info + * @return array + */ + protected static function getPluginVersions() + { + if (!is_array(self::$versions)) { + $versions = array(); + Event::handle('PluginVersion', array(&$versions)); + self::$versions = $versions; + } + return self::$versions; + } +} diff --git a/lib/router.php b/lib/router.php index 706120e0b..3d1c0e290 100644 --- a/lib/router.php +++ b/lib/router.php @@ -652,6 +652,13 @@ class Router $m->connect('admin/sessions', array('action' => 'sessionsadminpanel')); $m->connect('admin/sitenotice', array('action' => 'sitenoticeadminpanel')); $m->connect('admin/snapshot', array('action' => 'snapshotadminpanel')); + $m->connect('admin/plugins', array('action' => 'pluginsadminpanel')); + $m->connect('admin/plugins/enable/:plugin', + array('action' => 'pluginenable'), + array('plugin' => '[A-Za-z0-9_]+')); + $m->connect('admin/plugins/disable/:plugin', + array('action' => 'plugindisable'), + array('plugin' => '[A-Za-z0-9_]+')); $m->connect('getfile/:filename', array('action' => 'getfile'), diff --git a/lib/statusnet.php b/lib/statusnet.php index eba9ab9b8..fe93680b0 100644 --- a/lib/statusnet.php +++ b/lib/statusnet.php @@ -163,6 +163,11 @@ class StatusNet { // Load default plugins foreach (common_config('plugins', 'default') as $name => $params) { + $key = 'disable-' . $name; + if (common_config('plugins', $key)) { + continue; + } + if (is_null($params)) { addPlugin($name); } else if (is_array($params)) { -- cgit v1.2.3-54-g00ecf From 88f66131a1b11de81d1aece68683ef3396ccf98b Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 16 Mar 2010 16:23:19 -0700 Subject: Pull back for now on switch of PEAR error mode to exceptions; seems to trigger out exceptions at various times we don't want them. For instance this was throwing an exception for DB_DataObject::staticGet when there's no match... definitely not what we want when all our code expects to get a nice null. Example of this causing trouble: http://gitorious.org/statusnet/mainline/merge_requests/131 Revert "Don't attempt to retrieve the current user from the DB while processing a DB error" This reverts commit 68347691b0c7fb3f81415abd7fcdc5aec85cc554. Revert "Use PHP exceptions for PEAR error handling." This reverts commit d8212977ce7f911d4f9bd6e55f94aea059a86782. --- index.php | 103 ++++++++++++++++++++++++++------------------------------- lib/common.php | 12 ------- 2 files changed, 46 insertions(+), 69 deletions(-) diff --git a/index.php b/index.php index d6c617e1d..4c879fe9a 100644 --- a/index.php +++ b/index.php @@ -37,6 +37,8 @@ define('INSTALLDIR', dirname(__FILE__)); define('STATUSNET', true); define('LACONICA', true); // compatibility +require_once INSTALLDIR . '/lib/common.php'; + $user = null; $action = null; @@ -66,69 +68,52 @@ function getPath($req) */ function handleError($error) { - try { - - if ($error->getCode() == DB_DATAOBJECT_ERROR_NODATA) { - return; - } + if ($error->getCode() == DB_DATAOBJECT_ERROR_NODATA) { + return; + } - $logmsg = "PEAR error: " . $error->getMessage(); - if ($error instanceof PEAR_Exception && common_config('site', 'logdebug')) { - $logmsg .= " : ". $error->toText(); - } - // DB queries often end up with a lot of newlines; merge to a single line - // for easier grepability... - $logmsg = str_replace("\n", " ", $logmsg); - common_log(LOG_ERR, $logmsg); - - // @fixme backtrace output should be consistent with exception handling - if (common_config('site', 'logdebug')) { - $bt = $error->getTrace(); - foreach ($bt as $n => $line) { - common_log(LOG_ERR, formatBacktraceLine($n, $line)); - } - } - if ($error instanceof DB_DataObject_Error - || $error instanceof DB_Error - || ($error instanceof PEAR_Exception && $error->getCode() == -24) - ) { - //If we run into a DB error, assume we can't connect to the DB at all - //so set the current user to null, so we don't try to access the DB - //while rendering the error page. - global $_cur; - $_cur = null; - - $msg = sprintf( - _( - 'The database for %s isn\'t responding correctly, '. - 'so the site won\'t work properly. '. - 'The site admins probably know about the problem, '. - 'but you can contact them at %s to make sure. '. - 'Otherwise, wait a few minutes and try again.' - ), - common_config('site', 'name'), - common_config('site', 'email') - ); - } else { - $msg = _( - 'An important error occured, probably related to email setup. '. - 'Check logfiles for more info..' - ); + $logmsg = "PEAR error: " . $error->getMessage(); + if (common_config('site', 'logdebug')) { + $logmsg .= " : ". $error->getDebugInfo(); + } + // DB queries often end up with a lot of newlines; merge to a single line + // for easier grepability... + $logmsg = str_replace("\n", " ", $logmsg); + common_log(LOG_ERR, $logmsg); + + // @fixme backtrace output should be consistent with exception handling + if (common_config('site', 'logdebug')) { + $bt = $error->getBacktrace(); + foreach ($bt as $n => $line) { + common_log(LOG_ERR, formatBacktraceLine($n, $line)); } - - $dac = new DBErrorAction($msg, 500); - $dac->showPage(); - - } catch (Exception $e) { - echo _('An error occurred.'); } + if ($error instanceof DB_DataObject_Error + || $error instanceof DB_Error + ) { + $msg = sprintf( + _( + 'The database for %s isn\'t responding correctly, '. + 'so the site won\'t work properly. '. + 'The site admins probably know about the problem, '. + 'but you can contact them at %s to make sure. '. + 'Otherwise, wait a few minutes and try again.' + ), + common_config('site', 'name'), + common_config('site', 'email') + ); + } else { + $msg = _( + 'An important error occured, probably related to email setup. '. + 'Check logfiles for more info..' + ); + } + + $dac = new DBErrorAction($msg, 500); + $dac->showPage(); exit(-1); } -set_exception_handler('handleError'); - -require_once INSTALLDIR . '/lib/common.php'; - /** * Format a backtrace line for debug output roughly like debug_print_backtrace() does. * Exceptions already have this built in, but PEAR error objects just give us the array. @@ -253,6 +238,10 @@ function main() return; } + // For database errors + + PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'handleError'); + // Make sure RW database is setup setupRW(); diff --git a/lib/common.php b/lib/common.php index 047dc5a7b..5d53270e3 100644 --- a/lib/common.php +++ b/lib/common.php @@ -71,7 +71,6 @@ if (!function_exists('dl')) { # global configuration object require_once('PEAR.php'); -require_once('PEAR/Exception.php'); require_once('DB/DataObject.php'); require_once('DB/DataObject/Cast.php'); # for dates @@ -129,17 +128,6 @@ require_once INSTALLDIR.'/lib/activity.php'; require_once INSTALLDIR.'/lib/clientexception.php'; require_once INSTALLDIR.'/lib/serverexception.php'; - -//set PEAR error handling to use regular PHP exceptions -function PEAR_ErrorToPEAR_Exception($err) -{ - if ($err->getCode()) { - throw new PEAR_Exception($err->getMessage(), $err->getCode()); - } - throw new PEAR_Exception($err->getMessage()); -} -PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'PEAR_ErrorToPEAR_Exception'); - try { StatusNet::init(@$server, @$path, @$conffile); } catch (NoConfigException $e) { -- cgit v1.2.3-54-g00ecf From f62b8a80cf33ac8529d0736c51dc060a9d235369 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 16 Mar 2010 16:23:19 -0700 Subject: Pull back for now on switch of PEAR error mode to exceptions; seems to trigger out exceptions at various times we don't want them. For instance this was throwing an exception for DB_DataObject::staticGet when there's no match... definitely not what we want when all our code expects to get a nice null. Example of this causing trouble: http://gitorious.org/statusnet/mainline/merge_requests/131 Revert "Don't attempt to retrieve the current user from the DB while processing a DB error" This reverts commit 68347691b0c7fb3f81415abd7fcdc5aec85cc554. Revert "Use PHP exceptions for PEAR error handling." This reverts commit d8212977ce7f911d4f9bd6e55f94aea059a86782. --- index.php | 103 ++++++++++++++++++++++++++------------------------------- lib/common.php | 12 ------- 2 files changed, 46 insertions(+), 69 deletions(-) diff --git a/index.php b/index.php index 65f251bcc..36ba3a0d2 100644 --- a/index.php +++ b/index.php @@ -37,6 +37,8 @@ define('INSTALLDIR', dirname(__FILE__)); define('STATUSNET', true); define('LACONICA', true); // compatibility +require_once INSTALLDIR . '/lib/common.php'; + $user = null; $action = null; @@ -66,69 +68,52 @@ function getPath($req) */ function handleError($error) { - try { - - if ($error->getCode() == DB_DATAOBJECT_ERROR_NODATA) { - return; - } + if ($error->getCode() == DB_DATAOBJECT_ERROR_NODATA) { + return; + } - $logmsg = "PEAR error: " . $error->getMessage(); - if ($error instanceof PEAR_Exception && common_config('site', 'logdebug')) { - $logmsg .= " : ". $error->toText(); - } - // DB queries often end up with a lot of newlines; merge to a single line - // for easier grepability... - $logmsg = str_replace("\n", " ", $logmsg); - common_log(LOG_ERR, $logmsg); - - // @fixme backtrace output should be consistent with exception handling - if (common_config('site', 'logdebug')) { - $bt = $error->getTrace(); - foreach ($bt as $n => $line) { - common_log(LOG_ERR, formatBacktraceLine($n, $line)); - } - } - if ($error instanceof DB_DataObject_Error - || $error instanceof DB_Error - || ($error instanceof PEAR_Exception && $error->getCode() == -24) - ) { - //If we run into a DB error, assume we can't connect to the DB at all - //so set the current user to null, so we don't try to access the DB - //while rendering the error page. - global $_cur; - $_cur = null; - - $msg = sprintf( - _( - 'The database for %s isn\'t responding correctly, '. - 'so the site won\'t work properly. '. - 'The site admins probably know about the problem, '. - 'but you can contact them at %s to make sure. '. - 'Otherwise, wait a few minutes and try again.' - ), - common_config('site', 'name'), - common_config('site', 'email') - ); - } else { - $msg = _( - 'An important error occured, probably related to email setup. '. - 'Check logfiles for more info..' - ); + $logmsg = "PEAR error: " . $error->getMessage(); + if (common_config('site', 'logdebug')) { + $logmsg .= " : ". $error->getDebugInfo(); + } + // DB queries often end up with a lot of newlines; merge to a single line + // for easier grepability... + $logmsg = str_replace("\n", " ", $logmsg); + common_log(LOG_ERR, $logmsg); + + // @fixme backtrace output should be consistent with exception handling + if (common_config('site', 'logdebug')) { + $bt = $error->getBacktrace(); + foreach ($bt as $n => $line) { + common_log(LOG_ERR, formatBacktraceLine($n, $line)); } - - $dac = new DBErrorAction($msg, 500); - $dac->showPage(); - - } catch (Exception $e) { - echo _('An error occurred.'); } + if ($error instanceof DB_DataObject_Error + || $error instanceof DB_Error + ) { + $msg = sprintf( + _( + 'The database for %s isn\'t responding correctly, '. + 'so the site won\'t work properly. '. + 'The site admins probably know about the problem, '. + 'but you can contact them at %s to make sure. '. + 'Otherwise, wait a few minutes and try again.' + ), + common_config('site', 'name'), + common_config('site', 'email') + ); + } else { + $msg = _( + 'An important error occured, probably related to email setup. '. + 'Check logfiles for more info..' + ); + } + + $dac = new DBErrorAction($msg, 500); + $dac->showPage(); exit(-1); } -set_exception_handler('handleError'); - -require_once INSTALLDIR . '/lib/common.php'; - /** * Format a backtrace line for debug output roughly like debug_print_backtrace() does. * Exceptions already have this built in, but PEAR error objects just give us the array. @@ -253,6 +238,10 @@ function main() return; } + // For database errors + + PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'handleError'); + // Make sure RW database is setup setupRW(); diff --git a/lib/common.php b/lib/common.php index 047dc5a7b..5d53270e3 100644 --- a/lib/common.php +++ b/lib/common.php @@ -71,7 +71,6 @@ if (!function_exists('dl')) { # global configuration object require_once('PEAR.php'); -require_once('PEAR/Exception.php'); require_once('DB/DataObject.php'); require_once('DB/DataObject/Cast.php'); # for dates @@ -129,17 +128,6 @@ require_once INSTALLDIR.'/lib/activity.php'; require_once INSTALLDIR.'/lib/clientexception.php'; require_once INSTALLDIR.'/lib/serverexception.php'; - -//set PEAR error handling to use regular PHP exceptions -function PEAR_ErrorToPEAR_Exception($err) -{ - if ($err->getCode()) { - throw new PEAR_Exception($err->getMessage(), $err->getCode()); - } - throw new PEAR_Exception($err->getMessage()); -} -PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'PEAR_ErrorToPEAR_Exception'); - try { StatusNet::init(@$server, @$path, @$conffile); } catch (NoConfigException $e) { -- cgit v1.2.3-54-g00ecf From b9fc4c24b44ba8a83448f3ea8e0698c689d74d19 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 17 Mar 2010 08:55:16 -0700 Subject: Pulling the stub plugin panel back out; we'll flesh it out more for 1.0.x and see if we can make it easier to disable through the config file for now. Revert "Stub plugins administration panel, allows for disabling/re-enabling plugins from the default plugins list." This reverts commit d9a9fd3779c592e3f4e0a8aea8e385ee2183c0b3. --- actions/plugindisable.php | 78 ---------------- actions/pluginenable.php | 166 -------------------------------- actions/pluginsadminpanel.php | 110 ---------------------- lib/adminpanelaction.php | 8 -- lib/default.php | 3 +- lib/plugindisableform.php | 93 ------------------ lib/pluginenableform.php | 114 ---------------------- lib/pluginlist.php | 213 ------------------------------------------ lib/router.php | 7 -- lib/statusnet.php | 5 - 10 files changed, 1 insertion(+), 796 deletions(-) delete mode 100644 actions/plugindisable.php delete mode 100644 actions/pluginenable.php delete mode 100644 actions/pluginsadminpanel.php delete mode 100644 lib/plugindisableform.php delete mode 100644 lib/pluginenableform.php delete mode 100644 lib/pluginlist.php diff --git a/actions/plugindisable.php b/actions/plugindisable.php deleted file mode 100644 index 7f107b333..000000000 --- a/actions/plugindisable.php +++ /dev/null @@ -1,78 +0,0 @@ -. - * - * PHP version 5 - * - * @category Action - * @package StatusNet - * @author Brion Vibber - * @copyright 2010 StatusNet, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 - * @link http://status.net/ - */ - -if (!defined('STATUSNET')) { - exit(1); -} - -/** - * Plugin enable action. - * - * (Re)-enables a plugin from the default plugins list. - * - * Takes parameters: - * - * - plugin: plugin name - * - token: session token to prevent CSRF attacks - * - ajax: boolean; whether to return Ajax or full-browser results - * - * Only works if the current user is logged in. - * - * @category Action - * @package StatusNet - * @author Brion Vibber - * @copyright 2010 StatusNet, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 - * @link http://status.net/ - */ - -class PluginDisableAction extends PluginEnableAction -{ - /** - * Value to save into $config['plugins']['disable-'] - */ - protected function overrideValue() - { - return 1; - } - - protected function successShortTitle() - { - // TRANS: Page title for AJAX form return when a disabling a plugin. - return _m('plugin', 'Disabled'); - } - - protected function successNextForm() - { - return new EnablePluginForm($this, $this->plugin); - } -} - - diff --git a/actions/pluginenable.php b/actions/pluginenable.php deleted file mode 100644 index 2dbb3e395..000000000 --- a/actions/pluginenable.php +++ /dev/null @@ -1,166 +0,0 @@ -. - * - * PHP version 5 - * - * @category Action - * @package StatusNet - * @author Brion Vibber - * @copyright 2010 StatusNet, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 - * @link http://status.net/ - */ - -if (!defined('STATUSNET')) { - exit(1); -} - -/** - * Plugin enable action. - * - * (Re)-enables a plugin from the default plugins list. - * - * Takes parameters: - * - * - plugin: plugin name - * - token: session token to prevent CSRF attacks - * - ajax: boolean; whether to return Ajax or full-browser results - * - * Only works if the current user is logged in. - * - * @category Action - * @package StatusNet - * @author Brion Vibber - * @copyright 2010 StatusNet, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 - * @link http://status.net/ - */ - -class PluginEnableAction extends Action -{ - var $user; - var $plugin; - - /** - * Check pre-requisites and instantiate attributes - * - * @param Array $args array of arguments (URL, GET, POST) - * - * @return boolean success flag - */ - - function prepare($args) - { - parent::prepare($args); - - // @fixme these are pretty common, should a parent class factor these out? - - // Only allow POST requests - - if ($_SERVER['REQUEST_METHOD'] != 'POST') { - $this->clientError(_('This action only accepts POST requests.')); - return false; - } - - // CSRF protection - - $token = $this->trimmed('token'); - - if (!$token || $token != common_session_token()) { - $this->clientError(_('There was a problem with your session token.'. - ' Try again, please.')); - return false; - } - - // Only for logged-in users - - $this->user = common_current_user(); - - if (empty($this->user)) { - $this->clientError(_('Not logged in.')); - return false; - } - - if (!AdminPanelAction::canAdmin('plugins')) { - $this->clientError(_('You cannot administer plugins.')); - return false; - } - - $this->plugin = $this->arg('plugin'); - $defaultPlugins = common_config('plugins', 'default'); - if (!array_key_exists($this->plugin, $defaultPlugins)) { - $this->clientError(_('No such plugin.')); - return false; - } - - return true; - } - - /** - * Handle request - * - * Does the subscription and returns results. - * - * @param Array $args unused. - * - * @return void - */ - - function handle($args) - { - $key = 'disable-' . $this->plugin; - Config::save('plugins', $key, $this->overrideValue()); - - // @fixme this is a pretty common pattern and should be refactored down - if ($this->boolean('ajax')) { - $this->startHTML('text/xml;charset=utf-8'); - $this->elementStart('head'); - $this->element('title', null, $this->successShortTitle()); - $this->elementEnd('head'); - $this->elementStart('body'); - $form = $this->successNextForm(); - $form->show(); - $this->elementEnd('body'); - $this->elementEnd('html'); - } else { - $url = common_local_url('pluginsadminpanel'); - common_redirect($url, 303); - } - } - - /** - * Value to save into $config['plugins']['disable-'] - */ - protected function overrideValue() - { - return 0; - } - - protected function successShortTitle() - { - // TRANS: Page title for AJAX form return when enabling a plugin. - return _m('plugin', 'Enabled'); - } - - protected function successNextForm() - { - return new DisablePluginForm($this, $this->plugin); - } -} diff --git a/actions/pluginsadminpanel.php b/actions/pluginsadminpanel.php deleted file mode 100644 index bc400bd51..000000000 --- a/actions/pluginsadminpanel.php +++ /dev/null @@ -1,110 +0,0 @@ -. - * - * @category Settings - * @package StatusNet - * @author Brion Vibber - * @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); -} - -/** - * Plugins settings - * - * @category Admin - * @package StatusNet - * @author Brion Vibber - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://status.net/ - */ - -class PluginsadminpanelAction extends AdminPanelAction -{ - - /** - * Returns the page title - * - * @return string page title - */ - - function title() - { - // TRANS: Tab and title for plugins admin panel. - return _('Plugins'); - } - - /** - * Instructions for using this form. - * - * @return string instructions - */ - - function getInstructions() - { - // TRANS: Instructions at top of plugin admin page. - return _('Additional plugins can be enabled and configured manually. ' . - 'See the online plugin ' . - 'documentation for more details.'); - } - - /** - * Show the plugins admin panel form - * - * @return void - */ - - function showForm() - { - $this->elementStart('fieldset', array('id' => 'settings_plugins_default')); - - // TRANS: Admin form section header - $this->element('legend', null, _('Default plugins'), 'default'); - - $this->showDefaultPlugins(); - - $this->elementEnd('fieldset'); - } - - /** - * Until we have a general plugin metadata infrastructure, for now - * we'll just list up the ones we know from the global default - * plugins list. - */ - protected function showDefaultPlugins() - { - $plugins = array_keys(common_config('plugins', 'default')); - natsort($plugins); - - if ($plugins) { - $list = new PluginList($plugins, $this); - $list->show(); - } else { - $this->element('p', null, - _('All default plugins have been disabled from the ' . - 'site\'s configuration file.')); - } - } -} diff --git a/lib/adminpanelaction.php b/lib/adminpanelaction.php index d87981b6a..a927e2333 100644 --- a/lib/adminpanelaction.php +++ b/lib/adminpanelaction.php @@ -407,14 +407,6 @@ class AdminPanelNav extends Widget $menu_title, $action_name == 'snapshotadminpanel', 'nav_snapshot_admin_panel'); } - if (AdminPanelAction::canAdmin('plugins')) { - // TRANS: Menu item title/tooltip - $menu_title = _('Plugins configuration'); - // TRANS: Menu item for site administration - $this->out->menuItem(common_local_url('pluginsadminpanel'), _('Plugins'), - $menu_title, $action_name == 'pluginsadminpanel', 'nav_design_admin_panel'); - } - Event::handle('EndAdminPanelNav', array($this)); } $this->action->elementEnd('ul'); diff --git a/lib/default.php b/lib/default.php index eb0cb0b64..10f3f1a97 100644 --- a/lib/default.php +++ b/lib/default.php @@ -285,9 +285,8 @@ $default = 'RSSCloud' => null, 'OpenID' => null), ), - 'pluginlist' => array(), 'admin' => - array('panels' => array('design', 'site', 'user', 'paths', 'access', 'sessions', 'sitenotice', 'plugins')), + array('panels' => array('design', 'site', 'user', 'paths', 'access', 'sessions', 'sitenotice')), 'singleuser' => array('enabled' => false, 'nickname' => null), diff --git a/lib/plugindisableform.php b/lib/plugindisableform.php deleted file mode 100644 index 3cbabdb2c..000000000 --- a/lib/plugindisableform.php +++ /dev/null @@ -1,93 +0,0 @@ -. - * - * @category Form - * @package StatusNet - * @copyright 2010 StatusNet, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://status.net/ - */ - -if (!defined('STATUSNET') && !defined('LACONICA')) { - exit(1); -} - -/** - * Form for joining a group - * - * @category Form - * @package StatusNet - * @author Brion Vibber - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://status.net/ - * - * @see PluginEnableForm - */ - -class PluginDisableForm extends PluginEnableForm -{ - /** - * ID of the form - * - * @return string ID of the form - */ - - function id() - { - return 'plugin-disable-' . $this->plugin; - } - - /** - * class of the form - * - * @return string of the form class - */ - - function formClass() - { - return 'form_plugin_disable'; - } - - /** - * Action of the form - * - * @return string URL of the action - */ - - function action() - { - return common_local_url('plugindisable', - array('plugin' => $this->plugin)); - } - - /** - * Action elements - * - * @return void - */ - - function formActions() - { - // TRANS: Plugin admin panel controls - $this->out->submit('submit', _m('plugin', 'Disable')); - } - -} diff --git a/lib/pluginenableform.php b/lib/pluginenableform.php deleted file mode 100644 index 8683ffd0b..000000000 --- a/lib/pluginenableform.php +++ /dev/null @@ -1,114 +0,0 @@ -. - * - * @category Form - * @package StatusNet - * @copyright 2010 StatusNet, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://status.net/ - */ - -if (!defined('STATUSNET') && !defined('LACONICA')) { - exit(1); -} - -require_once INSTALLDIR.'/lib/form.php'; - -/** - * Form for joining a group - * - * @category Form - * @package StatusNet - * @author Brion Vibber - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://status.net/ - * - * @see PluginDisableForm - */ - -class PluginEnableForm extends Form -{ - /** - * Plugin to enable/disable - */ - - var $plugin = null; - - /** - * Constructor - * - * @param HTMLOutputter $out output channel - * @param string $plugin plugin to enable/disable - */ - - function __construct($out=null, $plugin=null) - { - parent::__construct($out); - - $this->plugin = $plugin; - } - - /** - * ID of the form - * - * @return string ID of the form - */ - - function id() - { - return 'plugin-enable-' . $this->plugin; - } - - /** - * class of the form - * - * @return string of the form class - */ - - function formClass() - { - return 'form_plugin_enable'; - } - - /** - * Action of the form - * - * @return string URL of the action - */ - - function action() - { - return common_local_url('pluginenable', - array('plugin' => $this->plugin)); - } - - /** - * Action elements - * - * @return void - */ - - function formActions() - { - // TRANS: Plugin admin panel controls - $this->out->submit('submit', _m('plugin', 'Enable')); - } -} diff --git a/lib/pluginlist.php b/lib/pluginlist.php deleted file mode 100644 index 07a17ba39..000000000 --- a/lib/pluginlist.php +++ /dev/null @@ -1,213 +0,0 @@ -. - * - * @category Settings - * @package StatusNet - * @author Brion Vibber - * @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); -} - -require INSTALLDIR . "/lib/pluginenableform.php"; -require INSTALLDIR . "/lib/plugindisableform.php"; - -/** - * Plugin list - * - * @category Admin - * @package StatusNet - * @author Brion Vibber - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://status.net/ - */ - -class PluginList extends Widget -{ - var $plugins = array(); - - function __construct($plugins, $out) - { - parent::__construct($out); - $this->plugins = $plugins; - } - - function show() - { - $this->startList(); - $this->showPlugins(); - $this->endList(); - } - - function startList() - { - $this->out->elementStart('table', 'plugin_list'); - } - - function endList() - { - $this->out->elementEnd('table'); - } - - function showPlugins() - { - foreach ($this->plugins as $plugin) { - $pli = $this->newListItem($plugin); - $pli->show(); - } - } - - function newListItem($plugin) - { - return new PluginListItem($plugin, $this->out); - } -} - -class PluginListItem extends Widget -{ - /** Current plugin. */ - var $plugin = null; - - /** Local cache for plugin version info */ - protected static $versions = false; - - function __construct($plugin, $out) - { - parent::__construct($out); - $this->plugin = $plugin; - } - - function show() - { - $meta = $this->metaInfo(); - - $this->out->elementStart('tr', array('id' => 'plugin-' . $this->plugin)); - - // Name and controls - $this->out->elementStart('td'); - $this->out->elementStart('div'); - if (!empty($meta['homepage'])) { - $this->out->elementStart('a', array('href' => $meta['homepage'])); - } - $this->out->text($this->plugin); - if (!empty($meta['homepage'])) { - $this->out->elementEnd('a'); - } - $this->out->elementEnd('div'); - - $form = $this->getControlForm(); - $form->show(); - - $this->out->elementEnd('td'); - - // Version and authors - $this->out->elementStart('td'); - if (!empty($meta['version'])) { - $this->out->elementStart('div'); - $this->out->text($meta['version']); - $this->out->elementEnd('div'); - } - if (!empty($meta['author'])) { - $this->out->elementStart('div'); - $this->out->text($meta['author']); - $this->out->elementEnd('div'); - } - $this->out->elementEnd('td'); - - // Description - $this->out->elementStart('td'); - if (!empty($meta['rawdescription'])) { - $this->out->raw($meta['rawdescription']); - } - $this->out->elementEnd('td'); - - $this->out->elementEnd('tr'); - } - - /** - * Pull up the appropriate control form for this plugin, depending - * on its current state. - * - * @return Form - */ - protected function getControlForm() - { - $key = 'disable-' . $this->plugin; - if (common_config('plugins', $key)) { - return new PluginEnableForm($this->out, $this->plugin); - } else { - return new PluginDisableForm($this->out, $this->plugin); - } - } - - /** - * Grab metadata about this plugin... - * Warning: horribly inefficient and may explode! - * Doesn't work for disabled plugins either. - * - * @fixme pull structured data from plugin source - */ - function metaInfo() - { - $versions = self::getPluginVersions(); - $found = false; - - foreach ($versions as $info) { - // hack for URL shorteners... "LilUrl (ur1.ca)" etc - list($name, ) = explode(' ', $info['name']); - - if ($name == $this->plugin) { - if ($found) { - // hack for URL shorteners... - $found['rawdescription'] .= "
    \n" . $info['rawdescription']; - } else { - $found = $info; - } - } - } - - if ($found) { - return $found; - } else { - return array('name' => $this->plugin, - 'rawdescription' => _m('plugin-description', - '(Plugin descriptions unavailable when disabled.)')); - } - } - - /** - * Lazy-load the set of active plugin version info - * @return array - */ - protected static function getPluginVersions() - { - if (!is_array(self::$versions)) { - $versions = array(); - Event::handle('PluginVersion', array(&$versions)); - self::$versions = $versions; - } - return self::$versions; - } -} diff --git a/lib/router.php b/lib/router.php index 3d1c0e290..706120e0b 100644 --- a/lib/router.php +++ b/lib/router.php @@ -652,13 +652,6 @@ class Router $m->connect('admin/sessions', array('action' => 'sessionsadminpanel')); $m->connect('admin/sitenotice', array('action' => 'sitenoticeadminpanel')); $m->connect('admin/snapshot', array('action' => 'snapshotadminpanel')); - $m->connect('admin/plugins', array('action' => 'pluginsadminpanel')); - $m->connect('admin/plugins/enable/:plugin', - array('action' => 'pluginenable'), - array('plugin' => '[A-Za-z0-9_]+')); - $m->connect('admin/plugins/disable/:plugin', - array('action' => 'plugindisable'), - array('plugin' => '[A-Za-z0-9_]+')); $m->connect('getfile/:filename', array('action' => 'getfile'), diff --git a/lib/statusnet.php b/lib/statusnet.php index fe93680b0..eba9ab9b8 100644 --- a/lib/statusnet.php +++ b/lib/statusnet.php @@ -163,11 +163,6 @@ class StatusNet { // Load default plugins foreach (common_config('plugins', 'default') as $name => $params) { - $key = 'disable-' . $name; - if (common_config('plugins', $key)) { - continue; - } - if (is_null($params)) { addPlugin($name); } else if (is_array($params)) { -- cgit v1.2.3-54-g00ecf From 1c942afa60b7ec5a8f0855a14d32110837270119 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 17 Mar 2010 10:52:11 -0700 Subject: Workaround for HTTP authentication in the API when running PHP as CGI/FastCGI. Example rewrite lines added as comments in htaccess.sample, API tweaked to accept alternate environment var form. --- htaccess.sample | 5 +++++ lib/apiauth.php | 14 +++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/htaccess.sample b/htaccess.sample index 37eb8e01e..18a868698 100644 --- a/htaccess.sample +++ b/htaccess.sample @@ -5,6 +5,11 @@ RewriteBase /mublog/ + ## Uncomment these if having trouble with API authentication + ## when PHP is running in CGI or FastCGI mode. + #RewriteCond %{HTTP:Authorization} ^(.*) + #RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1] + RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.*) index.php?p=$1 [L,QSA] diff --git a/lib/apiauth.php b/lib/apiauth.php index 32502399f..17f803a1c 100644 --- a/lib/apiauth.php +++ b/lib/apiauth.php @@ -294,11 +294,15 @@ class ApiAuthAction extends ApiAction function basicAuthProcessHeader() { - if (isset($_SERVER['AUTHORIZATION']) - || isset($_SERVER['HTTP_AUTHORIZATION']) - ) { - $authorization_header = isset($_SERVER['HTTP_AUTHORIZATION']) - ? $_SERVER['HTTP_AUTHORIZATION'] : $_SERVER['AUTHORIZATION']; + $authHeaders = array('AUTHORIZATION', + 'HTTP_AUTHORIZATION', + 'REDIRECT_HTTP_AUTHORIZATION'); // rewrite for CGI + $authorization_header = null; + foreach ($authHeaders as $header) { + if (isset($_SERVER[$header])) { + $authorization_header = $_SERVER[$header]; + break; + } } if (isset($_SERVER['PHP_AUTH_USER'])) { -- cgit v1.2.3-54-g00ecf From 22f827134c3be845494bebd76bda9e4a074e710b Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 17 Mar 2010 10:52:11 -0700 Subject: Workaround for HTTP authentication in the API when running PHP as CGI/FastCGI. Example rewrite lines added as comments in htaccess.sample, API tweaked to accept alternate environment var form. --- htaccess.sample | 5 +++++ lib/apiauth.php | 14 +++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/htaccess.sample b/htaccess.sample index 37eb8e01e..18a868698 100644 --- a/htaccess.sample +++ b/htaccess.sample @@ -5,6 +5,11 @@ RewriteBase /mublog/ + ## Uncomment these if having trouble with API authentication + ## when PHP is running in CGI or FastCGI mode. + #RewriteCond %{HTTP:Authorization} ^(.*) + #RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1] + RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.*) index.php?p=$1 [L,QSA] diff --git a/lib/apiauth.php b/lib/apiauth.php index 32502399f..17f803a1c 100644 --- a/lib/apiauth.php +++ b/lib/apiauth.php @@ -294,11 +294,15 @@ class ApiAuthAction extends ApiAction function basicAuthProcessHeader() { - if (isset($_SERVER['AUTHORIZATION']) - || isset($_SERVER['HTTP_AUTHORIZATION']) - ) { - $authorization_header = isset($_SERVER['HTTP_AUTHORIZATION']) - ? $_SERVER['HTTP_AUTHORIZATION'] : $_SERVER['AUTHORIZATION']; + $authHeaders = array('AUTHORIZATION', + 'HTTP_AUTHORIZATION', + 'REDIRECT_HTTP_AUTHORIZATION'); // rewrite for CGI + $authorization_header = null; + foreach ($authHeaders as $header) { + if (isset($_SERVER[$header])) { + $authorization_header = $_SERVER[$header]; + break; + } } if (isset($_SERVER['PHP_AUTH_USER'])) { -- cgit v1.2.3-54-g00ecf From dacd0f3e6df020eda81d60139ac88437fed3352e Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 17 Mar 2010 12:14:19 -0700 Subject: Fix to regression for auto-subscribe - was backwards. --- classes/Subscription.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/classes/Subscription.php b/classes/Subscription.php index 9cef2df1a..5ac95f922 100644 --- a/classes/Subscription.php +++ b/classes/Subscription.php @@ -105,8 +105,8 @@ class Subscription extends Memcached_DataObject $auto = new Subscription(); - $auto->subscriber = $subscriber->id; - $auto->subscribed = $other->id; + $auto->subscriber = $other->id; + $auto->subscribed = $subscriber->id; $auto->created = common_sql_now(); $result = $auto->insert(); -- cgit v1.2.3-54-g00ecf From 3a72c70b7e560023ecb7439be680942e4d0e6350 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 17 Mar 2010 12:34:35 -0700 Subject: When too-long messages come in via OStatus, mark the attachment link up as a "more" link in the HTML output, marked with class="attachment more" so JS code can fold it out smartly. Text output will still include the raw link. --- plugins/OStatus/classes/Ostatus_profile.php | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/plugins/OStatus/classes/Ostatus_profile.php b/plugins/OStatus/classes/Ostatus_profile.php index 73f5d2322..7b18fed9c 100644 --- a/plugins/OStatus/classes/Ostatus_profile.php +++ b/plugins/OStatus/classes/Ostatus_profile.php @@ -547,9 +547,19 @@ class Ostatus_profile extends Memcached_DataObject $shortSummary = substr($shortSummary, 0, Notice::maxContent() - (mb_strlen($url) + 2)); - $shortSummary .= '… ' . $url; - $content = $shortSummary; - $rendered = common_render_text($content); + $shortSummary .= '…'; + $content = $shortSummary . ' ' . $url; + + // We mark up the attachment link specially for the HTML output + // so we can fold-out the full version inline. + $rendered = common_render_text($shortSummary) . + ' ' . + '' . + // TRANS: expansion link for too-long remote messages + htmlspecialchars(_m('(more)')) . + ''; } } -- cgit v1.2.3-54-g00ecf From f797a10256969c0e3bf214967e5eafe8df886149 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 17 Mar 2010 13:58:25 -0700 Subject: Display scrubbed HTML attachments inline on attachment view page. --- lib/attachmentlist.php | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/lib/attachmentlist.php b/lib/attachmentlist.php index dc6709d67..22ae8ba07 100644 --- a/lib/attachmentlist.php +++ b/lib/attachmentlist.php @@ -330,6 +330,13 @@ class Attachment extends AttachmentListItem $this->out->element('param', array('name' => 'autoStart', 'value' => 1)); $this->out->elementEnd('object'); break; + + case 'text/html': + if ($this->attachment->filename) { + // Locally-uploaded HTML. Scrub and display inline. + $this->showHtmlFile($this->attachment); + } + break; } } } else { @@ -356,5 +363,60 @@ class Attachment extends AttachmentListItem } } } + + protected function showHtmlFile(File $attachment) + { + $body = $this->scrubHtmlFile($attachment); + if ($body) { + $this->out->elementStart('div', array('class' => 'inline-attachment')); + $this->out->raw($body); + $this->out->elementEnd('div'); + } + } + + /** + * @return mixed false on failure, HTML fragment string on success + */ + protected function scrubHtmlFile(File $attachment) + { + $path = File::path($attachment->filename); + if (!file_exists($path) || !is_readable($path)) { + common_log(LOG_ERR, "Missing local HTML attachment $path"); + return false; + } + $raw = file_get_contents($path); + + // Normalize... + $dom = new DOMDocument(); + if(!$dom->loadHTML($raw)) { + common_log(LOG_ERR, "Bad HTML in local HTML attachment $path"); + return false; + } + + // Remove '); + } } -- cgit v1.2.3-54-g00ecf From a20880ee1e526efafd89ad9b823089f71245c481 Mon Sep 17 00:00:00 2001 From: James Walker Date: Mon, 22 Mar 2010 13:44:05 -0400 Subject: Fixing HTTP Header LRDD parsing (sites in subdirectories need this) --- plugins/OStatus/lib/discovery.php | 2 +- plugins/OStatus/lib/linkheader.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/OStatus/lib/discovery.php b/plugins/OStatus/lib/discovery.php index 44fad62fb..7187c1f3e 100644 --- a/plugins/OStatus/lib/discovery.php +++ b/plugins/OStatus/lib/discovery.php @@ -195,7 +195,7 @@ class Discovery_LRDD_Link_Header implements Discovery_LRDD // return false; } - return Discovery_LRDD_Link_Header::parseHeader($link_header); + return array(Discovery_LRDD_Link_Header::parseHeader($link_header)); } protected static function parseHeader($header) diff --git a/plugins/OStatus/lib/linkheader.php b/plugins/OStatus/lib/linkheader.php index afcd66d26..cd78d31ce 100644 --- a/plugins/OStatus/lib/linkheader.php +++ b/plugins/OStatus/lib/linkheader.php @@ -11,7 +11,7 @@ class LinkHeader preg_match('/^<[^>]+>/', $str, $uri_reference); //if (empty($uri_reference)) return; - $this->uri = trim($uri_reference[0], '<>'); + $this->href = trim($uri_reference[0], '<>'); $this->rel = array(); $this->type = null; -- cgit v1.2.3-54-g00ecf From 5697e4edb0fc4bb1d4c9365100501e795b2553de Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 22 Mar 2010 10:35:54 -0700 Subject: Replace the "give up and dump object" attachment view fallback with a client-side redirect to the target URL, which will at least be useful. --- lib/attachmentlist.php | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/lib/attachmentlist.php b/lib/attachmentlist.php index 51ceca857..fe38281af 100644 --- a/lib/attachmentlist.php +++ b/lib/attachmentlist.php @@ -306,7 +306,7 @@ class Attachment extends AttachmentListItem function showRepresentation() { if (empty($this->oembed->type)) { if (empty($this->attachment->mimetype)) { - $this->out->element('pre', null, 'oh well... not sure how to handle the following: ' . print_r($this->attachment, true)); + $this->showFallback(); } else { switch ($this->attachment->mimetype) { case 'image/gif': @@ -332,6 +332,8 @@ class Attachment extends AttachmentListItem $this->out->element('param', array('name' => 'autoStart', 'value' => 1)); $this->out->elementEnd('object'); break; + default: + $this->showFallback(); } } } else { @@ -354,9 +356,23 @@ class Attachment extends AttachmentListItem break; default: - $this->out->element('pre', null, 'oh well... not sure how to handle the following oembed: ' . print_r($this->oembed, true)); + $this->showFallback(); } } } + + function showFallback() + { + // If we don't know how to display an attachment inline, we probably + // shouldn't have gotten to this point. + // + // But, here we are... displaying details on a file or remote URL + // either on the main view or in an ajax-loaded lightbox. As a lesser + // of several evils, we'll try redirecting to the actual target via + // client-side JS. + + common_log(LOG_ERR, "Empty or unknown type for file id {$this->attachment->id}; falling back to client-side redirect."); + $this->out->raw(''); + } } -- cgit v1.2.3-54-g00ecf From 295e05ea39982ff2b41cec21d5622375005682c2 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Sun, 21 Mar 2010 23:05:23 -0400 Subject: Refactor common parts of LdapAuthorization and LdapAuthentication plugins into a separate class LdapAuthorization should get a performance improvement as LDAP schema caching is now used --- .../LdapAuthenticationPlugin.php | 277 +--------------- plugins/LdapAuthentication/MemcacheSchemaCache.php | 75 ----- .../LdapAuthorization/LdapAuthorizationPlugin.php | 133 +------- plugins/LdapCommon/LdapCommon.php | 356 +++++++++++++++++++++ plugins/LdapCommon/MemcacheSchemaCache.php | 75 +++++ 5 files changed, 453 insertions(+), 463 deletions(-) delete mode 100644 plugins/LdapAuthentication/MemcacheSchemaCache.php create mode 100644 plugins/LdapCommon/LdapCommon.php create mode 100644 plugins/LdapCommon/MemcacheSchemaCache.php diff --git a/plugins/LdapAuthentication/LdapAuthenticationPlugin.php b/plugins/LdapAuthentication/LdapAuthenticationPlugin.php index 483209676..6296bccfa 100644 --- a/plugins/LdapAuthentication/LdapAuthenticationPlugin.php +++ b/plugins/LdapAuthentication/LdapAuthenticationPlugin.php @@ -31,48 +31,25 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } -require_once 'Net/LDAP2.php'; - class LdapAuthenticationPlugin extends AuthenticationPlugin { - public $host=null; - public $port=null; - public $version=null; - public $starttls=null; - public $binddn=null; - public $bindpw=null; - public $basedn=null; - public $options=null; - public $filter=null; - public $scope=null; - public $password_encoding=null; - public $attributes=array(); - function onInitializePlugin(){ parent::onInitializePlugin(); - if(!isset($this->host)){ - throw new Exception("must specify a host"); - } - if(!isset($this->basedn)){ - throw new Exception("must specify a basedn"); - } if(!isset($this->attributes['nickname'])){ throw new Exception("must specify a nickname attribute"); } - if(!isset($this->attributes['username'])){ - throw new Exception("must specify a username attribute"); - } if($this->password_changeable && (! isset($this->attributes['password']) || !isset($this->password_encoding))){ throw new Exception("if password_changeable is set, the password attribute and password_encoding must also be specified"); } + $this->ldapCommon = new LdapCommon(get_object_vars($this)); } function onAutoload($cls) { switch ($cls) { - case 'MemcacheSchemaCache': - require_once(INSTALLDIR.'/plugins/LdapAuthentication/MemcacheSchemaCache.php'); + case 'LdapCommon': + require_once(INSTALLDIR.'/plugins/LdapCommon/LdapCommon.php'); return false; } } @@ -107,19 +84,7 @@ class LdapAuthenticationPlugin extends AuthenticationPlugin function checkPassword($username, $password) { - $entry = $this->ldap_get_user($username); - if(!$entry){ - return false; - }else{ - $config = $this->ldap_get_config(); - $config['binddn']=$entry->dn(); - $config['bindpw']=$password; - if($this->ldap_get_connection($config)){ - return true; - }else{ - return false; - } - } + return $this->ldapCommon->checkPassword($username); } function autoRegister($username, $nickname) @@ -127,7 +92,7 @@ class LdapAuthenticationPlugin extends AuthenticationPlugin if(is_null($nickname)){ $nickname = $username; } - $entry = $this->ldap_get_user($username,$this->attributes); + $entry = $this->ldapCommon->get_user($username,$this->attributes); if($entry){ $registration_data = array(); foreach($this->attributes as $sn_attribute=>$ldap_attribute){ @@ -148,40 +113,7 @@ class LdapAuthenticationPlugin extends AuthenticationPlugin function changePassword($username,$oldpassword,$newpassword) { - if(! isset($this->attributes['password']) || !isset($this->password_encoding)){ - //throw new Exception(_('Sorry, changing LDAP passwords is not supported at this time')); - return false; - } - $entry = $this->ldap_get_user($username); - if(!$entry){ - return false; - }else{ - $config = $this->ldap_get_config(); - $config['binddn']=$entry->dn(); - $config['bindpw']=$oldpassword; - if($ldap = $this->ldap_get_connection($config)){ - $entry = $this->ldap_get_user($username,array(),$ldap); - - $newCryptedPassword = $this->hashPassword($newpassword, $this->password_encoding); - if ($newCryptedPassword===false) { - return false; - } - if($this->password_encoding=='ad') { - //TODO I believe this code will work once this bug is fixed: http://pear.php.net/bugs/bug.php?id=16796 - $oldCryptedPassword = $this->hashPassword($oldpassword, $this->password_encoding); - $entry->delete( array($this->attributes['password'] => $oldCryptedPassword )); - } - $entry->replace( array($this->attributes['password'] => $newCryptedPassword ), true); - if( Net_LDAP2::isError($entry->upate()) ) { - return false; - } - return true; - }else{ - return false; - } - } - - return false; + return $this->ldapCommon->changePassword($username,$oldpassword,$newpassword); } function suggestNicknameForUsername($username) @@ -198,203 +130,6 @@ class LdapAuthenticationPlugin extends AuthenticationPlugin } return common_nicknamize($nickname); } - - //---utility functions---// - function ldap_get_config(){ - $config = array(); - $keys = array('host','port','version','starttls','binddn','bindpw','basedn','options','filter','scope'); - foreach($keys as $key){ - $value = $this->$key; - if($value!==null){ - $config[$key]=$value; - } - } - return $config; - } - - function ldap_get_connection($config = null){ - if($config == null && isset($this->default_ldap)){ - return $this->default_ldap; - } - - //cannot use Net_LDAP2::connect() as StatusNet uses - //PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'handleError'); - //PEAR handling can be overridden on instance objects, so we do that. - $ldap = new Net_LDAP2(isset($config)?$config:$this->ldap_get_config()); - $ldap->setErrorHandling(PEAR_ERROR_RETURN); - $err=$ldap->bind(); - if (Net_LDAP2::isError($err)) { - // if we were called with a config, assume caller will handle - // incorrect username/password (LDAP_INVALID_CREDENTIALS) - if (isset($config) && $err->getCode() == 0x31) { - return null; - } - throw new Exception('Could not connect to LDAP server: '.$err->getMessage()); - } - if($config == null) $this->default_ldap=$ldap; - - $c = common_memcache(); - if (!empty($c)) { - $cacheObj = new MemcacheSchemaCache( - array('c'=>$c, - 'cacheKey' => common_cache_key('ldap_schema:' . crc32(serialize($config))))); - $ldap->registerSchemaCache($cacheObj); - } - return $ldap; - } - - /** - * get an LDAP entry for a user with a given username - * - * @param string $username - * $param array $attributes LDAP attributes to retrieve - * @return string DN - */ - function ldap_get_user($username,$attributes=array(),$ldap=null){ - if($ldap==null) { - $ldap = $this->ldap_get_connection(); - } - $filter = Net_LDAP2_Filter::create($this->attributes['username'], 'equals', $username); - $options = array( - 'attributes' => $attributes - ); - $search = $ldap->search($this->basedn, $filter, $options); - - if (PEAR::isError($search)) { - common_log(LOG_WARNING, 'Error while getting DN for user: '.$search->getMessage()); - return false; - } - - $searchcount = $search->count(); - if($searchcount == 0) { - return false; - }else if($searchcount == 1) { - $entry = $search->shiftEntry(); - return $entry; - }else{ - common_log(LOG_WARNING, 'Found ' . $searchcount . ' ldap user with the username: ' . $username); - return false; - } - } - - /** - * Code originaly from the phpLDAPadmin development team - * http://phpldapadmin.sourceforge.net/ - * - * Hashes a password and returns the hash based on the specified enc_type. - * - * @param string $passwordClear The password to hash in clear text. - * @param string $encodageType Standard LDAP encryption type which must be one of - * crypt, ext_des, md5crypt, blowfish, md5, sha, smd5, ssha, or clear. - * @return string The hashed password. - * - */ - - function hashPassword( $passwordClear, $encodageType ) - { - $encodageType = strtolower( $encodageType ); - switch( $encodageType ) { - case 'crypt': - $cryptedPassword = '{CRYPT}' . crypt($passwordClear,$this->randomSalt(2)); - break; - - case 'ext_des': - // extended des crypt. see OpenBSD crypt man page. - if ( ! defined( 'CRYPT_EXT_DES' ) || CRYPT_EXT_DES == 0 ) {return FALSE;} //Your system crypt library does not support extended DES encryption. - $cryptedPassword = '{CRYPT}' . crypt( $passwordClear, '_' . $this->randomSalt(8) ); - break; - - case 'md5crypt': - if( ! defined( 'CRYPT_MD5' ) || CRYPT_MD5 == 0 ) {return FALSE;} //Your system crypt library does not support md5crypt encryption. - $cryptedPassword = '{CRYPT}' . crypt( $passwordClear , '$1$' . $this->randomSalt(9) ); - break; - - case 'blowfish': - if( ! defined( 'CRYPT_BLOWFISH' ) || CRYPT_BLOWFISH == 0 ) {return FALSE;} //Your system crypt library does not support blowfish encryption. - $cryptedPassword = '{CRYPT}' . crypt( $passwordClear , '$2a$12$' . $this->randomSalt(13) ); // hardcoded to second blowfish version and set number of rounds - break; - - case 'md5': - $cryptedPassword = '{MD5}' . base64_encode( pack( 'H*' , md5( $passwordClear) ) ); - break; - - case 'sha': - if( function_exists('sha1') ) { - // use php 4.3.0+ sha1 function, if it is available. - $cryptedPassword = '{SHA}' . base64_encode( pack( 'H*' , sha1( $passwordClear) ) ); - } elseif( function_exists( 'mhash' ) ) { - $cryptedPassword = '{SHA}' . base64_encode( mhash( MHASH_SHA1, $passwordClear) ); - } else { - return FALSE; //Your PHP install does not have the mhash() function. Cannot do SHA hashes. - } - break; - - case 'ssha': - if( function_exists( 'mhash' ) && function_exists( 'mhash_keygen_s2k' ) ) { - mt_srand( (double) microtime() * 1000000 ); - $salt = mhash_keygen_s2k( MHASH_SHA1, $passwordClear, substr( pack( "h*", md5( mt_rand() ) ), 0, 8 ), 4 ); - $cryptedPassword = "{SSHA}".base64_encode( mhash( MHASH_SHA1, $passwordClear.$salt ).$salt ); - } else { - return FALSE; //Your PHP install does not have the mhash() function. Cannot do SHA hashes. - } - break; - - case 'smd5': - if( function_exists( 'mhash' ) && function_exists( 'mhash_keygen_s2k' ) ) { - mt_srand( (double) microtime() * 1000000 ); - $salt = mhash_keygen_s2k( MHASH_MD5, $passwordClear, substr( pack( "h*", md5( mt_rand() ) ), 0, 8 ), 4 ); - $cryptedPassword = "{SMD5}".base64_encode( mhash( MHASH_MD5, $passwordClear.$salt ).$salt ); - } else { - return FALSE; //Your PHP install does not have the mhash() function. Cannot do SHA hashes. - } - break; - - case 'ad': - $cryptedPassword = ''; - $passwordClear = "\"" . $passwordClear . "\""; - $len = strlen($passwordClear); - for ($i = 0; $i < $len; $i++) { - $cryptedPassword .= "{$passwordClear{$i}}\000"; - } - - case 'clear': - default: - $cryptedPassword = $passwordClear; - } - - return $cryptedPassword; - } - - /** - * Code originaly from the phpLDAPadmin development team - * http://phpldapadmin.sourceforge.net/ - * - * Used to generate a random salt for crypt-style passwords. Salt strings are used - * to make pre-built hash cracking dictionaries difficult to use as the hash algorithm uses - * not only the user's password but also a randomly generated string. The string is - * stored as the first N characters of the hash for reference of hashing algorithms later. - * - * --- added 20021125 by bayu irawan --- - * --- ammended 20030625 by S C Rigler --- - * - * @param int $length The length of the salt string to generate. - * @return string The generated salt string. - */ - - function randomSalt( $length ) - { - $possible = '0123456789'. - 'abcdefghijklmnopqrstuvwxyz'. - 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'. - './'; - $str = ""; - mt_srand((double)microtime() * 1000000); - - while( strlen( $str ) < $length ) - $str .= substr( $possible, ( rand() % strlen( $possible ) ), 1 ); - - return $str; - } function onPluginVersion(&$versions) { diff --git a/plugins/LdapAuthentication/MemcacheSchemaCache.php b/plugins/LdapAuthentication/MemcacheSchemaCache.php deleted file mode 100644 index 6b91d17d6..000000000 --- a/plugins/LdapAuthentication/MemcacheSchemaCache.php +++ /dev/null @@ -1,75 +0,0 @@ -. - * - * @category Plugin - * @package StatusNet - * @author Craig Andrews - * @copyright 2009 Craig Andrews http://candrews.integralblue.com - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://status.net/ - */ -class MemcacheSchemaCache implements Net_LDAP2_SchemaCache -{ - protected $c; - protected $cacheKey; - - /** - * Initialize the simple cache - * - * Config is as following: - * memcache memcache instance - * cachekey the key in the cache to look at - * - * @param array $cfg Config array - */ - public function MemcacheSchemaCache($cfg) - { - $this->c = $cfg['c']; - $this->cacheKey = $cfg['cacheKey']; - } - - /** - * Return the schema object from the cache - * - * @return Net_LDAP2_Schema|Net_LDAP2_Error|false - */ - public function loadSchema() - { - return $this->c->get($this->cacheKey); - } - - /** - * Store a schema object in the cache - * - * This method will be called, if Net_LDAP2 has fetched a fresh - * schema object from LDAP and wants to init or refresh the cache. - * - * To invalidate the cache and cause Net_LDAP2 to refresh the cache, - * you can call this method with null or false as value. - * The next call to $ldap->schema() will then refresh the caches object. - * - * @param mixed $schema The object that should be cached - * @return true|Net_LDAP2_Error|false - */ - public function storeSchema($schema) { - return $this->c->set($this->cacheKey, $schema); - } -} diff --git a/plugins/LdapAuthorization/LdapAuthorizationPlugin.php b/plugins/LdapAuthorization/LdapAuthorizationPlugin.php index e6a68cbae..97103d158 100644 --- a/plugins/LdapAuthorization/LdapAuthorizationPlugin.php +++ b/plugins/LdapAuthorization/LdapAuthorizationPlugin.php @@ -31,41 +31,28 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } -require_once 'Net/LDAP2.php'; - class LdapAuthorizationPlugin extends AuthorizationPlugin { - public $host=null; - public $port=null; - public $version=null; - public $starttls=null; - public $binddn=null; - public $bindpw=null; - public $basedn=null; - public $options=null; - public $filter=null; - public $scope=null; - public $provider_name = null; - public $uniqueMember_attribute = null; public $roles_to_groups = array(); public $login_group = null; - public $attributes = array(); function onInitializePlugin(){ - if(!isset($this->host)){ - throw new Exception("must specify a host"); - } - if(!isset($this->basedn)){ - throw new Exception("must specify a basedn"); - } if(!isset($this->provider_name)){ throw new Exception("provider_name must be set. Use the provider_name from the LDAP Authentication plugin."); } if(!isset($this->uniqueMember_attribute)){ throw new Exception("uniqueMember_attribute must be set."); } - if(!isset($this->attributes['username'])){ - throw new Exception("username attribute must be set."); + $this->ldapCommon = new LdapCommon(get_object_vars($this)); + } + + function onAutoload($cls) + { + switch ($cls) + { + case 'LdapCommon': + require_once(INSTALLDIR.'/plugins/LdapCommon/LdapCommon.php'); + return false; } } @@ -75,17 +62,17 @@ class LdapAuthorizationPlugin extends AuthorizationPlugin $user_username->user_id=$user->id; $user_username->provider_name=$this->provider_name; if($user_username->find() && $user_username->fetch()){ - $entry = $this->ldap_get_user($user_username->username); + $entry = $this->ldapCommon->get_user($user_username->username); if($entry){ if(isset($this->login_group)){ if(is_array($this->login_group)){ foreach($this->login_group as $group){ - if($this->ldap_is_dn_member_of_group($entry->dn(),$group)){ + if($this->ldapCommon->is_dn_member_of_group($entry->dn(),$group)){ return true; } } }else{ - if($this->ldap_is_dn_member_of_group($entry->dn(),$this->login_group)){ + if($this->ldapCommon->is_dn_member_of_group($entry->dn(),$this->login_group)){ return true; } } @@ -107,17 +94,17 @@ class LdapAuthorizationPlugin extends AuthorizationPlugin $user_username->user_id=$profile->id; $user_username->provider_name=$this->provider_name; if($user_username->find() && $user_username->fetch()){ - $entry = $this->ldap_get_user($user_username->username); + $entry = $this->ldapCommon->get_user($user_username->username); if($entry){ if(isset($this->roles_to_groups[$name])){ if(is_array($this->roles_to_groups[$name])){ foreach($this->roles_to_groups[$name] as $group){ - if($this->ldap_is_dn_member_of_group($entry->dn(),$group)){ + if($this->ldapCommon->is_dn_member_of_group($entry->dn(),$group)){ return true; } } }else{ - if($this->ldap_is_dn_member_of_group($entry->dn(),$this->roles_to_groups[$name])){ + if($this->ldapCommon->is_dn_member_of_group($entry->dn(),$this->roles_to_groups[$name])){ return true; } } @@ -127,94 +114,6 @@ class LdapAuthorizationPlugin extends AuthorizationPlugin return false; } - function ldap_is_dn_member_of_group($userDn, $groupDn) - { - $ldap = $this->ldap_get_connection(); - $link = $ldap->getLink(); - $r = @ldap_compare($link, $groupDn, $this->uniqueMember_attribute, $userDn); - if ($r === true){ - return true; - }else if($r === false){ - return false; - }else{ - common_log(LOG_ERR, "LDAP error determining if userDn=$userDn is a member of groupDn=$groupDn using uniqueMember_attribute=$this->uniqueMember_attribute error: ".ldap_error($link)); - return false; - } - } - - function ldap_get_config(){ - $config = array(); - $keys = array('host','port','version','starttls','binddn','bindpw','basedn','options','filter','scope'); - foreach($keys as $key){ - $value = $this->$key; - if($value!==null){ - $config[$key]=$value; - } - } - return $config; - } - - //-----the below function were copied from LDAPAuthenticationPlugin. They will be moved to a utility class soon.----\\ - function ldap_get_connection($config = null){ - if($config == null && isset($this->default_ldap)){ - return $this->default_ldap; - } - - //cannot use Net_LDAP2::connect() as StatusNet uses - //PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'handleError'); - //PEAR handling can be overridden on instance objects, so we do that. - $ldap = new Net_LDAP2(isset($config)?$config:$this->ldap_get_config()); - $ldap->setErrorHandling(PEAR_ERROR_RETURN); - $err=$ldap->bind(); - if (Net_LDAP2::isError($err)) { - // if we were called with a config, assume caller will handle - // incorrect username/password (LDAP_INVALID_CREDENTIALS) - if (isset($config) && $err->getCode() == 0x31) { - return null; - } - throw new Exception('Could not connect to LDAP server: '.$err->getMessage()); - return false; - } - if($config == null) $this->default_ldap=$ldap; - return $ldap; - } - - /** - * get an LDAP entry for a user with a given username - * - * @param string $username - * $param array $attributes LDAP attributes to retrieve - * @return string DN - */ - function ldap_get_user($username,$attributes=array(),$ldap=null){ - if($ldap==null) { - $ldap = $this->ldap_get_connection(); - } - if(! $ldap) { - throw new Exception("Could not connect to LDAP"); - } - $filter = Net_LDAP2_Filter::create($this->attributes['username'], 'equals', $username); - $options = array( - 'attributes' => $attributes - ); - $search = $ldap->search(null,$filter,$options); - - if (PEAR::isError($search)) { - common_log(LOG_WARNING, 'Error while getting DN for user: '.$search->getMessage()); - return false; - } - - if($search->count()==0){ - return false; - }else if($search->count()==1){ - $entry = $search->shiftEntry(); - return $entry; - }else{ - common_log(LOG_WARNING, 'Found ' . $search->count() . ' ldap user with the username: ' . $username); - return false; - } - } - function onPluginVersion(&$versions) { $versions[] = array('name' => 'LDAP Authorization', diff --git a/plugins/LdapCommon/LdapCommon.php b/plugins/LdapCommon/LdapCommon.php new file mode 100644 index 000000000..39d872df5 --- /dev/null +++ b/plugins/LdapCommon/LdapCommon.php @@ -0,0 +1,356 @@ +. + * + * @category Plugin + * @package StatusNet + * @author Craig Andrews + * @copyright 2009 Craig Andrews http://candrews.integralblue.com + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET') && !defined('LACONICA')) { + exit(1); +} + +class LdapCommon +{ + protected static $ldap_connections = array(); + public $host=null; + public $port=null; + public $version=null; + public $starttls=null; + public $binddn=null; + public $bindpw=null; + public $basedn=null; + public $options=null; + public $filter=null; + public $scope=null; + public $uniqueMember_attribute = null; + public $attributes=array(); + public $password_encoding=null; + + public function __construct($config) + { + Event::addHandler('Autoload',array($this,'onAutoload')); + foreach($config as $key=>$value) { + $this->$key = $value; + } + $this->ldap_config = $this->get_ldap_config(); + + if(!isset($this->host)){ + throw new Exception("must specify a host"); + } + if(!isset($this->basedn)){ + throw new Exception("must specify a basedn"); + } + if(!isset($this->attributes['username'])){ + throw new Exception("username attribute must be set."); + } + } + + function onAutoload($cls) + { + switch ($cls) + { + case 'MemcacheSchemaCache': + require_once(INSTALLDIR.'/plugins/LdapCommon/MemcacheSchemaCache.php'); + return false; + case 'Net_LDAP2': + require_once 'Net/LDAP2.php'; + return false; + } + } + + function get_ldap_config(){ + $config = array(); + $keys = array('host','port','version','starttls','binddn','bindpw','basedn','options','filter','scope'); + foreach($keys as $key){ + $value = $this->$key; + if($value!==null){ + $config[$key]=$value; + } + } + return $config; + } + + function get_ldap_connection($config = null){ + if($config == null) { + $config = $this->ldap_config; + } + $config_id = crc32(serialize($config)); + $ldap = self::$ldap_connections[$config_id]; + if(! isset($ldap)) { + //cannot use Net_LDAP2::connect() as StatusNet uses + //PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'handleError'); + //PEAR handling can be overridden on instance objects, so we do that. + $ldap = new Net_LDAP2($config); + $ldap->setErrorHandling(PEAR_ERROR_RETURN); + $err=$ldap->bind(); + if (Net_LDAP2::isError($err)) { + // if we were called with a config, assume caller will handle + // incorrect username/password (LDAP_INVALID_CREDENTIALS) + if (isset($config) && $err->getCode() == 0x31) { + throw new LdapInvalidCredentialsException('Could not connect to LDAP server: '.$err->getMessage()); + } + throw new Exception('Could not connect to LDAP server: '.$err->getMessage()); + } + $c = common_memcache(); + if (!empty($c)) { + $cacheObj = new MemcacheSchemaCache( + array('c'=>$c, + 'cacheKey' => common_cache_key('ldap_schema:' . $config_id))); + $ldap->registerSchemaCache($cacheObj); + } + self::$ldap_connections[$config_id] = $ldap; + } + return $ldap; + } + + function checkPassword($username, $password) + { + $entry = $this->get_user($username); + if(!$entry){ + return false; + }else{ + $config = $this->get_ldap_config(); + $config['binddn']=$entry->dn(); + $config['bindpw']=$password; + try { + $this->get_ldap_connection($config); + } catch (LdapInvalidCredentialsException $e) { + return false; + } + return true; + } + } + + function changePassword($username,$oldpassword,$newpassword) + { + if(! isset($this->attributes['password']) || !isset($this->password_encoding)){ + //throw new Exception(_('Sorry, changing LDAP passwords is not supported at this time')); + return false; + } + $entry = $this->get_user($username); + if(!$entry){ + return false; + }else{ + $config = $this->get_ldap_config(); + $config['binddn']=$entry->dn(); + $config['bindpw']=$oldpassword; + try { + $ldap = $this->get_ldap_connection($config); + + $entry = $this->get_user($username,array(),$ldap); + + $newCryptedPassword = $this->hashPassword($newpassword, $this->password_encoding); + if ($newCryptedPassword===false) { + return false; + } + if($this->password_encoding=='ad') { + //TODO I believe this code will work once this bug is fixed: http://pear.php.net/bugs/bug.php?id=16796 + $oldCryptedPassword = $this->hashPassword($oldpassword, $this->password_encoding); + $entry->delete( array($this->attributes['password'] => $oldCryptedPassword )); + } + $entry->replace( array($this->attributes['password'] => $newCryptedPassword ), true); + if( Net_LDAP2::isError($entry->upate()) ) { + return false; + } + return true; + } catch (LdapInvalidCredentialsException $e) { + return false; + } + } + + return false; + } + + function is_dn_member_of_group($userDn, $groupDn) + { + $ldap = $this->get_ldap_connection(); + $link = $ldap->getLink(); + $r = @ldap_compare($link, $groupDn, $this->uniqueMember_attribute, $userDn); + if ($r === true){ + return true; + }else if($r === false){ + return false; + }else{ + common_log(LOG_ERR, "LDAP error determining if userDn=$userDn is a member of groupDn=$groupDn using uniqueMember_attribute=$this->uniqueMember_attribute error: ".ldap_error($link)); + return false; + } + } + + /** + * get an LDAP entry for a user with a given username + * + * @param string $username + * $param array $attributes LDAP attributes to retrieve + * @return string DN + */ + function get_user($username,$attributes=array()){ + $ldap = $this->get_ldap_connection(); + $filter = Net_LDAP2_Filter::create($this->attributes['username'], 'equals', $username); + $options = array( + 'attributes' => $attributes + ); + $search = $ldap->search(null,$filter,$options); + + if (PEAR::isError($search)) { + common_log(LOG_WARNING, 'Error while getting DN for user: '.$search->getMessage()); + return false; + } + + if($search->count()==0){ + return false; + }else if($search->count()==1){ + $entry = $search->shiftEntry(); + return $entry; + }else{ + common_log(LOG_WARNING, 'Found ' . $search->count() . ' ldap user with the username: ' . $username); + return false; + } + } + + /** + * Code originaly from the phpLDAPadmin development team + * http://phpldapadmin.sourceforge.net/ + * + * Hashes a password and returns the hash based on the specified enc_type. + * + * @param string $passwordClear The password to hash in clear text. + * @param string $encodageType Standard LDAP encryption type which must be one of + * crypt, ext_des, md5crypt, blowfish, md5, sha, smd5, ssha, or clear. + * @return string The hashed password. + * + */ + + function hashPassword( $passwordClear, $encodageType ) + { + $encodageType = strtolower( $encodageType ); + switch( $encodageType ) { + case 'crypt': + $cryptedPassword = '{CRYPT}' . crypt($passwordClear,$this->randomSalt(2)); + break; + + case 'ext_des': + // extended des crypt. see OpenBSD crypt man page. + if ( ! defined( 'CRYPT_EXT_DES' ) || CRYPT_EXT_DES == 0 ) {return FALSE;} //Your system crypt library does not support extended DES encryption. + $cryptedPassword = '{CRYPT}' . crypt( $passwordClear, '_' . $this->randomSalt(8) ); + break; + + case 'md5crypt': + if( ! defined( 'CRYPT_MD5' ) || CRYPT_MD5 == 0 ) {return FALSE;} //Your system crypt library does not support md5crypt encryption. + $cryptedPassword = '{CRYPT}' . crypt( $passwordClear , '$1$' . $this->randomSalt(9) ); + break; + + case 'blowfish': + if( ! defined( 'CRYPT_BLOWFISH' ) || CRYPT_BLOWFISH == 0 ) {return FALSE;} //Your system crypt library does not support blowfish encryption. + $cryptedPassword = '{CRYPT}' . crypt( $passwordClear , '$2a$12$' . $this->randomSalt(13) ); // hardcoded to second blowfish version and set number of rounds + break; + + case 'md5': + $cryptedPassword = '{MD5}' . base64_encode( pack( 'H*' , md5( $passwordClear) ) ); + break; + + case 'sha': + if( function_exists('sha1') ) { + // use php 4.3.0+ sha1 function, if it is available. + $cryptedPassword = '{SHA}' . base64_encode( pack( 'H*' , sha1( $passwordClear) ) ); + } elseif( function_exists( 'mhash' ) ) { + $cryptedPassword = '{SHA}' . base64_encode( mhash( MHASH_SHA1, $passwordClear) ); + } else { + return FALSE; //Your PHP install does not have the mhash() function. Cannot do SHA hashes. + } + break; + + case 'ssha': + if( function_exists( 'mhash' ) && function_exists( 'mhash_keygen_s2k' ) ) { + mt_srand( (double) microtime() * 1000000 ); + $salt = mhash_keygen_s2k( MHASH_SHA1, $passwordClear, substr( pack( "h*", md5( mt_rand() ) ), 0, 8 ), 4 ); + $cryptedPassword = "{SSHA}".base64_encode( mhash( MHASH_SHA1, $passwordClear.$salt ).$salt ); + } else { + return FALSE; //Your PHP install does not have the mhash() function. Cannot do SHA hashes. + } + break; + + case 'smd5': + if( function_exists( 'mhash' ) && function_exists( 'mhash_keygen_s2k' ) ) { + mt_srand( (double) microtime() * 1000000 ); + $salt = mhash_keygen_s2k( MHASH_MD5, $passwordClear, substr( pack( "h*", md5( mt_rand() ) ), 0, 8 ), 4 ); + $cryptedPassword = "{SMD5}".base64_encode( mhash( MHASH_MD5, $passwordClear.$salt ).$salt ); + } else { + return FALSE; //Your PHP install does not have the mhash() function. Cannot do SHA hashes. + } + break; + + case 'ad': + $cryptedPassword = ''; + $passwordClear = "\"" . $passwordClear . "\""; + $len = strlen($passwordClear); + for ($i = 0; $i < $len; $i++) { + $cryptedPassword .= "{$passwordClear{$i}}\000"; + } + + case 'clear': + default: + $cryptedPassword = $passwordClear; + } + + return $cryptedPassword; + } + + /** + * Code originaly from the phpLDAPadmin development team + * http://phpldapadmin.sourceforge.net/ + * + * Used to generate a random salt for crypt-style passwords. Salt strings are used + * to make pre-built hash cracking dictionaries difficult to use as the hash algorithm uses + * not only the user's password but also a randomly generated string. The string is + * stored as the first N characters of the hash for reference of hashing algorithms later. + * + * --- added 20021125 by bayu irawan --- + * --- ammended 20030625 by S C Rigler --- + * + * @param int $length The length of the salt string to generate. + * @return string The generated salt string. + */ + + function randomSalt( $length ) + { + $possible = '0123456789'. + 'abcdefghijklmnopqrstuvwxyz'. + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'. + './'; + $str = ""; + mt_srand((double)microtime() * 1000000); + + while( strlen( $str ) < $length ) + $str .= substr( $possible, ( rand() % strlen( $possible ) ), 1 ); + + return $str; + } + +} + +class LdapInvalidCredentialsException extends Exception +{ + +} diff --git a/plugins/LdapCommon/MemcacheSchemaCache.php b/plugins/LdapCommon/MemcacheSchemaCache.php new file mode 100644 index 000000000..6b91d17d6 --- /dev/null +++ b/plugins/LdapCommon/MemcacheSchemaCache.php @@ -0,0 +1,75 @@ +. + * + * @category Plugin + * @package StatusNet + * @author Craig Andrews + * @copyright 2009 Craig Andrews http://candrews.integralblue.com + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ +class MemcacheSchemaCache implements Net_LDAP2_SchemaCache +{ + protected $c; + protected $cacheKey; + + /** + * Initialize the simple cache + * + * Config is as following: + * memcache memcache instance + * cachekey the key in the cache to look at + * + * @param array $cfg Config array + */ + public function MemcacheSchemaCache($cfg) + { + $this->c = $cfg['c']; + $this->cacheKey = $cfg['cacheKey']; + } + + /** + * Return the schema object from the cache + * + * @return Net_LDAP2_Schema|Net_LDAP2_Error|false + */ + public function loadSchema() + { + return $this->c->get($this->cacheKey); + } + + /** + * Store a schema object in the cache + * + * This method will be called, if Net_LDAP2 has fetched a fresh + * schema object from LDAP and wants to init or refresh the cache. + * + * To invalidate the cache and cause Net_LDAP2 to refresh the cache, + * you can call this method with null or false as value. + * The next call to $ldap->schema() will then refresh the caches object. + * + * @param mixed $schema The object that should be cached + * @return true|Net_LDAP2_Error|false + */ + public function storeSchema($schema) { + return $this->c->set($this->cacheKey, $schema); + } +} -- cgit v1.2.3-54-g00ecf From c85228eadc60b50ed6e7c9cba596c3e66f5214b2 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Mon, 22 Mar 2010 14:22:18 -0400 Subject: blowSubscriberCount and blowSubscriptionCount - no 's' --- classes/Subscription.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/classes/Subscription.php b/classes/Subscription.php index 60c12cccc..0679c0925 100644 --- a/classes/Subscription.php +++ b/classes/Subscription.php @@ -88,8 +88,8 @@ class Subscription extends Memcached_DataObject self::blow('user:notices_with_friends:%d', $subscriber->id); - $subscriber->blowSubscriptionsCount(); - $other->blowSubscribersCount(); + $subscriber->blowSubscriptionCount(); + $other->blowSubscriberCount(); $otherUser = User::staticGet('id', $other->id); @@ -213,8 +213,8 @@ class Subscription extends Memcached_DataObject self::blow('user:notices_with_friends:%d', $subscriber->id); - $subscriber->blowSubscriptionsCount(); - $other->blowSubscribersCount(); + $subscriber->blowSubscriptionCount(); + $other->blowSubscriberCount(); Event::handle('EndUnsubscribe', array($subscriber, $other)); } -- cgit v1.2.3-54-g00ecf From 3bb639699c7a5e7e96c0d048adbe48a3ed486fc9 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 22 Mar 2010 11:27:39 -0700 Subject: Confirm there's actually user and domain portions of acct string before assigning things from output of explode(); avoids notice message when invalid input passed to main/xrd --- plugins/OStatus/actions/userxrd.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/plugins/OStatus/actions/userxrd.php b/plugins/OStatus/actions/userxrd.php index eb80a5ad4..6a6886eb8 100644 --- a/plugins/OStatus/actions/userxrd.php +++ b/plugins/OStatus/actions/userxrd.php @@ -35,9 +35,13 @@ class UserxrdAction extends XrdAction $this->uri = Discovery::normalize($this->uri); if (Discovery::isWebfinger($this->uri)) { - list($nick, $domain) = explode('@', substr(urldecode($this->uri), 5)); - $nick = common_canonical_nickname($nick); - $this->user = User::staticGet('nickname', $nick); + $parts = explode('@', substr(urldecode($this->uri), 5)); + if (count($parts) == 2) { + list($nick, $domain) = $parts; + // @fixme confirm the domain too + $nick = common_canonical_nickname($nick); + $this->user = User::staticGet('nickname', $nick); + } } else { $this->user = User::staticGet('uri', $this->uri); } -- cgit v1.2.3-54-g00ecf From 4168b9cec1f7b2e6421c018e56e3b9a13c14d581 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 22 Mar 2010 11:33:56 -0700 Subject: Log backtraces for non-ClientException exceptions caught at the top-level handler. --- index.php | 4 ++-- lib/servererroraction.php | 9 ++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/index.php b/index.php index 36ba3a0d2..ea5c80277 100644 --- a/index.php +++ b/index.php @@ -324,10 +324,10 @@ function main() $cac = new ClientErrorAction($cex->getMessage(), $cex->getCode()); $cac->showPage(); } catch (ServerException $sex) { // snort snort guffaw - $sac = new ServerErrorAction($sex->getMessage(), $sex->getCode()); + $sac = new ServerErrorAction($sex->getMessage(), $sex->getCode(), $sex); $sac->showPage(); } catch (Exception $ex) { - $sac = new ServerErrorAction($ex->getMessage()); + $sac = new ServerErrorAction($ex->getMessage(), 500, $ex); $sac->showPage(); } } diff --git a/lib/servererroraction.php b/lib/servererroraction.php index 0993a63bc..9b5a553dc 100644 --- a/lib/servererroraction.php +++ b/lib/servererroraction.php @@ -62,15 +62,18 @@ class ServerErrorAction extends ErrorAction 504 => 'Gateway Timeout', 505 => 'HTTP Version Not Supported'); - function __construct($message='Error', $code=500) + function __construct($message='Error', $code=500, $ex=null) { parent::__construct($message, $code); $this->default = 500; // Server errors must be logged. - - common_log(LOG_ERR, "ServerErrorAction: $code $message"); + $log = "ServerErrorAction: $code $message"; + if ($ex) { + $log .= "\n" . $ex->getTraceAsString(); + } + common_log(LOG_ERR, $log); } // XXX: Should these error actions even be invokable via URI? -- cgit v1.2.3-54-g00ecf From 27bfd1211d64298ee3c3b2d82d7b38ca1e1167ad Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 22 Mar 2010 12:17:45 -0700 Subject: Math_BigInteger doesn't correctly handle serialization/deserialization for a value of 0, which can end up spewing notices to output and otherwise intefering with Salmon signature setup and verification when using memcached. Worked around this with a subclass that fixes the wakeup, used for the stored 0 value in the subclassed Crypt_RSA. --- plugins/OStatus/classes/Magicsig.php | 10 ++++------ plugins/OStatus/lib/safecrypt_rsa.php | 18 ++++++++++++++++++ plugins/OStatus/lib/safemath_biginteger.php | 20 ++++++++++++++++++++ 3 files changed, 42 insertions(+), 6 deletions(-) create mode 100644 plugins/OStatus/lib/safecrypt_rsa.php create mode 100644 plugins/OStatus/lib/safemath_biginteger.php diff --git a/plugins/OStatus/classes/Magicsig.php b/plugins/OStatus/classes/Magicsig.php index 5705ecc11..87c684c93 100644 --- a/plugins/OStatus/classes/Magicsig.php +++ b/plugins/OStatus/classes/Magicsig.php @@ -27,8 +27,6 @@ * @link http://status.net/ */ -require_once 'Crypt/RSA.php'; - class Magicsig extends Memcached_DataObject { @@ -102,16 +100,16 @@ class Magicsig extends Memcached_DataObject public function generate($user_id) { - $rsa = new Crypt_RSA(); + $rsa = new SafeCrypt_RSA(); $keypair = $rsa->createKey(); $rsa->loadKey($keypair['privatekey']); - $this->privateKey = new Crypt_RSA(); + $this->privateKey = new SafeCrypt_RSA(); $this->privateKey->loadKey($keypair['privatekey']); - $this->publicKey = new Crypt_RSA(); + $this->publicKey = new SafeCrypt_RSA(); $this->publicKey->loadKey($keypair['publickey']); $this->user_id = $user_id; @@ -163,7 +161,7 @@ class Magicsig extends Memcached_DataObject { common_log(LOG_DEBUG, "Adding ".$type." key: (".$mod .', '. $exp .")"); - $rsa = new Crypt_RSA(); + $rsa = new SafeCrypt_RSA(); $rsa->signatureMode = CRYPT_RSA_SIGNATURE_PKCS1; $rsa->setHash('sha256'); $rsa->modulus = new Math_BigInteger(base64_url_decode($mod), 256); diff --git a/plugins/OStatus/lib/safecrypt_rsa.php b/plugins/OStatus/lib/safecrypt_rsa.php new file mode 100644 index 000000000..f3aa2c928 --- /dev/null +++ b/plugins/OStatus/lib/safecrypt_rsa.php @@ -0,0 +1,18 @@ +zero = new SafeMath_BigInteger(); + } +} + diff --git a/plugins/OStatus/lib/safemath_biginteger.php b/plugins/OStatus/lib/safemath_biginteger.php new file mode 100644 index 000000000..c05e24d1e --- /dev/null +++ b/plugins/OStatus/lib/safemath_biginteger.php @@ -0,0 +1,20 @@ +hex == '') { + $this->hex = '0'; + } + parent::__wakeup(); + } +} + -- cgit v1.2.3-54-g00ecf From eb563937df921e5fc67ca0c87e229feb2907fd19 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Mon, 22 Mar 2010 16:04:06 -0400 Subject: Need to pass the password parameter to checkPassword --- plugins/LdapAuthentication/LdapAuthenticationPlugin.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/LdapAuthentication/LdapAuthenticationPlugin.php b/plugins/LdapAuthentication/LdapAuthenticationPlugin.php index 6296bccfa..a55c45ff5 100644 --- a/plugins/LdapAuthentication/LdapAuthenticationPlugin.php +++ b/plugins/LdapAuthentication/LdapAuthenticationPlugin.php @@ -84,7 +84,7 @@ class LdapAuthenticationPlugin extends AuthenticationPlugin function checkPassword($username, $password) { - return $this->ldapCommon->checkPassword($username); + return $this->ldapCommon->checkPassword($username,$password); } function autoRegister($username, $nickname) -- cgit v1.2.3-54-g00ecf From 3678e7b89bd0cc683c98369e5dec3b940134532b Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 22 Mar 2010 15:55:13 -0700 Subject: OStatus remote sending test cases. Doesn't actually run within PHPUnit right now, must be run from command line -- specify base URLs to two StatusNet sites that will be able to communicate with each other. Current test run includes: * register accounts (via web form) * local post * @-mention using path (@domain/path/to/user) Subscriptions, webfinger mentions, various paths to subscription and unsubscription, etc to come. --- plugins/OStatus/tests/remote-tests.php | 392 +++++++++++++++++++++++++++++++++ 1 file changed, 392 insertions(+) create mode 100644 plugins/OStatus/tests/remote-tests.php diff --git a/plugins/OStatus/tests/remote-tests.php b/plugins/OStatus/tests/remote-tests.php new file mode 100644 index 000000000..103ca066c --- /dev/null +++ b/plugins/OStatus/tests/remote-tests.php @@ -0,0 +1,392 @@ +a = $a; + $this->b = $b; + + $base = 'test' . mt_rand(1, 1000000); + $this->pub = new SNTestClient($this->a, 'pub' . $base, 'pw-' . mt_rand(1, 1000000)); + $this->sub = new SNTestClient($this->b, 'sub' . $base, 'pw-' . mt_rand(1, 1000000)); + } + + function run() + { + $this->setup(); + $this->testLocalPost(); + $this->testMentionUrl(); + $this->log("DONE!"); + } + + function setup() + { + $this->pub->register(); + $this->pub->assertRegistered(); + + $this->sub->register(); + $this->sub->assertRegistered(); + } + + function testLocalPost() + { + $post = $this->pub->post("Local post, no subscribers yet."); + $this->assertNotEqual('', $post); + + $post = $this->sub->post("Local post, no subscriptions yet."); + $this->assertNotEqual('', $post); + } + + /** + * pub posts: @b/sub + */ + function testMentionUrl() + { + $bits = parse_url($this->b); + $base = $bits['host']; + if (isset($bits['path'])) { + $base .= $bits['path']; + } + $name = $this->sub->username; + + $post = $this->pub->post("@$base/$name should have this in home and replies"); + $this->sub->assertReceived($post); + } +} + +class SNTestClient extends TestBase +{ + function __construct($base, $username, $password) + { + $this->basepath = $base; + $this->username = $username; + $this->password = $password; + + $this->fullname = ucfirst($username) . ' Smith'; + $this->homepage = 'http://example.org/' . $username; + $this->bio = 'Stub account for OStatus tests.'; + $this->location = 'Montreal, QC'; + } + + /** + * Make a low-level web hit to this site, with authentication. + * @param string $path URL fragment for something under the base path + * @param array $params POST parameters to send + * @param boolean $auth whether to include auth data + * @return string + * @throws Exception on low-level error conditions + */ + protected function hit($path, $params=array(), $auth=false, $cookies=array()) + { + $url = $this->basepath . '/' . $path; + + $http = new HTTP_Request2($url, 'POST'); + if ($auth) { + $http->setAuth($this->username, $this->password, HTTP_Request2::AUTH_BASIC); + } + foreach ($cookies as $name => $val) { + $http->addCookie($name, $val); + } + $http->addPostParameter($params); + $response = $http->send(); + + $code = $response->getStatus(); + if ($code < '200' || $code >= '400') { + throw new Exception("Failed API hit to $url: $code\n" . $response->getBody()); + } + + return $response; + } + + /** + * Make a hit to a web form, without authentication but with a session. + * @param string $path URL fragment relative to site base + * @param string $form id of web form to pull initial parameters from + * @param array $params POST parameters, will be merged with defaults in form + */ + protected function web($path, $form, $params=array()) + { + $url = $this->basepath . '/' . $path; + $http = new HTTP_Request2($url, 'GET'); + $response = $http->send(); + + $dom = $this->checkWeb($url, 'GET', $response); + $cookies = array(); + foreach ($response->getCookies() as $cookie) { + // @fixme check for expirations etc + $cookies[$cookie['name']] = $cookie['value']; + } + + $form = $dom->getElementById($form); + if (!$form) { + throw new Exception("Form $form not found on $url"); + } + $inputs = $form->getElementsByTagName('input'); + foreach ($inputs as $item) { + $type = $item->getAttribute('type'); + if ($type != 'check') { + $name = $item->getAttribute('name'); + $val = $item->getAttribute('value'); + if ($name && $val && !isset($params[$name])) { + $params[$name] = $val; + } + } + } + + $response = $this->hit($path, $params, false, $cookies); + $dom = $this->checkWeb($url, 'POST', $response); + + return $dom; + } + + protected function checkWeb($url, $method, $response) + { + $dom = new DOMDocument(); + if (!$dom->loadHTML($response->getBody())) { + throw new Exception("Invalid HTML from $method to $url"); + } + + $xpath = new DOMXPath($dom); + $error = $xpath->query('//p[@class="error"]'); + if ($error && $error->length) { + throw new Exception("Error on $method to $url: " . + $error->item(0)->textContent); + } + + return $dom; + } + + /** + * Make an API hit to this site, with authentication. + * @param string $path URL fragment for something under 'api' folder + * @param string $style one of 'json', 'xml', or 'atom' + * @param array $params POST parameters to send + * @return mixed associative array for JSON, DOMDocument for XML/Atom + * @throws Exception on low-level error conditions + */ + protected function api($path, $style, $params=array()) + { + $response = $this->hit("api/$path.$style", $params, true); + $body = $response->getBody(); + if ($style == 'json') { + $data = json_decode($body, true); + if ($data !== null) { + if (!empty($data['error'])) { + throw new Exception("JSON API returned error: " . $data['error']); + } + return $data; + } else { + throw new Exception("Bogus JSON data from $path:\n$body"); + } + } else if ($style == 'xml' || $style == 'atom') { + $dom = new DOMDocument(); + if ($dom->loadXML($body)) { + return $dom; + } else { + throw new Exception("Bogus XML data from $path:\n$body"); + } + } else { + throw new Exception("API needs to be JSON, XML, or Atom"); + } + } + + /** + * Register the account. + * + * Unfortunately there's not an API method for registering, so we fake it. + */ + function register() + { + $this->log("Registering user %s on %s", + $this->username, + $this->basepath); + $ret = $this->web('main/register', 'form_register', + array('nickname' => $this->username, + 'password' => $this->password, + 'confirm' => $this->password, + 'fullname' => $this->fullname, + 'homepage' => $this->homepage, + 'bio' => $this->bio, + 'license' => 1, + 'submit' => 'Register')); + } + + /** + * Check that the account has been registered and can be used. + * On failure, throws a test failure exception. + */ + function assertRegistered() + { + $this->log("Confirming %s is registered on %s", + $this->username, + $this->basepath); + $data = $this->api('account/verify_credentials', 'json'); + $this->assertEqual($this->username, $data['screen_name']); + $this->assertEqual($this->fullname, $data['name']); + $this->assertEqual($this->homepage, $data['url']); + $this->assertEqual($this->bio, $data['description']); + } + + /** + * Post a given message from this account + * @param string $message + * @return string URL/URI of notice + * @todo reply, location options + */ + function post($message) + { + $this->log("Posting notice as %s on %s: %s", + $this->username, + $this->basepath, + $message); + $data = $this->api('statuses/update', 'json', + array('status' => $message)); + + $url = $this->basepath . '/notice/' . $data['id']; + return $url; + } + + /** + * Check that this account has received the notice. + * @param string $notice_uri URI for the notice to check for + */ + function assertReceived($notice_uri) + { + $timeout = 5; + $tries = 6; + while ($tries) { + $ok = $this->checkReceived($notice_uri); + if ($ok) { + return true; + } + $tries--; + if ($tries) { + $this->log("Didn't see it yet, waiting $timeout seconds"); + sleep($timeout); + } + } + throw new Exception("Message $notice_uri not received by $this->username"); + } + + /** + * Pull the user's home timeline to check if a notice with the given + * source URL has been received recently. + * If we don't see it, we'll try a couple more times up to 10 seconds. + * + * @param string $notice_uri + */ + function checkReceived($notice_uri) + { + $this->log("Checking if %s on %s received notice %s", + $this->username, + $this->basepath, + $notice_uri); + $params = array(); + $dom = $this->api('statuses/home_timeline', 'atom', $params); + + $xml = simplexml_import_dom($dom); + if (!$xml->entry) { + return false; + } + if (is_array($xml->entry)) { + $entries = $xml->entry; + } else { + $entries = array($xml->entry); + } + foreach ($entries as $entry) { + if ($entry->id == $notice_uri) { + $this->log("found it $notice_uri"); + return true; + } + //$this->log("nope... " . $entry->id); + } + return false; + } + + /** + * Check that this account is subscribed to the given profile. + * @param string $profile_uri URI for the profile to check for + */ + function assertHasSubscription($profile_uri) + { + throw new Exception('tbi'); + } + + /** + * Check that this account is subscribed to by the given profile. + * @param string $profile_uri URI for the profile to check for + */ + function assertHasSubscriber($profile_uri) + { + throw new Exception('tbi'); + } + +} + +$args = array_slice($_SERVER['argv'], 1); +if (count($args) < 2) { + print << + url1: base URL of a StatusNet instance + url2: base URL of another StatusNet instance + +This will register user accounts on the two given StatusNet instances +and run some tests to confirm that OStatus subscription and posting +between the two sites works correctly. + +END_HELP; +exit(1); +} + +$a = $args[0]; +$b = $args[1]; + +$tester = new OStatusTester($a, $b); +$tester->run(); + -- cgit v1.2.3-54-g00ecf From b8e97ac7098783f0380c7f8f61c20a100e814dc0 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Mon, 22 Mar 2010 18:53:09 -0700 Subject: Some initial media parsing - Activity now returns a list of activity objects - Processing of photo objects --- lib/activity.php | 24 +-- lib/activityobject.php | 20 +++ plugins/OStatus/actions/groupsalmon.php | 3 +- plugins/OStatus/actions/usersalmon.php | 5 +- plugins/OStatus/classes/Ostatus_profile.php | 2 +- scripts/importtwitteratom.php | 2 +- tests/ActivityParseTests.php | 233 ++++++++++++++++++++++++++-- tests/UserFeedParseTest.php | 8 +- 8 files changed, 266 insertions(+), 31 deletions(-) diff --git a/lib/activity.php b/lib/activity.php index bd1d5d56c..f9192c6b8 100644 --- a/lib/activity.php +++ b/lib/activity.php @@ -53,6 +53,7 @@ class Activity { const SPEC = 'http://activitystrea.ms/spec/1.0/'; const SCHEMA = 'http://activitystrea.ms/schema/1.0/'; + const MEDIA = 'http://purl.org/syndication/atommedia'; const VERB = 'verb'; const OBJECT = 'object'; @@ -85,7 +86,7 @@ class Activity public $actor; // an ActivityObject public $verb; // a string (the URL) - public $object; // an ActivityObject + public $objects = array(); // an array of ActivityObjects public $target; // an ActivityObject public $context; // an ActivityObject public $time; // Time of the activity @@ -161,12 +162,15 @@ class Activity // XXX: do other implied stuff here } - $objectEl = $this->_child($entry, self::OBJECT); + $objectEls = $entry->getElementsByTagNameNS(self::SPEC, self::OBJECT); - if (!empty($objectEl)) { - $this->object = new ActivityObject($objectEl); + if ($objectEls->length > 0) { + for ($i = 0; $i < $objectEls->length; $i++) { + $objectEl = $objectEls->item($i); + $this->objects[] = new ActivityObject($objectEl); + } } else { - $this->object = new ActivityObject($entry); + $this->objects[] = new ActivityObject($entry); } $actorEl = $this->_child($entry, self::ACTOR); @@ -280,8 +284,8 @@ class Activity } } - $this->object = new ActivityObject($item); - $this->context = new ActivityContext($item); + $this->objects[] = new ActivityObject($item); + $this->context = new ActivityContext($item); } /** @@ -339,8 +343,10 @@ class Activity $xs->element('activity:verb', null, $this->verb); - if ($this->object) { - $xs->raw($this->object->asString()); + if (!empty($this->objects)) { + foreach($this->objects as $object) { + $xs->raw($object->asString()); + } } if ($this->target) { diff --git a/lib/activityobject.php b/lib/activityobject.php index 0a358ccab..34d1b9170 100644 --- a/lib/activityobject.php +++ b/lib/activityobject.php @@ -100,6 +100,13 @@ class ActivityObject public $poco; public $displayName; + // @todo move this stuff to it's own PHOTO activity object + const MEDIA_DESCRIPTION = 'description'; + + public $thumbnail; + public $largerImage; + public $description; + /** * Constructor * @@ -150,6 +157,19 @@ class ActivityObject $this->poco = new PoCo($element); } + + if ($this->type == self::PHOTO) { + + $this->thumbnail = ActivityUtils::getLink($element, 'preview'); + $this->largerImage = ActivityUtils::getLink($element, 'enclosure'); + + $this->description = ActivityUtils::childContent( + $element, + ActivityObject::MEDIA_DESCRIPTION, + Activity::MEDIA + ); + + } } private function _fromAuthor($element) diff --git a/plugins/OStatus/actions/groupsalmon.php b/plugins/OStatus/actions/groupsalmon.php index 29377b5fa..d60725a71 100644 --- a/plugins/OStatus/actions/groupsalmon.php +++ b/plugins/OStatus/actions/groupsalmon.php @@ -60,7 +60,8 @@ class GroupsalmonAction extends SalmonAction function handlePost() { - switch ($this->act->object->type) { + // @fixme process all objects? + switch ($this->act->objects[0]->type) { case ActivityObject::ARTICLE: case ActivityObject::BLOGENTRY: case ActivityObject::NOTE: diff --git a/plugins/OStatus/actions/usersalmon.php b/plugins/OStatus/actions/usersalmon.php index 15e8c1869..ecdcfa193 100644 --- a/plugins/OStatus/actions/usersalmon.php +++ b/plugins/OStatus/actions/usersalmon.php @@ -55,9 +55,10 @@ class UsersalmonAction extends SalmonAction */ function handlePost() { - common_log(LOG_INFO, "Received post of '{$this->act->object->id}' from '{$this->act->actor->id}'"); + common_log(LOG_INFO, "Received post of '{$this->act->objects[0]->id}' from '{$this->act->actor->id}'"); - switch ($this->act->object->type) { + // @fixme: process all activity objects? + switch ($this->act->objects[0]->type) { case ActivityObject::ARTICLE: case ActivityObject::BLOGENTRY: case ActivityObject::NOTE: diff --git a/plugins/OStatus/classes/Ostatus_profile.php b/plugins/OStatus/classes/Ostatus_profile.php index 0eb5b8b82..df937643b 100644 --- a/plugins/OStatus/classes/Ostatus_profile.php +++ b/plugins/OStatus/classes/Ostatus_profile.php @@ -494,7 +494,7 @@ class Ostatus_profile extends Memcached_DataObject // It's not always an ActivityObject::NOTE, but... let's just say it is. - $note = $activity->object; + $note = $activity->objects[0]; // The id URI will be used as a unique identifier for for the notice, // protecting against duplicate saves. It isn't required to be a URL; diff --git a/scripts/importtwitteratom.php b/scripts/importtwitteratom.php index 7316f2108..c12e3b91a 100644 --- a/scripts/importtwitteratom.php +++ b/scripts/importtwitteratom.php @@ -102,7 +102,7 @@ function importActivityStream($user, $doc) for ($i = $entries->length - 1; $i >= 0; $i--) { $entry = $entries->item($i); $activity = new Activity($entry, $feed); - $object = $activity->object; + $object = $activity->objects[0]; if (!have_option('q', 'quiet')) { print $activity->content . "\n"; } diff --git a/tests/ActivityParseTests.php b/tests/ActivityParseTests.php index 02d2ed734..fec8829eb 100644 --- a/tests/ActivityParseTests.php +++ b/tests/ActivityParseTests.php @@ -25,11 +25,11 @@ class ActivityParseTests extends PHPUnit_Framework_TestCase $this->assertEquals($act->time, 1243860840); $this->assertEquals($act->verb, ActivityVerb::POST); - $this->assertFalse(empty($act->object)); - $this->assertEquals($act->object->title, 'Punctuation Changeset'); - $this->assertEquals($act->object->type, 'http://versioncentral.example.org/activity/changeset'); - $this->assertEquals($act->object->summary, 'Fixing punctuation because it makes it more readable.'); - $this->assertEquals($act->object->id, 'tag:versioncentral.example.org,2009:/change/1643245'); + $this->assertFalse(empty($act->objects[0])); + $this->assertEquals($act->objects[0]->title, 'Punctuation Changeset'); + $this->assertEquals($act->objects[0]->type, 'http://versioncentral.example.org/activity/changeset'); + $this->assertEquals($act->objects[0]->summary, 'Fixing punctuation because it makes it more readable.'); + $this->assertEquals($act->objects[0]->id, 'tag:versioncentral.example.org,2009:/change/1643245'); } public function testExample3() @@ -56,12 +56,12 @@ class ActivityParseTests extends PHPUnit_Framework_TestCase $this->assertEquals($act->actor->title, 'John Doe'); $this->assertEquals($act->actor->id, 'mailto:johndoe@example.com'); - $this->assertFalse(empty($act->object)); - $this->assertEquals($act->object->type, ActivityObject::NOTE); - $this->assertEquals($act->object->id, 'urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a'); - $this->assertEquals($act->object->title, 'Atom-Powered Robots Run Amok'); - $this->assertEquals($act->object->summary, 'Some text.'); - $this->assertEquals($act->object->link, 'http://example.org/2003/12/13/atom03.html'); + $this->assertFalse(empty($act->objects[0])); + $this->assertEquals($act->objects[0]->type, ActivityObject::NOTE); + $this->assertEquals($act->objects[0]->id, 'urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a'); + $this->assertEquals($act->objects[0]->title, 'Atom-Powered Robots Run Amok'); + $this->assertEquals($act->objects[0]->summary, 'Some text.'); + $this->assertEquals($act->objects[0]->link, 'http://example.org/2003/12/13/atom03.html'); $this->assertFalse(empty($act->context)); @@ -90,8 +90,8 @@ class ActivityParseTests extends PHPUnit_Framework_TestCase $this->assertEquals('http://example.net/conversation/11', $act->context->conversation); $this->assertEquals(array('http://example.net/user/1'), $act->context->attention); - $this->assertFalse(empty($act->object)); - $this->assertEquals($act->object->content, + $this->assertFalse(empty($act->objects[0])); + $this->assertEquals($act->objects[0]->content, '@evan now is the time for all good men to come to the aid of their country. #'); $this->assertFalse(empty($act->actor)); @@ -215,6 +215,96 @@ class ActivityParseTests extends PHPUnit_Framework_TestCase $this->assertNull($actor->poco->address); $this->assertEquals(0, count($actor->poco->urls)); } + + // Media test - cliqset + public function testExample8() + { + global $_example8; + $dom = DOMDocument::loadXML($_example8); + + $feed = $dom->documentElement; + + $entries = $feed->getElementsByTagName('entry'); + + $entry = $entries->item(0); + + $act = new Activity($entry, $feed); + + $this->assertFalse(empty($act)); + $this->assertEquals($act->time, 1269221753); + $this->assertEquals($act->verb, ActivityVerb::POST); + $this->assertEquals($act->summary, 'zcopley posted 5 photos on Flickr'); + + $this->assertFalse(empty($act->objects)); + $this->assertEquals(sizeof($act->objects), 5); + + $this->assertEquals($act->objects[0]->type, ActivityObject::PHOTO); + $this->assertEquals($act->objects[0]->title, 'IMG_1368'); + $this->assertNull($act->objects[0]->description); + $this->assertEquals( + $act->objects[0]->thumbnail, + 'http://media.cliqset.com/6f6fbee9d7dfbffc73b6ef626275eb5f_thumb.jpg' + ); + $this->assertEquals( + $act->objects[0]->link, + 'http://www.flickr.com/photos/zcopley/4452933806/' + ); + + $this->assertEquals($act->objects[1]->type, ActivityObject::PHOTO); + $this->assertEquals($act->objects[1]->title, 'IMG_1365'); + $this->assertNull($act->objects[1]->description); + $this->assertEquals( + $act->objects[1]->thumbnail, + 'http://media.cliqset.com/b8f3932cd0bba1b27f7c8b3ef986915e_thumb.jpg' + ); + $this->assertEquals( + $act->objects[1]->link, + 'http://www.flickr.com/photos/zcopley/4442630390/' + ); + + $this->assertEquals($act->objects[2]->type, ActivityObject::PHOTO); + $this->assertEquals($act->objects[2]->title, 'Classic'); + $this->assertEquals( + $act->objects[2]->description, + '-Powered by pikchur.com/n0u' + ); + $this->assertEquals( + $act->objects[2]->thumbnail, + 'http://media.cliqset.com/fc54c15f850b7a9a8efa644087a48c91_thumb.jpg' + ); + $this->assertEquals( + $act->objects[2]->link, + 'http://www.flickr.com/photos/zcopley/4430754103/' + ); + + $this->assertEquals($act->objects[3]->type, ActivityObject::PHOTO); + $this->assertEquals($act->objects[3]->title, 'IMG_1363'); + $this->assertNull($act->objects[3]->description); + + $this->assertEquals( + $act->objects[3]->thumbnail, + 'http://media.cliqset.com/4b1d307c9217e2114391a8b229d612cb_thumb.jpg' + ); + $this->assertEquals( + $act->objects[3]->link, + 'http://www.flickr.com/photos/zcopley/4416969717/' + ); + + $this->assertEquals($act->objects[4]->type, ActivityObject::PHOTO); + $this->assertEquals($act->objects[4]->title, 'IMG_1361'); + $this->assertNull($act->objects[4]->description); + + $this->assertEquals( + $act->objects[4]->thumbnail, + 'http://media.cliqset.com/23d9b4b96b286e0347d36052f22f6e60_thumb.jpg' + ); + $this->assertEquals( + $act->objects[4]->link, + 'http://www.flickr.com/photos/zcopley/4417734232/' + ); + + } + } $_example1 = << EXAMPLE7; + +$_example8 = << + + + Activity Stream for: zcopley + http://cliqset.com/feed/atom?uid=zcopley + + 0 + http://activitystrea.ms/schema/1.0/post + 2010-03-22T01:35:53.000Z + + flickr + http://flickr.com + http://cliqset-services.s3.amazonaws.com/flickr.png + + + http://activitystrea.ms/schema/1.0/photo + IMG_1368 + + + + + http://activitystrea.ms/schema/1.0/photo + IMG_1365 + + + + + http://activitystrea.ms/schema/1.0/photo + Classic + + + -Powered by pikchur.com/n0u + + + http://activitystrea.ms/schema/1.0/photo + IMG_1363 + + + + + http://activitystrea.ms/schema/1.0/photo + IMG_1361 + + + + zcopley posted some photos on Flickr + zcopley posted 5 photos on Flickr + + 2010-03-22T20:46:42.778Z + tag:cliqset.com,2010-03-22:/user/zcopley/SVgAZubGhtAnSAee + + + zcopley + http://cliqset.com/user/zcopley + + + http://activitystrea.ms/schema/1.0/person + zcopley + + Zach + Copley + + + + + + + +EXAMPLE8; + +$_example9 = << + + + + Google Buzz + 2010-03-22T01:55:53.596Z + tag:google.com,2009:buzz-feed/public/posted/117848251937215158042 + Google - Google Buzz + + Buzz by Zach Copley from Flickr + IMG_1366 + 2010-03-18T04:29:23.000Z + 2010-03-18T05:14:03.325Z + tag:google.com,2009:buzz/z12zwdhxowq2d13q204cjr04kzu0cns5gh0 + + + Zach Copley + http://www.google.com/profiles/zcopley + + <div>IMG_1366</div> + + + IMG_1366 + + + + + IMG_1365 + + + http://activitystrea.ms/schema/1.0/post + + http://activitystrea.ms/schema/1.0/photo + tag:google.com,2009:buzz/z12zwdhxowq2d13q204cjr04kzu0cns5gh0 + Buzz by Zach Copley from Flickr + <div>IMG_1366</div> + + + + + 0 + + +EXAMPLE9; diff --git a/tests/UserFeedParseTest.php b/tests/UserFeedParseTest.php index b3f9a6417..208e71be6 100644 --- a/tests/UserFeedParseTest.php +++ b/tests/UserFeedParseTest.php @@ -66,11 +66,11 @@ class UserFeedParseTests extends PHPUnit_Framework_TestCase // test the post //var_export($act1); - $this->assertEquals($act1->object->type, 'http://activitystrea.ms/schema/1.0/note'); - $this->assertEquals($act1->object->title, 'And now for something completely insane...'); + $this->assertEquals($act1->objects[0]->type, 'http://activitystrea.ms/schema/1.0/note'); + $this->assertEquals($act1->objects[0]->title, 'And now for something completely insane...'); - $this->assertEquals($act1->object->content, 'And now for something completely insane...'); - $this->assertEquals($act1->object->id, 'http://localhost/statusnet/notice/3'); + $this->assertEquals($act1->objects[0]->content, 'And now for something completely insane...'); + $this->assertEquals($act1->objects[0]->id, 'http://localhost/statusnet/notice/3'); } -- cgit v1.2.3-54-g00ecf From 5b0b6097e0e47c84c2e47c8a14421a58be1fac19 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Mon, 22 Mar 2010 21:48:21 -0700 Subject: Fix reference. Look at the first ActivityObject in the list. --- plugins/OStatus/classes/Ostatus_profile.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/OStatus/classes/Ostatus_profile.php b/plugins/OStatus/classes/Ostatus_profile.php index df937643b..c7e3b0509 100644 --- a/plugins/OStatus/classes/Ostatus_profile.php +++ b/plugins/OStatus/classes/Ostatus_profile.php @@ -442,7 +442,8 @@ class Ostatus_profile extends Memcached_DataObject { $activity = new Activity($entry, $feed); - switch ($activity->object->type) { + // @todo process all activity objects + switch ($activity->objects[0]->type) { case ActivityObject::ARTICLE: case ActivityObject::BLOGENTRY: case ActivityObject::NOTE: -- cgit v1.2.3-54-g00ecf From fcdbf421ab2bbbe4d1b601a8c80d4612c91f62fe Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Tue, 23 Mar 2010 11:36:02 -0400 Subject: reformat OpenIDPlugin for PHPCS --- plugins/OpenID/OpenIDPlugin.php | 228 +++++++++++++++++++++++++++++++--------- 1 file changed, 179 insertions(+), 49 deletions(-) diff --git a/plugins/OpenID/OpenIDPlugin.php b/plugins/OpenID/OpenIDPlugin.php index 6b35ec3e1..1724b5f7b 100644 --- a/plugins/OpenID/OpenIDPlugin.php +++ b/plugins/OpenID/OpenIDPlugin.php @@ -59,6 +59,8 @@ class OpenIDPlugin extends Plugin * * Hook for RouterInitialized event. * + * @param Net_URL_Mapper $m URL mapper + * * @return boolean hook return */ @@ -67,54 +69,87 @@ class OpenIDPlugin extends Plugin $m->connect('main/openid', array('action' => 'openidlogin')); $m->connect('main/openidtrust', array('action' => 'openidtrust')); $m->connect('settings/openid', array('action' => 'openidsettings')); - $m->connect('index.php?action=finishopenidlogin', array('action' => 'finishopenidlogin')); - $m->connect('index.php?action=finishaddopenid', array('action' => 'finishaddopenid')); + $m->connect('index.php?action=finishopenidlogin', + array('action' => 'finishopenidlogin')); + $m->connect('index.php?action=finishaddopenid', + array('action' => 'finishaddopenid')); $m->connect('main/openidserver', array('action' => 'openidserver')); return true; } + /** + * Public XRDS output hook + * + * Puts the bits of code needed by some OpenID providers to show + * we're good citizens. + * + * @param Action $action Action being executed + * @param XMLOutputter &$xrdsOutputter Output channel + * + * @return boolean hook return + */ + function onEndPublicXRDS($action, &$xrdsOutputter) { $xrdsOutputter->elementStart('XRD', array('xmlns' => 'xri://$xrd*($v*2.0)', - 'xmlns:simple' => 'http://xrds-simple.net/core/1.0', - 'version' => '2.0')); + 'xmlns:simple' => 'http://xrds-simple.net/core/1.0', + 'version' => '2.0')); $xrdsOutputter->element('Type', null, 'xri://$xrds*simple'); //consumer foreach (array('finishopenidlogin', 'finishaddopenid') as $finish) { $xrdsOutputter->showXrdsService(Auth_OpenID_RP_RETURN_TO_URL_TYPE, - common_local_url($finish)); + common_local_url($finish)); } //provider $xrdsOutputter->showXrdsService('http://specs.openid.net/auth/2.0/server', - common_local_url('openidserver'), - null, - null, - 'http://specs.openid.net/auth/2.0/identifier_select'); + common_local_url('openidserver'), + null, + null, + 'http://specs.openid.net/auth/2.0/identifier_select'); $xrdsOutputter->elementEnd('XRD'); } + /** + * User XRDS output hook + * + * Puts the bits of code needed to discover OpenID endpoints. + * + * @param Action $action Action being executed + * @param XMLOutputter &$xrdsOutputter Output channel + * + * @return boolean hook return + */ + function onEndUserXRDS($action, &$xrdsOutputter) { $xrdsOutputter->elementStart('XRD', array('xmlns' => 'xri://$xrd*($v*2.0)', - 'xml:id' => 'openid', - 'xmlns:simple' => 'http://xrds-simple.net/core/1.0', - 'version' => '2.0')); + 'xml:id' => 'openid', + 'xmlns:simple' => 'http://xrds-simple.net/core/1.0', + 'version' => '2.0')); $xrdsOutputter->element('Type', null, 'xri://$xrds*simple'); //consumer $xrdsOutputter->showXrdsService('http://specs.openid.net/auth/2.0/return_to', - common_local_url('finishopenidlogin')); + common_local_url('finishopenidlogin')); //provider $xrdsOutputter->showXrdsService('http://specs.openid.net/auth/2.0/signon', - common_local_url('openidserver'), - null, - null, - common_profile_url($action->user->nickname)); + common_local_url('openidserver'), + null, + null, + common_profile_url($action->user->nickname)); $xrdsOutputter->elementEnd('XRD'); } + /** + * Menu item for login + * + * @param Action &$action Action being executed + * + * @return boolean hook return + */ + function onEndLoginGroupNav(&$action) { $action_name = $action->trimmed('action'); @@ -127,6 +162,14 @@ class OpenIDPlugin extends Plugin return true; } + /** + * Menu item for OpenID admin + * + * @param Action &$action Action being executed + * + * @return boolean hook return + */ + function onEndAccountSettingsNav(&$action) { $action_name = $action->trimmed('action'); @@ -139,68 +182,102 @@ class OpenIDPlugin extends Plugin return true; } + /** + * Autoloader + * + * Loads our classes if they're requested. + * + * @param string $cls Class requested + * + * @return boolean hook return + */ + function onAutoload($cls) { switch ($cls) { - case 'OpenidloginAction': - case 'FinishopenidloginAction': - case 'FinishaddopenidAction': - case 'XrdsAction': - case 'PublicxrdsAction': - case 'OpenidsettingsAction': - case 'OpenidserverAction': - case 'OpenidtrustAction': - require_once(INSTALLDIR.'/plugins/OpenID/' . strtolower(mb_substr($cls, 0, -6)) . '.php'); + case 'OpenidloginAction': + case 'FinishopenidloginAction': + case 'FinishaddopenidAction': + case 'XrdsAction': + case 'PublicxrdsAction': + case 'OpenidsettingsAction': + case 'OpenidserverAction': + case 'OpenidtrustAction': + require_once INSTALLDIR.'/plugins/OpenID/' . strtolower(mb_substr($cls, 0, -6)) . '.php'; return false; - case 'User_openid': - require_once(INSTALLDIR.'/plugins/OpenID/User_openid.php'); + case 'User_openid': + require_once INSTALLDIR.'/plugins/OpenID/User_openid.php'; return false; - case 'User_openid_trustroot': - require_once(INSTALLDIR.'/plugins/OpenID/User_openid_trustroot.php'); + case 'User_openid_trustroot': + require_once INSTALLDIR.'/plugins/OpenID/User_openid_trustroot.php'; return false; - default: + default: return true; } } + /** + * Sensitive actions + * + * These actions should use https when SSL support is 'sometimes' + * + * @param Action $action Action to form an URL for + * @param boolean &$ssl Whether to mark it for SSL + * + * @return boolean hook return + */ + function onSensitiveAction($action, &$ssl) { switch ($action) { - case 'finishopenidlogin': - case 'finishaddopenid': + case 'finishopenidlogin': + case 'finishaddopenid': $ssl = true; return false; - default: + default: return true; } } + /** + * Login actions + * + * These actions should be visible even when the site is marked private + * + * @param Action $action Action to show + * @param boolean &$login Whether it's a login action + * + * @return boolean hook return + */ + function onLoginAction($action, &$login) { switch ($action) { - case 'openidlogin': - case 'finishopenidlogin': - case 'openidserver': + case 'openidlogin': + case 'finishopenidlogin': + case 'openidserver': $login = true; return false; - default: + default: return true; } } /** - * We include a element linking to the publicxrds page, for OpenID + * We include a element linking to the userxrds page, for OpenID * client-side authentication. * + * @param Action $action Action being shown + * * @return void */ function onEndShowHeadElements($action) { - if($action instanceof ShowstreamAction){ + if ($action instanceof ShowstreamAction) { $action->element('link', array('rel' => 'openid2.provider', 'href' => common_local_url('openidserver'))); $action->element('link', array('rel' => 'openid2.local_id', @@ -216,6 +293,9 @@ class OpenIDPlugin extends Plugin /** * Redirect to OpenID login if they have an OpenID * + * @param Action $action Action being executed + * @param User $user User doing the action + * * @return boolean whether to continue */ @@ -228,13 +308,21 @@ class OpenIDPlugin extends Plugin return true; } + /** + * Show some extra instructions for using OpenID + * + * @param Action $action Action being executed + * + * @return boolean hook value + */ + function onEndShowPageNotice($action) { $name = $action->trimmed('action'); switch ($name) { - case 'register': + case 'register': if (common_logged_in()) { $instr = '(Have an [OpenID](http://openid.net/)? ' . '[Add an OpenID to your account](%%action.openidsettings%%)!'; @@ -244,12 +332,12 @@ class OpenIDPlugin extends Plugin '(%%action.openidlogin%%)!)'; } break; - case 'login': + case 'login': $instr = '(Have an [OpenID](http://openid.net/)? ' . 'Try our [OpenID login]'. '(%%action.openidlogin%%)!)'; break; - default: + default: return true; } @@ -258,13 +346,21 @@ class OpenIDPlugin extends Plugin return true; } + /** + * Load our document if requested + * + * @param string &$title Title to fetch + * @param string &$output HTML to output + * + * @return boolean hook value + */ + function onStartLoadDoc(&$title, &$output) { - if ($title == 'openid') - { + if ($title == 'openid') { $filename = INSTALLDIR.'/plugins/OpenID/doc-src/openid'; - $c = file_get_contents($filename); + $c = file_get_contents($filename); $output = common_markup_to_html($c); return false; // success! } @@ -272,10 +368,18 @@ class OpenIDPlugin extends Plugin return true; } + /** + * Add our document to the global menu + * + * @param string $title Title being fetched + * @param string &$output HTML being output + * + * @return boolean hook value + */ + function onEndLoadDoc($title, &$output) { - if ($title == 'help') - { + if ($title == 'help') { $menuitem = '* [OpenID](%%doc.openid%%) - what OpenID is and how to use it with this service'; $output .= common_markup_to_html($menuitem); @@ -284,7 +388,16 @@ class OpenIDPlugin extends Plugin return true; } - function onCheckSchema() { + /** + * Data definitions + * + * Assure that our data objects are available in the DB + * + * @return boolean hook value + */ + + function onCheckSchema() + { $schema = Schema::get(); $schema->ensureTable('user_openid', array(new ColumnDef('canonical', 'varchar', @@ -307,6 +420,15 @@ class OpenIDPlugin extends Plugin return true; } + /** + * Add our tables to be deleted when a user is deleted + * + * @param User $user User being deleted + * @param array &$tables Array of table names + * + * @return boolean hook value + */ + function onUserDeleteRelated($user, &$tables) { $tables[] = 'User_openid'; @@ -314,6 +436,14 @@ class OpenIDPlugin extends Plugin return true; } + /** + * Add our version information to output + * + * @param array &$versions Array of version-data arrays + * + * @return boolean hook value + */ + function onPluginVersion(&$versions) { $versions[] = array('name' => 'OpenID', -- cgit v1.2.3-54-g00ecf From ff60cb4e6692558581f6588524eafbfa903b66a9 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Tue, 23 Mar 2010 12:10:26 -0400 Subject: start making OpenID-only mode work --- plugins/OpenID/OpenIDPlugin.php | 98 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 91 insertions(+), 7 deletions(-) diff --git a/plugins/OpenID/OpenIDPlugin.php b/plugins/OpenID/OpenIDPlugin.php index 1724b5f7b..24e4e0c32 100644 --- a/plugins/OpenID/OpenIDPlugin.php +++ b/plugins/OpenID/OpenIDPlugin.php @@ -45,13 +45,11 @@ if (!defined('STATUSNET')) { class OpenIDPlugin extends Plugin { - /** - * Initializer for the plugin. - */ + public $openidOnly = false; - function __construct() + function initialize() { - parent::__construct(); + common_debug("OpenID plugin running with openidonly = {$this->openidOnly}"); } /** @@ -142,6 +140,61 @@ class OpenIDPlugin extends Plugin $xrdsOutputter->elementEnd('XRD'); } + function onStartPrimaryNav($action) + { + if ($this->openidOnly && !common_logged_in()) { + // TRANS: Tooltip for main menu option "Login" + $tooltip = _m('TOOLTIP', 'Login to the site'); + // TRANS: Main menu option when not logged in to log in + $action->menuItem(common_local_url('openidlogin'), + _m('MENU', 'Login'), + $tooltip, + false, + 'nav_login'); + // TRANS: Tooltip for main menu option "Help" + $tooltip = _m('TOOLTIP', 'Help me!'); + // TRANS: Main menu option for help on the StatusNet site + $action->menuItem(common_local_url('doc', array('title' => 'help')), + _m('MENU', 'Help'), + $tooltip, + false, + 'nav_help'); + if (!common_config('site', 'private')) { + // TRANS: Tooltip for main menu option "Search" + $tooltip = _m('TOOLTIP', 'Search for people or text'); + // TRANS: Main menu option when logged in or when the StatusNet instance is not private + $action->menuItem(common_local_url('peoplesearch'), + _m('MENU', 'Search'), $tooltip, false, 'nav_search'); + } + Event::handle('EndPrimaryNav', array($action)); + return false; + } + return true; + } + + /** + * Menu for login + * + * If we're in openidOnly mode, we disable the menu for all other login. + * + * @param Action &$action Action being executed + * + * @return boolean hook return + */ + + function onStartLoginGroupNav(&$action) + { + if ($this->openidOnly) { + $this->showOpenIDLoginTab($action); + // Even though we replace this code, we + // DON'T run the End* hook, to keep others from + // adding tabs. Not nice, but. + return false; + } + + return true; + } + /** * Menu item for login * @@ -151,6 +204,21 @@ class OpenIDPlugin extends Plugin */ function onEndLoginGroupNav(&$action) + { + $this->showOpenIDLoginTab($action); + + return true; + } + + /** + * Show menu item for login + * + * @param Action $action Action being executed + * + * @return void + */ + + function showOpenIDLoginTab($action) { $action_name = $action->trimmed('action'); @@ -158,12 +226,28 @@ class OpenIDPlugin extends Plugin _m('OpenID'), _m('Login or register with OpenID'), $action_name === 'openidlogin'); + } + /** + * Show menu item for password + * + * We hide it in openID-only mode + * + * @param Action $menu Widget for menu + * @param void &$unused Unused value + * + * @return void + */ + + function onStartAccountSettingsPasswordMenuItem($menu, &$unused) { + if ($this->openidOnly) { + return false; + } return true; } /** - * Menu item for OpenID admin + * Menu item for OpenID settings * * @param Action &$action Action being executed * @@ -301,7 +385,7 @@ class OpenIDPlugin extends Plugin function onRedirectToLogin($action, $user) { - if (!empty($user) && User_openid::hasOpenID($user->id)) { + if ($this->openidOnly || (!empty($user) && User_openid::hasOpenID($user->id))) { common_redirect(common_local_url('openidlogin'), 303); return false; } -- cgit v1.2.3-54-g00ecf From dd115fcb080bbd06ccefdd091604574945b6ec54 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Tue, 23 Mar 2010 12:33:41 -0400 Subject: change router to allow hooking path connections --- lib/router.php | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/lib/router.php b/lib/router.php index a48ee875e..a9d07276f 100644 --- a/lib/router.php +++ b/lib/router.php @@ -33,6 +33,33 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { require_once 'Net/URL/Mapper.php'; +class StatusNet_URL_Mapper extends Net_URL_Mapper { + + private static $_singleton = null; + + private function __construct() + { + } + + public static function getInstance($id = '__default__') + { + if (empty(self::$_singleton)) { + self::$_singleton = new StatusNet_URL_Mapper(); + } + return self::$_singleton; + } + + public function connect($path, $defaults = array(), $rules = array()) + { + $result = null; + if (Event::handle('StartConnectPath', array(&$path, &$defaults, &$rules, &$result))) { + $result = parent::connect($path, $defaults, $rules); + Event::handle('EndConnectPath', array($path, $defaults, $rules, $result)); + } + return $result; + } +} + /** * URL Router * @@ -69,7 +96,7 @@ class Router function initialize() { - $m = Net_URL_Mapper::getInstance(); + $m = StatusNet_URL_Mapper::getInstance(); if (Event::handle('StartInitializeRouter', array(&$m))) { -- cgit v1.2.3-54-g00ecf From 2d79455a1fb7627a23a6ca77fbab060193f6c43a Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 23 Mar 2010 09:50:01 -0700 Subject: Don't add PHPSESSID parameter onto notice and conversation URIs if we save a notice during a session override. This was being triggered by welcomebot messages created at account creation time, then propagated through replies. --- classes/Conversation.php | 3 ++- lib/util.php | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/classes/Conversation.php b/classes/Conversation.php index ea8bd87b5..f540004ef 100755 --- a/classes/Conversation.php +++ b/classes/Conversation.php @@ -63,7 +63,8 @@ class Conversation extends Memcached_DataObject } $orig = clone($conv); - $orig->uri = common_local_url('conversation', array('id' => $id)); + $orig->uri = common_local_url('conversation', array('id' => $id), + null, null, false); $result = $orig->update($conv); if (empty($result)) { diff --git a/lib/util.php b/lib/util.php index a30d69100..795997868 100644 --- a/lib/util.php +++ b/lib/util.php @@ -1529,7 +1529,8 @@ function common_user_uri(&$user) function common_notice_uri(&$notice) { return common_local_url('shownotice', - array('notice' => $notice->id)); + array('notice' => $notice->id), + null, null, false); } // 36 alphanums - lookalikes (0, O, 1, I) = 32 chars = 5 bits -- cgit v1.2.3-54-g00ecf From 80b16c8499d0cfdb4deb442ba18345befed4e29d Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 23 Mar 2010 09:50:01 -0700 Subject: Don't add PHPSESSID parameter onto notice and conversation URIs if we save a notice during a session override. This was being triggered by welcomebot messages created at account creation time, then propagated through replies. --- classes/Conversation.php | 3 ++- lib/util.php | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/classes/Conversation.php b/classes/Conversation.php index ea8bd87b5..f540004ef 100755 --- a/classes/Conversation.php +++ b/classes/Conversation.php @@ -63,7 +63,8 @@ class Conversation extends Memcached_DataObject } $orig = clone($conv); - $orig->uri = common_local_url('conversation', array('id' => $id)); + $orig->uri = common_local_url('conversation', array('id' => $id), + null, null, false); $result = $orig->update($conv); if (empty($result)) { diff --git a/lib/util.php b/lib/util.php index 44ccc0def..3d4ed087f 100644 --- a/lib/util.php +++ b/lib/util.php @@ -1521,7 +1521,8 @@ function common_user_uri(&$user) function common_notice_uri(&$notice) { return common_local_url('shownotice', - array('notice' => $notice->id)); + array('notice' => $notice->id), + null, null, false); } // 36 alphanums - lookalikes (0, O, 1, I) = 32 chars = 5 bits -- cgit v1.2.3-54-g00ecf From ad608ab9add1615d6aae3fde239e54d1eb36b0ca Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Tue, 23 Mar 2010 12:58:10 -0400 Subject: prevent password login actions in OpenID-only mode --- plugins/OpenID/OpenIDPlugin.php | 67 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 62 insertions(+), 5 deletions(-) diff --git a/plugins/OpenID/OpenIDPlugin.php b/plugins/OpenID/OpenIDPlugin.php index 24e4e0c32..270e2c624 100644 --- a/plugins/OpenID/OpenIDPlugin.php +++ b/plugins/OpenID/OpenIDPlugin.php @@ -47,11 +47,6 @@ class OpenIDPlugin extends Plugin { public $openidOnly = false; - function initialize() - { - common_debug("OpenID plugin running with openidonly = {$this->openidOnly}"); - } - /** * Add OpenID-related paths to the router table * @@ -76,6 +71,60 @@ class OpenIDPlugin extends Plugin return true; } + /** + * In OpenID-only mode, disable paths for password stuff + * + * @param string $path path to connect + * @param array $defaults path defaults + * @param array $rules path rules + * @param array $result unused + * + * @return boolean hook return + */ + + function onStartConnectPath(&$path, &$defaults, &$rules, &$result) + { + if ($this->openidOnly) { + static $block = array('main/login', + 'main/register', + 'main/recoverpassword', + 'settings/password'); + + if (in_array($path, $block)) { + return false; + } + } + + return true; + } + + /** + * If we've been hit with password-login args, redirect + * + * @param array $args args (URL, Get, post) + * + * @return boolean hook return + */ + + function onArgsInitialize($args) + { + if ($this->openidOnly) { + if (array_key_exists('action', $args)) { + $action = trim($args['action']); + if (in_array($action, array('login', 'register'))) { + common_redirect(common_local_url('openidlogin')); + exit(0); + } else if ($action == 'passwordsettings') { + common_redirect(common_local_url('openidsettings')); + exit(0); + } else if ($action == 'recoverpassword') { + throw new ClientException('Unavailable action'); + } + } + } + return true; + } + /** * Public XRDS output hook * @@ -140,6 +189,14 @@ class OpenIDPlugin extends Plugin $xrdsOutputter->elementEnd('XRD'); } + /** + * If we're in OpenID-only mode, hide all the main menu except OpenID login. + * + * @param Action $action Action being run + * + * @return boolean hook return + */ + function onStartPrimaryNav($action) { if ($this->openidOnly && !common_logged_in()) { -- cgit v1.2.3-54-g00ecf From 533a3bf6a3180237cfffb8baf29ea3a3f7ec34f8 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 23 Mar 2010 11:06:37 -0700 Subject: Consistently send Profiles into Fave::addNew() --- actions/apifavoritecreate.php | 2 +- classes/Fave.php | 10 +++++++++- lib/command.php | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/actions/apifavoritecreate.php b/actions/apifavoritecreate.php index 3618f9401..00b6349b0 100644 --- a/actions/apifavoritecreate.php +++ b/actions/apifavoritecreate.php @@ -123,7 +123,7 @@ class ApiFavoriteCreateAction extends ApiAuthAction return; } - $fave = Fave::addNew($this->user, $this->notice); + $fave = Fave::addNew($this->user->getProfile(), $this->notice); if (empty($fave)) { $this->clientError( diff --git a/classes/Fave.php b/classes/Fave.php index a04f15e9c..7ca9ade7f 100644 --- a/classes/Fave.php +++ b/classes/Fave.php @@ -21,7 +21,15 @@ class Fave extends Memcached_DataObject /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE - static function addNew($profile, $notice) { + /** + * Save a favorite record. + * @fixme post-author notification should be moved here + * + * @param Profile $profile the local or remote user who likes + * @param Notice $notice the notice that is liked + * @return mixed false on failure, or Fave record on success + */ + static function addNew(Profile $profile, Notice $notice) { $fave = null; diff --git a/lib/command.php b/lib/command.php index f7421269d..216f9e649 100644 --- a/lib/command.php +++ b/lib/command.php @@ -273,7 +273,7 @@ class FavCommand extends Command function handle($channel) { $notice = $this->getNotice($this->other); - $fave = Fave::addNew($this->user, $notice); + $fave = Fave::addNew($this->user->getProfile(), $notice); if (!$fave) { $channel->error($this->user, _('Could not create favorite.')); -- cgit v1.2.3-54-g00ecf From 44caa3a93f452777c795006edb52ef4c5c2c4997 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 23 Mar 2010 11:06:37 -0700 Subject: Consistently send Profiles into Fave::addNew() --- actions/apifavoritecreate.php | 2 +- classes/Fave.php | 10 +++++++++- lib/command.php | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/actions/apifavoritecreate.php b/actions/apifavoritecreate.php index 3618f9401..00b6349b0 100644 --- a/actions/apifavoritecreate.php +++ b/actions/apifavoritecreate.php @@ -123,7 +123,7 @@ class ApiFavoriteCreateAction extends ApiAuthAction return; } - $fave = Fave::addNew($this->user, $this->notice); + $fave = Fave::addNew($this->user->getProfile(), $this->notice); if (empty($fave)) { $this->clientError( diff --git a/classes/Fave.php b/classes/Fave.php index a04f15e9c..7ca9ade7f 100644 --- a/classes/Fave.php +++ b/classes/Fave.php @@ -21,7 +21,15 @@ class Fave extends Memcached_DataObject /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE - static function addNew($profile, $notice) { + /** + * Save a favorite record. + * @fixme post-author notification should be moved here + * + * @param Profile $profile the local or remote user who likes + * @param Notice $notice the notice that is liked + * @return mixed false on failure, or Fave record on success + */ + static function addNew(Profile $profile, Notice $notice) { $fave = null; diff --git a/lib/command.php b/lib/command.php index 9d550550f..8080fb8bc 100644 --- a/lib/command.php +++ b/lib/command.php @@ -273,7 +273,7 @@ class FavCommand extends Command function handle($channel) { $notice = $this->getNotice($this->other); - $fave = Fave::addNew($this->user, $notice); + $fave = Fave::addNew($this->user->getProfile(), $notice); if (!$fave) { $channel->error($this->user, _('Could not create favorite.')); -- cgit v1.2.3-54-g00ecf From 16fa03212bc6cabe2f47e93d06c0def10d46b353 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 23 Mar 2010 11:25:36 -0700 Subject: Ticket 2188: add a daily average post count to profile statistics sidebar. When we have more detailed history stats, this'd be a good place to link to details/graphs. --- lib/profileaction.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/profileaction.php b/lib/profileaction.php index 029c21845..072c024c7 100644 --- a/lib/profileaction.php +++ b/lib/profileaction.php @@ -169,6 +169,12 @@ class ProfileAction extends OwnerDesignAction $subbed_count = $this->profile->subscriberCount(); $notice_count = $this->profile->noticeCount(); $group_count = $this->user->getGroups()->N; + $age_days = (time() - strtotime($this->profile->created)) / 86400; + if ($age_days < 1) { + // Rather than extrapolating out to a bajillion... + $age_days = 1; + } + $daily_count = round($notice_count / $age_days); $this->elementStart('div', array('id' => 'entity_statistics', 'class' => 'section')); @@ -219,6 +225,12 @@ class ProfileAction extends OwnerDesignAction $this->element('dd', null, $notice_count); $this->elementEnd('dl'); + $this->elementStart('dl', 'entity_daily_notices'); + // TRANS: Average count of posts made per day since account registration + $this->element('dt', null, _('Daily average')); + $this->element('dd', null, $daily_count); + $this->elementEnd('dl'); + $this->elementEnd('div'); } -- cgit v1.2.3-54-g00ecf From 7dc24b4ca7dffda85338d35da3618ec50ce0dbf7 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 23 Mar 2010 13:10:23 -0700 Subject: FOAF was missing OStatus remote subscriptions, now fixed. --- actions/foaf.php | 68 +++++++++++++++++++------------------------------------- 1 file changed, 23 insertions(+), 45 deletions(-) diff --git a/actions/foaf.php b/actions/foaf.php index fc2ec9b12..fc56e19b4 100644 --- a/actions/foaf.php +++ b/actions/foaf.php @@ -162,40 +162,29 @@ class FoafAction extends Action if ($sub->find()) { while ($sub->fetch()) { - if ($sub->token) { - $other = Remote_profile::staticGet('id', $sub->subscriber); - $profile = Profile::staticGet('id', $sub->subscriber); - } else { - $other = User::staticGet('id', $sub->subscriber); - $profile = Profile::staticGet('id', $sub->subscriber); - } - if (!$other) { + $profile = Profile::staticGet('id', $sub->subscriber); + if (empty($profile)) { common_debug('Got a bad subscription: '.print_r($sub,true)); continue; } - if (array_key_exists($other->uri, $person)) { - $person[$other->uri][0] = BOTH; + $user = $profile->getUser(); + $other_uri = $profile->getUri(); + if (array_key_exists($other_uri, $person)) { + $person[$other_uri][0] = BOTH; } else { - $person[$other->uri] = array(LISTENER, - $other->id, - $profile->nickname, - (empty($sub->token)) ? 'User' : 'Remote_profile'); + $person[$other_uri] = array(LISTENER, + $profile->id, + $profile->nickname, + $user ? 'local' : 'remote'); } - $other->free(); - $other = null; - unset($other); - $profile->free(); - $profile = null; unset($profile); } } - $sub->free(); - $sub = null; unset($sub); foreach ($person as $uri => $p) { - list($type, $id, $nickname, $cls) = $p; + list($type, $id, $nickname, $local) = $p; if ($type == BOTH) { $this->element('knows', array('rdf:resource' => $uri)); } @@ -206,8 +195,8 @@ class FoafAction extends Action foreach ($person as $uri => $p) { $foaf_url = null; - list($type, $id, $nickname, $cls) = $p; - if ($cls == 'User') { + list($type, $id, $nickname, $local) = $p; + if ($local == 'local') { $foaf_url = common_local_url('foaf', array('nickname' => $nickname)); } $profile = Profile::staticGet($id); @@ -216,7 +205,7 @@ class FoafAction extends Action $this->element('knows', array('rdf:resource' => $this->user->uri)); } $this->showMicrobloggingAccount($profile, - ($cls == 'User') ? common_root_url() : null, + ($local == 'local') ? common_root_url() : null, $uri, true); if ($foaf_url) { @@ -275,33 +264,22 @@ class FoafAction extends Action if ($sub->find()) { while ($sub->fetch()) { - if (!empty($sub->token)) { - $other = Remote_profile::staticGet('id', $sub->subscribed); - $profile = Profile::staticGet('id', $sub->subscribed); - } else { - $other = User::staticGet('id', $sub->subscribed); - $profile = Profile::staticGet('id', $sub->subscribed); - } - if (empty($other)) { + $profile = Profile::staticGet('id', $sub->subscribed); + if (empty($profile)) { common_debug('Got a bad subscription: '.print_r($sub,true)); continue; } - $this->element('sioc:follows', array('rdf:resource' => $other->uri.'#acct')); - $person[$other->uri] = array(LISTENEE, - $other->id, - $profile->nickname, - (empty($sub->token)) ? 'User' : 'Remote_profile'); - $other->free(); - $other = null; - unset($other); - $profile->free(); - $profile = null; + $user = $profile->getUser(); + $other_uri = $profile->getUri(); + $this->element('sioc:follows', array('rdf:resource' => $other_uri.'#acct')); + $person[$other_uri] = array(LISTENEE, + $profile->id, + $profile->nickname, + $user ? 'local' : 'remote'); unset($profile); } } - $sub->free(); - $sub = null; unset($sub); } -- cgit v1.2.3-54-g00ecf From 80ed39132890a78c9bade22c43b25781fe7c12c8 Mon Sep 17 00:00:00 2001 From: Siebrand Mazeland Date: Tue, 23 Mar 2010 21:15:20 +0100 Subject: Localisation updates for !StatusNet from !translatewiki.net !sntrans Signed-off-by: Siebrand Mazeland --- locale/ar/LC_MESSAGES/statusnet.po | 111 +++++++++------- locale/arz/LC_MESSAGES/statusnet.po | 111 +++++++++------- locale/bg/LC_MESSAGES/statusnet.po | 111 +++++++++------- locale/br/LC_MESSAGES/statusnet.po | 147 ++++++++++++---------- locale/ca/LC_MESSAGES/statusnet.po | 110 +++++++++------- locale/cs/LC_MESSAGES/statusnet.po | 110 +++++++++------- locale/de/LC_MESSAGES/statusnet.po | 113 +++++++++-------- locale/el/LC_MESSAGES/statusnet.po | 109 +++++++++------- locale/en_GB/LC_MESSAGES/statusnet.po | 111 +++++++++------- locale/es/LC_MESSAGES/statusnet.po | 110 +++++++++------- locale/fa/LC_MESSAGES/statusnet.po | 110 +++++++++------- locale/fi/LC_MESSAGES/statusnet.po | 110 +++++++++------- locale/fr/LC_MESSAGES/statusnet.po | 113 +++++++++-------- locale/ga/LC_MESSAGES/statusnet.po | 110 +++++++++------- locale/he/LC_MESSAGES/statusnet.po | 110 +++++++++------- locale/hsb/LC_MESSAGES/statusnet.po | 110 +++++++++------- locale/ia/LC_MESSAGES/statusnet.po | 111 +++++++++------- locale/is/LC_MESSAGES/statusnet.po | 110 +++++++++------- locale/it/LC_MESSAGES/statusnet.po | 111 +++++++++------- locale/ja/LC_MESSAGES/statusnet.po | 111 +++++++++------- locale/ko/LC_MESSAGES/statusnet.po | 110 +++++++++------- locale/mk/LC_MESSAGES/statusnet.po | 113 +++++++++-------- locale/nb/LC_MESSAGES/statusnet.po | 110 +++++++++------- locale/nl/LC_MESSAGES/statusnet.po | 113 +++++++++-------- locale/nn/LC_MESSAGES/statusnet.po | 110 +++++++++------- locale/pl/LC_MESSAGES/statusnet.po | 113 +++++++++-------- locale/pt/LC_MESSAGES/statusnet.po | 111 +++++++++------- locale/pt_BR/LC_MESSAGES/statusnet.po | 229 ++++++++++++++++------------------ locale/ru/LC_MESSAGES/statusnet.po | 113 +++++++++-------- locale/statusnet.po | 105 +++++++++------- locale/sv/LC_MESSAGES/statusnet.po | 113 +++++++++-------- locale/te/LC_MESSAGES/statusnet.po | 111 +++++++++------- locale/tr/LC_MESSAGES/statusnet.po | 110 +++++++++------- locale/uk/LC_MESSAGES/statusnet.po | 114 +++++++++-------- locale/vi/LC_MESSAGES/statusnet.po | 110 +++++++++------- locale/zh_CN/LC_MESSAGES/statusnet.po | 110 +++++++++------- locale/zh_TW/LC_MESSAGES/statusnet.po | 109 +++++++++------- 37 files changed, 2378 insertions(+), 1875 deletions(-) diff --git a/locale/ar/LC_MESSAGES/statusnet.po b/locale/ar/LC_MESSAGES/statusnet.po index 16ea19752..e4142e9b1 100644 --- a/locale/ar/LC_MESSAGES/statusnet.po +++ b/locale/ar/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:39:53+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:09:08+0000\n" "Language-Team: Arabic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ar\n" "X-Message-Group: out-statusnet\n" @@ -751,23 +751,28 @@ msgstr "ارفع" msgid "Crop" msgstr "" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "لا ملف شخصي مُحدّد." + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "" -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "رُفع الأفتار." -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "فشل تحديث الأفتار." -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 msgid "Avatar deleted." msgstr "حُذف الأفتار." @@ -902,7 +907,7 @@ msgid "Conversation" msgstr "محادثة" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "الإشعارات" @@ -1700,7 +1705,7 @@ msgstr "مسار %s الزمني" msgid "Updates from members of %1$s on %2$s!" msgstr "" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "مجموعات" @@ -3240,7 +3245,7 @@ msgid "Description" msgstr "الوصف" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "إحصاءات" @@ -3402,7 +3407,7 @@ msgid "Members" msgstr "الأعضاء" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(لا شيء)" @@ -3574,7 +3579,8 @@ msgid "Unknown language \"%s\"." msgstr "لغة غير معروفة \"%s\"." #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +#, fuzzy +msgid "Minimum text limit is 0 (unlimited)." msgstr "حد النص الأدنى هو 140 حرفًا." #: actions/siteadminpanel.php:171 @@ -3838,8 +3844,7 @@ msgstr "اذف إعدادت الموقع" msgid "You are not subscribed to that profile." msgstr "" -#: actions/subedit.php:83 classes/Subscription.php:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 msgid "Could not save subscription." msgstr "تعذّر حفظ الاشتراك." @@ -4378,36 +4383,36 @@ msgstr "مشكلة أثناء حفظ الإشعار." msgid "RT @%1$s %2$s" msgstr "آر تي @%1$s %2$s" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "" -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "مُشترك أصلا!" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 msgid "User has blocked you." msgstr "لقد منعك المستخدم." -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 msgid "Not subscribed!" msgstr "غير مشترك!" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 msgid "Couldn't delete self-subscription." msgstr "لم يمكن حذف اشتراك ذاتي." -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 #, fuzzy msgid "Couldn't delete subscription OMB token." msgstr "تعذّر حذف الاشتراك." -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "تعذّر حذف الاشتراك." -#: classes/User.php:378 +#: classes/User.php:363 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "أهلا بكم في %1$s يا @%2$s!" @@ -4694,22 +4699,22 @@ msgstr "بعد" msgid "Before" msgstr "قبل" -#: lib/activity.php:453 +#: lib/activity.php:120 +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/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." @@ -5227,19 +5232,19 @@ msgstr "" "tracks - لم يطبق بعد.\n" "tracking - لم يطبق بعد.\n" -#: lib/common.php:136 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "" -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:139 msgid "Go to the installer." msgstr "اذهب إلى المُثبّت." @@ -5413,40 +5418,40 @@ msgstr "وسوم في إشعارات المجموعة %s" msgid "This page is not available in a media type you accept" msgstr "" -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "" -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %s." -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "" -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "" -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "" -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "" -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "نوع ملف غير معروف" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "ميجابايت" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "كيلوبايت" @@ -5911,7 +5916,7 @@ msgstr "وسوم في إشعارات %s" msgid "Unknown" msgstr "غير معروفة" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "الاشتراكات" @@ -5919,7 +5924,7 @@ msgstr "الاشتراكات" msgid "All subscriptions" msgstr "جميع الاشتراكات" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "المشتركون" @@ -5927,15 +5932,20 @@ msgstr "المشتركون" msgid "All subscribers" msgstr "جميع المشتركين" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 msgid "User ID" msgstr "هوية المستخدم" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "عضو منذ" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "كل المجموعات" @@ -6106,6 +6116,11 @@ msgstr "ألغِ الاشتراك مع هذا المستخدم" msgid "Unsubscribe" msgstr "ألغِ الاشتراك" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "ليس للمستخدم ملف شخصي." + #: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "عدّل الأفتار" diff --git a/locale/arz/LC_MESSAGES/statusnet.po b/locale/arz/LC_MESSAGES/statusnet.po index 1426c4d04..77e246f82 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-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:39:57+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:09:11+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 (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: arz\n" "X-Message-Group: out-statusnet\n" @@ -757,23 +757,28 @@ msgstr "ارفع" msgid "Crop" msgstr "" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "لا ملف شخصى مُحدّد." + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "" -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "رُفع الأفتار." -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "فشل تحديث الأفتار." -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 msgid "Avatar deleted." msgstr "حُذف الأفتار." @@ -908,7 +913,7 @@ msgid "Conversation" msgstr "محادثة" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "الإشعارات" @@ -1712,7 +1717,7 @@ msgstr "مسار %s الزمني" msgid "Updates from members of %1$s on %2$s!" msgstr "" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "مجموعات" @@ -3250,7 +3255,7 @@ msgid "Description" msgstr "الوصف" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "إحصاءات" @@ -3412,7 +3417,7 @@ msgid "Members" msgstr "الأعضاء" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(لا شيء)" @@ -3572,7 +3577,8 @@ msgid "Unknown language \"%s\"." msgstr "لغه مش معروفه \"%s\"." #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +#, fuzzy +msgid "Minimum text limit is 0 (unlimited)." msgstr "حد النص الأدنى هو 140 حرفًا." #: actions/siteadminpanel.php:171 @@ -3841,8 +3847,7 @@ msgstr "اذف إعدادت الموقع" msgid "You are not subscribed to that profile." msgstr "" -#: actions/subedit.php:83 classes/Subscription.php:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 msgid "Could not save subscription." msgstr "تعذّر حفظ الاشتراك." @@ -4382,36 +4387,36 @@ msgstr "مشكله أثناء حفظ الإشعار." msgid "RT @%1$s %2$s" msgstr "آر تى @%1$s %2$s" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "" -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "مُشترك أصلا!" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 msgid "User has blocked you." msgstr "لقد منعك المستخدم." -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 msgid "Not subscribed!" msgstr "غير مشترك!" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 msgid "Couldn't delete self-subscription." msgstr "ما نفعش يمسح الاشتراك الشخصى." -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 #, fuzzy msgid "Couldn't delete subscription OMB token." msgstr "تعذّر حذف الاشتراك." -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "تعذّر حذف الاشتراك." -#: classes/User.php:378 +#: classes/User.php:363 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "أهلا بكم فى %1$s يا @%2$s!" @@ -4714,22 +4719,22 @@ msgstr "بعد" msgid "Before" msgstr "قبل" -#: lib/activity.php:453 +#: lib/activity.php:120 +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/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." @@ -5215,19 +5220,19 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "" -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:139 msgid "Go to the installer." msgstr "اذهب إلى المُثبّت." @@ -5401,40 +5406,40 @@ msgstr "" msgid "This page is not available in a media type you accept" msgstr "" -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "" -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %s." -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "" -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "" -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "" -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "" -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "نوع ملف غير معروف" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "ميجابايت" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "كيلوبايت" @@ -5878,7 +5883,7 @@ msgstr "" msgid "Unknown" msgstr "مش معروف" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "الاشتراكات" @@ -5886,7 +5891,7 @@ msgstr "الاشتراكات" msgid "All subscriptions" msgstr "جميع الاشتراكات" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "المشتركون" @@ -5894,15 +5899,20 @@ msgstr "المشتركون" msgid "All subscribers" msgstr "جميع المشتركين" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 msgid "User ID" msgstr "هويه المستخدم" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "عضو منذ" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "كل المجموعات" @@ -6073,6 +6083,11 @@ msgstr "ألغِ الاشتراك مع هذا المستخدم" msgid "Unsubscribe" msgstr "ألغِ الاشتراك" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "ليس للمستخدم ملف شخصى." + #: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "عدّل الأفتار" diff --git a/locale/bg/LC_MESSAGES/statusnet.po b/locale/bg/LC_MESSAGES/statusnet.po index 83acdaab6..c1f83849a 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-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:40:00+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:09:15+0000\n" "Language-Team: Bulgarian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: bg\n" "X-Message-Group: out-statusnet\n" @@ -766,23 +766,28 @@ msgstr "Качване" msgid "Crop" msgstr "Изрязване" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "Не е указан профил." + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "Изберете квадратна област от изображението за аватар" -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "Аватарът е обновен." -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "Неуспешно обновяване на аватара." -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 msgid "Avatar deleted." msgstr "Аватарът е изтрит." @@ -919,7 +924,7 @@ msgid "Conversation" msgstr "Разговор" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Бележки" @@ -1762,7 +1767,7 @@ msgstr "Поток на %s" msgid "Updates from members of %1$s on %2$s!" msgstr "Бележки от %1$s в %2$s." -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Групи" @@ -3399,7 +3404,7 @@ msgid "Description" msgstr "Описание" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "Статистики" @@ -3558,7 +3563,7 @@ msgid "Members" msgstr "Членове" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" @@ -3719,7 +3724,8 @@ msgid "Unknown language \"%s\"." msgstr "Непознат език \"%s\"." #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +#, fuzzy +msgid "Minimum text limit is 0 (unlimited)." msgstr "Минималното ограничение на текста е 140 знака." #: actions/siteadminpanel.php:171 @@ -3998,8 +4004,7 @@ msgstr "Запазване настройките на сайта" msgid "You are not subscribed to that profile." msgstr "Не сте абонирани за този профил" -#: actions/subedit.php:83 classes/Subscription.php:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 #, fuzzy msgid "Could not save subscription." msgstr "Грешка при създаване на нов абонамент." @@ -4572,39 +4577,39 @@ msgstr "Проблем при записване на бележката." msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 #, fuzzy msgid "You have been banned from subscribing." msgstr "Потребителят е забранил да се абонирате за него." -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 msgid "User has blocked you." msgstr "Потребителят ви е блокирал." -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 #, fuzzy msgid "Not subscribed!" msgstr "Не сте абонирани!" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 #, fuzzy msgid "Couldn't delete self-subscription." msgstr "Грешка при изтриване на абонамента." -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 #, fuzzy msgid "Couldn't delete subscription OMB token." msgstr "Грешка при изтриване на абонамента." -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "Грешка при изтриване на абонамента." -#: classes/User.php:378 +#: classes/User.php:363 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Добре дошли в %1$s, @%2$s!" @@ -4911,22 +4916,22 @@ msgstr "След" msgid "Before" msgstr "Преди" -#: lib/activity.php:453 +#: lib/activity.php:120 +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/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." @@ -5415,19 +5420,19 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "Не е открит файл с настройки. " -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:139 #, fuzzy msgid "Go to the installer." msgstr "Влизане в сайта" @@ -5607,41 +5612,41 @@ msgstr "Етикети в бележките към групата %s" msgid "This page is not available in a media type you accept" msgstr "Страницата не е достъпна във вида медия, който приемате" -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "Форматът на файла с изображението не се поддържа." -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Може да качите лого за групата ви." -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "Частично качване на файла." -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Системна грешка при качване на файл." -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "Файлът не е изображение или е повреден." -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 #, fuzzy msgid "Lost our file." msgstr "Няма такава бележка." -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "Неподдържан вид файл" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "MB" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "kB" @@ -6100,7 +6105,7 @@ msgstr "Етикети в бележките на %s" msgid "Unknown" msgstr "Непознато действие" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Абонаменти" @@ -6108,7 +6113,7 @@ msgstr "Абонаменти" msgid "All subscriptions" msgstr "Всички абонаменти" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Абонати" @@ -6116,16 +6121,21 @@ msgstr "Абонати" msgid "All subscribers" msgstr "Всички абонати" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 #, fuzzy msgid "User ID" msgstr "Потребител" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "Участник от" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "Всички групи" @@ -6303,6 +6313,11 @@ msgstr "Отписване от този потребител" msgid "Unsubscribe" msgstr "Отписване" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "Потребителят няма профил." + #: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Редактиране на аватара" diff --git a/locale/br/LC_MESSAGES/statusnet.po b/locale/br/LC_MESSAGES/statusnet.po index 6e241f553..8316ecc15 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-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:40:14+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:09:18+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: br\n" "X-Message-Group: out-statusnet\n" @@ -750,23 +750,28 @@ msgstr "Enporzhiañ" msgid "Crop" msgstr "Adframmañ" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "N'eo bet resisaet profil ebet" + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "" -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Kollet eo bet roadennoù." -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "Hizivaet eo bet an avatar." -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "Ur gudenn 'zo bet e-pad hizivadenn an avatar." -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 msgid "Avatar deleted." msgstr "Dilammet eo bet an Avatar." @@ -902,7 +907,7 @@ msgid "Conversation" msgstr "Kaozeadenn" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Ali" @@ -1697,7 +1702,7 @@ msgstr "Oberezhioù %s" msgid "Updates from members of %1$s on %2$s!" msgstr "Hizivadenn izili %1$s e %2$s !" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Strolladoù" @@ -3238,7 +3243,7 @@ msgid "Description" msgstr "" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "Stadegoù" @@ -3395,7 +3400,7 @@ msgid "Members" msgstr "Izili" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(hini ebet)" @@ -3555,7 +3560,7 @@ msgid "Unknown language \"%s\"." msgstr "" #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +msgid "Minimum text limit is 0 (unlimited)." msgstr "" #: actions/siteadminpanel.php:171 @@ -3607,9 +3612,8 @@ msgid "Default timezone for the site; usually UTC." msgstr "" #: actions/siteadminpanel.php:262 -#, fuzzy msgid "Default language" -msgstr "Yezh d'ober ganti da gentañ" +msgstr "Yezh dre ziouer" #: actions/siteadminpanel.php:263 msgid "Site language when autodetection from browser settings is not available" @@ -3663,9 +3667,8 @@ msgid "Site-wide notice text (255 chars max; HTML okay)" msgstr "" #: actions/sitenoticeadminpanel.php:198 -#, fuzzy msgid "Save site notice" -msgstr "Dilemel un ali" +msgstr "Enrollañ ali ul lec'hienn" #: actions/smssettings.php:58 msgid "SMS settings" @@ -3822,8 +3825,7 @@ msgstr "Enrollañ an arventennoù moned" msgid "You are not subscribed to that profile." msgstr "" -#: actions/subedit.php:83 classes/Subscription.php:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 msgid "Could not save subscription." msgstr "" @@ -4359,36 +4361,36 @@ msgstr "" msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "" -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 msgid "User has blocked you." msgstr "" -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 msgid "Not subscribed!" msgstr "" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 msgid "Couldn't delete self-subscription." msgstr "" -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 #, fuzzy msgid "Couldn't delete subscription OMB token." msgstr "Diposubl eo dilemel ar postel kadarnadur." -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "" -#: classes/User.php:378 +#: classes/User.php:363 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" @@ -4667,22 +4669,22 @@ msgstr "War-lerc'h" msgid "Before" msgstr "Kent" -#: lib/activity.php:453 +#: lib/activity.php:120 +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/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." @@ -4757,9 +4759,8 @@ msgstr "" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:396 -#, fuzzy msgid "Edit site notice" -msgstr "Eilañ an ali" +msgstr "Kemmañ ali al lec'hienn" #. TRANS: Menu item title/tooltip #: lib/adminpanelaction.php:404 @@ -4818,7 +4819,7 @@ msgstr "Merdeer" #: lib/applicationeditform.php:274 msgid "Desktop" -msgstr "" +msgstr "Burev" #: lib/applicationeditform.php:275 msgid "Type of application, browser or desktop" @@ -4826,11 +4827,11 @@ msgstr "" #: lib/applicationeditform.php:297 msgid "Read-only" -msgstr "" +msgstr "Lenn hepken" #: lib/applicationeditform.php:315 msgid "Read-write" -msgstr "" +msgstr "Lenn-skrivañ" #: lib/applicationeditform.php:316 msgid "Default access for this application: read-only, or read-write" @@ -4842,7 +4843,7 @@ msgstr "" #: lib/attachmentlist.php:87 msgid "Attachments" -msgstr "" +msgstr "Pezhioù stag" #: lib/attachmentlist.php:263 msgid "Author" @@ -4909,7 +4910,7 @@ msgstr "" #: lib/command.php:228 #, php-format msgid "Nudge sent to %s" -msgstr "" +msgstr "Blinkadenn kaset da %s" #: lib/command.php:254 #, php-format @@ -4955,12 +4956,12 @@ msgstr "Anv klok : %s" #: lib/command.php:404 lib/mail.php:258 #, php-format msgid "Location: %s" -msgstr "" +msgstr "Lec'hiadur : %s" #: lib/command.php:407 lib/mail.php:260 #, php-format msgid "Homepage: %s" -msgstr "" +msgstr "Lec'hienn Web : %s" #: lib/command.php:410 #, php-format @@ -5013,7 +5014,7 @@ msgstr "" #: lib/command.php:545 #, php-format msgid "Reply to %s sent" -msgstr "" +msgstr "Respont kaset da %s" #: lib/command.php:547 msgid "Error saving notice." @@ -5150,19 +5151,19 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "" -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:139 msgid "Go to the installer." msgstr "" @@ -5336,40 +5337,40 @@ msgstr "" msgid "This page is not available in a media type you accept" msgstr "" -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "" -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "" -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "" -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "" -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "" -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "" -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "Mo" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "Ko" @@ -5665,7 +5666,7 @@ msgstr "" #: lib/messageform.php:178 lib/noticeform.php:236 msgctxt "Send button for sending notice" msgid "Send" -msgstr "" +msgstr "Kas" #: lib/noticeform.php:160 msgid "Send a notice" @@ -5729,7 +5730,7 @@ msgstr "" #: lib/noticelist.php:604 msgid "Repeated by" -msgstr "" +msgstr "Adkemeret gant" #: lib/noticelist.php:631 msgid "Reply to this notice" @@ -5812,7 +5813,7 @@ msgstr "" msgid "Unknown" msgstr "Dianav" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Koumanantoù" @@ -5820,7 +5821,7 @@ msgstr "Koumanantoù" msgid "All subscriptions" msgstr "" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Ar re koumanantet" @@ -5828,15 +5829,20 @@ msgstr "Ar re koumanantet" msgid "All subscribers" msgstr "An holl re koumanantet" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 msgid "User ID" msgstr "ID an implijer" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "Ezel abaoe" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "An holl strolladoù" @@ -6007,6 +6013,11 @@ msgstr "" msgid "Unsubscribe" msgstr "" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "An implijer-mañ n'eus profil ebet dezhañ." + #: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Kemmañ an Avatar" @@ -6045,16 +6056,14 @@ msgid "User role" msgstr "Strolladoù implijerien" #: lib/userprofile.php:366 -#, fuzzy msgctxt "role" msgid "Administrator" -msgstr "Merourien" +msgstr "Merour" #: lib/userprofile.php:367 -#, fuzzy msgctxt "role" msgid "Moderator" -msgstr "Habaskaat" +msgstr "Habasker" #: lib/util.php:1046 msgid "a few seconds ago" @@ -6103,7 +6112,7 @@ msgstr "bloaz zo well-wazh" #: lib/webcolor.php:82 #, php-format msgid "%s is not a valid color!" -msgstr "" +msgstr "n'eo ket %s ul liv reizh !" #: lib/webcolor.php:123 #, php-format diff --git a/locale/ca/LC_MESSAGES/statusnet.po b/locale/ca/LC_MESSAGES/statusnet.po index 3ed2516c9..aaaa9f557 100644 --- a/locale/ca/LC_MESSAGES/statusnet.po +++ b/locale/ca/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:40:17+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:09:21+0000\n" "Language-Team: Catalan\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ca\n" "X-Message-Group: out-statusnet\n" @@ -784,25 +784,30 @@ msgstr "Puja" msgid "Crop" msgstr "Retalla" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "No s'ha especificat perfil." + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "" "Selecciona un quadrat de l'àrea de la imatge que vols que sigui el teu " "avatar." -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "S'ha perdut el nostre fitxer de dades." -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "Avatar actualitzat." -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "Error en actualitzar avatar." -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 msgid "Avatar deleted." msgstr "S'ha suprimit l'avatar." @@ -939,7 +944,7 @@ msgid "Conversation" msgstr "Conversa" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Avisos" @@ -1781,7 +1786,7 @@ msgstr "%s línia temporal" msgid "Updates from members of %1$s on %2$s!" msgstr "Actualitzacions dels membres de %1$s el %2$s!" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Grups" @@ -3450,7 +3455,7 @@ msgid "Description" msgstr "Descripció" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "Estadístiques" @@ -3609,7 +3614,7 @@ msgid "Members" msgstr "Membres" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Cap)" @@ -3777,7 +3782,7 @@ msgid "Unknown language \"%s\"." msgstr "Llengua desconeguda «%s»" #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +msgid "Minimum text limit is 0 (unlimited)." msgstr "" #: actions/siteadminpanel.php:171 @@ -4059,8 +4064,7 @@ msgstr "Desa els paràmetres del lloc" msgid "You are not subscribed to that profile." msgstr "No estàs subscrit a aquest perfil." -#: actions/subedit.php:83 classes/Subscription.php:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 msgid "Could not save subscription." msgstr "No s'ha pogut guardar la subscripció." @@ -4637,38 +4641,38 @@ msgstr "Problema en guardar l'avís." msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "Se us ha banejat la subscripció." -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "Ja hi esteu subscrit!" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 msgid "User has blocked you." msgstr "Un usuari t'ha bloquejat." -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 #, fuzzy msgid "Not subscribed!" msgstr "No estàs subscrit!" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 #, fuzzy msgid "Couldn't delete self-subscription." msgstr "No s'ha pogut eliminar la subscripció." -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 #, fuzzy msgid "Couldn't delete subscription OMB token." msgstr "No s'ha pogut eliminar la subscripció." -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "No s'ha pogut eliminar la subscripció." -#: classes/User.php:378 +#: classes/User.php:363 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Us donem la benvinguda a %1$s, @%2$s!" @@ -4972,22 +4976,22 @@ msgstr "Posteriors" msgid "Before" msgstr "Anteriors" -#: lib/activity.php:453 +#: lib/activity.php:120 +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/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." @@ -5476,19 +5480,19 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "No s'ha trobat cap fitxer de configuració. " -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "Podeu voler executar l'instal·lador per a corregir-ho." -#: lib/common.php:140 +#: lib/common.php:139 msgid "Go to the installer." msgstr "Vés a l'instal·lador." @@ -5664,40 +5668,40 @@ msgstr "Etiquetes en les notificacions del grup %s" msgid "This page is not available in a media type you accept" msgstr "Aquesta pàgina no està disponible en un tipus de mèdia que acceptis." -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "Format d'imatge no suportat." -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Pots pujar una imatge de logo per al grup." -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "Càrrega parcial." -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Error del sistema en pujar el fitxer." -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "No és una imatge o és un fitxer corrupte." -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Hem perdut el nostre arxiu." -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "Tipus de fitxer desconegut" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "MB" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "kB" @@ -6164,7 +6168,7 @@ msgstr "Etiquetes en les notificacions de %s's" msgid "Unknown" msgstr "Acció desconeguda" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Subscripcions" @@ -6172,7 +6176,7 @@ msgstr "Subscripcions" msgid "All subscriptions" msgstr "Totes les subscripcions" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Subscriptors" @@ -6180,15 +6184,20 @@ msgstr "Subscriptors" msgid "All subscribers" msgstr "Tots els subscriptors" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 msgid "User ID" msgstr "ID de l'usuari" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "Membre des de" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "Tots els grups" @@ -6364,6 +6373,11 @@ msgstr "Deixar d'estar subscrit des d'aquest usuari" msgid "Unsubscribe" msgstr "Cancel·lar subscripció" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "L'usuari no té perfil." + #: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Edita l'avatar" diff --git a/locale/cs/LC_MESSAGES/statusnet.po b/locale/cs/LC_MESSAGES/statusnet.po index 4790caf6c..d9669c2d6 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-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:40:20+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:09:24+0000\n" "Language-Team: Czech\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: cs\n" "X-Message-Group: out-statusnet\n" @@ -782,23 +782,28 @@ msgstr "Upload" msgid "Crop" msgstr "" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "Částečné náhrání." + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "" -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "Obrázek nahrán" -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "Nahrávání obrázku selhalo." -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 msgid "Avatar deleted." msgstr "Avatar smazán." @@ -941,7 +946,7 @@ msgid "Conversation" msgstr "Umístění" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Sdělení" @@ -1788,7 +1793,7 @@ msgstr "" msgid "Updates from members of %1$s on %2$s!" msgstr "Mikroblog od %s" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Skupiny" @@ -3403,7 +3408,7 @@ msgid "Description" msgstr "Odběry" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "Statistiky" @@ -3562,7 +3567,7 @@ msgid "Members" msgstr "Členem od" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" @@ -3725,7 +3730,7 @@ msgid "Unknown language \"%s\"." msgstr "" #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +msgid "Minimum text limit is 0 (unlimited)." msgstr "" #: actions/siteadminpanel.php:171 @@ -4000,8 +4005,7 @@ msgstr "Nastavení" msgid "You are not subscribed to that profile." msgstr "Neodeslal jste nám profil" -#: actions/subedit.php:83 classes/Subscription.php:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 #, fuzzy msgid "Could not save subscription." msgstr "Nelze vytvořit odebírat" @@ -4576,39 +4580,39 @@ msgstr "Problém při ukládání sdělení" msgid "RT @%1$s %2$s" msgstr "" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "" -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 #, fuzzy msgid "User has blocked you." msgstr "Uživatel nemá profil." -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 #, fuzzy msgid "Not subscribed!" msgstr "Nepřihlášen!" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 #, fuzzy msgid "Couldn't delete self-subscription." msgstr "Nelze smazat odebírání" -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 #, fuzzy msgid "Couldn't delete subscription OMB token." msgstr "Nelze smazat odebírání" -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "Nelze smazat odebírání" -#: classes/User.php:378 +#: classes/User.php:363 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" @@ -4916,22 +4920,22 @@ msgstr "« Novější" msgid "Before" msgstr "Starší »" -#: lib/activity.php:453 +#: lib/activity.php:120 +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/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." @@ -5426,20 +5430,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:135 #, fuzzy msgid "No configuration file found. " msgstr "Žádný potvrzující kód." -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:139 msgid "Go to the installer." msgstr "" @@ -5621,41 +5625,41 @@ msgstr "" msgid "This page is not available in a media type you accept" msgstr "Tato stránka není k dispozici v typu média která přijímáte." -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "Nepodporovaný formát obrázku." -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Je to příliš dlouhé. Maximální sdělení délka je 140 znaků" -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "Částečné náhrání." -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Chyba systému při nahrávání souboru" -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "Není obrázkem, nebo jde o poškozený soubor." -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 #, fuzzy msgid "Lost our file." msgstr "Žádné takové oznámení." -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "" @@ -6119,7 +6123,7 @@ msgstr "" msgid "Unknown" msgstr "" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Odběry" @@ -6127,7 +6131,7 @@ msgstr "Odběry" msgid "All subscriptions" msgstr "Všechny odběry" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Odběratelé" @@ -6135,15 +6139,20 @@ msgstr "Odběratelé" msgid "All subscribers" msgstr "Všichni odběratelé" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 msgid "User ID" msgstr "" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "Členem od" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "" @@ -6325,6 +6334,11 @@ msgstr "" msgid "Unsubscribe" msgstr "Odhlásit" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "Uživatel nemá profil." + #: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Upravit avatar" diff --git a/locale/de/LC_MESSAGES/statusnet.po b/locale/de/LC_MESSAGES/statusnet.po index 014c75565..60835cf96 100644 --- a/locale/de/LC_MESSAGES/statusnet.po +++ b/locale/de/LC_MESSAGES/statusnet.po @@ -15,12 +15,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:40:23+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:09:27+0000\n" "Language-Team: German\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: out-statusnet\n" @@ -781,24 +781,29 @@ msgstr "Hochladen" msgid "Crop" msgstr "Zuschneiden" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "Kein Profil angegeben." + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "" "Wähle eine quadratische Fläche aus dem Bild, um dein Avatar zu speichern" -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Daten verloren." -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "Avatar aktualisiert." -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "Aktualisierung des Avatars fehlgeschlagen." -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 msgid "Avatar deleted." msgstr "Avatar gelöscht." @@ -936,7 +941,7 @@ msgid "Conversation" msgstr "Unterhaltung" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Nachrichten" @@ -1763,7 +1768,7 @@ msgstr "%s Zeitleiste" msgid "Updates from members of %1$s on %2$s!" msgstr "Aktualisierungen von %1$s auf %2$s!" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Gruppen" @@ -3439,7 +3444,7 @@ msgid "Description" msgstr "Beschreibung" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "Statistiken" @@ -3601,7 +3606,7 @@ msgid "Members" msgstr "Mitglieder" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Kein)" @@ -3773,7 +3778,8 @@ msgid "Unknown language \"%s\"." msgstr "Unbekannte Sprache „%s“" #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +#, fuzzy +msgid "Minimum text limit is 0 (unlimited)." msgstr "Minimale Textlänge ist 140 Zeichen." #: actions/siteadminpanel.php:171 @@ -4050,8 +4056,7 @@ msgstr "Site-Einstellungen speichern" msgid "You are not subscribed to that profile." msgstr "Du hast dieses Profil nicht abonniert." -#: actions/subedit.php:83 classes/Subscription.php:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 msgid "Could not save subscription." msgstr "Konnte Abonnement nicht erstellen." @@ -4628,36 +4633,36 @@ msgstr "Problem bei Speichern der Nachricht." msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "Dieser Benutzer erlaubt dir nicht ihn zu abonnieren." -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "Bereits abonniert!" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 msgid "User has blocked you." msgstr "Dieser Benutzer hat dich blockiert." -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 #, fuzzy msgid "Not subscribed!" msgstr "Nicht abonniert!" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 msgid "Couldn't delete self-subscription." msgstr "Konnte Abonnement nicht löschen." -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 msgid "Couldn't delete subscription OMB token." msgstr "Konnte OMB-Abonnement nicht löschen." -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "Konnte Abonnement nicht löschen." -#: classes/User.php:378 +#: classes/User.php:363 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Herzlich willkommen bei %1$s, @%2$s!" @@ -4945,22 +4950,22 @@ msgstr "Später" msgid "Before" msgstr "Vorher" -#: lib/activity.php:453 +#: lib/activity.php:120 +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 "Fremdinhalt kann noch nicht eingebunden werden." -#: lib/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "Kann eingebundenen XML Inhalt nicht verarbeiten." -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "Eingebundener Base64 Inhalt kann noch nicht verarbeitet werden." -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." @@ -5470,19 +5475,19 @@ msgstr "" "tracks - not yet implemented.\n" "tracking - not yet implemented.\n" -#: lib/common.php:136 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "Keine Konfigurationsdatei gefunden." -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "Ich habe an folgenden Stellen nach Konfigurationsdateien gesucht: " -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "Bitte die Installation erneut starten um das Problem zu beheben." -#: lib/common.php:140 +#: lib/common.php:139 msgid "Go to the installer." msgstr "Zur Installation gehen." @@ -5661,40 +5666,40 @@ msgstr "Stichworte in den Nachrichten der Gruppe %s" msgid "This page is not available in a media type you accept" msgstr "Dies Seite liegt in keinem von dir akzeptierten Mediatype vor." -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "Bildformat wird nicht unterstützt." -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Du kannst ein Logo für Deine Gruppe hochladen." -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "Unvollständiges Hochladen." -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Systemfehler beim hochladen der Datei." -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "Kein Bild oder defekte Datei." -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Daten verloren." -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "Unbekannter Dateityp" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "MB" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "kB" @@ -6216,7 +6221,7 @@ msgstr "Stichworte in %ss Nachrichten" msgid "Unknown" msgstr "Unbekannter Befehl" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Abonnements" @@ -6224,7 +6229,7 @@ msgstr "Abonnements" msgid "All subscriptions" msgstr "Alle Abonnements" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Abonnenten" @@ -6232,15 +6237,20 @@ msgstr "Abonnenten" msgid "All subscribers" msgstr "Alle Abonnenten" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 msgid "User ID" msgstr "Nutzer ID" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "Mitglied seit" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "Alle Gruppen" @@ -6412,6 +6422,11 @@ msgstr "Lösche dein Abonnement von diesem Benutzer" msgid "Unsubscribe" msgstr "Abbestellen" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "Benutzer hat kein Profil." + #: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Avatar bearbeiten" @@ -6422,7 +6437,7 @@ msgstr "Benutzeraktionen" #: lib/userprofile.php:237 msgid "User deletion in progress..." -msgstr "" +msgstr "Löschung des Nutzers in Arbeit..." #: lib/userprofile.php:263 msgid "Edit profile settings" diff --git a/locale/el/LC_MESSAGES/statusnet.po b/locale/el/LC_MESSAGES/statusnet.po index d2552a088..b001bc7af 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-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:40:26+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:09:30+0000\n" "Language-Team: Greek\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: el\n" "X-Message-Group: out-statusnet\n" @@ -767,23 +767,27 @@ msgstr "" msgid "Crop" msgstr "" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +msgid "No file uploaded." +msgstr "" + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "" -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "" -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "" -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 #, fuzzy msgid "Avatar deleted." msgstr "Ρυθμίσεις OpenID" @@ -923,7 +927,7 @@ msgid "Conversation" msgstr "Συζήτηση" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "" @@ -1759,7 +1763,7 @@ msgstr "χρονοδιάγραμμα του χρήστη %s" msgid "Updates from members of %1$s on %2$s!" msgstr "" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "" @@ -3358,7 +3362,7 @@ msgid "Description" msgstr "Περιγραφή" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "" @@ -3517,7 +3521,7 @@ msgid "Members" msgstr "Μέλη" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" @@ -3678,7 +3682,7 @@ msgid "Unknown language \"%s\"." msgstr "" #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +msgid "Minimum text limit is 0 (unlimited)." msgstr "" #: actions/siteadminpanel.php:171 @@ -3951,8 +3955,7 @@ msgstr "Ρυθμίσεις OpenID" msgid "You are not subscribed to that profile." msgstr "" -#: actions/subedit.php:83 classes/Subscription.php:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 #, fuzzy msgid "Could not save subscription." msgstr "Αδύνατη η αποθήκευση των νέων πληροφοριών του προφίλ" @@ -4502,38 +4505,38 @@ msgstr "" msgid "RT @%1$s %2$s" msgstr "" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "" -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 msgid "User has blocked you." msgstr "" -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 #, fuzzy msgid "Not subscribed!" msgstr "Απέτυχε η συνδρομή." -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 #, fuzzy msgid "Couldn't delete self-subscription." msgstr "Απέτυχε η διαγραφή συνδρομής." -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 #, fuzzy msgid "Couldn't delete subscription OMB token." msgstr "Απέτυχε η διαγραφή συνδρομής." -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "Απέτυχε η διαγραφή συνδρομής." -#: classes/User.php:378 +#: classes/User.php:363 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" @@ -4830,22 +4833,22 @@ msgstr "" msgid "Before" msgstr "" -#: lib/activity.php:453 +#: lib/activity.php:120 +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/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." @@ -5326,20 +5329,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:135 #, fuzzy msgid "No configuration file found. " msgstr "Ο κωδικός επιβεβαίωσης δεν βρέθηκε." -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:139 msgid "Go to the installer." msgstr "" @@ -5515,41 +5518,41 @@ msgstr "" msgid "This page is not available in a media type you accept" msgstr "" -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "" -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "" -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "" -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "" -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "" -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 #, fuzzy msgid "Lost our file." msgstr "Αδύνατη η αποθήκευση του προφίλ." -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "" @@ -5999,7 +6002,7 @@ msgstr "" msgid "Unknown" msgstr "" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "" @@ -6007,7 +6010,7 @@ msgstr "" msgid "All subscriptions" msgstr "Όλες οι συνδρομές" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "" @@ -6015,15 +6018,20 @@ msgstr "" msgid "All subscribers" msgstr "" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 msgid "User ID" msgstr "" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "Μέλος από" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "" @@ -6200,6 +6208,11 @@ msgstr "" 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 "" diff --git a/locale/en_GB/LC_MESSAGES/statusnet.po b/locale/en_GB/LC_MESSAGES/statusnet.po index 361270cbb..d1f9ea3f3 100644 --- a/locale/en_GB/LC_MESSAGES/statusnet.po +++ b/locale/en_GB/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:40:29+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:09:33+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 (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: en-gb\n" "X-Message-Group: out-statusnet\n" @@ -768,23 +768,28 @@ msgstr "Upload" msgid "Crop" msgstr "Crop" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "No profile specified." + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "Pick a square area of the image to be your avatar" -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Lost our file data." -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "Avatar updated." -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "Failed updating avatar." -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 msgid "Avatar deleted." msgstr "Avatar deleted." @@ -922,7 +927,7 @@ msgid "Conversation" msgstr "Conversation" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Notices" @@ -1744,7 +1749,7 @@ msgstr "%s timeline" msgid "Updates from members of %1$s on %2$s!" msgstr "Updates from members of %1$s on %2$s!" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Groups" @@ -3372,7 +3377,7 @@ msgid "Description" msgstr "Description" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "Statistics" @@ -3536,7 +3541,7 @@ msgid "Members" msgstr "Members" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(None)" @@ -3710,7 +3715,8 @@ msgid "Unknown language \"%s\"." msgstr "" #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +#, fuzzy +msgid "Minimum text limit is 0 (unlimited)." msgstr "Minimum text limit is 140 characters." #: actions/siteadminpanel.php:171 @@ -3986,8 +3992,7 @@ msgstr "Save site settings" msgid "You are not subscribed to that profile." msgstr "You are not subscribed to that profile." -#: actions/subedit.php:83 classes/Subscription.php:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 msgid "Could not save subscription." msgstr "Could not save subscription." @@ -4552,37 +4557,37 @@ msgstr "Problem saving group inbox." msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "You have been banned from subscribing." -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 msgid "User has blocked you." msgstr "User has blocked you." -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 #, fuzzy msgid "Not subscribed!" msgstr "Not subscribed!" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 msgid "Couldn't delete self-subscription." msgstr "Couldn't delete self-subscription." -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 #, fuzzy msgid "Couldn't delete subscription OMB token." msgstr "Couldn't delete subscription." -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "Couldn't delete subscription." -#: classes/User.php:378 +#: classes/User.php:363 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Welcome to %1$s, @%2$s!" @@ -4883,22 +4888,22 @@ msgstr "After" msgid "Before" msgstr "Before" -#: lib/activity.php:453 +#: lib/activity.php:120 +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/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." @@ -5367,19 +5372,19 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "No configuration file found" -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:139 msgid "Go to the installer." msgstr "Go to the installer." @@ -5555,40 +5560,40 @@ msgstr "Tags in %s group's notices" msgid "This page is not available in a media type you accept" msgstr "This page is not available in a media type you accept" -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "Unsupported image file format." -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "That file is too big. The maximum file size is %s." -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "Partial upload." -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "System error uploading file." -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "Not an image or corrupt file." -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Lost our file." -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "Unknown file type" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "" @@ -6049,7 +6054,7 @@ msgstr "Tags in %s's notices" msgid "Unknown" msgstr "Unknown" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Subscriptions" @@ -6057,7 +6062,7 @@ msgstr "Subscriptions" msgid "All subscriptions" msgstr "All subscriptions" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Subscribers" @@ -6065,15 +6070,20 @@ msgstr "Subscribers" msgid "All subscribers" msgstr "All subscribers" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 msgid "User ID" msgstr "User ID" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "Member since" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "All groups" @@ -6244,6 +6254,11 @@ msgstr "Unsubscribe from this user" msgid "Unsubscribe" msgstr "Unsubscribe" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "User has no profile." + #: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Edit Avatar" diff --git a/locale/es/LC_MESSAGES/statusnet.po b/locale/es/LC_MESSAGES/statusnet.po index 9b21560f9..e3d3ac2e6 100644 --- a/locale/es/LC_MESSAGES/statusnet.po +++ b/locale/es/LC_MESSAGES/statusnet.po @@ -13,12 +13,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:40:32+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:09:37+0000\n" "Language-Team: Spanish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: es\n" "X-Message-Group: out-statusnet\n" @@ -775,23 +775,28 @@ msgstr "Cargar" msgid "Crop" msgstr "Cortar" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "No se especificó perfil." + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "Elige un área cuadrada de la imagen para que sea tu avatar" -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Se perdió nuestros datos de archivo." -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "Avatar actualizado" -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "Error al actualizar avatar." -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 msgid "Avatar deleted." msgstr "Avatar borrado." @@ -930,7 +935,7 @@ msgid "Conversation" msgstr "Conversación" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Avisos" @@ -1757,7 +1762,7 @@ msgstr "línea temporal de %s" msgid "Updates from members of %1$s on %2$s!" msgstr "¡Actualizaciones de miembros de %1$s en %2$s!" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Grupos" @@ -3413,7 +3418,7 @@ msgid "Description" msgstr "Descripción" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "Estadísticas" @@ -3571,7 +3576,7 @@ msgid "Members" msgstr "Miembros" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Ninguno)" @@ -3739,7 +3744,7 @@ msgid "Unknown language \"%s\"." msgstr "Idioma desconocido \"%s\"." #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +msgid "Minimum text limit is 0 (unlimited)." msgstr "" #: actions/siteadminpanel.php:171 @@ -4018,8 +4023,7 @@ msgstr "Guardar la configuración del sitio" msgid "You are not subscribed to that profile." msgstr "No te has suscrito a ese perfil." -#: actions/subedit.php:83 classes/Subscription.php:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 msgid "Could not save subscription." msgstr "No se ha podido guardar la suscripción." @@ -4588,38 +4592,38 @@ msgstr "Hubo un problema al guardar el aviso." msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "Se te ha prohibido la suscripción." -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 msgid "User has blocked you." msgstr "El usuario te ha bloqueado." -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 #, fuzzy msgid "Not subscribed!" msgstr "¡No estás suscrito!" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 #, fuzzy msgid "Couldn't delete self-subscription." msgstr "No se pudo eliminar la suscripción." -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 #, fuzzy msgid "Couldn't delete subscription OMB token." msgstr "No se pudo eliminar la suscripción." -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "No se pudo eliminar la suscripción." -#: classes/User.php:378 +#: classes/User.php:363 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Bienvenido a %1$s, @%2$s!" @@ -4925,22 +4929,22 @@ msgstr "Después" msgid "Before" msgstr "Antes" -#: lib/activity.php:453 +#: lib/activity.php:120 +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/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." @@ -5423,19 +5427,19 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "Ningún archivo de configuración encontrado. " -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:139 msgid "Go to the installer." msgstr "Ir al instalador." @@ -5615,40 +5619,40 @@ msgstr "Tags en avisos del grupo %s" msgid "This page is not available in a media type you accept" msgstr "Esta página no está disponible en el tipo de medio que aceptas." -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "Formato de imagen no soportado." -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Puedes cargar una imagen de logo para tu grupo." -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "Carga parcial." -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Error del sistema al cargar el archivo." -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "No es una imagen o es un fichero corrupto." -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Se perdió nuestro archivo." -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "Tipo de archivo desconocido" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "MB" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "kB" @@ -6116,7 +6120,7 @@ msgstr "Tags en avisos de %s" msgid "Unknown" msgstr "Acción desconocida" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Suscripciones" @@ -6124,7 +6128,7 @@ msgstr "Suscripciones" msgid "All subscriptions" msgstr "Todas las suscripciones" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Suscriptores" @@ -6133,15 +6137,20 @@ msgstr "Suscriptores" msgid "All subscribers" msgstr "Todos los suscriptores" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 msgid "User ID" msgstr "ID de usuario" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "Miembro desde" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "Todos los grupos" @@ -6322,6 +6331,11 @@ msgstr "Desuscribirse de este usuario" msgid "Unsubscribe" msgstr "Cancelar suscripción" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "El usuario no tiene un perfil." + #: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "editar avatar" diff --git a/locale/fa/LC_MESSAGES/statusnet.po b/locale/fa/LC_MESSAGES/statusnet.po index 7d948015a..23fa734de 100644 --- a/locale/fa/LC_MESSAGES/statusnet.po +++ b/locale/fa/LC_MESSAGES/statusnet.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:40:38+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:09:43+0000\n" "Last-Translator: Ahmad Sufi Mahmudi\n" "Language-Team: Persian\n" "MIME-Version: 1.0\n" @@ -20,7 +20,7 @@ msgstr "" "X-Language-Code: fa\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: MediaWiki 1.17alpha (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" #. TRANS: Page title @@ -770,23 +770,28 @@ msgstr "پایین‌گذاری" msgid "Crop" msgstr "برش" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "کاربری مشخص نشده است." + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "یک مربع از عکس خود را انتخاب کنید تا چهره‌ی شما باشد." -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "فایل اطلاعات خود را گم کرده ایم." -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "چهره به روز رسانی شد." -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "به روز رسانی چهره موفقیت آمیر نبود." -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 msgid "Avatar deleted." msgstr "چهره پاک شد." @@ -926,7 +931,7 @@ msgid "Conversation" msgstr "مکالمه" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "پیام‌ها" @@ -1759,7 +1764,7 @@ msgstr "خط زمانی %s" msgid "Updates from members of %1$s on %2$s!" msgstr "به روز رسانی کابران %1$s در %2$s" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "گروه‌ها" @@ -3359,7 +3364,7 @@ msgid "Description" msgstr "" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "آمار" @@ -3518,7 +3523,7 @@ msgid "Members" msgstr "اعضا" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "هیچ" @@ -3683,7 +3688,7 @@ msgid "Unknown language \"%s\"." msgstr "" #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +msgid "Minimum text limit is 0 (unlimited)." msgstr "" #: actions/siteadminpanel.php:171 @@ -3958,8 +3963,7 @@ msgstr "تنظیمات چهره" msgid "You are not subscribed to that profile." msgstr "شما به این پروفيل متعهد نشدید" -#: actions/subedit.php:83 classes/Subscription.php:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 msgid "Could not save subscription." msgstr "" @@ -4507,36 +4511,36 @@ msgstr "مشکل در ذخیره کردن آگهی." msgid "RT @%1$s %2$s" msgstr "" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "" -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "قبلا تایید شده !" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 msgid "User has blocked you." msgstr "" -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 msgid "Not subscribed!" msgstr "تایید نشده!" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 msgid "Couldn't delete self-subscription." msgstr "" -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 #, fuzzy msgid "Couldn't delete subscription OMB token." msgstr "نمی‌توان تصدیق پست الکترونیک را پاک کرد." -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "" -#: classes/User.php:378 +#: classes/User.php:363 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "خوش امدید به %1$s , @%2$s!" @@ -4833,22 +4837,22 @@ msgstr "بعد از" msgid "Before" msgstr "قبل از" -#: lib/activity.php:453 +#: lib/activity.php:120 +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/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." @@ -5329,19 +5333,19 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "" -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "شما ممکن است بخواهید نصاب را اجرا کنید تا این را تعمیر کند." -#: lib/common.php:140 +#: lib/common.php:139 msgid "Go to the installer." msgstr "برو به نصاب." @@ -5516,41 +5520,41 @@ msgstr "" msgid "This page is not available in a media type you accept" msgstr "" -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "فرمت(فایل) عکس پشتیبانی نشده." -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "" "است . این فایل بسیار یزرگ است %s بیشترین مقدار قابل قبول برای اندازه ی فایل." -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "" -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "خطای سیستم ارسال فایل." -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "تصویر یا فایل خرابی نیست" -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "فایلمان گم شده" -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "نوع فایل پشتیبانی نشده" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "مگابایت" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "کیلوبایت" @@ -6004,7 +6008,7 @@ msgstr "" msgid "Unknown" msgstr "" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "اشتراک‌ها" @@ -6012,7 +6016,7 @@ msgstr "اشتراک‌ها" msgid "All subscriptions" msgstr "تمام اشتراک‌ها" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "مشترک‌ها" @@ -6020,15 +6024,20 @@ msgstr "مشترک‌ها" msgid "All subscribers" msgstr "تمام مشترک‌ها" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 msgid "User ID" msgstr "شناسه کاربر" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "عضو شده از" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "تمام گروه‌ها" @@ -6200,6 +6209,11 @@ msgstr "" msgid "Unsubscribe" msgstr "" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "کاربر هیچ شناس‌نامه‌ای ندارد." + #: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "ویرایش اواتور" diff --git a/locale/fi/LC_MESSAGES/statusnet.po b/locale/fi/LC_MESSAGES/statusnet.po index 7892ef932..035d69816 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-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:40:35+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:09:40+0000\n" "Language-Team: Finnish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fi\n" "X-Message-Group: out-statusnet\n" @@ -787,23 +787,28 @@ msgstr "Lataa" msgid "Crop" msgstr "Rajaa" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "Profiilia ei ole määritelty." + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "Valitse neliön muotoinen alue kuvasta profiilikuvaksi" -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Tiedoston data hävisi." -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "Kuva päivitetty." -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "Profiilikuvan päivittäminen epäonnistui." -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 msgid "Avatar deleted." msgstr "Kuva poistettu." @@ -941,7 +946,7 @@ msgid "Conversation" msgstr "Keskustelu" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Päivitykset" @@ -1791,7 +1796,7 @@ msgstr "%s aikajana" msgid "Updates from members of %1$s on %2$s!" msgstr "Ryhmän %1$s käyttäjien päivitykset palvelussa %2$s!" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Ryhmät" @@ -3485,7 +3490,7 @@ msgid "Description" msgstr "Kuvaus" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "Tilastot" @@ -3643,7 +3648,7 @@ msgid "Members" msgstr "Jäsenet" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Tyhjä)" @@ -3814,7 +3819,7 @@ msgid "Unknown language \"%s\"." msgstr "" #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +msgid "Minimum text limit is 0 (unlimited)." msgstr "" #: actions/siteadminpanel.php:171 @@ -4096,8 +4101,7 @@ 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:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 msgid "Could not save subscription." msgstr "Tilausta ei onnistuttu tallentamaan." @@ -4678,39 +4682,39 @@ msgstr "Ongelma päivityksen tallentamisessa." msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 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:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 msgid "User has blocked you." msgstr "Käyttäjä on asettanut eston sinulle." -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 #, fuzzy msgid "Not subscribed!" msgstr "Ei ole tilattu!." -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 #, fuzzy msgid "Couldn't delete self-subscription." msgstr "Ei voitu poistaa tilausta." -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 #, fuzzy msgid "Couldn't delete subscription OMB token." msgstr "Ei voitu poistaa tilausta." -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "Ei voitu poistaa tilausta." -#: classes/User.php:378 +#: classes/User.php:363 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Viesti käyttäjälle %1$s, %2$s" @@ -5016,22 +5020,22 @@ msgstr "Myöhemmin" msgid "Before" msgstr "Aiemmin" -#: lib/activity.php:453 +#: lib/activity.php:120 +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/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 #, fuzzy @@ -5527,20 +5531,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:135 #, fuzzy msgid "No configuration file found. " msgstr "Varmistuskoodia ei ole annettu." -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:139 #, fuzzy msgid "Go to the installer." msgstr "Kirjaudu sisään palveluun" @@ -5723,40 +5727,40 @@ msgstr "Tagit ryhmän %s päivityksissä" msgid "This page is not available in a media type you accept" msgstr "Tämä sivu ei ole saatavilla sinulle sopivassa mediatyypissä." -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "Kuvatiedoston formaattia ei ole tuettu." -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Voit ladata ryhmälle logon." -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "Osittain ladattu palvelimelle." -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Tiedoston lähetyksessä tapahtui järjestelmävirhe." -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "Tuo ei ole kelvollinen kuva tai tiedosto on rikkoutunut." -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Tiedosto hävisi." -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "Tunnistamaton tiedoston tyyppi" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "" @@ -6230,7 +6234,7 @@ msgstr "Tagit käyttäjän %s päivityksissä" msgid "Unknown" msgstr "Tuntematon toiminto" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Tilaukset" @@ -6238,7 +6242,7 @@ msgstr "Tilaukset" msgid "All subscriptions" msgstr "Kaikki tilaukset" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Tilaajat" @@ -6246,16 +6250,21 @@ msgstr "Tilaajat" msgid "All subscribers" msgstr "Kaikki tilaajat" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 #, fuzzy msgid "User ID" msgstr "Käyttäjä" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "Käyttäjänä alkaen" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "Kaikki ryhmät" @@ -6437,6 +6446,11 @@ msgstr "Peruuta tämän käyttäjän tilaus" msgid "Unsubscribe" msgstr "Peruuta tilaus" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "Käyttäjällä ei ole profiilia." + #: lib/userprofile.php:117 #, fuzzy msgid "Edit Avatar" diff --git a/locale/fr/LC_MESSAGES/statusnet.po b/locale/fr/LC_MESSAGES/statusnet.po index 70155e450..76d83ea6c 100644 --- a/locale/fr/LC_MESSAGES/statusnet.po +++ b/locale/fr/LC_MESSAGES/statusnet.po @@ -14,12 +14,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:40:41+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:09:47+0000\n" "Language-Team: French\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: out-statusnet\n" @@ -785,23 +785,28 @@ msgstr "Transfert" msgid "Crop" msgstr "Recadrer" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "Aucun profil n’a été spécifié." + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "Sélectionnez une zone de forme carrée pour définir votre avatar" -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Données perdues." -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "Avatar mis à jour." -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "La mise à jour de l’avatar a échoué." -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 msgid "Avatar deleted." msgstr "Avatar supprimé." @@ -939,7 +944,7 @@ msgid "Conversation" msgstr "Conversation" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Avis" @@ -1763,7 +1768,7 @@ msgstr "Activité de %s" msgid "Updates from members of %1$s on %2$s!" msgstr "Mises à jour des membres de %1$s dans %2$s !" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Groupes" @@ -3449,7 +3454,7 @@ msgid "Description" msgstr "Description" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "Statistiques" @@ -3616,7 +3621,7 @@ msgid "Members" msgstr "Membres" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(aucun)" @@ -3800,7 +3805,8 @@ msgid "Unknown language \"%s\"." msgstr "Langue « %s » inconnue." #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +#, fuzzy +msgid "Minimum text limit is 0 (unlimited)." msgstr "La limite minimale de texte est de 140 caractères." #: actions/siteadminpanel.php:171 @@ -4077,8 +4083,7 @@ 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:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 msgid "Could not save subscription." msgstr "Impossible d’enregistrer l’abonnement." @@ -4667,35 +4672,35 @@ msgstr "Problème lors de l’enregistrement de la boîte de réception du group msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "Il vous avez été interdit de vous abonner." -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "Déjà abonné !" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 msgid "User has blocked you." msgstr "Cet utilisateur vous a bloqué." -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 msgid "Not subscribed!" msgstr "Pas abonné !" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 msgid "Couldn't delete self-subscription." msgstr "Impossible de supprimer l’abonnement à soi-même." -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 msgid "Couldn't delete subscription OMB token." msgstr "Impossible de supprimer le jeton OMB de l'abonnement ." -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "Impossible de cesser l’abonnement" -#: classes/User.php:378 +#: classes/User.php:363 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Bienvenue à %1$s, @%2$s !" @@ -4983,22 +4988,22 @@ msgstr "Après" msgid "Before" msgstr "Avant" -#: lib/activity.php:453 +#: lib/activity.php:120 +msgid "Expecting a root feed element but got a whole XML document." +msgstr "Attendait un élément racine mais a reçu tout un document XML." + +#: lib/activityutils.php:208 msgid "Can't handle remote content yet." msgstr "Impossible de gérer le contenu distant pour le moment." -#: lib/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "Impossible de gérer le contenu XML embarqué pour le moment." -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "Impossible de gérer le contenu en Base64 embarqué pour le moment." -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." @@ -5518,20 +5523,20 @@ msgstr "" "tracks - pas encore implémenté.\n" "tracking - pas encore implémenté.\n" -#: lib/common.php:136 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "Aucun fichier de configuration n’a été trouvé. " -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" "J’ai cherché des fichiers de configuration dans les emplacements suivants : " -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "Vous pouvez essayer de lancer l’installeur pour régler ce problème." -#: lib/common.php:140 +#: lib/common.php:139 msgid "Go to the installer." msgstr "Aller au programme d’installation" @@ -5712,40 +5717,40 @@ msgid "This page is not available in a media type you accept" msgstr "" "Cette page n’est pas disponible dans un des formats que vous avez autorisés." -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "Format de fichier d’image non supporté." -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Ce fichier est trop grand. La taille maximale est %s." -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "Transfert partiel." -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Erreur système lors du transfert du fichier." -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "Ceci n’est pas une image, ou c’est un fichier corrompu." -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Fichier perdu." -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "Type de fichier inconnu" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "Mo" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "Ko" @@ -6280,7 +6285,7 @@ msgstr "Marques dans les avis de %s" msgid "Unknown" msgstr "Inconnu" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Abonnements" @@ -6288,7 +6293,7 @@ msgstr "Abonnements" msgid "All subscriptions" msgstr "Tous les abonnements" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Abonnés" @@ -6296,15 +6301,20 @@ msgstr "Abonnés" msgid "All subscribers" msgstr "Tous les abonnés" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 msgid "User ID" msgstr "ID de l’utilisateur" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "Membre depuis" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "Tous les groupes" @@ -6475,6 +6485,11 @@ msgstr "Ne plus suivre cet utilisateur" msgid "Unsubscribe" msgstr "Désabonnement" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "Aucun profil ne correspond à cet utilisateur." + #: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Modifier l’avatar" @@ -6485,7 +6500,7 @@ msgstr "Actions de l’utilisateur" #: lib/userprofile.php:237 msgid "User deletion in progress..." -msgstr "" +msgstr "Suppression de l'utilisateur en cours..." #: lib/userprofile.php:263 msgid "Edit profile settings" diff --git a/locale/ga/LC_MESSAGES/statusnet.po b/locale/ga/LC_MESSAGES/statusnet.po index 9d7775580..6e5d0d232 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-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:40:44+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:09:50+0000\n" "Language-Team: Irish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ga\n" "X-Message-Group: out-statusnet\n" @@ -788,23 +788,28 @@ msgstr "Subir" msgid "Crop" msgstr "" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "Non se especificou ningún perfil." + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "" -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "Avatar actualizado." -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "Acounteceu un fallo ó actualizar o avatar." -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 #, fuzzy msgid "Avatar deleted." msgstr "Avatar actualizado." @@ -952,7 +957,7 @@ msgid "Conversation" msgstr "Código de confirmación." #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Chíos" @@ -1825,7 +1830,7 @@ msgstr "Liña de tempo de %s" msgid "Updates from members of %1$s on %2$s!" msgstr "Actualizacións dende %1$s en %2$s!" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "" @@ -3521,7 +3526,7 @@ msgid "Description" msgstr "Subscricións" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "Estatísticas" @@ -3683,7 +3688,7 @@ msgid "Members" msgstr "Membro dende" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 #, fuzzy msgid "(None)" @@ -3864,7 +3869,7 @@ msgid "Unknown language \"%s\"." msgstr "" #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +msgid "Minimum text limit is 0 (unlimited)." msgstr "" #: actions/siteadminpanel.php:171 @@ -4147,8 +4152,7 @@ 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:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 msgid "Could not save subscription." msgstr "Non se pode gardar a subscrición." @@ -4734,39 +4738,39 @@ msgstr "Aconteceu un erro ó gardar o chío." msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 #, fuzzy msgid "You have been banned from subscribing." msgstr "Este usuario non che permite suscribirte a el." -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 msgid "User has blocked you." msgstr "O usuario bloqueoute." -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 #, fuzzy msgid "Not subscribed!" msgstr "Non está suscrito!" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 #, fuzzy msgid "Couldn't delete self-subscription." msgstr "Non se pode eliminar a subscrición." -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 #, fuzzy msgid "Couldn't delete subscription OMB token." msgstr "Non se pode eliminar a subscrición." -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "Non se pode eliminar a subscrición." -#: classes/User.php:378 +#: classes/User.php:363 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Mensaxe de %1$s en %2$s" @@ -5077,22 +5081,22 @@ msgstr "« Despois" msgid "Before" msgstr "Antes »" -#: lib/activity.php:453 +#: lib/activity.php:120 +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/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 #, fuzzy @@ -5628,20 +5632,20 @@ msgstr "" "tracks - non implementado por agora.\n" "tracking - non implementado por agora.\n" -#: lib/common.php:136 +#: lib/common.php:135 #, fuzzy msgid "No configuration file found. " msgstr "Sen código de confirmación." -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:139 msgid "Go to the installer." msgstr "" @@ -5826,42 +5830,42 @@ msgstr "" msgid "This page is not available in a media type you accept" msgstr "Esta páxina non está dispoñíbel no tipo de medio que aceptas" -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "Formato de ficheiro de imaxe non soportado." -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Podes actualizar a túa información do perfil persoal aquí" -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "Carga parcial." -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Aconteceu un erro no sistema namentras se estaba cargando o ficheiro." -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "Non é unha imaxe ou está corrupta." -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 #, fuzzy msgid "Lost our file." msgstr "Bloqueo de usuario fallido." -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 #, fuzzy msgid "Unknown file type" msgstr "tipo de ficheiro non soportado" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "" @@ -6389,7 +6393,7 @@ msgstr "O usuario non ten último chio." msgid "Unknown" msgstr "Acción descoñecida" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Subscricións" @@ -6397,7 +6401,7 @@ msgstr "Subscricións" msgid "All subscriptions" msgstr "Tódalas subscricións" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Subscritores" @@ -6406,16 +6410,21 @@ msgstr "Subscritores" msgid "All subscribers" msgstr "Subscritores" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 #, fuzzy msgid "User ID" msgstr "Usuario" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "Membro dende" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 #, fuzzy msgid "All groups" msgstr "Tódalas etiquetas" @@ -6604,6 +6613,11 @@ msgstr "Desuscribir de %s" msgid "Unsubscribe" msgstr "Eliminar subscrición" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "O usuario non ten perfil." + #: lib/userprofile.php:117 #, fuzzy msgid "Edit Avatar" diff --git a/locale/he/LC_MESSAGES/statusnet.po b/locale/he/LC_MESSAGES/statusnet.po index 27c7af90f..f1fd35346 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-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:40:47+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:09:53+0000\n" "Language-Team: Hebrew\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: out-statusnet\n" @@ -780,23 +780,28 @@ msgstr "ההעלה" msgid "Crop" msgstr "" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "העלאה חלקית." + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "" -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "התמונה עודכנה." -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "עדכון התמונה נכשל." -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 #, fuzzy msgid "Avatar deleted." msgstr "התמונה עודכנה." @@ -941,7 +946,7 @@ msgid "Conversation" msgstr "מיקום" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "הודעות" @@ -1796,7 +1801,7 @@ msgstr "" msgid "Updates from members of %1$s on %2$s!" msgstr "מיקרובלוג מאת %s" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "קבוצות" @@ -3406,7 +3411,7 @@ msgid "Description" msgstr "הרשמות" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "סטטיסטיקה" @@ -3566,7 +3571,7 @@ msgid "Members" msgstr "חבר מאז" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" @@ -3728,7 +3733,7 @@ msgid "Unknown language \"%s\"." msgstr "" #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +msgid "Minimum text limit is 0 (unlimited)." msgstr "" #: actions/siteadminpanel.php:171 @@ -4002,8 +4007,7 @@ msgstr "הגדרות" msgid "You are not subscribed to that profile." msgstr "לא שלחנו אלינו את הפרופיל הזה" -#: actions/subedit.php:83 classes/Subscription.php:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 #, fuzzy msgid "Could not save subscription." msgstr "יצירת המנוי נכשלה." @@ -4578,39 +4582,39 @@ msgstr "בעיה בשמירת ההודעה." msgid "RT @%1$s %2$s" msgstr "" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "" -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 #, fuzzy msgid "User has blocked you." msgstr "למשתמש אין פרופיל." -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 #, fuzzy msgid "Not subscribed!" msgstr "לא מנוי!" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 #, fuzzy msgid "Couldn't delete self-subscription." msgstr "מחיקת המנוי לא הצליחה." -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 #, fuzzy msgid "Couldn't delete subscription OMB token." msgstr "מחיקת המנוי לא הצליחה." -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "מחיקת המנוי לא הצליחה." -#: classes/User.php:378 +#: classes/User.php:363 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" @@ -4918,22 +4922,22 @@ msgstr "<< אחרי" msgid "Before" msgstr "לפני >>" -#: lib/activity.php:453 +#: lib/activity.php:120 +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/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." @@ -5425,20 +5429,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:135 #, fuzzy msgid "No configuration file found. " msgstr "אין קוד אישור." -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:139 msgid "Go to the installer." msgstr "" @@ -5621,41 +5625,41 @@ msgstr "" msgid "This page is not available in a media type you accept" msgstr "עמוד זה אינו זמין בסוג מדיה שאתה יכול לקבל" -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "פורמט התמונה אינו נתמך." -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "זה ארוך מידי. אורך מירבי להודעה הוא 140 אותיות." -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "העלאה חלקית." -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "שגיאת מערכת בהעלאת הקובץ." -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "זהו לא קובץ תמונה, או שחל בו שיבוש." -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 #, fuzzy msgid "Lost our file." msgstr "אין הודעה כזו." -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "" @@ -6119,7 +6123,7 @@ msgstr "" msgid "Unknown" msgstr "" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "הרשמות" @@ -6127,7 +6131,7 @@ msgstr "הרשמות" msgid "All subscriptions" msgstr "כל המנויים" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "מנויים" @@ -6136,16 +6140,21 @@ msgstr "מנויים" msgid "All subscribers" msgstr "מנויים" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 #, fuzzy msgid "User ID" msgstr "מתשמש" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "חבר מאז" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "" @@ -6328,6 +6337,11 @@ msgstr "" msgid "Unsubscribe" msgstr "בטל מנוי" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "למשתמש אין פרופיל." + #: lib/userprofile.php:117 #, fuzzy msgid "Edit Avatar" diff --git a/locale/hsb/LC_MESSAGES/statusnet.po b/locale/hsb/LC_MESSAGES/statusnet.po index f61fb0a82..1411d983f 100644 --- a/locale/hsb/LC_MESSAGES/statusnet.po +++ b/locale/hsb/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:40:50+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:09:56+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: hsb\n" "X-Message-Group: out-statusnet\n" @@ -749,23 +749,28 @@ msgstr "Nahrać" msgid "Crop" msgstr "" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "Žadyn profil podaty." + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "" -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "Awatar zaktualizowany." -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "" -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 msgid "Avatar deleted." msgstr "Awatar zničeny." @@ -900,7 +905,7 @@ msgid "Conversation" msgstr "Konwersacija" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Zdźělenki" @@ -1698,7 +1703,7 @@ msgstr "" msgid "Updates from members of %1$s on %2$s!" msgstr "" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Skupiny" @@ -3227,7 +3232,7 @@ msgid "Description" msgstr "Wopisanje" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "Statistika" @@ -3384,7 +3389,7 @@ msgid "Members" msgstr "Čłonojo" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Žadyn)" @@ -3543,7 +3548,7 @@ msgid "Unknown language \"%s\"." msgstr "Njeznata rěč \"%s\"." #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +msgid "Minimum text limit is 0 (unlimited)." msgstr "" #: actions/siteadminpanel.php:171 @@ -3804,8 +3809,7 @@ 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:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 msgid "Could not save subscription." msgstr "" @@ -4341,35 +4345,35 @@ msgstr "" msgid "RT @%1$s %2$s" msgstr "" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "" -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "Hižo abonowany!" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 msgid "User has blocked you." msgstr "Wužiwar je će zablokował." -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 msgid "Not subscribed!" msgstr "Njeje abonowany!" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 msgid "Couldn't delete self-subscription." msgstr "Sebjeabonement njeje so dał zničić." -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 msgid "Couldn't delete subscription OMB token." msgstr "Znamjo OMB-abonementa njeda so zhašeć." -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "Abonoment njeje so dał zničić." -#: classes/User.php:378 +#: classes/User.php:363 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" @@ -4648,22 +4652,22 @@ msgstr "" msgid "Before" msgstr "" -#: lib/activity.php:453 +#: lib/activity.php:120 +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/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." @@ -5133,19 +5137,19 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "Žana konfiguraciska dataja namakana. " -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:139 msgid "Go to the installer." msgstr "" @@ -5319,40 +5323,40 @@ msgstr "" msgid "This page is not available in a media type you accept" msgstr "" -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "" -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "" -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "Dźělne nahraće." -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "" -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "" -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Naša dataja je so zhubiła." -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "Njeznaty datajowy typ" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "MB" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "KB" @@ -5795,7 +5799,7 @@ msgstr "" msgid "Unknown" msgstr "Njeznaty" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Abonementy" @@ -5803,7 +5807,7 @@ msgstr "Abonementy" msgid "All subscriptions" msgstr "Wšě abonementy" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Abonenća" @@ -5811,15 +5815,20 @@ msgstr "Abonenća" msgid "All subscribers" msgstr "Wšitcy abonenća" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 msgid "User ID" msgstr "Wužiwarski ID" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "Čłon wot" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "Wšě skupiny" @@ -5990,6 +5999,11 @@ msgstr "Tutoho wužiwarja wotskazać" msgid "Unsubscribe" msgstr "Wotskazać" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "Wužiwar nima profil." + #: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Awatar wobdźěłać" diff --git a/locale/ia/LC_MESSAGES/statusnet.po b/locale/ia/LC_MESSAGES/statusnet.po index b31fc0d2d..c8aa5e616 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-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:40:53+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:09:59+0000\n" "Language-Team: Interlingua\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: out-statusnet\n" @@ -771,23 +771,28 @@ msgstr "Incargar" msgid "Crop" msgstr "Taliar" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "Nulle profilo specificate." + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "Selige un area quadrate del imagine pro facer lo tu avatar" -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Datos del file perdite." -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "Avatar actualisate." -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "Actualisation del avatar fallite." -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 msgid "Avatar deleted." msgstr "Avatar delite." @@ -925,7 +930,7 @@ msgid "Conversation" msgstr "Conversation" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Notas" @@ -1747,7 +1752,7 @@ msgstr "Chronologia de %s" msgid "Updates from members of %1$s on %2$s!" msgstr "Actualisationes de membros de %1$s in %2$s!" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Gruppos" @@ -3408,7 +3413,7 @@ msgid "Description" msgstr "Description" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "Statisticas" @@ -3575,7 +3580,7 @@ msgid "Members" msgstr "Membros" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Nulle)" @@ -3756,7 +3761,8 @@ msgid "Unknown language \"%s\"." msgstr "Lingua \"%s\" incognite." #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +#, fuzzy +msgid "Minimum text limit is 0 (unlimited)." msgstr "Le limite minimal del texto es 140 characteres." #: actions/siteadminpanel.php:171 @@ -4029,8 +4035,7 @@ 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:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 msgid "Could not save subscription." msgstr "Non poteva salveguardar le subscription." @@ -4612,35 +4617,35 @@ msgstr "Problema salveguardar le cassa de entrata del gruppo." msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "Tu ha essite blocate del subscription." -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "Ja subscribite!" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 msgid "User has blocked you." msgstr "Le usator te ha blocate." -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 msgid "Not subscribed!" msgstr "Non subscribite!" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 msgid "Couldn't delete self-subscription." msgstr "Non poteva deler auto-subscription." -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 msgid "Couldn't delete subscription OMB token." msgstr "Non poteva deler le indicio OMB del subscription." -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "Non poteva deler subscription." -#: classes/User.php:378 +#: classes/User.php:363 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Benvenite a %1$s, @%2$s!" @@ -4925,22 +4930,22 @@ msgstr "Post" msgid "Before" msgstr "Ante" -#: lib/activity.php:453 +#: lib/activity.php:120 +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 "Non pote ancora tractar contento remote." -#: lib/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "Non pote ancora tractar contento XML incastrate." -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "Non pote ancora tractar contento Base64 incastrate." -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." @@ -5455,19 +5460,19 @@ msgstr "" "tracks - non ancora implementate.\n" "tracking - non ancora implementate.\n" -#: lib/common.php:136 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "Nulle file de configuration trovate. " -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "Io cercava files de configuration in le sequente locos: " -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "Considera executar le installator pro reparar isto." -#: lib/common.php:140 +#: lib/common.php:139 msgid "Go to the installer." msgstr "Ir al installator." @@ -5645,40 +5650,40 @@ msgstr "Etiquettas in le notas del gruppo %s" msgid "This page is not available in a media type you accept" msgstr "Iste pagina non es disponibile in un formato que tu accepta" -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "Formato de file de imagine non supportate." -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Iste file es troppo grande. Le dimension maximal es %s." -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "Incargamento partial." -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Error de systema durante le incargamento del file." -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "Le file non es un imagine o es defectuose." -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "File perdite." -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "Typo de file incognite" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "MB" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "KB" @@ -6213,7 +6218,7 @@ msgstr "Etiquettas in le notas de %s" msgid "Unknown" msgstr "Incognite" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Subscriptiones" @@ -6221,7 +6226,7 @@ msgstr "Subscriptiones" msgid "All subscriptions" msgstr "Tote le subscriptiones" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Subscriptores" @@ -6229,15 +6234,20 @@ msgstr "Subscriptores" msgid "All subscribers" msgstr "Tote le subscriptores" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 msgid "User ID" msgstr "ID del usator" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "Membro depost" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "Tote le gruppos" @@ -6408,6 +6418,11 @@ msgstr "Cancellar subscription a iste usator" msgid "Unsubscribe" msgstr "Cancellar subscription" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "Le usator non ha un profilo." + #: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Modificar avatar" diff --git a/locale/is/LC_MESSAGES/statusnet.po b/locale/is/LC_MESSAGES/statusnet.po index 595431e9a..ca72d54a3 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-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:40:56+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:10:10+0000\n" "Language-Team: Icelandic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: is\n" "X-Message-Group: out-statusnet\n" @@ -777,24 +777,29 @@ msgstr "Hlaða upp" msgid "Crop" msgstr "Skera af" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "Engin persónuleg síða tilgreind" + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "" "Veldu ferningslaga svæði á upphaflegu myndinni sem einkennismyndina þína" -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Týndum skráargögnunum okkar" -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "Mynd hefur verið uppfærð." -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "Mistókst að uppfæra mynd" -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 msgid "Avatar deleted." msgstr "" @@ -934,7 +939,7 @@ msgid "Conversation" msgstr "" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Babl" @@ -1778,7 +1783,7 @@ msgstr "Rás %s" msgid "Updates from members of %1$s on %2$s!" msgstr "Færslur frá %1$s á %2$s!" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Hópar" @@ -3450,7 +3455,7 @@ msgid "Description" msgstr "Lýsing" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "Tölfræði" @@ -3608,7 +3613,7 @@ msgid "Members" msgstr "Meðlimir" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Ekkert)" @@ -3770,7 +3775,7 @@ msgid "Unknown language \"%s\"." msgstr "" #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +msgid "Minimum text limit is 0 (unlimited)." msgstr "" #: actions/siteadminpanel.php:171 @@ -4050,8 +4055,7 @@ msgstr "Stillingar fyrir mynd" msgid "You are not subscribed to that profile." msgstr "Þú ert ekki áskrifandi." -#: actions/subedit.php:83 classes/Subscription.php:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 msgid "Could not save subscription." msgstr "Gat ekki vistað áskrift." @@ -4627,39 +4631,39 @@ msgstr "Vandamál komu upp við að vista babl." msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 #, fuzzy msgid "You have been banned from subscribing." msgstr "Þessi notandi hefur bannað þér að gerast áskrifandi" -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 msgid "User has blocked you." msgstr "Notandinn hefur lokað á þig." -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 #, fuzzy msgid "Not subscribed!" msgstr "Ekki í áskrift!" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 #, fuzzy msgid "Couldn't delete self-subscription." msgstr "Gat ekki eytt áskrift." -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 #, fuzzy msgid "Couldn't delete subscription OMB token." msgstr "Gat ekki eytt áskrift." -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "Gat ekki eytt áskrift." -#: classes/User.php:378 +#: classes/User.php:363 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" @@ -4965,22 +4969,22 @@ msgstr "Eftir" msgid "Before" msgstr "Áður" -#: lib/activity.php:453 +#: lib/activity.php:120 +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/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 #, fuzzy @@ -5474,20 +5478,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:135 #, fuzzy msgid "No configuration file found. " msgstr "Enginn staðfestingarlykill." -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:139 #, fuzzy msgid "Go to the installer." msgstr "Skrá þig inn á síðuna" @@ -5667,40 +5671,40 @@ msgid "This page is not available in a media type you accept" msgstr "" "Þessi síða er ekki aðgengileg í margmiðlunargerðinni sem þú tekur á móti" -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "Skráarsnið myndar ekki stutt." -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Þetta er of langt. Hámarkslengd babls er 140 tákn." -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "Upphal að hluta til." -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Kerfisvilla kom upp við upphal skráar." -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "Annaðhvort ekki mynd eða þá að skráin er gölluð." -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Týndum skránni okkar" -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "Óþekkt skráargerð" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "" @@ -6163,7 +6167,7 @@ msgstr "Merki í babli %s" msgid "Unknown" msgstr "Óþekkt aðgerð" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Áskriftir" @@ -6171,7 +6175,7 @@ msgstr "Áskriftir" msgid "All subscriptions" msgstr "Allar áskriftir" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Áskrifendur" @@ -6179,15 +6183,20 @@ msgstr "Áskrifendur" msgid "All subscribers" msgstr "Allir áskrifendur" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 msgid "User ID" msgstr "" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "Meðlimur síðan" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "Allir hópar" @@ -6367,6 +6376,11 @@ msgstr "Hætta sem áskrifandi að þessum notanda" msgid "Unsubscribe" msgstr "Fara úr áskrift" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "Notandi hefur enga persónulega síðu." + #: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "" diff --git a/locale/it/LC_MESSAGES/statusnet.po b/locale/it/LC_MESSAGES/statusnet.po index d4d6fc3ef..681f60f0a 100644 --- a/locale/it/LC_MESSAGES/statusnet.po +++ b/locale/it/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:40:59+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:10:13+0000\n" "Language-Team: Italian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: it\n" "X-Message-Group: out-statusnet\n" @@ -772,23 +772,28 @@ msgstr "Carica" msgid "Crop" msgstr "Ritaglia" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "Nessun profilo specificato." + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "Scegli un'area quadrata per la tua immagine personale" -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Perso il nostro file di dati." -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "Immagine aggiornata." -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "Aggiornamento dell'immagine non riuscito." -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 msgid "Avatar deleted." msgstr "Immagine eliminata." @@ -926,7 +931,7 @@ msgid "Conversation" msgstr "Conversazione" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Messaggi" @@ -1751,7 +1756,7 @@ msgstr "Attività di %s" msgid "Updates from members of %1$s on %2$s!" msgstr "Messaggi dai membri di %1$s su %2$s!" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Gruppi" @@ -3408,7 +3413,7 @@ msgid "Description" msgstr "Descrizione" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "Statistiche" @@ -3574,7 +3579,7 @@ msgid "Members" msgstr "Membri" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(nessuno)" @@ -3754,7 +3759,8 @@ msgid "Unknown language \"%s\"." msgstr "Lingua \"%s\" sconosciuta." #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +#, fuzzy +msgid "Minimum text limit is 0 (unlimited)." msgstr "Il limite minimo del testo è di 140 caratteri." #: actions/siteadminpanel.php:171 @@ -4026,8 +4032,7 @@ 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:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 msgid "Could not save subscription." msgstr "Impossibile salvare l'abbonamento." @@ -4612,35 +4617,35 @@ msgstr "Problema nel salvare la casella della posta del gruppo." msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "Non ti è possibile abbonarti." -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "Hai già l'abbonamento!" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 msgid "User has blocked you." msgstr "L'utente non ti consente di seguirlo." -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 msgid "Not subscribed!" msgstr "Non hai l'abbonamento!" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 msgid "Couldn't delete self-subscription." msgstr "Impossibile eliminare l'auto-abbonamento." -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 msgid "Couldn't delete subscription OMB token." msgstr "Impossibile eliminare il token di abbonamento OMB." -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "Impossibile eliminare l'abbonamento." -#: classes/User.php:378 +#: classes/User.php:363 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Benvenuti su %1$s, @%2$s!" @@ -4927,22 +4932,22 @@ msgstr "Successivi" msgid "Before" msgstr "Precedenti" -#: lib/activity.php:453 +#: lib/activity.php:120 +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 "Impossibile gestire contenuti remoti." -#: lib/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "Impossibile gestire contenuti XML incorporati." -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "Impossibile gestire contenuti Base64." -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." @@ -5458,21 +5463,21 @@ msgstr "" "tracks - non ancora implementato\n" "tracking - non ancora implementato\n" -#: lib/common.php:136 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "Non è stato trovato alcun file di configurazione. " -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "I file di configurazione sono stati cercati in questi posti: " -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" "Potrebbe essere necessario lanciare il programma d'installazione per " "correggere il problema." -#: lib/common.php:140 +#: lib/common.php:139 msgid "Go to the installer." msgstr "Vai al programma d'installazione." @@ -5649,40 +5654,40 @@ msgstr "Etichette nei messaggi del gruppo %s" msgid "This page is not available in a media type you accept" msgstr "Questa pagina non è disponibile in un tipo di supporto che tu accetti" -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "Formato file immagine non supportato." -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Quel file è troppo grande. La dimensione massima è %s." -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "Caricamento parziale." -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Errore di sistema nel caricare il file." -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "Non è un'immagine o il file è danneggiato." -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Perso il nostro file." -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "Tipo di file sconosciuto" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "MB" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "kB" @@ -6216,7 +6221,7 @@ msgstr "Etichette nei messaggi di %s" msgid "Unknown" msgstr "Sconosciuto" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Abbonamenti" @@ -6224,7 +6229,7 @@ msgstr "Abbonamenti" msgid "All subscriptions" msgstr "Tutti gli abbonamenti" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Abbonati" @@ -6232,15 +6237,20 @@ msgstr "Abbonati" msgid "All subscribers" msgstr "Tutti gli abbonati" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 msgid "User ID" msgstr "ID utente" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "Membro dal" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "Tutti i gruppi" @@ -6411,6 +6421,11 @@ msgstr "Annulla l'abbonamento da questo utente" msgid "Unsubscribe" msgstr "Disabbonati" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "L'utente non ha un profilo." + #: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Modifica immagine" diff --git a/locale/ja/LC_MESSAGES/statusnet.po b/locale/ja/LC_MESSAGES/statusnet.po index 85b83bfe9..a50da36c4 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-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:41:02+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:10:29+0000\n" "Language-Team: Japanese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ja\n" "X-Message-Group: out-statusnet\n" @@ -766,23 +766,28 @@ msgstr "アップロード" msgid "Crop" msgstr "切り取り" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "プロファイル記述がありません。" + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "あなたのアバターとなるイメージを正方形で指定" -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "ファイルデータを紛失しました。" -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "アバターが更新されました。" -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "アバターの更新に失敗しました。" -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 msgid "Avatar deleted." msgstr "アバターが削除されました。" @@ -921,7 +926,7 @@ msgid "Conversation" msgstr "会話" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "つぶやき" @@ -1749,7 +1754,7 @@ msgstr "%s のタイムライン" msgid "Updates from members of %1$s on %2$s!" msgstr "%2$s 上の %1$s のメンバーから更新する" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "グループ" @@ -3404,7 +3409,7 @@ msgid "Description" msgstr "概要" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "統計データ" @@ -3572,7 +3577,7 @@ msgid "Members" msgstr "メンバー" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(なし)" @@ -3753,7 +3758,8 @@ msgid "Unknown language \"%s\"." msgstr "不明な言語 \"%s\"" #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +#, fuzzy +msgid "Minimum text limit is 0 (unlimited)." msgstr "最小のテキスト制限は140字です。" #: actions/siteadminpanel.php:171 @@ -4035,8 +4041,7 @@ msgstr "サイト設定の保存" msgid "You are not subscribed to that profile." msgstr "あなたはそのプロファイルにフォローされていません。" -#: actions/subedit.php:83 classes/Subscription.php:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 msgid "Could not save subscription." msgstr "フォローを保存できません。" @@ -4612,36 +4617,36 @@ msgstr "グループ受信箱を保存する際に問題が発生しました。 msgid "RT @%1$s %2$s" msgstr "" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "あなたはフォローが禁止されました。" -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "すでにフォローしています!" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 msgid "User has blocked you." msgstr "ユーザはあなたをブロックしました。" -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 msgid "Not subscribed!" msgstr "フォローしていません!" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 msgid "Couldn't delete self-subscription." msgstr "自己フォローを削除できません。" -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 #, fuzzy msgid "Couldn't delete subscription OMB token." msgstr "フォローを削除できません" -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "フォローを削除できません" -#: classes/User.php:378 +#: classes/User.php:363 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "ようこそ %1$s、@%2$s!" @@ -4944,22 +4949,22 @@ msgstr "<<後" msgid "Before" msgstr "前>>" -#: lib/activity.php:453 +#: lib/activity.php:120 +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/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." @@ -5432,21 +5437,21 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "コンフィギュレーションファイルがありません。 " -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "私は以下の場所でコンフィギュレーションファイルを探しました: " -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" "あなたは、これを修理するためにインストーラを動かしたがっているかもしれませ" "ん。" -#: lib/common.php:140 +#: lib/common.php:139 msgid "Go to the installer." msgstr "インストーラへ。" @@ -5622,40 +5627,40 @@ msgstr "%s グループのつぶやきにあるタグ" msgid "This page is not available in a media type you accept" msgstr "このページはあなたが承認したメディアタイプでは利用できません。" -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "サポート外の画像形式です。" -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "ファイルが大きすぎます。最大ファイルサイズは %s 。" -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "不完全なアップロード。" -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "ファイルのアップロードでシステムエラー" -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "画像ではないかファイルが破損しています。" -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "ファイルを紛失。" -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "不明なファイルタイプ" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "MB" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "kB" @@ -6196,7 +6201,7 @@ msgstr "%s のつぶやきのタグ" msgid "Unknown" msgstr "不明" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "フォロー" @@ -6204,7 +6209,7 @@ msgstr "フォロー" msgid "All subscriptions" msgstr "すべてのフォロー" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "フォローされている" @@ -6212,15 +6217,20 @@ msgstr "フォローされている" msgid "All subscribers" msgstr "すべてのフォローされている" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 msgid "User ID" msgstr "ユーザID" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "利用開始日" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "全てのグループ" @@ -6391,6 +6401,11 @@ msgstr "この利用者からのフォローを解除する" msgid "Unsubscribe" msgstr "フォロー解除" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "ユーザはプロフィールをもっていません。" + #: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "アバターを編集する" diff --git a/locale/ko/LC_MESSAGES/statusnet.po b/locale/ko/LC_MESSAGES/statusnet.po index 41533a426..d62e6ac5b 100644 --- a/locale/ko/LC_MESSAGES/statusnet.po +++ b/locale/ko/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:41:05+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:10:33+0000\n" "Language-Team: Korean\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ko\n" "X-Message-Group: out-statusnet\n" @@ -782,23 +782,28 @@ msgstr "올리기" msgid "Crop" msgstr "자르기" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "프로필을 지정하지 않았습니다." + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "당신의 아바타가 될 이미지영역을 지정하세요." -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "파일 데이터를 잃어버렸습니다." -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "아바타가 업데이트 되었습니다." -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "아바타 업데이트 실패" -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 #, fuzzy msgid "Avatar deleted." msgstr "아바타가 업데이트 되었습니다." @@ -941,7 +946,7 @@ msgid "Conversation" msgstr "인증 코드" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "통지" @@ -1807,7 +1812,7 @@ msgstr "%s 타임라인" msgid "Updates from members of %1$s on %2$s!" msgstr "%2$s에 있는 %1$s의 업데이트!" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "그룹" @@ -3466,7 +3471,7 @@ msgid "Description" msgstr "설명" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "통계" @@ -3624,7 +3629,7 @@ msgid "Members" msgstr "회원" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(없습니다.)" @@ -3793,7 +3798,7 @@ msgid "Unknown language \"%s\"." msgstr "" #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +msgid "Minimum text limit is 0 (unlimited)." msgstr "" #: actions/siteadminpanel.php:171 @@ -4074,8 +4079,7 @@ msgstr "아바타 설정" msgid "You are not subscribed to that profile." msgstr "당신은 이 프로필에 구독되지 않고있습니다." -#: actions/subedit.php:83 classes/Subscription.php:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 msgid "Could not save subscription." msgstr "구독을 저장할 수 없습니다." @@ -4652,39 +4656,39 @@ msgstr "통지를 저장하는데 문제가 발생했습니다." msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 #, fuzzy msgid "You have been banned from subscribing." msgstr "이 회원은 구독으로부터 당신을 차단해왔다." -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 msgid "User has blocked you." msgstr "회원이 당신을 차단해왔습니다." -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 #, fuzzy msgid "Not subscribed!" msgstr "구독하고 있지 않습니다!" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 #, fuzzy msgid "Couldn't delete self-subscription." msgstr "예약 구독을 삭제 할 수 없습니다." -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 #, fuzzy msgid "Couldn't delete subscription OMB token." msgstr "예약 구독을 삭제 할 수 없습니다." -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "예약 구독을 삭제 할 수 없습니다." -#: classes/User.php:378 +#: classes/User.php:363 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "%2$s에서 %1$s까지 메시지" @@ -4990,22 +4994,22 @@ msgstr "뒷 페이지" msgid "Before" msgstr "앞 페이지" -#: lib/activity.php:453 +#: lib/activity.php:120 +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/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 #, fuzzy @@ -5498,20 +5502,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:135 #, fuzzy msgid "No configuration file found. " msgstr "확인 코드가 없습니다." -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:139 #, fuzzy msgid "Go to the installer." msgstr "이 사이트 로그인" @@ -5692,40 +5696,40 @@ msgstr "%s 그룹 게시글의 태그" msgid "This page is not available in a media type you accept" msgstr "이 페이지는 귀하가 승인한 미디어 타입에서는 이용할 수 없습니다." -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "지원하지 않는 그림 파일 형식입니다." -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "당신그룹의 로고 이미지를 업로드할 수 있습니다." -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "불완전한 업로드." -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "파일을 올리는데 시스템 오류 발생" -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "그림 파일이 아니거나 손상된 파일 입니다." -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "파일을 잃어버렸습니다." -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "알 수 없는 종류의 파일입니다" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "" @@ -6187,7 +6191,7 @@ msgstr "%s의 게시글의 태그" msgid "Unknown" msgstr "알려지지 않은 행동" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "구독" @@ -6195,7 +6199,7 @@ msgstr "구독" msgid "All subscriptions" msgstr "모든 예약 구독" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "구독자" @@ -6203,16 +6207,21 @@ msgstr "구독자" msgid "All subscribers" msgstr "모든 구독자" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 #, fuzzy msgid "User ID" msgstr "이용자" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "가입한 때" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "모든 그룹" @@ -6394,6 +6403,11 @@ msgstr "이 사용자로부터 구독취소합니다." msgid "Unsubscribe" msgstr "구독 해제" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "이용자가 프로필을 가지고 있지 않습니다." + #: lib/userprofile.php:117 #, fuzzy msgid "Edit Avatar" diff --git a/locale/mk/LC_MESSAGES/statusnet.po b/locale/mk/LC_MESSAGES/statusnet.po index 764a91b15..1be316859 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-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:41:08+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:10:37+0000\n" "Language-Team: Macedonian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: out-statusnet\n" @@ -774,23 +774,28 @@ msgstr "Подигни" msgid "Crop" msgstr "Отсечи" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "Нема назначено профил." + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "Одберете квадратна површина од сликата за аватар" -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Податоците за податотеката се изгубени." -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "Аватарот е подновен." -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "Подновата на аватарот не успеа." -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 msgid "Avatar deleted." msgstr "Аватарот е избришан." @@ -929,7 +934,7 @@ msgid "Conversation" msgstr "Разговор" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Забелешки" @@ -1756,7 +1761,7 @@ msgstr "Историја на %s" msgid "Updates from members of %1$s on %2$s!" msgstr "Подновувања од членови на %1$s на %2$s!" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Групи" @@ -3423,7 +3428,7 @@ msgid "Description" msgstr "Опис" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "Статистики" @@ -3592,7 +3597,7 @@ msgid "Members" msgstr "Членови" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Нема)" @@ -3773,7 +3778,8 @@ msgid "Unknown language \"%s\"." msgstr "Непознат јазик „%s“" #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +#, fuzzy +msgid "Minimum text limit is 0 (unlimited)." msgstr "Минималното ограничување на текстот изнесува 140 знаци." #: actions/siteadminpanel.php:171 @@ -4049,8 +4055,7 @@ msgstr "Зачувај поставки за снимки" msgid "You are not subscribed to that profile." msgstr "Не сте претплатени на тој профил." -#: actions/subedit.php:83 classes/Subscription.php:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 msgid "Could not save subscription." msgstr "Не можев да ја зачувам претплатата." @@ -4634,36 +4639,36 @@ msgstr "Проблем при зачувувањето на групното п msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "Блокирани сте од претплаќање." -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "Веќе претплатено!" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 msgid "User has blocked you." msgstr "Корисникот Ве има блокирано." -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 #, fuzzy msgid "Not subscribed!" msgstr "Не сте претплатени!" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 msgid "Couldn't delete self-subscription." msgstr "Не можам да ја избришам самопретплатата." -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 msgid "Couldn't delete subscription OMB token." msgstr "Не можете да го избришете OMB-жетонот за претплата." -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "Претплата не може да се избрише." -#: classes/User.php:378 +#: classes/User.php:363 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Добредојдовте на %1$s, @%2$s!" @@ -4951,22 +4956,22 @@ msgstr "По" msgid "Before" msgstr "Пред" -#: lib/activity.php:453 +#: lib/activity.php:120 +msgid "Expecting a root feed element but got a whole XML document." +msgstr "Се очекува коренски каналски елемент, но добив цел XML документ." + +#: lib/activityutils.php:208 msgid "Can't handle remote content yet." msgstr "Сè уште не е поддржана обработката на далечинска содржина." -#: lib/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "Сè уште не е поддржана обработката на XML содржина." -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "Сè уште не е достапна обработката на вметната Base64 содржина." -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." @@ -5478,19 +5483,19 @@ msgstr "" "tracks - сè уште не е имплементирано.\n" "tracking - сè уште не е имплементирано.\n" -#: lib/common.php:136 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "Нема пронајдено конфигурациска податотека. " -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "Побарав конфигурациони податотеки на следниве места: " -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "Препорачуваме да го пуштите инсталатерот за да го поправите ова." -#: lib/common.php:140 +#: lib/common.php:139 msgid "Go to the installer." msgstr "Оди на инсталаторот." @@ -5668,40 +5673,40 @@ msgstr "Ознаки во забелешките на групата %s" msgid "This page is not available in a media type you accept" msgstr "Оваа страница не е достапна во форматот кој Вие го прифаќате." -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "Неподдржан фомрат на слики." -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Ова е предолго. Максималната должина е 140 знаци." -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "Делумно подигање." -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Системска грешка при подигањето на податотеката." -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "Не е слика или податотеката е пореметена." -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Податотеката е изгубена." -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "Непознат тип на податотека" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "МБ" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "кб" @@ -6240,7 +6245,7 @@ msgstr "Ознаки во забелешките на %s" msgid "Unknown" msgstr "Непознато" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Претплати" @@ -6248,7 +6253,7 @@ msgstr "Претплати" msgid "All subscriptions" msgstr "Сите претплати" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Претплатници" @@ -6256,15 +6261,20 @@ msgstr "Претплатници" msgid "All subscribers" msgstr "Сите претплатници" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 msgid "User ID" msgstr "Кориснички ID" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "Член од" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "Сите групи" @@ -6435,6 +6445,11 @@ msgstr "Откажи претплата од овој корсиник" msgid "Unsubscribe" msgstr "Откажи ја претплатата" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "Корисникот нема профил." + #: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Уреди аватар" @@ -6445,7 +6460,7 @@ msgstr "Кориснички дејства" #: lib/userprofile.php:237 msgid "User deletion in progress..." -msgstr "" +msgstr "Бришењето на корисникот е во тек..." #: lib/userprofile.php:263 msgid "Edit profile settings" diff --git a/locale/nb/LC_MESSAGES/statusnet.po b/locale/nb/LC_MESSAGES/statusnet.po index 617280c33..63e45a273 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-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:41:11+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:10:40+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 (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: out-statusnet\n" @@ -763,23 +763,28 @@ msgstr "Last opp" msgid "Crop" msgstr "Beskjær" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "Ingen profil oppgitt." + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "Velg et kvadratisk utsnitt av bildet som din avatar." -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Mistet våre fildata." -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "Brukerbildet har blitt oppdatert." -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "Oppdatering av avatar mislyktes." -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 msgid "Avatar deleted." msgstr "Avatar slettet." @@ -917,7 +922,7 @@ msgid "Conversation" msgstr "Samtale" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Notiser" @@ -1727,7 +1732,7 @@ msgstr "%s tidslinje" msgid "Updates from members of %1$s on %2$s!" msgstr "Oppdateringer fra medlemmer av %1$s på %2$s!" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Grupper" @@ -3326,7 +3331,7 @@ msgid "Description" msgstr "Beskrivelse" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "Statistikk" @@ -3484,7 +3489,7 @@ msgid "Members" msgstr "Medlemmer" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Ingen)" @@ -3665,7 +3670,7 @@ msgid "Unknown language \"%s\"." msgstr "Ukjent språk «%s»." #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +msgid "Minimum text limit is 0 (unlimited)." msgstr "" #: actions/siteadminpanel.php:171 @@ -3936,8 +3941,7 @@ msgstr "Innstillinger for IM" msgid "You are not subscribed to that profile." msgstr "" -#: actions/subedit.php:83 classes/Subscription.php:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 #, fuzzy msgid "Could not save subscription." msgstr "Klarte ikke å lagre avatar-informasjonen" @@ -4486,38 +4490,38 @@ msgstr "" msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "" -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 msgid "User has blocked you." msgstr "Bruker har blokkert deg." -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 #, fuzzy msgid "Not subscribed!" msgstr "Alle abonnementer" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 #, fuzzy msgid "Couldn't delete self-subscription." msgstr "Klarte ikke å lagre avatar-informasjonen" -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 #, fuzzy msgid "Couldn't delete subscription OMB token." msgstr "Klarte ikke å lagre avatar-informasjonen" -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "" -#: classes/User.php:378 +#: classes/User.php:363 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Velkommen til %1$s, @%2$s." @@ -4800,22 +4804,22 @@ msgstr "Etter" msgid "Before" msgstr "Før" -#: lib/activity.php:453 +#: lib/activity.php:120 +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/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." @@ -5290,20 +5294,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:135 #, fuzzy msgid "No configuration file found. " msgstr "Fant ikke bekreftelseskode." -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:139 msgid "Go to the installer." msgstr "" @@ -5483,40 +5487,40 @@ msgstr "" msgid "This page is not available in a media type you accept" msgstr "Denne siden er ikke tilgjengelig i en mediatype du aksepterer" -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "Bildefilformatet støttes ikke." -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Filen er for stor. Maks filstørrelse er %s." -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "Delvis opplasting." -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Systemfeil ved opplasting av fil." -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "Ikke et bilde eller en korrupt fil." -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Mistet filen vår." -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "Ukjent filtype" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "MB" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "kB" @@ -6046,7 +6050,7 @@ msgstr "" msgid "Unknown" msgstr "Ukjent" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Abonnement" @@ -6054,7 +6058,7 @@ msgstr "Abonnement" msgid "All subscriptions" msgstr "Alle abonnementer" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Abonnenter" @@ -6062,15 +6066,20 @@ msgstr "Abonnenter" msgid "All subscribers" msgstr "Alle abonnenter" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 msgid "User ID" msgstr "Bruker-ID" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "Medlem siden" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "Alle grupper" @@ -6246,6 +6255,11 @@ msgstr "" msgid "Unsubscribe" msgstr "" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "Brukeren har ingen profil." + #: lib/userprofile.php:117 #, fuzzy msgid "Edit Avatar" diff --git a/locale/nl/LC_MESSAGES/statusnet.po b/locale/nl/LC_MESSAGES/statusnet.po index 745e666c2..6d3148c18 100644 --- a/locale/nl/LC_MESSAGES/statusnet.po +++ b/locale/nl/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:41:17+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:10:46+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: out-statusnet\n" @@ -783,24 +783,29 @@ msgstr "Uploaden" msgid "Crop" msgstr "Uitsnijden" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "Er is geen profiel opgegeven." + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "" "Selecteer een vierkant in de afbeelding om deze als uw avatar in te stellen" -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Ons bestand is verloren gegaan." -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "De avatar is bijgewerkt." -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "Het bijwerken van de avatar is mislukt." -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 msgid "Avatar deleted." msgstr "De avatar is verwijderd." @@ -938,7 +943,7 @@ msgid "Conversation" msgstr "Dialoog" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Mededelingen" @@ -1770,7 +1775,7 @@ msgstr "%s tijdlijn" msgid "Updates from members of %1$s on %2$s!" msgstr "Updates voor leden van %1$s op %2$s." -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Groepen" @@ -3444,7 +3449,7 @@ msgid "Description" msgstr "Beschrijving" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "Statistieken" @@ -3613,7 +3618,7 @@ msgid "Members" msgstr "Leden" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(geen)" @@ -3796,7 +3801,8 @@ msgid "Unknown language \"%s\"." msgstr "De taal \"%s\" is niet bekend." #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +#, fuzzy +msgid "Minimum text limit is 0 (unlimited)." msgstr "De minimale tekstlimiet is 140 tekens." #: actions/siteadminpanel.php:171 @@ -4075,8 +4081,7 @@ 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:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 msgid "Could not save subscription." msgstr "Het was niet mogelijk het abonnement op te slaan." @@ -4672,36 +4677,36 @@ msgstr "" msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "U mag zich niet abonneren." -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "U bent al gebonneerd!" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 msgid "User has blocked you." msgstr "Deze gebruiker negeert u." -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 msgid "Not subscribed!" msgstr "Niet geabonneerd!" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 msgid "Couldn't delete self-subscription." msgstr "Het was niet mogelijk het abonnement op uzelf te verwijderen." -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 msgid "Couldn't delete subscription OMB token." msgstr "" "Het was niet mogelijk om het OMB-token voor het abonnement te verwijderen." -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "Kon abonnement niet verwijderen." -#: classes/User.php:378 +#: classes/User.php:363 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Welkom bij %1$s, @%2$s!" @@ -4989,22 +4994,22 @@ msgstr "Later" msgid "Before" msgstr "Eerder" -#: lib/activity.php:453 +#: lib/activity.php:120 +msgid "Expecting a root feed element but got a whole XML document." +msgstr "Verwachtte een root-feed element maar kreeg een heel XML-document." + +#: lib/activityutils.php:208 msgid "Can't handle remote content yet." msgstr "Het is nog niet mogelijk inhoud uit andere omgevingen te verwerken." -#: lib/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "Het is nog niet mogelijk ingebedde XML-inhoud te verwerken" -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "Het is nog niet mogelijk ingebedde Base64-inhoud te verwerken" -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." @@ -5524,20 +5529,20 @@ msgstr "" "tracks - nog niet beschikbaar\n" "tracking - nog niet beschikbaar\n" -#: lib/common.php:136 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "Er is geen instellingenbestand aangetroffen. " -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "Er is gezocht naar instellingenbestanden op de volgende plaatsen: " -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" "U kunt proberen de installer uit te voeren om dit probleem op te lossen." -#: lib/common.php:140 +#: lib/common.php:139 msgid "Go to the installer." msgstr "Naar het installatieprogramma gaan." @@ -5715,40 +5720,40 @@ msgstr "Labels in de groepsmededelingen van %s" msgid "This page is not available in a media type you accept" msgstr "Deze pagina is niet beschikbaar in een mediatype dat u accepteert" -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "Niet ondersteund beeldbestandsformaat." -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Dat bestand is te groot. De maximale bestandsgrootte is %s." -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "Gedeeltelijke upload." -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Er is een systeemfout opgetreden tijdens het uploaden van het bestand." -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "Het bestand is geen afbeelding of het bestand is beschadigd." -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Het bestand is zoekgeraakt." -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "Onbekend bestandstype" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "MB" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "kB" @@ -6287,7 +6292,7 @@ msgstr "Labels in de mededelingen van %s" msgid "Unknown" msgstr "Onbekend" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Abonnementen" @@ -6295,7 +6300,7 @@ msgstr "Abonnementen" msgid "All subscriptions" msgstr "Alle abonnementen" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Abonnees" @@ -6303,15 +6308,20 @@ msgstr "Abonnees" msgid "All subscribers" msgstr "Alle abonnees" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 msgid "User ID" msgstr "Gebruikers-ID" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "Lid sinds" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "Alle groepen" @@ -6482,6 +6492,11 @@ msgstr "Uitschrijven van deze gebruiker" msgid "Unsubscribe" msgstr "Abonnement opheffen" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "Deze gebruiker heeft geen profiel." + #: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Avatar bewerken" @@ -6492,7 +6507,7 @@ msgstr "Gebruikershandelingen" #: lib/userprofile.php:237 msgid "User deletion in progress..." -msgstr "" +msgstr "Bezig met het verwijderen van de gebruiker..." #: lib/userprofile.php:263 msgid "Edit profile settings" diff --git a/locale/nn/LC_MESSAGES/statusnet.po b/locale/nn/LC_MESSAGES/statusnet.po index 4b1110eae..30f1adc0f 100644 --- a/locale/nn/LC_MESSAGES/statusnet.po +++ b/locale/nn/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:41:14+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:10:43+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 (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nn\n" "X-Message-Group: out-statusnet\n" @@ -780,23 +780,28 @@ msgstr "Last opp" msgid "Crop" msgstr "Skaler" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "Ingen vald profil." + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "Velg eit utvalg av bildet som vil blir din avatar." -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Fant ikkje igjen fil data." -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "Lasta opp brukarbilete." -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "Feil ved oppdatering av brukarbilete." -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 #, fuzzy msgid "Avatar deleted." msgstr "Lasta opp brukarbilete." @@ -939,7 +944,7 @@ msgid "Conversation" msgstr "Stadfestingskode" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Notisar" @@ -1807,7 +1812,7 @@ msgstr "%s tidsline" msgid "Updates from members of %1$s on %2$s!" msgstr "Oppdateringar frå %1$s på %2$s!" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Grupper" @@ -3479,7 +3484,7 @@ msgid "Description" msgstr "Beskriving" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "Statistikk" @@ -3637,7 +3642,7 @@ msgid "Members" msgstr "Medlemmar" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Ingen)" @@ -3806,7 +3811,7 @@ msgid "Unknown language \"%s\"." msgstr "" #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +msgid "Minimum text limit is 0 (unlimited)." msgstr "" #: actions/siteadminpanel.php:171 @@ -4088,8 +4093,7 @@ 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:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 msgid "Could not save subscription." msgstr "Kunne ikkje lagra abonnement." @@ -4669,39 +4673,39 @@ msgstr "Eit problem oppstod ved lagring av notis." msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 #, fuzzy msgid "You have been banned from subscribing." msgstr "Brukaren tillet deg ikkje å tinga meldingane sine." -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 msgid "User has blocked you." msgstr "Brukar har blokkert deg." -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 #, fuzzy msgid "Not subscribed!" msgstr "Ikkje tinga." -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 #, fuzzy msgid "Couldn't delete self-subscription." msgstr "Kan ikkje sletta tinging." -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 #, fuzzy msgid "Couldn't delete subscription OMB token." msgstr "Kan ikkje sletta tinging." -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "Kan ikkje sletta tinging." -#: classes/User.php:378 +#: classes/User.php:363 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Melding til %1$s på %2$s" @@ -5007,22 +5011,22 @@ msgstr "« Etter" msgid "Before" msgstr "Før »" -#: lib/activity.php:453 +#: lib/activity.php:120 +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/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 #, fuzzy @@ -5518,20 +5522,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:135 #, fuzzy msgid "No configuration file found. " msgstr "Ingen stadfestingskode." -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:139 #, fuzzy msgid "Go to the installer." msgstr "Logg inn or sida" @@ -5712,40 +5716,40 @@ msgstr "Merkelappar i %s gruppa sine notisar" msgid "This page is not available in a media type you accept" msgstr "Denne sida er ikkje tilgjengeleg i nokon mediatype du aksepterer." -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "Støttar ikkje bileteformatet." -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Du kan lasta opp ein logo for gruppa." -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "Hallvegs opplasta." -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Systemfeil ved opplasting av fil." -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "Korrupt bilete." -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Mista fila vår." -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "Ukjend fil type" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "" @@ -6214,7 +6218,7 @@ msgstr "Merkelappar i %s sine notisar" msgid "Unknown" msgstr "Uventa handling." -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Tingingar" @@ -6222,7 +6226,7 @@ msgstr "Tingingar" msgid "All subscriptions" msgstr "Alle tingingar" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Tingarar" @@ -6230,16 +6234,21 @@ msgstr "Tingarar" msgid "All subscribers" msgstr "Tingarar" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 #, fuzzy msgid "User ID" msgstr "Brukar" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "Medlem sidan" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "Alle gruppar" @@ -6421,6 +6430,11 @@ msgstr "Fjern tinging fra denne brukaren" msgid "Unsubscribe" msgstr "Fjern tinging" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "Brukaren har inga profil." + #: lib/userprofile.php:117 #, fuzzy msgid "Edit Avatar" diff --git a/locale/pl/LC_MESSAGES/statusnet.po b/locale/pl/LC_MESSAGES/statusnet.po index 816eb6e85..e2656b003 100644 --- a/locale/pl/LC_MESSAGES/statusnet.po +++ b/locale/pl/LC_MESSAGES/statusnet.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:41:20+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:10:49+0000\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" @@ -19,7 +19,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -"X-Generator: MediaWiki 1.17alpha (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pl\n" "X-Message-Group: out-statusnet\n" @@ -770,23 +770,28 @@ msgstr "Wyślij" msgid "Crop" msgstr "Przytnij" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "Nie podano profilu." + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "Wybierz kwadratowy obszar obrazu do awatara" -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Utracono dane pliku." -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "Zaktualizowano awatar." -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "Zaktualizowanie awatara nie powiodło się." -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 msgid "Avatar deleted." msgstr "Usunięto awatar." @@ -924,7 +929,7 @@ msgid "Conversation" msgstr "Rozmowa" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Wpisy" @@ -1740,7 +1745,7 @@ msgstr "Oś czasu użytkownika %s" msgid "Updates from members of %1$s on %2$s!" msgstr "Aktualizacje od członków %1$s na %2$s." -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Grupy" @@ -3396,7 +3401,7 @@ msgid "Description" msgstr "Opis" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "Statystyki" @@ -3563,7 +3568,7 @@ msgid "Members" msgstr "Członkowie" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Brak)" @@ -3745,7 +3750,8 @@ msgid "Unknown language \"%s\"." msgstr "Nieznany język \"%s\"." #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +#, fuzzy +msgid "Minimum text limit is 0 (unlimited)." msgstr "Maksymalne ograniczenie tekstu to 14 znaków." #: actions/siteadminpanel.php:171 @@ -4018,8 +4024,7 @@ 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:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 msgid "Could not save subscription." msgstr "Nie można zapisać subskrypcji." @@ -4605,35 +4610,35 @@ msgstr "Problem podczas zapisywania skrzynki odbiorczej grupy." msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "Zablokowano subskrybowanie." -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "Już subskrybowane." -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 msgid "User has blocked you." msgstr "Użytkownik zablokował cię." -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 msgid "Not subscribed!" msgstr "Niesubskrybowane." -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 msgid "Couldn't delete self-subscription." msgstr "Nie można usunąć autosubskrypcji." -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 msgid "Couldn't delete subscription OMB token." msgstr "Nie można usunąć tokenu subskrypcji OMB." -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "Nie można usunąć subskrypcji." -#: classes/User.php:378 +#: classes/User.php:363 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Witaj w %1$s, @%2$s." @@ -4921,22 +4926,22 @@ msgstr "Później" msgid "Before" msgstr "Wcześniej" -#: lib/activity.php:453 +#: lib/activity.php:120 +msgid "Expecting a root feed element but got a whole XML document." +msgstr "Oczekiwano elementu kanału roota, ale otrzymano cały dokument XML." + +#: lib/activityutils.php:208 msgid "Can't handle remote content yet." msgstr "Nie można jeszcze obsługiwać zdalnej treści." -#: lib/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "Nie można jeszcze obsługiwać zagnieżdżonej treści XML." -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "Nie można jeszcze obsługiwać zagnieżdżonej treści Base64." -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." @@ -5455,19 +5460,19 @@ msgstr "" "tracks - jeszcze nie zaimplementowano\n" "tracking - jeszcze nie zaimplementowano\n" -#: lib/common.php:136 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "Nie odnaleziono pliku konfiguracji." -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "Szukano plików konfiguracji w następujących miejscach: " -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "Należy uruchomić instalator, aby to naprawić." -#: lib/common.php:140 +#: lib/common.php:139 msgid "Go to the installer." msgstr "Przejdź do instalatora." @@ -5645,40 +5650,40 @@ msgstr "Znaczniki we wpisach grupy %s" msgid "This page is not available in a media type you accept" msgstr "Ta strona jest niedostępna dla akceptowanego typu medium" -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "Nieobsługiwany format pliku obrazu." -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Ten plik jest za duży. Maksymalny rozmiar pliku to %s." -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "Częściowo wysłano." -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Błąd systemu podczas wysyłania pliku." -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "To nie jest obraz lub lub plik jest uszkodzony." -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Utracono plik." -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "Nieznany typ pliku" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "MB" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "KB" @@ -6211,7 +6216,7 @@ msgstr "Znaczniki we wpisach użytkownika %s" msgid "Unknown" msgstr "Nieznane" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Subskrypcje" @@ -6219,7 +6224,7 @@ msgstr "Subskrypcje" msgid "All subscriptions" msgstr "Wszystkie subskrypcje" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Subskrybenci" @@ -6227,15 +6232,20 @@ msgstr "Subskrybenci" msgid "All subscribers" msgstr "Wszyscy subskrybenci" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 msgid "User ID" msgstr "Identyfikator użytkownika" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "Członek od" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "Wszystkie grupy" @@ -6407,6 +6417,11 @@ msgstr "Zrezygnuj z subskrypcji tego użytkownika" msgid "Unsubscribe" msgstr "Zrezygnuj z subskrypcji" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "Użytkownik nie posiada profilu." + #: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Zmodyfikuj awatar" @@ -6417,7 +6432,7 @@ msgstr "Czynności użytkownika" #: lib/userprofile.php:237 msgid "User deletion in progress..." -msgstr "" +msgstr "Trwa usuwanie użytkownika..." #: lib/userprofile.php:263 msgid "Edit profile settings" diff --git a/locale/pt/LC_MESSAGES/statusnet.po b/locale/pt/LC_MESSAGES/statusnet.po index 4d94d95b0..4d1a30ea4 100644 --- a/locale/pt/LC_MESSAGES/statusnet.po +++ b/locale/pt/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:41:23+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:10:52+0000\n" "Language-Team: Portuguese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: out-statusnet\n" @@ -770,23 +770,28 @@ msgstr "Carregar" msgid "Crop" msgstr "Cortar" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "Não foi especificado um perfil." + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "Escolha uma área quadrada da imagem para ser o seu avatar" -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Perdi os dados do nosso ficheiro." -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "Avatar actualizado." -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "Falha ao actualizar avatar." -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 msgid "Avatar deleted." msgstr "Avatar apagado." @@ -925,7 +930,7 @@ msgid "Conversation" msgstr "Conversação" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Notas" @@ -1772,7 +1777,7 @@ msgstr "Notas de %s" msgid "Updates from members of %1$s on %2$s!" msgstr "Actualizações dos membros de %1$s em %2$s!" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Grupos" @@ -3450,7 +3455,7 @@ msgid "Description" msgstr "Descrição" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "Estatísticas" @@ -3617,7 +3622,7 @@ msgid "Members" msgstr "Membros" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Nenhum)" @@ -3799,7 +3804,8 @@ msgid "Unknown language \"%s\"." msgstr "Língua desconhecida \"%s\"." #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +#, fuzzy +msgid "Minimum text limit is 0 (unlimited)." msgstr "O valor mínimo de limite para o texto é 140 caracteres." #: actions/siteadminpanel.php:171 @@ -4078,8 +4084,7 @@ msgstr "Gravar configurações do site" msgid "You are not subscribed to that profile." msgstr "Não subscreveu esse perfil." -#: actions/subedit.php:83 classes/Subscription.php:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 msgid "Could not save subscription." msgstr "Não foi possível gravar a subscrição." @@ -4668,36 +4673,36 @@ msgstr "Problema na gravação da nota." msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "Foi bloqueado de fazer subscrições" -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "Já subscrito!" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 msgid "User has blocked you." msgstr "O utilizador bloqueou-o." -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 msgid "Not subscribed!" msgstr "Não subscrito!" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 msgid "Couldn't delete self-subscription." msgstr "Não foi possível apagar a auto-subscrição." -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 #, fuzzy msgid "Couldn't delete subscription OMB token." msgstr "Não foi possível apagar a subscrição." -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "Não foi possível apagar a subscrição." -#: classes/User.php:378 +#: classes/User.php:363 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "%1$s dá-lhe as boas-vindas, @%2$s!" @@ -5000,22 +5005,22 @@ msgstr "Posteriores" msgid "Before" msgstr "Anteriores" -#: lib/activity.php:453 +#: lib/activity.php:120 +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/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." @@ -5535,19 +5540,19 @@ msgstr "" "tracks - ainda não implementado.\n" "tracking - ainda não implementado.\n" -#: lib/common.php:136 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "Ficheiro de configuração não encontrado. " -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "Procurei ficheiros de configuração nos seguintes sítios: " -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "Talvez queira correr o instalador para resolver esta questão." -#: lib/common.php:140 +#: lib/common.php:139 msgid "Go to the installer." msgstr "Ir para o instalador." @@ -5725,40 +5730,40 @@ msgstr "Categorias nas notas do grupo %s" msgid "This page is not available in a media type you accept" msgstr "Esta página não está disponível num formato que você aceite" -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "Formato do ficheiro da imagem não é suportado." -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Esse ficheiro é demasiado grande. O tamanho máximo de ficheiro é %s." -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "Transferência parcial." -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Ocorreu um erro de sistema ao transferir o ficheiro." -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "Ficheiro não é uma imagem ou está corrompido." -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Perdi o nosso ficheiro." -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "Tipo do ficheiro é desconhecido" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "MB" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "kB" @@ -6293,7 +6298,7 @@ msgstr "Categorias nas notas de %s" msgid "Unknown" msgstr "Desconhecida" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Subscrições" @@ -6301,7 +6306,7 @@ msgstr "Subscrições" msgid "All subscriptions" msgstr "Todas as subscrições" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Subscritores" @@ -6309,15 +6314,20 @@ msgstr "Subscritores" msgid "All subscribers" msgstr "Todos os subscritores" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 msgid "User ID" msgstr "ID do utilizador" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "Membro desde" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "Todos os grupos" @@ -6488,6 +6498,11 @@ msgstr "Deixar de subscrever este utilizador" msgid "Unsubscribe" msgstr "Abandonar" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "Utilizador não tem perfil." + #: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Editar Avatar" diff --git a/locale/pt_BR/LC_MESSAGES/statusnet.po b/locale/pt_BR/LC_MESSAGES/statusnet.po index a431c99b8..78c07d4b8 100644 --- a/locale/pt_BR/LC_MESSAGES/statusnet.po +++ b/locale/pt_BR/LC_MESSAGES/statusnet.po @@ -12,12 +12,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:41:27+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:10:55+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 (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt-br\n" "X-Message-Group: out-statusnet\n" @@ -46,10 +46,9 @@ msgstr "Impedir usuários anônimos (não autenticados) de visualizar o site?" #. TRANS: Checkbox label for prohibiting anonymous users from viewing site. #: actions/accessadminpanel.php:167 -#, fuzzy msgctxt "LABEL" msgid "Private" -msgstr "Particular" +msgstr "Privado" #. TRANS: Checkbox instructions for admin setting "Invite only" #: actions/accessadminpanel.php:174 @@ -627,7 +626,7 @@ msgstr "Essa mensagem não existe." #: actions/apistatusesretweet.php:83 msgid "Cannot repeat your own notice." -msgstr "Você não pode repetria sua própria mensagem." +msgstr "Você não pode repetir a sua própria mensagem." #: actions/apistatusesretweet.php:91 msgid "Already repeated that notice." @@ -778,23 +777,28 @@ msgstr "Enviar" msgid "Crop" msgstr "Cortar" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "Não foi especificado nenhum perfil." + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "Selecione uma área quadrada da imagem para ser seu avatar" -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Os dados do nosso arquivo foram perdidos." -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "O avatar foi atualizado." -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "Não foi possível atualizar o avatar." -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 msgid "Avatar deleted." msgstr "O avatar foi excluído." @@ -933,7 +937,7 @@ msgid "Conversation" msgstr "Conversa" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Mensagens" @@ -1587,23 +1591,20 @@ msgid "Cannot read file." msgstr "Não foi possível ler o arquivo." #: actions/grantrole.php:62 actions/revokerole.php:62 -#, fuzzy msgid "Invalid role." -msgstr "Token inválido." +msgstr "Papel inválido." #: actions/grantrole.php:66 actions/revokerole.php:66 msgid "This role is reserved and cannot be set." -msgstr "" +msgstr "Este papel está reservado e não pode ser definido." #: actions/grantrole.php:75 -#, fuzzy msgid "You cannot grant user roles on this site." -msgstr "Você não pode colocar usuários deste site em isolamento." +msgstr "Você não pode definir papéis para os usuários neste site." #: actions/grantrole.php:82 -#, fuzzy msgid "User already has this role." -msgstr "O usuário já está silenciado." +msgstr "O usuário já possui este papel." #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 @@ -1764,7 +1765,7 @@ msgstr "Mensagens de %s" msgid "Updates from members of %1$s on %2$s!" msgstr "Atualizações dos membros de %1$s no %2$s!" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Grupos" @@ -2098,9 +2099,8 @@ msgid "You must be logged in to join a group." msgstr "Você deve estar autenticado para se associar a um grupo." #: actions/joingroup.php:88 actions/leavegroup.php:88 -#, fuzzy msgid "No nickname or ID." -msgstr "Nenhuma identificação." +msgstr "Nenhum apelido ou identificação." #: actions/joingroup.php:141 #, php-format @@ -3358,14 +3358,12 @@ msgid "Replies to %1$s on %2$s!" msgstr "Respostas para %1$s no %2$s" #: actions/revokerole.php:75 -#, fuzzy msgid "You cannot revoke user roles on this site." -msgstr "Você não pode silenciar os usuários neste site." +msgstr "Não é possível revogar os papéis dos usuários neste site." #: actions/revokerole.php:82 -#, fuzzy msgid "User doesn't have this role." -msgstr "Usuário sem um perfil correspondente" +msgstr "O usuário não possui este papel." #: actions/rsd.php:146 actions/version.php:157 msgid "StatusNet" @@ -3395,7 +3393,7 @@ msgstr "Gerenciar sessões" #: actions/sessionsadminpanel.php:177 msgid "Whether to handle sessions ourselves." -msgstr "Define se nós cuidamos do gerenciamento das sessões." +msgstr "Define se as sessões terão gerenciamento próprio." #: actions/sessionsadminpanel.php:181 msgid "Session debugging" @@ -3437,7 +3435,7 @@ msgid "Description" msgstr "Descrição" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "Estatísticas" @@ -3604,7 +3602,7 @@ msgid "Members" msgstr "Membros" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Nenhum)" @@ -3770,7 +3768,6 @@ msgid "User is already silenced." msgstr "O usuário já está silenciado." #: actions/siteadminpanel.php:69 -#, fuzzy msgid "Basic settings for this StatusNet site" msgstr "Configurações básicas para esta instância do StatusNet." @@ -3788,7 +3785,8 @@ msgid "Unknown language \"%s\"." msgstr "Idioma \"%s\" desconhecido." #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +#, fuzzy +msgid "Minimum text limit is 0 (unlimited)." msgstr "O comprimento máximo do texto é de 140 caracteres." #: actions/siteadminpanel.php:171 @@ -3846,6 +3844,8 @@ msgstr "Idioma padrão" #: actions/siteadminpanel.php:263 msgid "Site language when autodetection from browser settings is not available" msgstr "" +"Idioma do site quando as configurações de autodetecção a partir do navegador " +"não estiverem disponíveis" #: actions/siteadminpanel.php:271 msgid "Limits" @@ -3870,37 +3870,32 @@ msgstr "" "coisa novamente." #: actions/sitenoticeadminpanel.php:56 -#, fuzzy msgid "Site Notice" -msgstr "Mensagem do site" +msgstr "Avisos do site" #: actions/sitenoticeadminpanel.php:67 -#, fuzzy msgid "Edit site-wide message" -msgstr "Nova mensagem" +msgstr "Editar os avisos do site (exibidos em todas as páginas)" #: actions/sitenoticeadminpanel.php:103 -#, fuzzy msgid "Unable to save site notice." -msgstr "Não foi possível salvar suas configurações de aparência." +msgstr "Não foi possível salvar os avisos do site." #: actions/sitenoticeadminpanel.php:113 msgid "Max length for the site-wide notice is 255 chars" -msgstr "" +msgstr "O tamanho máximo para os avisos é de 255 caracteres." #: actions/sitenoticeadminpanel.php:176 -#, fuzzy msgid "Site notice text" -msgstr "Mensagem do site" +msgstr "Texto dos avisos" #: actions/sitenoticeadminpanel.php:178 msgid "Site-wide notice text (255 chars max; HTML okay)" -msgstr "" +msgstr "Texto dos avisos do site (no máximo 255 caracteres; pode usar HTML)" #: actions/sitenoticeadminpanel.php:198 -#, fuzzy msgid "Save site notice" -msgstr "Mensagem do site" +msgstr "Salvar os avisos do site" #: actions/smssettings.php:58 msgid "SMS settings" @@ -4007,9 +4002,8 @@ msgid "Snapshots" msgstr "Estatísticas" #: actions/snapshotadminpanel.php:65 -#, fuzzy msgid "Manage snapshot configuration" -msgstr "Mude as configurações do site" +msgstr "Gerenciar as configurações das estatísticas" #: actions/snapshotadminpanel.php:127 msgid "Invalid snapshot run value." @@ -4056,32 +4050,28 @@ msgid "Snapshots will be sent to this URL" msgstr "As estatísticas serão enviadas para esta URL" #: actions/snapshotadminpanel.php:248 -#, fuzzy msgid "Save snapshot settings" -msgstr "Salvar as configurações do site" +msgstr "Salvar as configurações de estatísticas" #: actions/subedit.php:70 msgid "You are not subscribed to that profile." msgstr "Você não está assinando esse perfil." -#: actions/subedit.php:83 classes/Subscription.php:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 msgid "Could not save subscription." msgstr "Não foi possível salvar a assinatura." #: actions/subscribe.php:77 msgid "This action only accepts POST requests." -msgstr "" +msgstr "Esta ação aceita somente requisições POST." #: actions/subscribe.php:107 -#, fuzzy msgid "No such profile." -msgstr "Esse arquivo não existe." +msgstr "Este perfil não existe." #: actions/subscribe.php:117 -#, fuzzy msgid "You cannot subscribe to an OMB 0.1 remote profile with this action." -msgstr "Você não está assinando esse perfil." +msgstr "Não é possível assinar um perfil OMB 0.1 remoto com essa ação." #: actions/subscribe.php:145 msgid "Subscribed" @@ -4586,9 +4576,8 @@ msgid "Group leave failed." msgstr "Não foi possível deixar o grupo." #: classes/Local_group.php:41 -#, fuzzy msgid "Could not update local group." -msgstr "Não foi possível atualizar o grupo." +msgstr "Não foi possível atualizar o grupo local." #: classes/Login_token.php:76 #, php-format @@ -4652,36 +4641,35 @@ msgstr "Problema no salvamento das mensagens recebidas do grupo." msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "Você está proibido de assinar." -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "Já assinado!" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 msgid "User has blocked you." msgstr "O usuário bloqueou você." -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 msgid "Not subscribed!" msgstr "Não assinado!" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 msgid "Couldn't delete self-subscription." msgstr "Não foi possível excluir a auto-assinatura." -#: classes/Subscription.php:190 -#, fuzzy +#: classes/Subscription.php:200 msgid "Couldn't delete subscription OMB token." -msgstr "Não foi possível excluir a assinatura." +msgstr "Não foi possível excluir o token de assinatura OMB." -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "Não foi possível excluir a assinatura." -#: classes/User.php:378 +#: classes/User.php:363 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Bem vindo(a) a %1$s, @%2$s!" @@ -4691,18 +4679,16 @@ msgid "Could not create group." msgstr "Não foi possível criar o grupo." #: classes/User_group.php:489 -#, fuzzy msgid "Could not set group URI." -msgstr "Não foi possível configurar a associação ao grupo." +msgstr "Não foi possível definir a URI do grupo." #: classes/User_group.php:510 msgid "Could not set group membership." msgstr "Não foi possível configurar a associação ao grupo." #: classes/User_group.php:524 -#, fuzzy msgid "Could not save local group info." -msgstr "Não foi possível salvar a assinatura." +msgstr "Não foi possível salvar a informação do grupo local." #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" @@ -4747,27 +4733,23 @@ msgstr "Navegação primária no site" #. TRANS: Tooltip for main menu option "Personal" #: lib/action.php:430 -#, fuzzy msgctxt "TOOLTIP" msgid "Personal profile and friends timeline" msgstr "Perfil pessoal e fluxo de mensagens dos amigos" #: lib/action.php:433 -#, fuzzy msgctxt "MENU" msgid "Personal" msgstr "Pessoal" #. TRANS: Tooltip for main menu option "Account" #: lib/action.php:435 -#, fuzzy msgctxt "TOOLTIP" msgid "Change your email, avatar, password, profile" -msgstr "Mude seu e-mail, avatar, senha, perfil" +msgstr "Altere seu e-mail, avatar, senha, perfil" #. TRANS: Tooltip for main menu option "Services" #: lib/action.php:440 -#, fuzzy msgctxt "TOOLTIP" msgid "Connect to services" msgstr "Conecte-se a outros serviços" @@ -4778,16 +4760,14 @@ msgstr "Conectar" #. TRANS: Tooltip for menu option "Admin" #: lib/action.php:446 -#, fuzzy msgctxt "TOOLTIP" msgid "Change site configuration" -msgstr "Mude as configurações do site" +msgstr "Altere as configurações do site" #: lib/action.php:449 -#, fuzzy msgctxt "MENU" msgid "Admin" -msgstr "Admin" +msgstr "Administrar" #. TRANS: Tooltip for main menu option "Invite" #: lib/action.php:453 @@ -4979,22 +4959,22 @@ msgstr "Próximo" msgid "Before" msgstr "Anterior" -#: lib/activity.php:453 +#: lib/activity.php:120 +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/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." @@ -5214,9 +5194,9 @@ msgid "Could not find a user with nickname %s" msgstr "Não foi possível encontrar um usuário com a identificação %s" #: lib/command.php:143 -#, fuzzy, php-format +#, php-format msgid "Could not find a local user with nickname %s" -msgstr "Não foi possível encontrar um usuário com a identificação %s" +msgstr "Não foi possível encontrar um usuário local com a identificação %s" #: lib/command.php:176 msgid "Sorry, this command is not yet implemented." @@ -5296,6 +5276,8 @@ msgid "" "%s is a remote profile; you can only send direct messages to users on the " "same server." msgstr "" +"%s é um perfil remoto; você pode só pode enviar mensagens diretas para " +"usuários do mesmo servidor." #: lib/command.php:450 #, php-format @@ -5349,9 +5331,8 @@ msgid "Specify the name of the user to subscribe to" msgstr "Especifique o nome do usuário que será assinado" #: lib/command.php:602 -#, fuzzy msgid "Can't subscribe to OMB profiles by command." -msgstr "Você não está assinando esse perfil." +msgstr "Não é possível assinar perfis OMB com comandos." #: lib/command.php:608 #, php-format @@ -5399,7 +5380,7 @@ msgstr "" "s" #: lib/command.php:735 -#, fuzzy, php-format +#, php-format msgid "Unsubscribed %s" msgstr "Cancelada a assinatura de %s" @@ -5434,7 +5415,6 @@ msgstr[0] "Você é membro deste grupo:" msgstr[1] "Você é membro destes grupos:" #: lib/command.php:812 -#, fuzzy msgid "" "Commands:\n" "on - turn on notifications\n" @@ -5485,8 +5465,9 @@ msgstr "" "subscribers - lista as pessoas que seguem você\n" "leave - deixa de assinar o usuário\n" "d - mensagem direta para o usuário\n" -"get - obtém a última mensagem do usuário\n" -"whois - obtém as informações do perfil do usuário\n" +"get - obtém a última mensagem do usuário\n" +"whois - obtém as informações do perfil do usuário\n" +"lose - obriga o usuário a deixar de segui-lo\n" "fav - adiciona a último mensagem do usuário como uma " "'favorita'\n" "fav # - adiciona a mensagem identificada como 'favorita'\n" @@ -5514,19 +5495,19 @@ msgstr "" "tracks - não implementado ainda\n" "tracking - não implementado ainda\n" -#: lib/common.php:136 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "Não foi encontrado nenhum arquivo de configuração. " -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "Eu procurei pelos arquivos de configuração nos seguintes lugares: " -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "Você pode querer executar o instalador para corrigir isto." -#: lib/common.php:140 +#: lib/common.php:139 msgid "Go to the installer." msgstr "Ir para o instalador." @@ -5627,7 +5608,7 @@ msgstr "Ir" #: lib/grantroleform.php:91 #, php-format msgid "Grant this user the \"%s\" role" -msgstr "" +msgstr "Associa o papel \"%s\" a este usuário" #: lib/groupeditform.php:163 msgid "URL of the homepage or blog of the group or topic" @@ -5704,40 +5685,40 @@ msgstr "Etiquetas nas mensagens do grupo %s" msgid "This page is not available in a media type you accept" msgstr "Esta página não está disponível em um tipo de mídia que você aceita" -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "Formato de imagem não suportado." -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "O arquivo é muito grande. O tamanho máximo é de %s." -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "Envio parcial." -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Erro no sistema durante o envio do arquivo." -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "Imagem inválida ou arquivo corrompido." -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Nosso arquivo foi perdido." -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "Tipo de arquivo desconhecido" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "Mb" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "Kb" @@ -6273,7 +6254,7 @@ msgstr "Etiquetas nas mensagens de %s" msgid "Unknown" msgstr "Desconhecido" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Assinaturas" @@ -6281,7 +6262,7 @@ msgstr "Assinaturas" msgid "All subscriptions" msgstr "Todas as assinaturas" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Assinantes" @@ -6289,15 +6270,20 @@ msgstr "Assinantes" msgid "All subscribers" msgstr "Todos os assinantes" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 msgid "User ID" msgstr "ID do usuário" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "Membro desde" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "Todos os grupos" @@ -6338,9 +6324,9 @@ msgid "Repeat this notice" msgstr "Repetir esta mensagem" #: lib/revokeroleform.php:91 -#, fuzzy, php-format +#, php-format msgid "Revoke the \"%s\" role from this user" -msgstr "Bloquear este usuário neste grupo" +msgstr "Revoga o papel \"%s\" deste usuário" #: lib/router.php:677 msgid "No single user defined for single-user mode." @@ -6468,6 +6454,11 @@ msgstr "Cancelar a assinatura deste usuário" msgid "Unsubscribe" msgstr "Cancelar" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "O usuário não tem perfil." + #: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Editar o avatar" @@ -6478,7 +6469,7 @@ msgstr "Ações do usuário" #: lib/userprofile.php:237 msgid "User deletion in progress..." -msgstr "" +msgstr "Exclusão do usuário em andamento..." #: lib/userprofile.php:263 msgid "Edit profile settings" @@ -6501,9 +6492,8 @@ msgid "Moderate" msgstr "Moderar" #: lib/userprofile.php:364 -#, fuzzy msgid "User role" -msgstr "Perfil do usuário" +msgstr "Papel do usuário" #: lib/userprofile.php:366 msgctxt "role" @@ -6511,10 +6501,9 @@ msgid "Administrator" msgstr "Administrador" #: lib/userprofile.php:367 -#, fuzzy msgctxt "role" msgid "Moderator" -msgstr "Moderar" +msgstr "Moderador" #: lib/util.php:1046 msgid "a few seconds ago" diff --git a/locale/ru/LC_MESSAGES/statusnet.po b/locale/ru/LC_MESSAGES/statusnet.po index b436d9f1e..472b3cbbe 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-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:41:30+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:10:59+0000\n" "Language-Team: Russian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: out-statusnet\n" @@ -774,23 +774,28 @@ msgstr "Загрузить" msgid "Crop" msgstr "Обрезать" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "Профиль не определен." + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "Подберите нужный квадратный участок для вашей аватары" -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Потеряна информация о файле." -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "Аватара обновлена." -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "Неудача при обновлении аватары." -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 msgid "Avatar deleted." msgstr "Аватара удалена." @@ -928,7 +933,7 @@ msgid "Conversation" msgstr "Дискуссия" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Записи" @@ -1760,7 +1765,7 @@ msgstr "Лента %s" msgid "Updates from members of %1$s on %2$s!" msgstr "Обновления участников %1$s на %2$s!" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Группы" @@ -3414,7 +3419,7 @@ msgid "Description" msgstr "Описание" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "Статистика" @@ -3581,7 +3586,7 @@ msgid "Members" msgstr "Участники" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(пока ничего нет)" @@ -3765,7 +3770,8 @@ msgid "Unknown language \"%s\"." msgstr "Неизвестный язык «%s»." #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +#, fuzzy +msgid "Minimum text limit is 0 (unlimited)." msgstr "Минимальное ограничение текста составляет 140 символов." #: actions/siteadminpanel.php:171 @@ -4039,8 +4045,7 @@ msgstr "Сохранить настройки снимка" msgid "You are not subscribed to that profile." msgstr "Вы не подписаны на этот профиль." -#: actions/subedit.php:83 classes/Subscription.php:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 msgid "Could not save subscription." msgstr "Не удаётся сохранить подписку." @@ -4623,35 +4628,35 @@ msgstr "Проблемы с сохранением входящих сообще msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "Вы заблокированы от подписки." -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "Уже подписаны!" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 msgid "User has blocked you." msgstr "Пользователь заблокировал Вас." -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 msgid "Not subscribed!" msgstr "Не подписаны!" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 msgid "Couldn't delete self-subscription." msgstr "Невозможно удалить самоподписку." -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 msgid "Couldn't delete subscription OMB token." msgstr "Не удаётся удалить подписочный жетон OMB." -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "Не удаётся удалить подписку." -#: classes/User.php:378 +#: classes/User.php:363 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Добро пожаловать на %1$s, @%2$s!" @@ -4939,22 +4944,22 @@ msgstr "Сюда" msgid "Before" msgstr "Туда" -#: lib/activity.php:453 +#: lib/activity.php:120 +msgid "Expecting a root feed element but got a whole XML document." +msgstr "Ожидался корневой элемент потока, а получен XML-документ целиком." + +#: lib/activityutils.php:208 msgid "Can't handle remote content yet." msgstr "Пока ещё нельзя обрабатывать удалённое содержимое." -#: lib/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "Пока ещё нельзя обрабатывать встроенный XML." -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "Пока ещё нельзя обрабатывать встроенное содержание Base64." -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." @@ -5469,19 +5474,19 @@ msgstr "" "tracks — пока не реализовано.\n" "tracking — пока не реализовано.\n" -#: lib/common.php:136 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "Конфигурационный файл не найден. " -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "Конфигурационные файлы искались в следующих местах: " -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "Возможно, вы решите запустить установщик для исправления этого." -#: lib/common.php:140 +#: lib/common.php:139 msgid "Go to the installer." msgstr "Перейти к установщику" @@ -5659,40 +5664,40 @@ msgstr "Теги записей группы %s" msgid "This page is not available in a media type you accept" msgstr "Страница недоступна для того типа, который Вы задействовали." -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "Неподдерживаемый формат файла изображения." -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Этот файл слишком большой. Максимальный размер файла составляет %s." -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "Частичная загрузка." -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Системная ошибка при загрузке файла." -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "Не является изображением или повреждённый файл." -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Потерян файл." -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "Неподдерживаемый тип файла" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "МБ" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "КБ" @@ -6226,7 +6231,7 @@ msgstr "Теги записей пользователя %s" msgid "Unknown" msgstr "Неизвестно" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Подписки" @@ -6234,7 +6239,7 @@ msgstr "Подписки" msgid "All subscriptions" msgstr "Все подписки." -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Подписчики" @@ -6242,15 +6247,20 @@ msgstr "Подписчики" msgid "All subscribers" msgstr "Все подписчики" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 msgid "User ID" msgstr "ID пользователя" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "Регистрация" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "Все группы" @@ -6421,6 +6431,11 @@ msgstr "Отписаться от этого пользователя" msgid "Unsubscribe" msgstr "Отписаться" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "У пользователя нет профиля." + #: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Изменить аватару" @@ -6431,7 +6446,7 @@ msgstr "Действия пользователя" #: lib/userprofile.php:237 msgid "User deletion in progress..." -msgstr "" +msgstr "Идёт удаление пользователя…" #: lib/userprofile.php:263 msgid "Edit profile settings" diff --git a/locale/statusnet.po b/locale/statusnet.po index eccc291e2..f8d6ea29c 100644 --- a/locale/statusnet.po +++ b/locale/statusnet.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-17 21:39+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -744,23 +744,27 @@ msgstr "" msgid "Crop" msgstr "" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +msgid "No file uploaded." +msgstr "" + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "" -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "" -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "" -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 msgid "Avatar deleted." msgstr "" @@ -895,7 +899,7 @@ msgid "Conversation" msgstr "" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "" @@ -1690,7 +1694,7 @@ msgstr "" msgid "Updates from members of %1$s on %2$s!" msgstr "" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "" @@ -3216,7 +3220,7 @@ msgid "Description" msgstr "" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "" @@ -3373,7 +3377,7 @@ msgid "Members" msgstr "" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" @@ -3532,7 +3536,7 @@ msgid "Unknown language \"%s\"." msgstr "" #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +msgid "Minimum text limit is 0 (unlimited)." msgstr "" #: actions/siteadminpanel.php:171 @@ -3793,8 +3797,7 @@ msgstr "" msgid "You are not subscribed to that profile." msgstr "" -#: actions/subedit.php:83 classes/Subscription.php:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 msgid "Could not save subscription." msgstr "" @@ -4330,35 +4333,35 @@ msgstr "" msgid "RT @%1$s %2$s" msgstr "" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "" -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 msgid "User has blocked you." msgstr "" -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 msgid "Not subscribed!" msgstr "" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 msgid "Couldn't delete self-subscription." msgstr "" -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 msgid "Couldn't delete subscription OMB token." msgstr "" -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "" -#: classes/User.php:378 +#: classes/User.php:363 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" @@ -4637,22 +4640,22 @@ msgstr "" msgid "Before" msgstr "" -#: lib/activity.php:453 +#: lib/activity.php:120 +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/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." @@ -5116,19 +5119,19 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "" -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:139 msgid "Go to the installer." msgstr "" @@ -5302,40 +5305,40 @@ msgstr "" msgid "This page is not available in a media type you accept" msgstr "" -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "" -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "" -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "" -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "" -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "" -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "" -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "" @@ -5778,7 +5781,7 @@ msgstr "" msgid "Unknown" msgstr "" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "" @@ -5786,7 +5789,7 @@ msgstr "" msgid "All subscriptions" msgstr "" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "" @@ -5794,15 +5797,20 @@ msgstr "" msgid "All subscribers" msgstr "" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 msgid "User ID" msgstr "" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "" @@ -5973,6 +5981,11 @@ msgstr "" 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 "" diff --git a/locale/sv/LC_MESSAGES/statusnet.po b/locale/sv/LC_MESSAGES/statusnet.po index eee7b6d72..681dfedce 100644 --- a/locale/sv/LC_MESSAGES/statusnet.po +++ b/locale/sv/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:41:33+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:11:02+0000\n" "Language-Team: Swedish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: sv\n" "X-Message-Group: out-statusnet\n" @@ -762,23 +762,28 @@ msgstr "Ladda upp" msgid "Crop" msgstr "Beskär" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "Ingen profil angiven." + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "Välj ett kvadratiskt område i bilden som din avatar" -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Förlorade vår fildata." -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "Avatar uppdaterad." -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "Misslyckades uppdatera avatar." -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 msgid "Avatar deleted." msgstr "Avatar borttagen." @@ -917,7 +922,7 @@ msgid "Conversation" msgstr "Konversationer" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Notiser" @@ -1739,7 +1744,7 @@ msgstr "%s tidslinje" msgid "Updates from members of %1$s on %2$s!" msgstr "Uppdateringar från medlemmar i %1$s på %2$s!" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Grupper" @@ -3398,7 +3403,7 @@ msgid "Description" msgstr "Beskrivning" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "Statistik" @@ -3566,7 +3571,7 @@ msgid "Members" msgstr "Medlemmar" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Ingen)" @@ -3745,7 +3750,8 @@ msgid "Unknown language \"%s\"." msgstr "Okänt språk \"%s\"." #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +#, fuzzy +msgid "Minimum text limit is 0 (unlimited)." msgstr "Minsta textbegränsning är 140 tecken." #: actions/siteadminpanel.php:171 @@ -4016,8 +4022,7 @@ 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:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 msgid "Could not save subscription." msgstr "Kunde inte spara prenumeration." @@ -4601,35 +4606,35 @@ msgstr "Problem med att spara gruppinkorg." msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "Du har blivit utestängd från att prenumerera." -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "Redan prenumerant!" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 msgid "User has blocked you." msgstr "Användaren har blockerat dig." -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 msgid "Not subscribed!" msgstr "Inte prenumerant!" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 msgid "Couldn't delete self-subscription." msgstr "Kunde inte ta bort själv-prenumeration." -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 msgid "Couldn't delete subscription OMB token." msgstr "Kunde inte radera OMB prenumerations-token." -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "Kunde inte ta bort prenumeration." -#: classes/User.php:378 +#: classes/User.php:363 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Välkommen till %1$s, @%2$s!" @@ -4914,22 +4919,22 @@ msgstr "Senare" msgid "Before" msgstr "Tidigare" -#: lib/activity.php:453 +#: lib/activity.php:120 +msgid "Expecting a root feed element but got a whole XML document." +msgstr "Förväntade ett flödes rotelement, men fick ett helt XML-dokument." + +#: lib/activityutils.php:208 msgid "Can't handle remote content yet." msgstr "Kan inte hantera fjärrinnehåll ännu." -#: lib/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "Kan inte hantera inbäddat XML-innehåll ännu." -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "Kan inte hantera inbäddat Base64-innehåll ännu." -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." @@ -5441,19 +5446,19 @@ msgstr "" "tracks - inte implementerat än.\n" "tracking - inte implementerat än.\n" -#: lib/common.php:136 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "Ingen konfigurationsfil hittades. " -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "Jag letade efter konfigurationsfiler på följande platser: " -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "Du kanske vill köra installeraren för att åtgärda detta." -#: lib/common.php:140 +#: lib/common.php:139 msgid "Go to the installer." msgstr "Gå till installeraren." @@ -5629,40 +5634,40 @@ msgstr "Taggar i %s grupps notiser" msgid "This page is not available in a media type you accept" msgstr "Denna sida är inte tillgänglig i den mediatyp du accepterat" -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "Bildfilens format stödjs inte." -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Denna fil är för stor. Den maximala filstorleken är %s." -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "Bitvis uppladdad." -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Systemfel vid uppladdning av fil." -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "Inte en bildfil eller så är filen korrupt." -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Förlorade vår fil." -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "Okänd filtyp" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "MB" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "kB" @@ -6196,7 +6201,7 @@ msgstr "Taggar i %ss notiser" msgid "Unknown" msgstr "Okänd" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Prenumerationer" @@ -6204,7 +6209,7 @@ msgstr "Prenumerationer" msgid "All subscriptions" msgstr "Alla prenumerationer" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Prenumeranter" @@ -6212,15 +6217,20 @@ msgstr "Prenumeranter" msgid "All subscribers" msgstr "Alla prenumeranter" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 msgid "User ID" msgstr "Användar-ID" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "Medlem sedan" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "Alla grupper" @@ -6391,6 +6401,11 @@ msgstr "Avsluta prenumerationen på denna användare" msgid "Unsubscribe" msgstr "Avsluta pren." +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "Användaren har ingen profil." + #: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Redigera avatar" @@ -6401,7 +6416,7 @@ msgstr "Åtgärder för användare" #: lib/userprofile.php:237 msgid "User deletion in progress..." -msgstr "" +msgstr "Borttagning av användare pågår..." #: lib/userprofile.php:263 msgid "Edit profile settings" diff --git a/locale/te/LC_MESSAGES/statusnet.po b/locale/te/LC_MESSAGES/statusnet.po index 091dd8fda..270bf6885 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-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:41:36+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:11:06+0000\n" "Language-Team: Telugu\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: te\n" "X-Message-Group: out-statusnet\n" @@ -758,23 +758,28 @@ msgstr "ఎగుమతించు" msgid "Crop" msgstr "కత్తిరించు" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "పాక్షిక ఎగుమతి." + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "మీ అవతారానికి గానూ ఈ చిత్రం నుండి ఒక చతురస్రపు ప్రదేశాన్ని ఎంచుకోండి" -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "అవతారాన్ని తాజాకరించాం." -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "అవతారపు తాజాకరణ విఫలమైంది." -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 msgid "Avatar deleted." msgstr "అవతారాన్ని తొలగించాం." @@ -913,7 +918,7 @@ msgid "Conversation" msgstr "సంభాషణ" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "సందేశాలు" @@ -1722,7 +1727,7 @@ msgstr "%s కాలరేఖ" msgid "Updates from members of %1$s on %2$s!" msgstr "%s యొక్క మైక్రోబ్లాగు" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "గుంపులు" @@ -3316,7 +3321,7 @@ msgid "Description" msgstr "వివరణ" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "గణాంకాలు" @@ -3475,7 +3480,7 @@ msgid "Members" msgstr "సభ్యులు" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(ఏమీలేదు)" @@ -3637,7 +3642,8 @@ msgid "Unknown language \"%s\"." msgstr "గుర్తు తెలియని భాష \"%s\"." #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +#, fuzzy +msgid "Minimum text limit is 0 (unlimited)." msgstr "కనిష్ఠ పాఠ్య పరిమితి 140 అక్షరాలు." #: actions/siteadminpanel.php:171 @@ -3908,8 +3914,7 @@ msgstr "సైటు అమరికలను భద్రపరచు" msgid "You are not subscribed to that profile." msgstr "" -#: actions/subedit.php:83 classes/Subscription.php:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 #, fuzzy msgid "Could not save subscription." msgstr "చందాని సృష్టించలేకపోయాం." @@ -4457,38 +4462,38 @@ msgstr "సందేశాన్ని భద్రపరచడంలో పొ msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "చందాచేరడం నుండి మిమ్మల్ని నిషేధించారు." -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "ఇప్పటికే చందాచేరారు!" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 msgid "User has blocked you." msgstr "వాడుకరి మిమ్మల్ని నిరోధించారు." -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 #, fuzzy msgid "Not subscribed!" msgstr "చందాదార్లు" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 #, fuzzy msgid "Couldn't delete self-subscription." msgstr "చందాని తొలగించలేకపోయాం." -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 #, fuzzy msgid "Couldn't delete subscription OMB token." msgstr "చందాని తొలగించలేకపోయాం." -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "చందాని తొలగించలేకపోయాం." -#: classes/User.php:378 +#: classes/User.php:363 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "@%2$s, %1$sకి స్వాగతం!" @@ -4779,22 +4784,22 @@ msgstr "తర్వాత" msgid "Before" msgstr "ఇంతక్రితం" -#: lib/activity.php:453 +#: lib/activity.php:120 +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/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." @@ -5276,20 +5281,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:135 #, fuzzy msgid "No configuration file found. " msgstr "నిర్ధారణ సంకేతం లేదు." -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:139 msgid "Go to the installer." msgstr "" @@ -5467,41 +5472,41 @@ msgstr "" msgid "This page is not available in a media type you accept" msgstr "" -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "" -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "ఇది చాలా పొడవుంది. గరిష్ఠ సందేశ పరిమాణం 140 అక్షరాలు." -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "పాక్షిక ఎగుమతి." -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "" -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "బొమ్మ కాదు లేదా పాడైపోయిన ఫైలు." -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 #, fuzzy msgid "Lost our file." msgstr "అటువంటి సందేశమేమీ లేదు." -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "తెలియని ఫైలు రకం" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "మెబై" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "కిబై" @@ -5989,7 +5994,7 @@ msgstr "" msgid "Unknown" msgstr "" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "చందాలు" @@ -5997,7 +6002,7 @@ msgstr "చందాలు" msgid "All subscriptions" msgstr "అన్ని చందాలు" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "చందాదార్లు" @@ -6005,15 +6010,20 @@ msgstr "చందాదార్లు" msgid "All subscribers" msgstr "అందరు చందాదార్లు" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 msgid "User ID" msgstr "వాడుకరి ID" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "సభ్యులైన తేదీ" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "అన్ని గుంపులు" @@ -6190,6 +6200,11 @@ msgstr "ఈ వాడుకరి నుండి చందామాను" msgid "Unsubscribe" msgstr "చందామాను" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "వాడుకరికి ప్రొఫైలు లేదు." + #: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "అవతారాన్ని మార్చు" diff --git a/locale/tr/LC_MESSAGES/statusnet.po b/locale/tr/LC_MESSAGES/statusnet.po index b6668adcd..051abd983 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-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:41:39+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:11:09+0000\n" "Language-Team: Turkish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tr\n" "X-Message-Group: out-statusnet\n" @@ -785,23 +785,28 @@ msgstr "Yükle" msgid "Crop" msgstr "" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "Kısmi yükleme." + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "" -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "Avatar güncellendi." -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "Avatar güncellemede hata." -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 #, fuzzy msgid "Avatar deleted." msgstr "Avatar güncellendi." @@ -946,7 +951,7 @@ msgid "Conversation" msgstr "Yer" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Durum mesajları" @@ -1797,7 +1802,7 @@ msgstr "" msgid "Updates from members of %1$s on %2$s!" msgstr "%s adli kullanicinin durum mesajlari" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "" @@ -3418,7 +3423,7 @@ msgid "Description" msgstr "Abonelikler" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "İstatistikler" @@ -3578,7 +3583,7 @@ msgid "Members" msgstr "Üyelik başlangıcı" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" @@ -3741,7 +3746,7 @@ msgid "Unknown language \"%s\"." msgstr "" #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +msgid "Minimum text limit is 0 (unlimited)." msgstr "" #: actions/siteadminpanel.php:171 @@ -4015,8 +4020,7 @@ msgstr "Ayarlar" msgid "You are not subscribed to that profile." msgstr "Bize o profili yollamadınız" -#: actions/subedit.php:83 classes/Subscription.php:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 #, fuzzy msgid "Could not save subscription." msgstr "Abonelik oluşturulamadı." @@ -4584,39 +4588,39 @@ msgstr "Durum mesajını kaydederken hata oluştu." msgid "RT @%1$s %2$s" msgstr "" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "" -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 #, fuzzy msgid "User has blocked you." msgstr "Kullanıcının profili yok." -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 #, fuzzy msgid "Not subscribed!" msgstr "Bu kullanıcıyı zaten takip etmiyorsunuz!" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 #, fuzzy msgid "Couldn't delete self-subscription." msgstr "Abonelik silinemedi." -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 #, fuzzy msgid "Couldn't delete subscription OMB token." msgstr "Abonelik silinemedi." -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "Abonelik silinemedi." -#: classes/User.php:378 +#: classes/User.php:363 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" @@ -4924,22 +4928,22 @@ msgstr "« Sonra" msgid "Before" msgstr "Önce »" -#: lib/activity.php:453 +#: lib/activity.php:120 +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/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." @@ -5430,20 +5434,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:135 #, fuzzy msgid "No configuration file found. " msgstr "Onay kodu yok." -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:139 msgid "Go to the installer." msgstr "" @@ -5628,42 +5632,42 @@ msgstr "" msgid "This page is not available in a media type you accept" msgstr "Bu sayfa kabul ettiğiniz ortam türünde kullanılabilir değil" -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "Desteklenmeyen görüntü dosyası biçemi." -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "" "Ah, durumunuz biraz uzun kaçtı. Azami 180 karaktere sığdırmaya ne dersiniz?" -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "Kısmi yükleme." -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Dosya yüklemede sistem hatası." -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "Bu bir resim dosyası değil ya da dosyada hata var" -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 #, fuzzy msgid "Lost our file." msgstr "Böyle bir durum mesajı yok." -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "" @@ -6127,7 +6131,7 @@ msgstr "" msgid "Unknown" msgstr "" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Abonelikler" @@ -6135,7 +6139,7 @@ msgstr "Abonelikler" msgid "All subscriptions" msgstr "Bütün abonelikler" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Abone olanlar" @@ -6144,15 +6148,20 @@ msgstr "Abone olanlar" msgid "All subscribers" msgstr "Abone olanlar" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 msgid "User ID" msgstr "" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "Üyelik başlangıcı" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "" @@ -6334,6 +6343,11 @@ msgstr "" msgid "Unsubscribe" msgstr "Aboneliği sonlandır" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "Kullanıcının profili yok." + #: lib/userprofile.php:117 #, fuzzy msgid "Edit Avatar" diff --git a/locale/uk/LC_MESSAGES/statusnet.po b/locale/uk/LC_MESSAGES/statusnet.po index 39b7d186b..8121f2068 100644 --- a/locale/uk/LC_MESSAGES/statusnet.po +++ b/locale/uk/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:41:42+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:11:12+0000\n" "Language-Team: Ukrainian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: out-statusnet\n" @@ -772,23 +772,28 @@ msgstr "Завантажити" msgid "Crop" msgstr "Втяти" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "Не визначено жодного профілю." + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "Оберіть квадратну ділянку зображення, яка й буде Вашою автарою." -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "Дані Вашого файлу десь загубились." -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "Аватару оновлено." -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "Оновлення аватари невдале." -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 msgid "Avatar deleted." msgstr "Аватару видалено." @@ -926,7 +931,7 @@ msgid "Conversation" msgstr "Розмова" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Дописи" @@ -1744,7 +1749,7 @@ msgstr "%s стрічка" msgid "Updates from members of %1$s on %2$s!" msgstr "Оновлення членів %1$s на %2$s!" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "Групи" @@ -3405,7 +3410,7 @@ msgid "Description" msgstr "Опис" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "Статистика" @@ -3572,7 +3577,7 @@ msgid "Members" msgstr "Учасники" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(Пусто)" @@ -3752,7 +3757,8 @@ msgid "Unknown language \"%s\"." msgstr "Невідома мова «%s»." #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +#, fuzzy +msgid "Minimum text limit is 0 (unlimited)." msgstr "Ліміт текстових повідомлень становить 140 знаків." #: actions/siteadminpanel.php:171 @@ -4026,8 +4032,7 @@ msgstr "Зберегти налаштування знімку" msgid "You are not subscribed to that profile." msgstr "Ви не підписані до цього профілю." -#: actions/subedit.php:83 classes/Subscription.php:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 msgid "Could not save subscription." msgstr "Не вдалося зберегти підписку." @@ -4608,35 +4613,35 @@ msgstr "Проблема при збереженні вхідних дописі msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "Вас позбавлено можливості підписатись." -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "Вже підписаний!" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 msgid "User has blocked you." msgstr "Користувач заблокував Вас." -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 msgid "Not subscribed!" msgstr "Не підписано!" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 msgid "Couldn't delete self-subscription." msgstr "Не можу видалити самопідписку." -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 msgid "Couldn't delete subscription OMB token." msgstr "Не вдається видалити токен підписки OMB." -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "Не вдалося видалити підписку." -#: classes/User.php:378 +#: classes/User.php:363 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "Вітаємо на %1$s, @%2$s!" @@ -4921,22 +4926,23 @@ msgstr "Вперед" msgid "Before" msgstr "Назад" -#: lib/activity.php:453 +#: lib/activity.php:120 +msgid "Expecting a root feed element but got a whole XML document." +msgstr "" +"В очікуванні кореневого елементу веб-стрічки, отримали цілий документ XML." + +#: lib/activityutils.php:208 msgid "Can't handle remote content yet." msgstr "Поки що не можу обробити віддалений контент." -#: lib/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "Поки що не можу обробити вбудований XML контент." -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "Поки що не можу обробити вбудований контент Base64." -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." @@ -5448,19 +5454,19 @@ msgstr "" "tracks — наразі не виконується\n" "tracking — наразі не виконується\n" -#: lib/common.php:136 +#: lib/common.php:135 msgid "No configuration file found. " msgstr "Файлу конфігурації не знайдено. " -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "Шукав файли конфігурації в цих місцях: " -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "Запустіть файл інсталяції, аби полагодити це." -#: lib/common.php:140 +#: lib/common.php:139 msgid "Go to the installer." msgstr "Іти до файлу інсталяції." @@ -5637,40 +5643,40 @@ msgstr "Теґи у дописах групи %s" msgid "This page is not available in a media type you accept" msgstr "Ця сторінка не доступна для того типу медіа, з яким ви погодились" -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "Формат зображення не підтримується." -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "Цей файл завеликий. Максимальний розмір %s." -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "Часткове завантаження." -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Система відповіла помилкою при завантаженні цього файла." -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "Це не зображення, або файл зіпсовано." -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 msgid "Lost our file." msgstr "Файл втрачено." -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "Тип файлу не підтримується" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "Мб" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "кб" @@ -6204,7 +6210,7 @@ msgstr "Теґи у дописах %s" msgid "Unknown" msgstr "Невідомо" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Підписки" @@ -6212,7 +6218,7 @@ msgstr "Підписки" msgid "All subscriptions" msgstr "Всі підписки" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Підписчики" @@ -6220,15 +6226,20 @@ msgstr "Підписчики" msgid "All subscribers" msgstr "Всі підписчики" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 msgid "User ID" msgstr "ІД" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "З нами від" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "Всі групи" @@ -6399,6 +6410,11 @@ msgstr "Відписатись від цього користувача" msgid "Unsubscribe" msgstr "Відписатись" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "Користувач не має профілю." + #: lib/userprofile.php:117 msgid "Edit Avatar" msgstr "Аватара" @@ -6409,7 +6425,7 @@ msgstr "Діяльність користувача" #: lib/userprofile.php:237 msgid "User deletion in progress..." -msgstr "" +msgstr "Видалення користувача у процесі..." #: lib/userprofile.php:263 msgid "Edit profile settings" diff --git a/locale/vi/LC_MESSAGES/statusnet.po b/locale/vi/LC_MESSAGES/statusnet.po index 0f560f41d..c934fa28d 100644 --- a/locale/vi/LC_MESSAGES/statusnet.po +++ b/locale/vi/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:41:45+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:11:15+0000\n" "Language-Team: Vietnamese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.17alpha (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: vi\n" "X-Message-Group: out-statusnet\n" @@ -790,23 +790,28 @@ msgstr "Tải file" msgid "Crop" msgstr "Nhóm" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "Upload từng phần." + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "" -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "Hình đại diện đã được cập nhật." -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "Cập nhật hình đại diện không thành công." -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 #, fuzzy msgid "Avatar deleted." msgstr "Hình đại diện đã được cập nhật." @@ -950,7 +955,7 @@ msgid "Conversation" msgstr "Không có mã số xác nhận." #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "Tin nhắn" @@ -1842,7 +1847,7 @@ msgstr "Dòng tin nhắn của %s" msgid "Updates from members of %1$s on %2$s!" msgstr "Dòng tin nhắn cho %s" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 #, fuzzy msgid "Groups" @@ -3537,7 +3542,7 @@ msgid "Description" msgstr "Mô tả" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "Số liệu thống kê" @@ -3698,7 +3703,7 @@ msgid "Members" msgstr "Thành viên" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" @@ -3864,7 +3869,7 @@ msgid "Unknown language \"%s\"." msgstr "" #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +msgid "Minimum text limit is 0 (unlimited)." msgstr "" #: actions/siteadminpanel.php:171 @@ -4155,8 +4160,7 @@ 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:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 #, fuzzy msgid "Could not save subscription." msgstr "Không thể tạo đăng nhận." @@ -4737,39 +4741,39 @@ msgstr "Có lỗi xảy ra khi lưu tin nhắn." msgid "RT @%1$s %2$s" msgstr "%s (%s)" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "" -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 #, fuzzy msgid "User has blocked you." msgstr "Người dùng không có thông tin." -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 #, fuzzy msgid "Not subscribed!" msgstr "Chưa đăng nhận!" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 #, fuzzy msgid "Couldn't delete self-subscription." msgstr "Không thể xóa đăng nhận." -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 #, fuzzy msgid "Couldn't delete subscription OMB token." msgstr "Không thể xóa đăng nhận." -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "Không thể xóa đăng nhận." -#: classes/User.php:378 +#: classes/User.php:363 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "%s chào mừng bạn " @@ -5081,22 +5085,22 @@ msgstr "Sau" msgid "Before" msgstr "Trước" -#: lib/activity.php:453 +#: lib/activity.php:120 +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/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 #, fuzzy @@ -5595,20 +5599,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:135 #, fuzzy msgid "No configuration file found. " msgstr "Không có mã số xác nhận." -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:139 msgid "Go to the installer." msgstr "" @@ -5798,44 +5802,44 @@ msgstr "" msgid "This page is not available in a media type you accept" msgstr "Trang này không phải là phương tiện truyền thông mà bạn chấp nhận." -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "Không hỗ trợ kiểu file ảnh này." -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "" "Bạn có thể cập nhật hồ sơ cá nhân tại đây để mọi người có thể biết thông tin " "về bạn." -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "Upload từng phần." -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "Hệ thống xảy ra lỗi trong khi tải file." -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "File hỏng hoặc không phải là file ảnh." -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 #, fuzzy msgid "Lost our file." msgstr "Không có tin nhắn nào." -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 #, fuzzy msgid "Unknown file type" msgstr "Không hỗ trợ kiểu file ảnh này." -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "" @@ -6357,7 +6361,7 @@ msgstr "cảnh báo tin nhắn" msgid "Unknown" msgstr "Không tìm thấy action" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "Tôi theo bạn này" @@ -6365,7 +6369,7 @@ msgstr "Tôi theo bạn này" msgid "All subscriptions" msgstr "Tất cả đăng nhận" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "Bạn này theo tôi" @@ -6374,15 +6378,20 @@ msgstr "Bạn này theo tôi" msgid "All subscribers" msgstr "Bạn này theo tôi" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 msgid "User ID" msgstr "" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "Gia nhập từ" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 #, fuzzy msgid "All groups" msgstr "Nhóm" @@ -6573,6 +6582,11 @@ msgstr "Ngừng đăng ký từ người dùng này" msgid "Unsubscribe" msgstr "Hết theo" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "Người dùng không có thông tin." + #: lib/userprofile.php:117 #, fuzzy msgid "Edit Avatar" diff --git a/locale/zh_CN/LC_MESSAGES/statusnet.po b/locale/zh_CN/LC_MESSAGES/statusnet.po index a5cef8add..f67435d91 100644 --- a/locale/zh_CN/LC_MESSAGES/statusnet.po +++ b/locale/zh_CN/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:41:49+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:11:18+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 (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hans\n" "X-Message-Group: out-statusnet\n" @@ -784,23 +784,28 @@ msgstr "上传" msgid "Crop" msgstr "剪裁" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +#, fuzzy +msgid "No file uploaded." +msgstr "没有收件人。" + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "请选择一块方形区域作为你的头像" -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "文件数据丢失" -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "头像已更新。" -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "更新头像失败。" -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 #, fuzzy msgid "Avatar deleted." msgstr "头像已更新。" @@ -946,7 +951,7 @@ msgid "Conversation" msgstr "确认码" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "通告" @@ -1819,7 +1824,7 @@ msgstr "%s 时间表" msgid "Updates from members of %1$s on %2$s!" msgstr "%2$s 上 %1$s 的更新!" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "组" @@ -3472,7 +3477,7 @@ msgid "Description" msgstr "描述" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "统计" @@ -3633,7 +3638,7 @@ msgid "Members" msgstr "注册于" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "(没有)" @@ -3802,7 +3807,7 @@ msgid "Unknown language \"%s\"." msgstr "" #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +msgid "Minimum text limit is 0 (unlimited)." msgstr "" #: actions/siteadminpanel.php:171 @@ -4084,8 +4089,7 @@ msgstr "头像设置" msgid "You are not subscribed to that profile." msgstr "您未告知此个人信息" -#: actions/subedit.php:83 classes/Subscription.php:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 #, fuzzy msgid "Could not save subscription." msgstr "无法删除订阅。" @@ -4664,40 +4668,40 @@ msgstr "保存通告时出错。" msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 #, fuzzy msgid "You have been banned from subscribing." msgstr "那个用户阻止了你的订阅。" -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 #, fuzzy msgid "User has blocked you." msgstr "用户没有个人信息。" -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 #, fuzzy msgid "Not subscribed!" msgstr "未订阅!" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 #, fuzzy msgid "Couldn't delete self-subscription." msgstr "无法删除订阅。" -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 #, fuzzy msgid "Couldn't delete subscription OMB token." msgstr "无法删除订阅。" -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "无法删除订阅。" -#: classes/User.php:378 +#: classes/User.php:363 #, fuzzy, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "发送给 %1$s 的 %2$s 消息" @@ -5009,22 +5013,22 @@ msgstr "« 之后" msgid "Before" msgstr "之前 »" -#: lib/activity.php:453 +#: lib/activity.php:120 +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/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 #, fuzzy @@ -5517,20 +5521,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:135 #, fuzzy msgid "No configuration file found. " msgstr "没有验证码" -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:139 #, fuzzy msgid "Go to the installer." msgstr "登入本站" @@ -5718,41 +5722,41 @@ msgstr "这个组所发布的消息的标签" msgid "This page is not available in a media type you accept" msgstr "这个页面不提供您想要的媒体类型" -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "不支持这种图像格式。" -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, fuzzy, php-format msgid "That file is too big. The maximum file size is %s." msgstr "你可以给你的组上载一个logo图。" -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "部分上传。" -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "上传文件时出错。" -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "不是图片文件或文件已损坏。" -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 #, fuzzy msgid "Lost our file." msgstr "没有这份通告。" -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "未知文件类型" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "" @@ -6230,7 +6234,7 @@ msgstr "%s's 的消息的标签" msgid "Unknown" msgstr "未知动作" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "订阅" @@ -6238,7 +6242,7 @@ msgstr "订阅" msgid "All subscriptions" msgstr "所有订阅" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "订阅者" @@ -6247,16 +6251,21 @@ msgstr "订阅者" msgid "All subscribers" msgstr "订阅者" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 #, fuzzy msgid "User ID" msgstr "用户" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "用户始于" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "所有组" @@ -6444,6 +6453,11 @@ msgstr "取消订阅 %s" msgid "Unsubscribe" msgstr "退订" +#: lib/usernoprofileexception.php:58 +#, fuzzy, php-format +msgid "User %s (%d) has no profile record." +msgstr "用户没有个人信息。" + #: lib/userprofile.php:117 #, fuzzy msgid "Edit Avatar" diff --git a/locale/zh_TW/LC_MESSAGES/statusnet.po b/locale/zh_TW/LC_MESSAGES/statusnet.po index a7b777d9d..6b5c237b5 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-03-17 21:39+0000\n" -"PO-Revision-Date: 2010-03-17 21:41:53+0000\n" +"POT-Creation-Date: 2010-03-23 20:09+0000\n" +"PO-Revision-Date: 2010-03-23 20:11:21+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 (r63880); Translate extension (2010-01-16)\n" +"X-Generator: MediaWiki 1.17alpha (r64087); Translate extension (2010-01-16)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hant\n" "X-Message-Group: out-statusnet\n" @@ -774,23 +774,27 @@ msgstr "" msgid "Crop" msgstr "" -#: actions/avatarsettings.php:328 +#: actions/avatarsettings.php:305 +msgid "No file uploaded." +msgstr "" + +#: actions/avatarsettings.php:332 msgid "Pick a square area of the image to be your avatar" msgstr "" -#: actions/avatarsettings.php:343 actions/grouplogo.php:380 +#: actions/avatarsettings.php:347 actions/grouplogo.php:380 msgid "Lost our file data." msgstr "" -#: actions/avatarsettings.php:366 +#: actions/avatarsettings.php:370 msgid "Avatar updated." msgstr "更新個人圖像" -#: actions/avatarsettings.php:369 +#: actions/avatarsettings.php:373 msgid "Failed updating avatar." msgstr "無法上傳個人圖像" -#: actions/avatarsettings.php:393 +#: actions/avatarsettings.php:397 #, fuzzy msgid "Avatar deleted." msgstr "更新個人圖像" @@ -935,7 +939,7 @@ msgid "Conversation" msgstr "地點" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 -#: lib/profileaction.php:218 lib/searchgroupnav.php:82 +#: lib/profileaction.php:224 lib/searchgroupnav.php:82 msgid "Notices" msgstr "" @@ -1777,7 +1781,7 @@ msgstr "" msgid "Updates from members of %1$s on %2$s!" msgstr "&s的微型部落格" -#: actions/groups.php:62 lib/profileaction.php:212 lib/profileaction.php:232 +#: actions/groups.php:62 lib/profileaction.php:218 lib/profileaction.php:244 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" msgstr "" @@ -3348,7 +3352,7 @@ msgid "Description" msgstr "所有訂閱" #: actions/showapplication.php:192 actions/showgroup.php:439 -#: lib/profileaction.php:176 +#: lib/profileaction.php:182 msgid "Statistics" msgstr "" @@ -3507,7 +3511,7 @@ msgid "Members" msgstr "何時加入會員的呢?" #: actions/showgroup.php:396 lib/profileaction.php:117 -#: lib/profileaction.php:150 lib/profileaction.php:238 lib/section.php:95 +#: lib/profileaction.php:150 lib/profileaction.php:250 lib/section.php:95 #: lib/subscriptionlist.php:126 lib/tagcloudsection.php:71 msgid "(None)" msgstr "" @@ -3669,7 +3673,7 @@ msgid "Unknown language \"%s\"." msgstr "" #: actions/siteadminpanel.php:165 -msgid "Minimum text limit is 140 characters." +msgid "Minimum text limit is 0 (unlimited)." msgstr "" #: actions/siteadminpanel.php:171 @@ -3942,8 +3946,7 @@ msgstr "線上即時通設定" msgid "You are not subscribed to that profile." msgstr "" -#: actions/subedit.php:83 classes/Subscription.php:89 -#: classes/Subscription.php:116 +#: actions/subedit.php:83 classes/Subscription.php:132 #, fuzzy msgid "Could not save subscription." msgstr "註冊失敗" @@ -4501,38 +4504,38 @@ msgstr "儲存使用者發生錯誤" msgid "RT @%1$s %2$s" msgstr "" -#: classes/Subscription.php:66 lib/oauthstore.php:465 +#: classes/Subscription.php:74 lib/oauthstore.php:465 msgid "You have been banned from subscribing." msgstr "" -#: classes/Subscription.php:70 +#: classes/Subscription.php:78 msgid "Already subscribed!" msgstr "" -#: classes/Subscription.php:74 +#: classes/Subscription.php:82 msgid "User has blocked you." msgstr "" -#: classes/Subscription.php:157 +#: classes/Subscription.php:167 #, fuzzy msgid "Not subscribed!" msgstr "此帳號已註冊" -#: classes/Subscription.php:163 +#: classes/Subscription.php:173 #, fuzzy msgid "Couldn't delete self-subscription." msgstr "無法刪除帳號" -#: classes/Subscription.php:190 +#: classes/Subscription.php:200 #, fuzzy msgid "Couldn't delete subscription OMB token." msgstr "無法刪除帳號" -#: classes/Subscription.php:201 +#: classes/Subscription.php:211 msgid "Couldn't delete subscription." msgstr "無法刪除帳號" -#: classes/User.php:378 +#: classes/User.php:363 #, php-format msgid "Welcome to %1$s, @%2$s!" msgstr "" @@ -4834,22 +4837,22 @@ msgstr "" msgid "Before" msgstr "之前的內容»" -#: lib/activity.php:453 +#: lib/activity.php:120 +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/activity.php:481 +#: lib/activityutils.php:236 msgid "Can't handle embedded XML content yet." msgstr "" -#: lib/activity.php:485 +#: lib/activityutils.php:240 msgid "Can't handle embedded Base64 content yet." msgstr "" -#: lib/activity.php:1089 -msgid "Expecting a root feed element but got a whole XML document." -msgstr "" - #. TRANS: Client error message #: lib/adminpanelaction.php:98 msgid "You cannot make changes to this site." @@ -5329,20 +5332,20 @@ msgid "" "tracking - not yet implemented.\n" msgstr "" -#: lib/common.php:136 +#: lib/common.php:135 #, fuzzy msgid "No configuration file found. " msgstr "無確認碼" -#: lib/common.php:137 +#: lib/common.php:136 msgid "I looked for configuration files in the following places: " msgstr "" -#: lib/common.php:139 +#: lib/common.php:138 msgid "You may wish to run the installer to fix this." msgstr "" -#: lib/common.php:140 +#: lib/common.php:139 msgid "Go to the installer." msgstr "" @@ -5522,41 +5525,41 @@ msgstr "" msgid "This page is not available in a media type you accept" msgstr "" -#: lib/imagefile.php:74 +#: lib/imagefile.php:72 msgid "Unsupported image file format." msgstr "" -#: lib/imagefile.php:90 +#: lib/imagefile.php:88 #, php-format msgid "That file is too big. The maximum file size is %s." msgstr "" -#: lib/imagefile.php:95 +#: lib/imagefile.php:93 msgid "Partial upload." msgstr "" -#: lib/imagefile.php:103 lib/mediafile.php:170 +#: lib/imagefile.php:101 lib/mediafile.php:170 msgid "System error uploading file." msgstr "" -#: lib/imagefile.php:111 +#: lib/imagefile.php:109 msgid "Not an image or corrupt file." msgstr "" -#: lib/imagefile.php:124 +#: lib/imagefile.php:122 #, fuzzy msgid "Lost our file." msgstr "無此通知" -#: lib/imagefile.php:168 lib/imagefile.php:233 +#: lib/imagefile.php:163 lib/imagefile.php:224 msgid "Unknown file type" msgstr "" -#: lib/imagefile.php:253 +#: lib/imagefile.php:244 msgid "MB" msgstr "" -#: lib/imagefile.php:255 +#: lib/imagefile.php:246 msgid "kB" msgstr "" @@ -6018,7 +6021,7 @@ msgstr "" msgid "Unknown" msgstr "" -#: lib/profileaction.php:109 lib/profileaction.php:194 lib/subgroupnav.php:82 +#: lib/profileaction.php:109 lib/profileaction.php:200 lib/subgroupnav.php:82 msgid "Subscriptions" msgstr "" @@ -6026,7 +6029,7 @@ msgstr "" msgid "All subscriptions" msgstr "所有訂閱" -#: lib/profileaction.php:142 lib/profileaction.php:203 lib/subgroupnav.php:90 +#: lib/profileaction.php:142 lib/profileaction.php:209 lib/subgroupnav.php:90 msgid "Subscribers" msgstr "" @@ -6035,15 +6038,20 @@ msgstr "" msgid "All subscribers" msgstr "所有訂閱" -#: lib/profileaction.php:180 +#: lib/profileaction.php:186 msgid "User ID" msgstr "" -#: lib/profileaction.php:185 +#: lib/profileaction.php:191 msgid "Member since" msgstr "何時加入會員的呢?" -#: lib/profileaction.php:247 +#. TRANS: Average count of posts made per day since account registration +#: lib/profileaction.php:230 +msgid "Daily average" +msgstr "" + +#: lib/profileaction.php:259 msgid "All groups" msgstr "" @@ -6222,6 +6230,11 @@ msgstr "" msgid "Unsubscribe" msgstr "" +#: lib/usernoprofileexception.php:58 +#, php-format +msgid "User %s (%d) has no profile record." +msgstr "" + #: lib/userprofile.php:117 #, fuzzy msgid "Edit Avatar" -- cgit v1.2.3-54-g00ecf From 5f32cf32cd7d4a5df7ba64d4f1e7d9edee8d418c Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 23 Mar 2010 14:18:45 -0700 Subject: Don't spew XML parse warnings to output when checking a remote XRD page --- plugins/OStatus/lib/xrd.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/plugins/OStatus/lib/xrd.php b/plugins/OStatus/lib/xrd.php index aa13ef024..34b28790b 100644 --- a/plugins/OStatus/lib/xrd.php +++ b/plugins/OStatus/lib/xrd.php @@ -53,7 +53,14 @@ class XRD $xrd = new XRD(); $dom = new DOMDocument(); - if (!$dom->loadXML($xml)) { + + // Don't spew XML warnings to output + $old = error_reporting(); + error_reporting($old & ~E_WARNING); + $ok = $dom->loadXML($xml); + error_reporting($old); + + if (!$ok) { throw new Exception("Invalid XML"); } $xrd_element = $dom->getElementsByTagName('XRD')->item(0); -- cgit v1.2.3-54-g00ecf From df8c9090c0deabe20b804e0fd0766d6b86b7968f Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 23 Mar 2010 14:19:12 -0700 Subject: Add basic subscribe/unsubscribe test to OStatus test cases --- plugins/OStatus/tests/remote-tests.php | 176 +++++++++++++++++++++++++++++---- 1 file changed, 157 insertions(+), 19 deletions(-) diff --git a/plugins/OStatus/tests/remote-tests.php b/plugins/OStatus/tests/remote-tests.php index 103ca066c..b06411491 100644 --- a/plugins/OStatus/tests/remote-tests.php +++ b/plugins/OStatus/tests/remote-tests.php @@ -40,6 +40,20 @@ class TestBase } return true; } + + function assertTrue($a) + { + if (!$a) { + throw new Exception("Failed to assert true: got false"); + } + } + + function assertFalse($a) + { + if ($a) { + throw new Exception("Failed to assert false: got true"); + } + } } class OStatusTester extends TestBase @@ -60,8 +74,12 @@ class OStatusTester extends TestBase function run() { $this->setup(); + $this->testLocalPost(); $this->testMentionUrl(); + $this->testSubscribe(); + $this->testUnsubscribe(); + $this->log("DONE!"); } @@ -98,6 +116,25 @@ class OStatusTester extends TestBase $post = $this->pub->post("@$base/$name should have this in home and replies"); $this->sub->assertReceived($post); } + + function testSubscribe() + { + $this->assertFalse($this->sub->hasSubscription($this->pub->getProfileUri())); + $this->assertFalse($this->pub->hasSubscriber($this->sub->getProfileUri())); + $this->sub->subscribe($this->pub->getProfileLink()); + $this->assertTrue($this->sub->hasSubscription($this->pub->getProfileUri())); + $this->assertTrue($this->pub->hasSubscriber($this->sub->getProfileUri())); + } + + function testUnsubscribe() + { + $this->assertTrue($this->sub->hasSubscription($this->pub->getProfileUri())); + $this->assertTrue($this->pub->hasSubscriber($this->sub->getProfileUri())); + $this->sub->unsubscribe($this->pub->getProfileLink()); + $this->assertFalse($this->sub->hasSubscription($this->pub->getProfileUri())); + $this->assertFalse($this->pub->hasSubscriber($this->sub->getProfileUri())); + } + } class SNTestClient extends TestBase @@ -202,6 +239,43 @@ class SNTestClient extends TestBase return $dom; } + protected function parseXml($path, $body) + { + $dom = new DOMDocument(); + if ($dom->loadXML($body)) { + return $dom; + } else { + throw new Exception("Bogus XML data from $path:\n$body"); + } + } + + /** + * Make a hit to a REST-y XML page on the site, without authentication. + * @param string $path URL fragment for something relative to base + * @param array $params POST parameters to send + * @return DOMDocument + * @throws Exception on low-level error conditions + */ + protected function xml($path, $params=array()) + { + $response = $this->hit($path, $params, true); + $body = $response->getBody(); + return $this->parseXml($path, $body); + } + + protected function parseJson($path, $body) + { + $data = json_decode($body, true); + if ($data !== null) { + if (!empty($data['error'])) { + throw new Exception("JSON API returned error: " . $data['error']); + } + return $data; + } else { + throw new Exception("Bogus JSON data from $path:\n$body"); + } + } + /** * Make an API hit to this site, with authentication. * @param string $path URL fragment for something under 'api' folder @@ -215,22 +289,9 @@ class SNTestClient extends TestBase $response = $this->hit("api/$path.$style", $params, true); $body = $response->getBody(); if ($style == 'json') { - $data = json_decode($body, true); - if ($data !== null) { - if (!empty($data['error'])) { - throw new Exception("JSON API returned error: " . $data['error']); - } - return $data; - } else { - throw new Exception("Bogus JSON data from $path:\n$body"); - } + return $this->parseJson($path, $body); } else if ($style == 'xml' || $style == 'atom') { - $dom = new DOMDocument(); - if ($dom->loadXML($body)) { - return $dom; - } else { - throw new Exception("Bogus XML data from $path:\n$body"); - } + return $this->parseXml($path, $body); } else { throw new Exception("API needs to be JSON, XML, or Atom"); } @@ -257,6 +318,24 @@ class SNTestClient extends TestBase 'submit' => 'Register')); } + /** + * @return string canonical URI/URL to profile page + */ + function getProfileUri() + { + $data = $this->api('account/verify_credentials', 'json'); + $id = $data['id']; + return $this->basepath . '/user/' . $id; + } + + /** + * @return string human-friendly URL to profile page + */ + function getProfileLink() + { + return $this->basepath . '/' . $this->username; + } + /** * Check that the account has been registered and can be used. * On failure, throws a test failure exception. @@ -349,22 +428,81 @@ class SNTestClient extends TestBase return false; } + /** + * @param string $profile user page link or webfinger + */ + function subscribe($profile) + { + // This uses the command interface, since there's not currently + // a friendly Twit-API way to do a fresh remote subscription and + // the web form's a pain to use. + $this->post('follow ' . $profile); + } + + /** + * @param string $profile user page link or webfinger + */ + function unsubscribe($profile) + { + // This uses the command interface, since there's not currently + // a friendly Twit-API way to do a fresh remote subscription and + // the web form's a pain to use. + $this->post('leave ' . $profile); + } + /** * Check that this account is subscribed to the given profile. * @param string $profile_uri URI for the profile to check for + * @return boolean */ - function assertHasSubscription($profile_uri) + function hasSubscription($profile_uri) { - throw new Exception('tbi'); + $this->log("Checking if $this->username has a subscription to $profile_uri"); + + $me = $this->getProfileUri(); + return $this->checkSubscription($me, $profile_uri); } /** * Check that this account is subscribed to by the given profile. * @param string $profile_uri URI for the profile to check for + * @return boolean */ - function assertHasSubscriber($profile_uri) + function hasSubscriber($profile_uri) + { + $this->log("Checking if $this->username is subscribed to by $profile_uri"); + + $me = $this->getProfileUri(); + return $this->checkSubscription($profile_uri, $me); + } + + protected function checkSubscription($subscriber, $subscribed) { - throw new Exception('tbi'); + // Using FOAF as the API methods for checking the social graph + // currently are unfriendly to remote profiles + $ns_foaf = 'http://xmlns.com/foaf/0.1/'; + $ns_sioc = 'http://rdfs.org/sioc/ns#'; + $ns_rdf = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'; + + $dom = $this->xml($this->username . '/foaf'); + $agents = $dom->getElementsByTagNameNS($ns_foaf, 'Agent'); + foreach ($agents as $agent) { + $agent_uri = $agent->getAttributeNS($ns_rdf, 'about'); + if ($agent_uri == $subscriber) { + $follows = $agent->getElementsByTagNameNS($ns_sioc, 'follows'); + foreach ($follows as $follow) { + $target = $follow->getAttributeNS($ns_rdf, 'resource'); + if ($target == ($subscribed . '#acct')) { + $this->log("Confirmed $subscriber subscribed to $subscribed"); + return true; + } + } + $this->log("We found $subscriber but they don't follow $subscribed"); + return false; + } + } + $this->log("Can't find $subscriber in {$this->username}'s social graph."); + return false; } } -- cgit v1.2.3-54-g00ecf From 13d59e0c76b887a2bfd2e5cfcc2e0fedf728bc07 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 23 Mar 2010 17:24:01 -0700 Subject: fixup_deletions.php script to look for notices posted by now-deleted profiles and remove them. --- classes/Notice.php | 4 +- scripts/fixup_deletions.php | 166 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 169 insertions(+), 1 deletion(-) create mode 100755 scripts/fixup_deletions.php diff --git a/classes/Notice.php b/classes/Notice.php index f7194e339..be3e9ca2a 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -421,7 +421,9 @@ class Notice extends Memcached_DataObject } $profile = Profile::staticGet($this->profile_id); - $profile->blowNoticeCount(); + if (!empty($profile)) { + $profile->blowNoticeCount(); + } } /** diff --git a/scripts/fixup_deletions.php b/scripts/fixup_deletions.php new file mode 100755 index 000000000..07ada7f9d --- /dev/null +++ b/scripts/fixup_deletions.php @@ -0,0 +1,166 @@ +#!/usr/bin/env php +. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); + +$longoptions = array('dry-run', 'start=', 'end='); + +$helptext = <<query($query); + + if ($profile->fetch()) { + return intval($profile->id); + } else { + die("Something went awry; could not look up max used profile_id."); + } +} + +/** + * Check for profiles in the given id range that are missing, presumed deleted. + * + * @param int $start beginning profile.id, inclusive + * @param int $end final profile.id, inclusive + * @return array of integer profile.ids + * @access private + */ +function get_missing_profiles($start, $end) +{ + $query = sprintf("SELECT id FROM profile WHERE id BETWEEN %d AND %d", + $start, $end); + + $profile = new Profile(); + $profile->query($query); + + $all = range($start, $end); + $known = array(); + while ($row = $profile->fetch()) { + $known[] = intval($profile->id); + } + unset($profile); + + $missing = array_diff($all, $known); + return $missing; +} + +/** + * Look for stray notices from this profile and, if present, kill them. + * + * @param int $profile_id + * @param bool $dry if true, we won't delete anything + */ +function cleanup_missing_profile($profile_id, $dry) +{ + $notice = new Notice(); + $notice->profile_id = $profile_id; + $notice->find(); + if ($notice->N == 0) { + return; + } + + $s = ($notice->N == 1) ? '' : 's'; + print "Deleted profile $profile_id has $notice->N stray notice$s:\n"; + + while ($notice->fetch()) { + print " notice $notice->id"; + if ($dry) { + print " (skipped; dry run)\n"; + } else { + $victim = clone($notice); + try { + $victim->delete(); + print " (deleted)\n"; + } catch (Exception $e) { + print " FAILED: "; + print $e->getMessage(); + print "\n"; + } + } + } +} + +$dry = have_option('dry-run'); + +$max_profile_id = get_max_profile_id(); +$chunk = 1000; + +if (have_option('start')) { + $begin = intval(get_option_value('start')); +} else { + $begin = 1; +} +if (have_option('end')) { + $final = min($max_profile_id, intval(get_option_value('end'))); +} else { + $final = $max_profile_id; +} + +if ($begin < 1) { + die("Silly human, you can't begin before profile number 1!\n"); +} +if ($final < $begin) { + die("Silly human, you can't end at $final if it's before $begin!\n"); +} + +// Identify missing profiles... +for ($start = $begin; $start <= $final; $start += $chunk) { + $end = min($start + $chunk - 1, $final); + + print "Checking for missing profiles between id $start and $end"; + if ($dry) { + print " (dry run)"; + } + print "...\n"; + $missing = get_missing_profiles($start, $end); + + foreach ($missing as $profile_id) { + cleanup_missing_profile($profile_id, $dry); + } +} + +echo "done.\n"; + -- cgit v1.2.3-54-g00ecf From 5e76e0c8ac1dad9a110b005faad3c6a95d737b9b Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 23 Mar 2010 17:24:01 -0700 Subject: fixup_deletions.php script to look for notices posted by now-deleted profiles and remove them. --- classes/Notice.php | 4 +- scripts/fixup_deletions.php | 166 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 169 insertions(+), 1 deletion(-) create mode 100755 scripts/fixup_deletions.php diff --git a/classes/Notice.php b/classes/Notice.php index 4c7e6ab4b..1b2406fdd 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -418,7 +418,9 @@ class Notice extends Memcached_DataObject } $profile = Profile::staticGet($this->profile_id); - $profile->blowNoticeCount(); + if (!empty($profile)) { + $profile->blowNoticeCount(); + } } /** save all urls in the notice to the db diff --git a/scripts/fixup_deletions.php b/scripts/fixup_deletions.php new file mode 100755 index 000000000..07ada7f9d --- /dev/null +++ b/scripts/fixup_deletions.php @@ -0,0 +1,166 @@ +#!/usr/bin/env php +. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); + +$longoptions = array('dry-run', 'start=', 'end='); + +$helptext = <<query($query); + + if ($profile->fetch()) { + return intval($profile->id); + } else { + die("Something went awry; could not look up max used profile_id."); + } +} + +/** + * Check for profiles in the given id range that are missing, presumed deleted. + * + * @param int $start beginning profile.id, inclusive + * @param int $end final profile.id, inclusive + * @return array of integer profile.ids + * @access private + */ +function get_missing_profiles($start, $end) +{ + $query = sprintf("SELECT id FROM profile WHERE id BETWEEN %d AND %d", + $start, $end); + + $profile = new Profile(); + $profile->query($query); + + $all = range($start, $end); + $known = array(); + while ($row = $profile->fetch()) { + $known[] = intval($profile->id); + } + unset($profile); + + $missing = array_diff($all, $known); + return $missing; +} + +/** + * Look for stray notices from this profile and, if present, kill them. + * + * @param int $profile_id + * @param bool $dry if true, we won't delete anything + */ +function cleanup_missing_profile($profile_id, $dry) +{ + $notice = new Notice(); + $notice->profile_id = $profile_id; + $notice->find(); + if ($notice->N == 0) { + return; + } + + $s = ($notice->N == 1) ? '' : 's'; + print "Deleted profile $profile_id has $notice->N stray notice$s:\n"; + + while ($notice->fetch()) { + print " notice $notice->id"; + if ($dry) { + print " (skipped; dry run)\n"; + } else { + $victim = clone($notice); + try { + $victim->delete(); + print " (deleted)\n"; + } catch (Exception $e) { + print " FAILED: "; + print $e->getMessage(); + print "\n"; + } + } + } +} + +$dry = have_option('dry-run'); + +$max_profile_id = get_max_profile_id(); +$chunk = 1000; + +if (have_option('start')) { + $begin = intval(get_option_value('start')); +} else { + $begin = 1; +} +if (have_option('end')) { + $final = min($max_profile_id, intval(get_option_value('end'))); +} else { + $final = $max_profile_id; +} + +if ($begin < 1) { + die("Silly human, you can't begin before profile number 1!\n"); +} +if ($final < $begin) { + die("Silly human, you can't end at $final if it's before $begin!\n"); +} + +// Identify missing profiles... +for ($start = $begin; $start <= $final; $start += $chunk) { + $end = min($start + $chunk - 1, $final); + + print "Checking for missing profiles between id $start and $end"; + if ($dry) { + print " (dry run)"; + } + print "...\n"; + $missing = get_missing_profiles($start, $end); + + foreach ($missing as $profile_id) { + cleanup_missing_profile($profile_id, $dry); + } +} + +echo "done.\n"; + -- cgit v1.2.3-54-g00ecf From d9dcdf5b4966fc244fa9b6fa8415c2aeae6cbb47 Mon Sep 17 00:00:00 2001 From: Nick Holliday Date: Tue, 23 Mar 2010 22:30:02 +0000 Subject: Converts Spotify URI/HTTP Links to pretty ones. --- plugins/SpotifyPlugin.php | 113 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 plugins/SpotifyPlugin.php diff --git a/plugins/SpotifyPlugin.php b/plugins/SpotifyPlugin.php new file mode 100644 index 000000000..e7a5a5382 --- /dev/null +++ b/plugins/SpotifyPlugin.php @@ -0,0 +1,113 @@ +. + * + * @category Plugin + * @package StatusNet + * @author Nick Holliday + * @copyright Nick Holliday + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + * + * @see Event + */ +if (!defined('STATUSNET')) { + exit(1); +} +define('SPOTIFYPLUGIN_VERSION', '0.1'); + +/** + * Plugin to create pretty Spotify URLs + * + * The Spotify API is called before the notice is saved to gather artist and track information. + * + * @category Plugin + * @package StatusNet + * @author Nick Holliday + * @copyright Nick Holliday + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + * + * @see Event + */ + +class SpotifyPlugin extends Plugin +{ + + function __construct() + { + parent::__construct(); + } + + function onStartNoticeSave($notice) + { + $notice->rendered = preg_replace_callback('/spotify:[a-z]{5,6}:[a-z0-9]{22}/i', + "renderSpotifyURILink", + $notice->rendered); + + $notice->rendered = preg_replace_callback('/http:\/\/open.spotify.com\/[a-z]{5,6}\/[a-z0-9]{22}<\/a>/i', + "renderSpotifyHTTPLink", + $notice->rendered); + + return true; + } + + function userAgent() + { + return 'SpotifyPlugin/'.SPOTIFYPLUGIN_VERSION . + ' StatusNet/' . STATUSNET_VERSION; + } +} + +function doSpotifyLookup($uri, $isArtist) +{ + $request = HTTPClient::start(); + $response = $request->get('http://ws.spotify.com/lookup/1/?uri=' . $uri); + if ($response->isOk()) { + $xml = simplexml_load_string($response->getBody()); + + if($isArtist) + return $xml->name; + else + return $xml->artist->name . ' - ' . $xml->name; + } +} + +function renderSpotifyURILink($match) +{ + $isArtist = false; + if(preg_match('/artist/', $match[0]) > 0) $isArtist = true; + + $name = doSpotifyLookup($match[0], $isArtist); + return "" . $name . ""; +} + +function renderSpotifyHTTPLink($match) +{ + $match[0] = preg_replace('/http:\/\/open.spotify.com\//i', 'spotify:', $match[0]); + $match[0] = preg_replace('/<\/a>/', '', $match[0]); + $match[0] = preg_replace('/\//', ':', $match[0]); + + $isArtist = false; + if(preg_match('/artist/', $match[0]) > 0) $isArtist = true; + + $name = doSpotifyLookup($match[0], $isArtist); + return "" . $name . ""; +} -- cgit v1.2.3-54-g00ecf From 9380eed794e1bd419a4af4dcbbcd176f164112fc Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 23 Mar 2010 18:44:54 -0700 Subject: add a general PuSHed post and an @-reply back to a subscribee by name to OStatus remote test cases --- plugins/OStatus/tests/remote-tests.php | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/plugins/OStatus/tests/remote-tests.php b/plugins/OStatus/tests/remote-tests.php index b06411491..a27ecb854 100644 --- a/plugins/OStatus/tests/remote-tests.php +++ b/plugins/OStatus/tests/remote-tests.php @@ -78,6 +78,8 @@ class OStatusTester extends TestBase $this->testLocalPost(); $this->testMentionUrl(); $this->testSubscribe(); + $this->testPush(); + $this->testMentionSubscribee(); $this->testUnsubscribe(); $this->log("DONE!"); @@ -126,6 +128,26 @@ class OStatusTester extends TestBase $this->assertTrue($this->pub->hasSubscriber($this->sub->getProfileUri())); } + function testPush() + { + $this->assertTrue($this->sub->hasSubscription($this->pub->getProfileUri())); + $this->assertTrue($this->pub->hasSubscriber($this->sub->getProfileUri())); + + $name = $this->sub->username; + $post = $this->pub->post("Regular post, which $name should get via PuSH"); + $this->sub->assertReceived($post); + } + + function testMentionSubscribee() + { + $this->assertTrue($this->sub->hasSubscription($this->pub->getProfileUri())); + $this->assertFalse($this->pub->hasSubscription($this->sub->getProfileUri())); + + $name = $this->pub->username; + $post = $this->sub->post("Just a quick note back to my remote subscribee @$name"); + $this->pub->assertReceived($post); + } + function testUnsubscribe() { $this->assertTrue($this->sub->hasSubscription($this->pub->getProfileUri())); -- cgit v1.2.3-54-g00ecf From 6b538cd9b31ffa25d2046e16d47a0cde26d0398f Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Tue, 23 Mar 2010 21:50:31 -0400 Subject: Fix some regressions caused by refactor of LDAP plugin --- .../LdapAuthenticationPlugin.php | 2 +- plugins/LdapCommon/LdapCommon.php | 24 +++++++++++++++------- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/plugins/LdapAuthentication/LdapAuthenticationPlugin.php b/plugins/LdapAuthentication/LdapAuthenticationPlugin.php index a55c45ff5..2e01738ec 100644 --- a/plugins/LdapAuthentication/LdapAuthenticationPlugin.php +++ b/plugins/LdapAuthentication/LdapAuthenticationPlugin.php @@ -118,7 +118,7 @@ class LdapAuthenticationPlugin extends AuthenticationPlugin function suggestNicknameForUsername($username) { - $entry = $this->ldap_get_user($username, $this->attributes); + $entry = $this->ldapCommon->get_user($username, $this->attributes); if(!$entry){ //this really shouldn't happen $nickname = $username; diff --git a/plugins/LdapCommon/LdapCommon.php b/plugins/LdapCommon/LdapCommon.php index 39d872df5..e2ca569f3 100644 --- a/plugins/LdapCommon/LdapCommon.php +++ b/plugins/LdapCommon/LdapCommon.php @@ -47,7 +47,7 @@ class LdapCommon public $uniqueMember_attribute = null; public $attributes=array(); public $password_encoding=null; - + public function __construct($config) { Event::addHandler('Autoload',array($this,'onAutoload')); @@ -68,7 +68,7 @@ class LdapCommon } function onAutoload($cls) - { + { switch ($cls) { case 'MemcacheSchemaCache': @@ -77,6 +77,15 @@ class LdapCommon case 'Net_LDAP2': require_once 'Net/LDAP2.php'; return false; + case 'Net_LDAP2_Filter': + require_once 'Net/LDAP2/Filter.php'; + return false; + case 'Net_LDAP2_Filter': + require_once 'Net/LDAP2/Filter.php'; + return false; + case 'Net_LDAP2_Entry': + require_once 'Net/LDAP2/Entry.php'; + return false; } } @@ -97,8 +106,9 @@ class LdapCommon $config = $this->ldap_config; } $config_id = crc32(serialize($config)); - $ldap = self::$ldap_connections[$config_id]; - if(! isset($ldap)) { + if(array_key_exists($config_id,self::$ldap_connections)) { + $ldap = self::$ldap_connections[$config_id]; + } else { //cannot use Net_LDAP2::connect() as StatusNet uses //PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, 'handleError'); //PEAR handling can be overridden on instance objects, so we do that. @@ -197,10 +207,10 @@ class LdapCommon return false; } } - + /** * get an LDAP entry for a user with a given username - * + * * @param string $username * $param array $attributes LDAP attributes to retrieve * @return string DN @@ -212,7 +222,7 @@ class LdapCommon 'attributes' => $attributes ); $search = $ldap->search(null,$filter,$options); - + if (PEAR::isError($search)) { common_log(LOG_WARNING, 'Error while getting DN for user: '.$search->getMessage()); return false; -- cgit v1.2.3-54-g00ecf From fcf86b4fdf200b1f2955f4f93c5b85054c7254b7 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 23 Mar 2010 18:56:40 -0700 Subject: Improve legibility of OStatus remote tests output --- plugins/OStatus/tests/remote-tests.php | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/plugins/OStatus/tests/remote-tests.php b/plugins/OStatus/tests/remote-tests.php index a27ecb854..24b4b1660 100644 --- a/plugins/OStatus/tests/remote-tests.php +++ b/plugins/OStatus/tests/remote-tests.php @@ -75,13 +75,16 @@ class OStatusTester extends TestBase { $this->setup(); - $this->testLocalPost(); - $this->testMentionUrl(); - $this->testSubscribe(); - $this->testPush(); - $this->testMentionSubscribee(); - $this->testUnsubscribe(); + $methods = get_class_methods($this); + foreach ($methods as $method) { + if (strtolower(substr($method, 0, 4)) == 'test') { + print "\n"; + print "== $method ==\n"; + call_user_func(array($this, $method)); + } + } + print "\n"; $this->log("DONE!"); } @@ -372,6 +375,7 @@ class SNTestClient extends TestBase $this->assertEqual($this->fullname, $data['name']); $this->assertEqual($this->homepage, $data['url']); $this->assertEqual($this->bio, $data['description']); + $this->log(" looks good!"); } /** @@ -408,11 +412,11 @@ class SNTestClient extends TestBase } $tries--; if ($tries) { - $this->log("Didn't see it yet, waiting $timeout seconds"); + $this->log(" didn't see it yet, waiting $timeout seconds"); sleep($timeout); } } - throw new Exception("Message $notice_uri not received by $this->username"); + throw new Exception(" message $notice_uri not received by $this->username"); } /** @@ -442,10 +446,9 @@ class SNTestClient extends TestBase } foreach ($entries as $entry) { if ($entry->id == $notice_uri) { - $this->log("found it $notice_uri"); + $this->log(" found it $notice_uri"); return true; } - //$this->log("nope... " . $entry->id); } return false; } @@ -515,15 +518,15 @@ class SNTestClient extends TestBase foreach ($follows as $follow) { $target = $follow->getAttributeNS($ns_rdf, 'resource'); if ($target == ($subscribed . '#acct')) { - $this->log("Confirmed $subscriber subscribed to $subscribed"); + $this->log(" confirmed $subscriber subscribed to $subscribed"); return true; } } - $this->log("We found $subscriber but they don't follow $subscribed"); + $this->log(" we found $subscriber but they don't follow $subscribed"); return false; } } - $this->log("Can't find $subscriber in {$this->username}'s social graph."); + $this->log(" can't find $subscriber in {$this->username}'s social graph."); return false; } -- cgit v1.2.3-54-g00ecf From 1f73156daeef47cf8a7214936383fbc496255fd7 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Tue, 23 Mar 2010 21:57:47 -0400 Subject: Move the bundled Net/LDAP2 library to the LdapCommon directory --- extlib/Net/LDAP2.php | 1791 -------------------- extlib/Net/LDAP2/Entry.php | 1055 ------------ extlib/Net/LDAP2/Filter.php | 514 ------ extlib/Net/LDAP2/LDIF.php | 922 ---------- extlib/Net/LDAP2/RootDSE.php | 240 --- extlib/Net/LDAP2/Schema.php | 516 ------ extlib/Net/LDAP2/SchemaCache.interface.php | 59 - extlib/Net/LDAP2/Search.php | 614 ------- extlib/Net/LDAP2/SimpleFileSchemaCache.php | 97 -- extlib/Net/LDAP2/Util.php | 572 ------- plugins/LdapCommon/LdapCommon.php | 3 + plugins/LdapCommon/extlib/Net/LDAP2.php | 1791 ++++++++++++++++++++ plugins/LdapCommon/extlib/Net/LDAP2/Entry.php | 1055 ++++++++++++ plugins/LdapCommon/extlib/Net/LDAP2/Filter.php | 514 ++++++ plugins/LdapCommon/extlib/Net/LDAP2/LDIF.php | 922 ++++++++++ plugins/LdapCommon/extlib/Net/LDAP2/RootDSE.php | 240 +++ plugins/LdapCommon/extlib/Net/LDAP2/Schema.php | 516 ++++++ .../extlib/Net/LDAP2/SchemaCache.interface.php | 59 + plugins/LdapCommon/extlib/Net/LDAP2/Search.php | 614 +++++++ .../extlib/Net/LDAP2/SimpleFileSchemaCache.php | 97 ++ plugins/LdapCommon/extlib/Net/LDAP2/Util.php | 572 +++++++ 21 files changed, 6383 insertions(+), 6380 deletions(-) delete mode 100644 extlib/Net/LDAP2.php delete mode 100644 extlib/Net/LDAP2/Entry.php delete mode 100644 extlib/Net/LDAP2/Filter.php delete mode 100644 extlib/Net/LDAP2/LDIF.php delete mode 100644 extlib/Net/LDAP2/RootDSE.php delete mode 100644 extlib/Net/LDAP2/Schema.php delete mode 100644 extlib/Net/LDAP2/SchemaCache.interface.php delete mode 100644 extlib/Net/LDAP2/Search.php delete mode 100644 extlib/Net/LDAP2/SimpleFileSchemaCache.php delete mode 100644 extlib/Net/LDAP2/Util.php create mode 100644 plugins/LdapCommon/extlib/Net/LDAP2.php create mode 100644 plugins/LdapCommon/extlib/Net/LDAP2/Entry.php create mode 100644 plugins/LdapCommon/extlib/Net/LDAP2/Filter.php create mode 100644 plugins/LdapCommon/extlib/Net/LDAP2/LDIF.php create mode 100644 plugins/LdapCommon/extlib/Net/LDAP2/RootDSE.php create mode 100644 plugins/LdapCommon/extlib/Net/LDAP2/Schema.php create mode 100644 plugins/LdapCommon/extlib/Net/LDAP2/SchemaCache.interface.php create mode 100644 plugins/LdapCommon/extlib/Net/LDAP2/Search.php create mode 100644 plugins/LdapCommon/extlib/Net/LDAP2/SimpleFileSchemaCache.php create mode 100644 plugins/LdapCommon/extlib/Net/LDAP2/Util.php diff --git a/extlib/Net/LDAP2.php b/extlib/Net/LDAP2.php deleted file mode 100644 index 26f5e7560..000000000 --- a/extlib/Net/LDAP2.php +++ /dev/null @@ -1,1791 +0,0 @@ - -* @author Jan Wagner -* @author Del -* @author Benedikt Hallinger -* @copyright 2003-2007 Tarjej Huse, Jan Wagner, Del Elson, Benedikt Hallinger -* @license http://www.gnu.org/licenses/lgpl-3.0.txt LGPLv3 -* @version SVN: $Id: LDAP2.php 286788 2009-08-04 06:05:49Z beni $ -* @link http://pear.php.net/package/Net_LDAP2/ -*/ - -/** -* Package includes. -*/ -require_once 'PEAR.php'; -require_once 'Net/LDAP2/RootDSE.php'; -require_once 'Net/LDAP2/Schema.php'; -require_once 'Net/LDAP2/Entry.php'; -require_once 'Net/LDAP2/Search.php'; -require_once 'Net/LDAP2/Util.php'; -require_once 'Net/LDAP2/Filter.php'; -require_once 'Net/LDAP2/LDIF.php'; -require_once 'Net/LDAP2/SchemaCache.interface.php'; -require_once 'Net/LDAP2/SimpleFileSchemaCache.php'; - -/** -* Error constants for errors that are not LDAP errors. -*/ -define('NET_LDAP2_ERROR', 1000); - -/** -* Net_LDAP2 Version -*/ -define('NET_LDAP2_VERSION', '2.0.7'); - -/** -* Net_LDAP2 - manipulate LDAP servers the right way! -* -* @category Net -* @package Net_LDAP2 -* @author Tarjej Huse -* @author Jan Wagner -* @author Del -* @author Benedikt Hallinger -* @copyright 2003-2007 Tarjej Huse, Jan Wagner, Del Elson, Benedikt Hallinger -* @license http://www.gnu.org/copyleft/lesser.html LGPL -* @link http://pear.php.net/package/Net_LDAP2/ -*/ -class Net_LDAP2 extends PEAR -{ - /** - * Class configuration array - * - * host = the ldap host to connect to - * (may be an array of several hosts to try) - * port = the server port - * version = ldap version (defaults to v 3) - * starttls = when set, ldap_start_tls() is run after connecting. - * bindpw = no explanation needed - * binddn = the DN to bind as. - * basedn = ldap base - * options = hash of ldap options to set (opt => val) - * filter = default search filter - * scope = default search scope - * - * Newly added in 2.0.0RC4, for auto-reconnect: - * auto_reconnect = if set to true then the class will automatically - * attempt to reconnect to the LDAP server in certain - * failure conditionswhen attempting a search, or other - * LDAP operation. Defaults to false. Note that if you - * set this to true, calls to search() may block - * indefinitely if there is a catastrophic server failure. - * min_backoff = minimum reconnection delay period (in seconds). - * current_backoff = initial reconnection delay period (in seconds). - * max_backoff = maximum reconnection delay period (in seconds). - * - * @access protected - * @var array - */ - protected $_config = array('host' => 'localhost', - 'port' => 389, - 'version' => 3, - 'starttls' => false, - 'binddn' => '', - 'bindpw' => '', - 'basedn' => '', - 'options' => array(), - 'filter' => '(objectClass=*)', - 'scope' => 'sub', - 'auto_reconnect' => false, - 'min_backoff' => 1, - 'current_backoff' => 1, - 'max_backoff' => 32); - - /** - * List of hosts we try to establish a connection to - * - * @access protected - * @var array - */ - protected $_host_list = array(); - - /** - * List of hosts that are known to be down. - * - * @access protected - * @var array - */ - protected $_down_host_list = array(); - - /** - * LDAP resource link. - * - * @access protected - * @var resource - */ - protected $_link = false; - - /** - * Net_LDAP2_Schema object - * - * This gets set and returned by {@link schema()} - * - * @access protected - * @var object Net_LDAP2_Schema - */ - protected $_schema = null; - - /** - * Schema cacher function callback - * - * @see registerSchemaCache() - * @var string - */ - protected $_schema_cache = null; - - /** - * Cache for attribute encoding checks - * - * @access protected - * @var array Hash with attribute names as key and boolean value - * to determine whether they should be utf8 encoded or not. - */ - protected $_schemaAttrs = array(); - - /** - * Cache for rootDSE objects - * - * Hash with requested rootDSE attr names as key and rootDSE object as value - * - * Since the RootDSE object itself may request a rootDSE object, - * {@link rootDse()} caches successful requests. - * Internally, Net_LDAP2 needs several lookups to this object, so - * caching increases performance significally. - * - * @access protected - * @var array - */ - protected $_rootDSE_cache = array(); - - /** - * Returns the Net_LDAP2 Release version, may be called statically - * - * @static - * @return string Net_LDAP2 version - */ - public static function getVersion() - { - return NET_LDAP2_VERSION; - } - - /** - * Configure Net_LDAP2, connect and bind - * - * Use this method as starting point of using Net_LDAP2 - * to establish a connection to your LDAP server. - * - * Static function that returns either an error object or the new Net_LDAP2 - * object. Something like a factory. Takes a config array with the needed - * parameters. - * - * @param array $config Configuration array - * - * @access public - * @return Net_LDAP2_Error|Net_LDAP2 Net_LDAP2_Error or Net_LDAP2 object - */ - public static function &connect($config = array()) - { - $ldap_check = self::checkLDAPExtension(); - if (self::iserror($ldap_check)) { - return $ldap_check; - } - - @$obj = new Net_LDAP2($config); - - // todo? better errorhandling for setConfig()? - - // connect and bind with credentials in config - $err = $obj->bind(); - if (self::isError($err)) { - return $err; - } - - return $obj; - } - - /** - * Net_LDAP2 constructor - * - * Sets the config array - * - * Please note that the usual way of getting Net_LDAP2 to work is - * to call something like: - * $ldap = Net_LDAP2::connect($ldap_config); - * - * @param array $config Configuration array - * - * @access protected - * @return void - * @see $_config - */ - public function __construct($config = array()) - { - $this->PEAR('Net_LDAP2_Error'); - $this->setConfig($config); - } - - /** - * Sets the internal configuration array - * - * @param array $config Configuration array - * - * @access protected - * @return void - */ - protected function setConfig($config) - { - // - // Parameter check -- probably should raise an error here if config - // is not an array. - // - if (! is_array($config)) { - return; - } - - foreach ($config as $k => $v) { - if (isset($this->_config[$k])) { - $this->_config[$k] = $v; - } else { - // map old (Net_LDAP2) parms to new ones - switch($k) { - case "dn": - $this->_config["binddn"] = $v; - break; - case "password": - $this->_config["bindpw"] = $v; - break; - case "tls": - $this->_config["starttls"] = $v; - break; - case "base": - $this->_config["basedn"] = $v; - break; - } - } - } - - // - // Ensure the host list is an array. - // - if (is_array($this->_config['host'])) { - $this->_host_list = $this->_config['host']; - } else { - if (strlen($this->_config['host']) > 0) { - $this->_host_list = array($this->_config['host']); - } else { - $this->_host_list = array(); - // ^ this will cause an error in performConnect(), - // so the user is notified about the failure - } - } - - // - // Reset the down host list, which seems like a sensible thing to do - // if the config is being reset for some reason. - // - $this->_down_host_list = array(); - } - - /** - * Bind or rebind to the ldap-server - * - * This function binds with the given dn and password to the server. In case - * no connection has been made yet, it will be started and startTLS issued - * if appropiate. - * - * The internal bind configuration is not being updated, so if you call - * bind() without parameters, you can rebind with the credentials - * provided at first connecting to the server. - * - * @param string $dn Distinguished name for binding - * @param string $password Password for binding - * - * @access public - * @return Net_LDAP2_Error|true Net_LDAP2_Error object or true - */ - public function bind($dn = null, $password = null) - { - // fetch current bind credentials - if (is_null($dn)) { - $dn = $this->_config["binddn"]; - } - if (is_null($password)) { - $password = $this->_config["bindpw"]; - } - - // Connect first, if we haven't so far. - // This will also bind us to the server. - if ($this->_link === false) { - // store old credentials so we can revert them later - // then overwrite config with new bind credentials - $olddn = $this->_config["binddn"]; - $oldpw = $this->_config["bindpw"]; - - // overwrite bind credentials in config - // so performConnect() knows about them - $this->_config["binddn"] = $dn; - $this->_config["bindpw"] = $password; - - // try to connect with provided credentials - $msg = $this->performConnect(); - - // reset to previous config - $this->_config["binddn"] = $olddn; - $this->_config["bindpw"] = $oldpw; - - // see if bind worked - if (self::isError($msg)) { - return $msg; - } - } else { - // do the requested bind as we are - // asked to bind manually - if (is_null($dn)) { - // anonymous bind - $msg = @ldap_bind($this->_link); - } else { - // privileged bind - $msg = @ldap_bind($this->_link, $dn, $password); - } - if (false === $msg) { - return PEAR::raiseError("Bind failed: " . - @ldap_error($this->_link), - @ldap_errno($this->_link)); - } - } - return true; - } - - /** - * Connect to the ldap-server - * - * This function connects to the LDAP server specified in - * the configuration, binds and set up the LDAP protocol as needed. - * - * @access protected - * @return Net_LDAP2_Error|true Net_LDAP2_Error object or true - */ - protected function performConnect() - { - // Note: Connecting is briefly described in RFC1777. - // Basicly it works like this: - // 1. set up TCP connection - // 2. secure that connection if neccessary - // 3a. setLDAPVersion to tell server which version we want to speak - // 3b. perform bind - // 3c. setLDAPVersion to tell server which version we want to speak - // together with a test for supported versions - // 4. set additional protocol options - - // Return true if we are already connected. - if ($this->_link !== false) { - return true; - } - - // Connnect to the LDAP server if we are not connected. Note that - // with some LDAP clients, ldapperformConnect returns a link value even - // if no connection is made. We need to do at least one anonymous - // bind to ensure that a connection is actually valid. - // - // Ref: http://www.php.net/manual/en/function.ldap-connect.php - - // Default error message in case all connection attempts - // fail but no message is set - $current_error = new PEAR_Error('Unknown connection error'); - - // Catch empty $_host_list arrays. - if (!is_array($this->_host_list) || count($this->_host_list) == 0) { - $current_error = PEAR::raiseError('No Servers configured! Please '. - 'pass in an array of servers to Net_LDAP2'); - return $current_error; - } - - // Cycle through the host list. - foreach ($this->_host_list as $host) { - - // Ensure we have a valid string for host name - if (is_array($host)) { - $current_error = PEAR::raiseError('No Servers configured! '. - 'Please pass in an one dimensional array of servers to '. - 'Net_LDAP2! (multidimensional array detected!)'); - continue; - } - - // Skip this host if it is known to be down. - if (in_array($host, $this->_down_host_list)) { - continue; - } - - // Record the host that we are actually connecting to in case - // we need it later. - $this->_config['host'] = $host; - - // Attempt a connection. - $this->_link = @ldap_connect($host, $this->_config['port']); - if (false === $this->_link) { - $current_error = PEAR::raiseError('Could not connect to ' . - $host . ':' . $this->_config['port']); - $this->_down_host_list[] = $host; - continue; - } - - // If we're supposed to use TLS, do so before we try to bind, - // as some strict servers only allow binding via secure connections - if ($this->_config["starttls"] === true) { - if (self::isError($msg = $this->startTLS())) { - $current_error = $msg; - $this->_link = false; - $this->_down_host_list[] = $host; - continue; - } - } - - // Try to set the configured LDAP version on the connection if LDAP - // server needs that before binding (eg OpenLDAP). - // This could be necessary since rfc-1777 states that the protocol version - // has to be set at the bind request. - // We use force here which means that the test in the rootDSE is skipped; - // this is neccessary, because some strict LDAP servers only allow to - // read the LDAP rootDSE (which tells us the supported protocol versions) - // with authenticated clients. - // This may fail in which case we try again after binding. - // In this case, most probably the bind() or setLDAPVersion()-call - // below will also fail, providing error messages. - $version_set = false; - $ignored_err = $this->setLDAPVersion(0, true); - if (!self::isError($ignored_err)) { - $version_set = true; - } - - // Attempt to bind to the server. If we have credentials configured, - // we try to use them, otherwise its an anonymous bind. - // As stated by RFC-1777, the bind request should be the first - // operation to be performed after the connection is established. - // This may give an protocol error if the server does not support - // V2 binds and the above call to setLDAPVersion() failed. - // In case the above call failed, we try an V2 bind here and set the - // version afterwards (with checking to the rootDSE). - $msg = $this->bind(); - if (self::isError($msg)) { - // The bind failed, discard link and save error msg. - // Then record the host as down and try next one - if ($msg->getCode() == 0x02 && !$version_set) { - // provide a finer grained error message - // if protocol error arieses because of invalid version - $msg = new Net_LDAP2_Error($msg->getMessage(). - " (could not set LDAP protocol version to ". - $this->_config['version'].")", - $msg->getCode()); - } - $this->_link = false; - $current_error = $msg; - $this->_down_host_list[] = $host; - continue; - } - - // Set desired LDAP version if not successfully set before. - // Here, a check against the rootDSE is performed, so we get a - // error message if the server does not support the version. - // The rootDSE entry should tell us which LDAP versions are - // supported. However, some strict LDAP servers only allow - // bound suers to read the rootDSE. - if (!$version_set) { - if (self::isError($msg = $this->setLDAPVersion())) { - $current_error = $msg; - $this->_link = false; - $this->_down_host_list[] = $host; - continue; - } - } - - // Set LDAP parameters, now we know we have a valid connection. - if (isset($this->_config['options']) && - is_array($this->_config['options']) && - count($this->_config['options'])) { - foreach ($this->_config['options'] as $opt => $val) { - $err = $this->setOption($opt, $val); - if (self::isError($err)) { - $current_error = $err; - $this->_link = false; - $this->_down_host_list[] = $host; - continue 2; - } - } - } - - // At this stage we have connected, bound, and set up options, - // so we have a known good LDAP server. Time to go home. - return true; - } - - - // All connection attempts have failed, return the last error. - return $current_error; - } - - /** - * Reconnect to the ldap-server. - * - * In case the connection to the LDAP - * service has dropped out for some reason, this function will reconnect, - * and re-bind if a bind has been attempted in the past. It is probably - * most useful when the server list provided to the new() or connect() - * function is an array rather than a single host name, because in that - * case it will be able to connect to a failover or secondary server in - * case the primary server goes down. - * - * This doesn't return anything, it just tries to re-establish - * the current connection. It will sleep for the current backoff - * period (seconds) before attempting the connect, and if the - * connection fails it will double the backoff period, but not - * try again. If you want to ensure a reconnection during a - * transient period of server downtime then you need to call this - * function in a loop. - * - * @access protected - * @return Net_LDAP2_Error|true Net_LDAP2_Error object or true - */ - protected function performReconnect() - { - - // Return true if we are already connected. - if ($this->_link !== false) { - return true; - } - - // Default error message in case all connection attempts - // fail but no message is set - $current_error = new PEAR_Error('Unknown connection error'); - - // Sleep for a backoff period in seconds. - sleep($this->_config['current_backoff']); - - // Retry all available connections. - $this->_down_host_list = array(); - $msg = $this->performConnect(); - - // Bail out if that fails. - if (self::isError($msg)) { - $this->_config['current_backoff'] = - $this->_config['current_backoff'] * 2; - if ($this->_config['current_backoff'] > $this->_config['max_backoff']) { - $this->_config['current_backoff'] = $this->_config['max_backoff']; - } - return $msg; - } - - // Now we should be able to safely (re-)bind. - $msg = $this->bind(); - if (self::isError($msg)) { - $this->_config['current_backoff'] = $this->_config['current_backoff'] * 2; - if ($this->_config['current_backoff'] > $this->_config['max_backoff']) { - $this->_config['current_backoff'] = $this->_config['max_backoff']; - } - - // _config['host'] should have had the last connected host stored in it - // by performConnect(). Since we are unable to bind to that host we can safely - // assume that it is down or has some other problem. - $this->_down_host_list[] = $this->_config['host']; - return $msg; - } - - // At this stage we have connected, bound, and set up options, - // so we have a known good LDAP server. Time to go home. - $this->_config['current_backoff'] = $this->_config['min_backoff']; - return true; - } - - /** - * Starts an encrypted session - * - * @access public - * @return Net_LDAP2_Error|true Net_LDAP2_Error object or true - */ - public function startTLS() - { - // Test to see if the server supports TLS first. - // This is done via testing the extensions offered by the server. - // The OID 1.3.6.1.4.1.1466.20037 tells us, if TLS is supported. - $rootDSE = $this->rootDse(); - if (self::isError($rootDSE)) { - return $this->raiseError("Unable to fetch rootDSE entry ". - "to see if TLS is supoported: ".$rootDSE->getMessage(), $rootDSE->getCode()); - } - - $supported_extensions = $rootDSE->getValue('supportedExtension'); - if (self::isError($supported_extensions)) { - return $this->raiseError("Unable to fetch rootDSE attribute 'supportedExtension' ". - "to see if TLS is supoported: ".$supported_extensions->getMessage(), $supported_extensions->getCode()); - } - - if (in_array('1.3.6.1.4.1.1466.20037', $supported_extensions)) { - if (false === @ldap_start_tls($this->_link)) { - return $this->raiseError("TLS not started: " . - @ldap_error($this->_link), - @ldap_errno($this->_link)); - } - return true; - } else { - return $this->raiseError("Server reports that it does not support TLS"); - } - } - - /** - * alias function of startTLS() for perl-ldap interface - * - * @return void - * @see startTLS() - */ - public function start_tls() - { - $args = func_get_args(); - return call_user_func_array(array( &$this, 'startTLS' ), $args); - } - - /** - * Close LDAP connection. - * - * Closes the connection. Use this when the session is over. - * - * @return void - */ - public function done() - { - $this->_Net_LDAP2(); - } - - /** - * Alias for {@link done()} - * - * @return void - * @see done() - */ - public function disconnect() - { - $this->done(); - } - - /** - * Destructor - * - * @access protected - */ - public function _Net_LDAP2() - { - @ldap_close($this->_link); - } - - /** - * Add a new entryobject to a directory. - * - * Use add to add a new Net_LDAP2_Entry object to the directory. - * This also links the entry to the connection used for the add, - * if it was a fresh entry ({@link Net_LDAP2_Entry::createFresh()}) - * - * @param Net_LDAP2_Entry &$entry Net_LDAP2_Entry - * - * @return Net_LDAP2_Error|true Net_LDAP2_Error object or true - */ - public function add(&$entry) - { - if (!$entry instanceof Net_LDAP2_Entry) { - return PEAR::raiseError('Parameter to Net_LDAP2::add() must be a Net_LDAP2_Entry object.'); - } - - // Continue attempting the add operation in a loop until we - // get a success, a definitive failure, or the world ends. - $foo = 0; - while (true) { - $link = $this->getLink(); - - if ($link === false) { - // We do not have a successful connection yet. The call to - // getLink() would have kept trying if we wanted one. Go - // home now. - return PEAR::raiseError("Could not add entry " . $entry->dn() . - " no valid LDAP connection could be found."); - } - - if (@ldap_add($link, $entry->dn(), $entry->getValues())) { - // entry successfully added, we should update its $ldap reference - // in case it is not set so far (fresh entry) - if (!$entry->getLDAP() instanceof Net_LDAP2) { - $entry->setLDAP($this); - } - // store, that the entry is present inside the directory - $entry->markAsNew(false); - return true; - } else { - // We have a failure. What type? We may be able to reconnect - // and try again. - $error_code = @ldap_errno($link); - $error_name = $this->errorMessage($error_code); - - if (($error_name === 'LDAP_OPERATIONS_ERROR') && - ($this->_config['auto_reconnect'])) { - - // The server has become disconnected before trying the - // operation. We should try again, possibly with a different - // server. - $this->_link = false; - $this->performReconnect(); - } else { - // Errors other than the above catched are just passed - // back to the user so he may react upon them. - return PEAR::raiseError("Could not add entry " . $entry->dn() . " " . - $error_name, - $error_code); - } - } - } - } - - /** - * Delete an entry from the directory - * - * The object may either be a string representing the dn or a Net_LDAP2_Entry - * object. When the boolean paramter recursive is set, all subentries of the - * entry will be deleted as well. - * - * @param string|Net_LDAP2_Entry $dn DN-string or Net_LDAP2_Entry - * @param boolean $recursive Should we delete all children recursive as well? - * - * @access public - * @return Net_LDAP2_Error|true Net_LDAP2_Error object or true - */ - public function delete($dn, $recursive = false) - { - if ($dn instanceof Net_LDAP2_Entry) { - $dn = $dn->dn(); - } - if (false === is_string($dn)) { - return PEAR::raiseError("Parameter is not a string nor an entry object!"); - } - // Recursive delete searches for children and calls delete for them - if ($recursive) { - $result = @ldap_list($this->_link, $dn, '(objectClass=*)', array(null), 0, 0); - if (@ldap_count_entries($this->_link, $result)) { - $subentry = @ldap_first_entry($this->_link, $result); - $this->delete(@ldap_get_dn($this->_link, $subentry), true); - while ($subentry = @ldap_next_entry($this->_link, $subentry)) { - $this->delete(@ldap_get_dn($this->_link, $subentry), true); - } - } - } - - // Continue attempting the delete operation in a loop until we - // get a success, a definitive failure, or the world ends. - while (true) { - $link = $this->getLink(); - - if ($link === false) { - // We do not have a successful connection yet. The call to - // getLink() would have kept trying if we wanted one. Go - // home now. - return PEAR::raiseError("Could not add entry " . $dn . - " no valid LDAP connection could be found."); - } - - if (@ldap_delete($link, $dn)) { - // entry successfully deleted. - return true; - } else { - // We have a failure. What type? - // We may be able to reconnect and try again. - $error_code = @ldap_errno($link); - $error_name = $this->errorMessage($error_code); - - if (($this->errorMessage($error_code) === 'LDAP_OPERATIONS_ERROR') && - ($this->_config['auto_reconnect'])) { - // The server has become disconnected before trying the - // operation. We should try again, possibly with a - // different server. - $this->_link = false; - $this->performReconnect(); - - } elseif ($error_code == 66) { - // Subentries present, server refused to delete. - // Deleting subentries is the clients responsibility, but - // since the user may not know of the subentries, we do not - // force that here but instead notify the developer so he - // may take actions himself. - return PEAR::raiseError("Could not delete entry $dn because of subentries. Use the recursive parameter to delete them."); - - } else { - // Errors other than the above catched are just passed - // back to the user so he may react upon them. - return PEAR::raiseError("Could not delete entry " . $dn . " " . - $error_name, - $error_code); - } - } - } - } - - /** - * Modify an ldapentry directly on the server - * - * This one takes the DN or a Net_LDAP2_Entry object and an array of actions. - * This array should be something like this: - * - * array('add' => array('attribute1' => array('val1', 'val2'), - * 'attribute2' => array('val1')), - * 'delete' => array('attribute1'), - * 'replace' => array('attribute1' => array('val1')), - * 'changes' => array('add' => ..., - * 'replace' => ..., - * 'delete' => array('attribute1', 'attribute2' => array('val1'))) - * - * The changes array is there so the order of operations can be influenced - * (the operations are done in order of appearance). - * The order of execution is as following: - * 1. adds from 'add' array - * 2. deletes from 'delete' array - * 3. replaces from 'replace' array - * 4. changes (add, replace, delete) in order of appearance - * All subarrays (add, replace, delete, changes) may be given at the same time. - * - * The function calls the corresponding functions of an Net_LDAP2_Entry - * object. A detailed description of array structures can be found there. - * - * Unlike the modification methods provided by the Net_LDAP2_Entry object, - * this method will instantly carry out an update() after each operation, - * thus modifying "directly" on the server. - * - * @param string|Net_LDAP2_Entry $entry DN-string or Net_LDAP2_Entry - * @param array $parms Array of changes - * - * @access public - * @return Net_LDAP2_Error|true Net_LDAP2_Error object or true - */ - public function modify($entry, $parms = array()) - { - if (is_string($entry)) { - $entry = $this->getEntry($entry); - if (self::isError($entry)) { - return $entry; - } - } - if (!$entry instanceof Net_LDAP2_Entry) { - return PEAR::raiseError("Parameter is not a string nor an entry object!"); - } - - // Perform changes mentioned separately - foreach (array('add', 'delete', 'replace') as $action) { - if (isset($parms[$action])) { - $msg = $entry->$action($parms[$action]); - if (self::isError($msg)) { - return $msg; - } - $entry->setLDAP($this); - - // Because the @ldap functions are called inside Net_LDAP2_Entry::update(), - // we have to trap the error codes issued from that if we want to support - // reconnection. - while (true) { - $msg = $entry->update(); - - if (self::isError($msg)) { - // We have a failure. What type? We may be able to reconnect - // and try again. - $error_code = $msg->getCode(); - $error_name = $this->errorMessage($error_code); - - if (($this->errorMessage($error_code) === 'LDAP_OPERATIONS_ERROR') && - ($this->_config['auto_reconnect'])) { - - // The server has become disconnected before trying the - // operation. We should try again, possibly with a different - // server. - $this->_link = false; - $this->performReconnect(); - - } else { - - // Errors other than the above catched are just passed - // back to the user so he may react upon them. - return PEAR::raiseError("Could not modify entry: ".$msg->getMessage()); - } - } else { - // modification succeedet, evaluate next change - break; - } - } - } - } - - // perform combined changes in 'changes' array - if (isset($parms['changes']) && is_array($parms['changes'])) { - foreach ($parms['changes'] as $action => $value) { - - // Because the @ldap functions are called inside Net_LDAP2_Entry::update, - // we have to trap the error codes issued from that if we want to support - // reconnection. - while (true) { - $msg = $this->modify($entry, array($action => $value)); - - if (self::isError($msg)) { - // We have a failure. What type? We may be able to reconnect - // and try again. - $error_code = $msg->getCode(); - $error_name = $this->errorMessage($error_code); - - if (($this->errorMessage($error_code) === 'LDAP_OPERATIONS_ERROR') && - ($this->_config['auto_reconnect'])) { - - // The server has become disconnected before trying the - // operation. We should try again, possibly with a different - // server. - $this->_link = false; - $this->performReconnect(); - - } else { - // Errors other than the above catched are just passed - // back to the user so he may react upon them. - return $msg; - } - } else { - // modification succeedet, evaluate next change - break; - } - } - } - } - - return true; - } - - /** - * Run a ldap search query - * - * Search is used to query the ldap-database. - * $base and $filter may be ommitted. The one from config will - * then be used. $base is either a DN-string or an Net_LDAP2_Entry - * object in which case its DN willb e used. - * - * Params may contain: - * - * scope: The scope which will be used for searching - * base - Just one entry - * sub - The whole tree - * one - Immediately below $base - * sizelimit: Limit the number of entries returned (default: 0 = unlimited), - * timelimit: Limit the time spent for searching (default: 0 = unlimited), - * attrsonly: If true, the search will only return the attribute names, - * attributes: Array of attribute names, which the entry should contain. - * It is good practice to limit this to just the ones you need. - * [NOT IMPLEMENTED] - * deref: By default aliases are dereferenced to locate the base object for the search, but not when - * searching subordinates of the base object. This may be changed by specifying one of the - * following values: - * - * never - Do not dereference aliases in searching or in locating the base object of the search. - * search - Dereference aliases in subordinates of the base object in searching, but not in - * locating the base object of the search. - * find - * always - * - * Please note, that you cannot override server side limitations to sizelimit - * and timelimit: You can always only lower a given limit. - * - * @param string|Net_LDAP2_Entry $base LDAP searchbase - * @param string|Net_LDAP2_Filter $filter LDAP search filter or a Net_LDAP2_Filter object - * @param array $params Array of options - * - * @access public - * @return Net_LDAP2_Search|Net_LDAP2_Error Net_LDAP2_Search object or Net_LDAP2_Error object - * @todo implement search controls (sorting etc) - */ - public function search($base = null, $filter = null, $params = array()) - { - if (is_null($base)) { - $base = $this->_config['basedn']; - } - if ($base instanceof Net_LDAP2_Entry) { - $base = $base->dn(); // fetch DN of entry, making searchbase relative to the entry - } - if (is_null($filter)) { - $filter = $this->_config['filter']; - } - if ($filter instanceof Net_LDAP2_Filter) { - $filter = $filter->asString(); // convert Net_LDAP2_Filter to string representation - } - if (PEAR::isError($filter)) { - return $filter; - } - if (PEAR::isError($base)) { - return $base; - } - - /* setting searchparameters */ - (isset($params['sizelimit'])) ? $sizelimit = $params['sizelimit'] : $sizelimit = 0; - (isset($params['timelimit'])) ? $timelimit = $params['timelimit'] : $timelimit = 0; - (isset($params['attrsonly'])) ? $attrsonly = $params['attrsonly'] : $attrsonly = 0; - (isset($params['attributes'])) ? $attributes = $params['attributes'] : $attributes = array(); - - // Ensure $attributes to be an array in case only one - // attribute name was given as string - if (!is_array($attributes)) { - $attributes = array($attributes); - } - - // reorganize the $attributes array index keys - // sometimes there are problems with not consecutive indexes - $attributes = array_values($attributes); - - // scoping makes searches faster! - $scope = (isset($params['scope']) ? $params['scope'] : $this->_config['scope']); - - switch ($scope) { - case 'one': - $search_function = 'ldap_list'; - break; - case 'base': - $search_function = 'ldap_read'; - break; - default: - $search_function = 'ldap_search'; - } - - // Continue attempting the search operation until we get a success - // or a definitive failure. - while (true) { - $link = $this->getLink(); - $search = @call_user_func($search_function, - $link, - $base, - $filter, - $attributes, - $attrsonly, - $sizelimit, - $timelimit); - - if ($err = @ldap_errno($link)) { - if ($err == 32) { - // Errorcode 32 = no such object, i.e. a nullresult. - return $obj = new Net_LDAP2_Search ($search, $this, $attributes); - } elseif ($err == 4) { - // Errorcode 4 = sizelimit exeeded. - return $obj = new Net_LDAP2_Search ($search, $this, $attributes); - } elseif ($err == 87) { - // bad search filter - return $this->raiseError($this->errorMessage($err) . "($filter)", $err); - } elseif (($err == 1) && ($this->_config['auto_reconnect'])) { - // Errorcode 1 = LDAP_OPERATIONS_ERROR but we can try a reconnect. - $this->_link = false; - $this->performReconnect(); - } else { - $msg = "\nParameters:\nBase: $base\nFilter: $filter\nScope: $scope"; - return $this->raiseError($this->errorMessage($err) . $msg, $err); - } - } else { - return $obj = new Net_LDAP2_Search($search, $this, $attributes); - } - } - } - - /** - * Set an LDAP option - * - * @param string $option Option to set - * @param mixed $value Value to set Option to - * - * @access public - * @return Net_LDAP2_Error|true Net_LDAP2_Error object or true - */ - public function setOption($option, $value) - { - if ($this->_link) { - if (defined($option)) { - if (@ldap_set_option($this->_link, constant($option), $value)) { - return true; - } else { - $err = @ldap_errno($this->_link); - if ($err) { - $msg = @ldap_err2str($err); - } else { - $err = NET_LDAP2_ERROR; - $msg = $this->errorMessage($err); - } - return $this->raiseError($msg, $err); - } - } else { - return $this->raiseError("Unkown Option requested"); - } - } else { - return $this->raiseError("Could not set LDAP option: No LDAP connection"); - } - } - - /** - * Get an LDAP option value - * - * @param string $option Option to get - * - * @access public - * @return Net_LDAP2_Error|string Net_LDAP2_Error or option value - */ - public function getOption($option) - { - if ($this->_link) { - if (defined($option)) { - if (@ldap_get_option($this->_link, constant($option), $value)) { - return $value; - } else { - $err = @ldap_errno($this->_link); - if ($err) { - $msg = @ldap_err2str($err); - } else { - $err = NET_LDAP2_ERROR; - $msg = $this->errorMessage($err); - } - return $this->raiseError($msg, $err); - } - } else { - $this->raiseError("Unkown Option requested"); - } - } else { - $this->raiseError("No LDAP connection"); - } - } - - /** - * Get the LDAP_PROTOCOL_VERSION that is used on the connection. - * - * A lot of ldap functionality is defined by what protocol version the ldap server speaks. - * This might be 2 or 3. - * - * @return int - */ - public function getLDAPVersion() - { - if ($this->_link) { - $version = $this->getOption("LDAP_OPT_PROTOCOL_VERSION"); - } else { - $version = $this->_config['version']; - } - return $version; - } - - /** - * Set the LDAP_PROTOCOL_VERSION that is used on the connection. - * - * @param int $version LDAP-version that should be used - * @param boolean $force If set to true, the check against the rootDSE will be skipped - * - * @return Net_LDAP2_Error|true Net_LDAP2_Error object or true - * @todo Checking via the rootDSE takes much time - why? fetching and instanciation is quick! - */ - public function setLDAPVersion($version = 0, $force = false) - { - if (!$version) { - $version = $this->_config['version']; - } - - // - // Check to see if the server supports this version first. - // - // Todo: Why is this so horribly slow? - // $this->rootDse() is very fast, as well as Net_LDAP2_RootDSE::fetch() - // seems like a problem at copiyng the object inside PHP?? - // Additionally, this is not always reproducable... - // - if (!$force) { - $rootDSE = $this->rootDse(); - if ($rootDSE instanceof Net_LDAP2_Error) { - return $rootDSE; - } else { - $supported_versions = $rootDSE->getValue('supportedLDAPVersion'); - if (is_string($supported_versions)) { - $supported_versions = array($supported_versions); - } - $check_ok = in_array($version, $supported_versions); - } - } - - if ($force || $check_ok) { - return $this->setOption("LDAP_OPT_PROTOCOL_VERSION", $version); - } else { - return $this->raiseError("LDAP Server does not support protocol version " . $version); - } - } - - - /** - * Tells if a DN does exist in the directory - * - * @param string|Net_LDAP2_Entry $dn The DN of the object to test - * - * @return boolean|Net_LDAP2_Error - */ - public function dnExists($dn) - { - if (PEAR::isError($dn)) { - return $dn; - } - if ($dn instanceof Net_LDAP2_Entry) { - $dn = $dn->dn(); - } - if (false === is_string($dn)) { - return PEAR::raiseError('Parameter $dn is not a string nor an entry object!'); - } - - // make dn relative to parent - $base = Net_LDAP2_Util::ldap_explode_dn($dn, array('casefold' => 'none', 'reverse' => false, 'onlyvalues' => false)); - if (self::isError($base)) { - return $base; - } - $entry_rdn = array_shift($base); - if (is_array($entry_rdn)) { - // maybe the dn consist of a multivalued RDN, we must build the dn in this case - // because the $entry_rdn is an array! - $filter_dn = Net_LDAP2_Util::canonical_dn($entry_rdn); - } - $base = Net_LDAP2_Util::canonical_dn($base); - - $result = @ldap_list($this->_link, $base, $entry_rdn, array(), 1, 1); - if (@ldap_count_entries($this->_link, $result)) { - return true; - } - if (ldap_errno($this->_link) == 32) { - return false; - } - if (ldap_errno($this->_link) != 0) { - return PEAR::raiseError(ldap_error($this->_link), ldap_errno($this->_link)); - } - return false; - } - - - /** - * Get a specific entry based on the DN - * - * @param string $dn DN of the entry that should be fetched - * @param array $attr Array of Attributes to select. If ommitted, all attributes are fetched. - * - * @return Net_LDAP2_Entry|Net_LDAP2_Error Reference to a Net_LDAP2_Entry object or Net_LDAP2_Error object - * @todo Maybe check against the shema should be done to be sure the attribute type exists - */ - public function &getEntry($dn, $attr = array()) - { - if (!is_array($attr)) { - $attr = array($attr); - } - $result = $this->search($dn, '(objectClass=*)', - array('scope' => 'base', 'attributes' => $attr)); - if (self::isError($result)) { - return $result; - } elseif ($result->count() == 0) { - return PEAR::raiseError('Could not fetch entry '.$dn.': no entry found'); - } - $entry = $result->shiftEntry(); - if (false == $entry) { - return PEAR::raiseError('Could not fetch entry (error retrieving entry from search result)'); - } - return $entry; - } - - /** - * Rename or move an entry - * - * This method will instantly carry out an update() after the move, - * so the entry is moved instantly. - * You can pass an optional Net_LDAP2 object. In this case, a cross directory - * move will be performed which deletes the entry in the source (THIS) directory - * and adds it in the directory $target_ldap. - * A cross directory move will switch the Entrys internal LDAP reference so - * updates to the entry will go to the new directory. - * - * Note that if you want to do a cross directory move, you need to - * pass an Net_LDAP2_Entry object, otherwise the attributes will be empty. - * - * @param string|Net_LDAP2_Entry $entry Entry DN or Entry object - * @param string $newdn New location - * @param Net_LDAP2 $target_ldap (optional) Target directory for cross server move; should be passed via reference - * - * @return Net_LDAP2_Error|true - */ - public function move($entry, $newdn, $target_ldap = null) - { - if (is_string($entry)) { - $entry_o = $this->getEntry($entry); - } else { - $entry_o =& $entry; - } - if (!$entry_o instanceof Net_LDAP2_Entry) { - return PEAR::raiseError('Parameter $entry is expected to be a Net_LDAP2_Entry object! (If DN was passed, conversion failed)'); - } - if (null !== $target_ldap && !$target_ldap instanceof Net_LDAP2) { - return PEAR::raiseError('Parameter $target_ldap is expected to be a Net_LDAP2 object!'); - } - - if ($target_ldap && $target_ldap !== $this) { - // cross directory move - if (is_string($entry)) { - return PEAR::raiseError('Unable to perform cross directory move: operation requires a Net_LDAP2_Entry object'); - } - if ($target_ldap->dnExists($newdn)) { - return PEAR::raiseError('Unable to perform cross directory move: entry does exist in target directory'); - } - $entry_o->dn($newdn); - $res = $target_ldap->add($entry_o); - if (self::isError($res)) { - return PEAR::raiseError('Unable to perform cross directory move: '.$res->getMessage().' in target directory'); - } - $res = $this->delete($entry_o->currentDN()); - if (self::isError($res)) { - $res2 = $target_ldap->delete($entry_o); // undo add - if (self::isError($res2)) { - $add_error_string = 'Additionally, the deletion (undo add) of $entry in target directory failed.'; - } - return PEAR::raiseError('Unable to perform cross directory move: '.$res->getMessage().' in source directory. '.$add_error_string); - } - $entry_o->setLDAP($target_ldap); - return true; - } else { - // local move - $entry_o->dn($newdn); - $entry_o->setLDAP($this); - return $entry_o->update(); - } - } - - /** - * Copy an entry to a new location - * - * The entry will be immediately copied. - * Please note that only attributes you have - * selected will be copied. - * - * @param Net_LDAP2_Entry &$entry Entry object - * @param string $newdn New FQF-DN of the entry - * - * @return Net_LDAP2_Error|Net_LDAP2_Entry Error Message or reference to the copied entry - */ - public function ©(&$entry, $newdn) - { - if (!$entry instanceof Net_LDAP2_Entry) { - return PEAR::raiseError('Parameter $entry is expected to be a Net_LDAP2_Entry object!'); - } - - $newentry = Net_LDAP2_Entry::createFresh($newdn, $entry->getValues()); - $result = $this->add($newentry); - - if ($result instanceof Net_LDAP2_Error) { - return $result; - } else { - return $newentry; - } - } - - - /** - * Returns the string for an ldap errorcode. - * - * Made to be able to make better errorhandling - * Function based on DB::errorMessage() - * Tip: The best description of the errorcodes is found here: - * http://www.directory-info.com/LDAP2/LDAPErrorCodes.html - * - * @param int $errorcode Error code - * - * @return string The errorstring for the error. - */ - public function errorMessage($errorcode) - { - $errorMessages = array( - 0x00 => "LDAP_SUCCESS", - 0x01 => "LDAP_OPERATIONS_ERROR", - 0x02 => "LDAP_PROTOCOL_ERROR", - 0x03 => "LDAP_TIMELIMIT_EXCEEDED", - 0x04 => "LDAP_SIZELIMIT_EXCEEDED", - 0x05 => "LDAP_COMPARE_FALSE", - 0x06 => "LDAP_COMPARE_TRUE", - 0x07 => "LDAP_AUTH_METHOD_NOT_SUPPORTED", - 0x08 => "LDAP_STRONG_AUTH_REQUIRED", - 0x09 => "LDAP_PARTIAL_RESULTS", - 0x0a => "LDAP_REFERRAL", - 0x0b => "LDAP_ADMINLIMIT_EXCEEDED", - 0x0c => "LDAP_UNAVAILABLE_CRITICAL_EXTENSION", - 0x0d => "LDAP_CONFIDENTIALITY_REQUIRED", - 0x0e => "LDAP_SASL_BIND_INPROGRESS", - 0x10 => "LDAP_NO_SUCH_ATTRIBUTE", - 0x11 => "LDAP_UNDEFINED_TYPE", - 0x12 => "LDAP_INAPPROPRIATE_MATCHING", - 0x13 => "LDAP_CONSTRAINT_VIOLATION", - 0x14 => "LDAP_TYPE_OR_VALUE_EXISTS", - 0x15 => "LDAP_INVALID_SYNTAX", - 0x20 => "LDAP_NO_SUCH_OBJECT", - 0x21 => "LDAP_ALIAS_PROBLEM", - 0x22 => "LDAP_INVALID_DN_SYNTAX", - 0x23 => "LDAP_IS_LEAF", - 0x24 => "LDAP_ALIAS_DEREF_PROBLEM", - 0x30 => "LDAP_INAPPROPRIATE_AUTH", - 0x31 => "LDAP_INVALID_CREDENTIALS", - 0x32 => "LDAP_INSUFFICIENT_ACCESS", - 0x33 => "LDAP_BUSY", - 0x34 => "LDAP_UNAVAILABLE", - 0x35 => "LDAP_UNWILLING_TO_PERFORM", - 0x36 => "LDAP_LOOP_DETECT", - 0x3C => "LDAP_SORT_CONTROL_MISSING", - 0x3D => "LDAP_INDEX_RANGE_ERROR", - 0x40 => "LDAP_NAMING_VIOLATION", - 0x41 => "LDAP_OBJECT_CLASS_VIOLATION", - 0x42 => "LDAP_NOT_ALLOWED_ON_NONLEAF", - 0x43 => "LDAP_NOT_ALLOWED_ON_RDN", - 0x44 => "LDAP_ALREADY_EXISTS", - 0x45 => "LDAP_NO_OBJECT_CLASS_MODS", - 0x46 => "LDAP_RESULTS_TOO_LARGE", - 0x47 => "LDAP_AFFECTS_MULTIPLE_DSAS", - 0x50 => "LDAP_OTHER", - 0x51 => "LDAP_SERVER_DOWN", - 0x52 => "LDAP_LOCAL_ERROR", - 0x53 => "LDAP_ENCODING_ERROR", - 0x54 => "LDAP_DECODING_ERROR", - 0x55 => "LDAP_TIMEOUT", - 0x56 => "LDAP_AUTH_UNKNOWN", - 0x57 => "LDAP_FILTER_ERROR", - 0x58 => "LDAP_USER_CANCELLED", - 0x59 => "LDAP_PARAM_ERROR", - 0x5a => "LDAP_NO_MEMORY", - 0x5b => "LDAP_CONNECT_ERROR", - 0x5c => "LDAP_NOT_SUPPORTED", - 0x5d => "LDAP_CONTROL_NOT_FOUND", - 0x5e => "LDAP_NO_RESULTS_RETURNED", - 0x5f => "LDAP_MORE_RESULTS_TO_RETURN", - 0x60 => "LDAP_CLIENT_LOOP", - 0x61 => "LDAP_REFERRAL_LIMIT_EXCEEDED", - 1000 => "Unknown Net_LDAP2 Error" - ); - - return isset($errorMessages[$errorcode]) ? - $errorMessages[$errorcode] : - $errorMessages[NET_LDAP2_ERROR] . ' (' . $errorcode . ')'; - } - - /** - * Gets a rootDSE object - * - * This either fetches a fresh rootDSE object or returns it from - * the internal cache for performance reasons, if possible. - * - * @param array $attrs Array of attributes to search for - * - * @access public - * @return Net_LDAP2_Error|Net_LDAP2_RootDSE Net_LDAP2_Error or Net_LDAP2_RootDSE object - */ - public function &rootDse($attrs = null) - { - if ($attrs !== null && !is_array($attrs)) { - return PEAR::raiseError('Parameter $attr is expected to be an array!'); - } - - $attrs_signature = serialize($attrs); - - // see if we need to fetch a fresh object, or if we already - // requested this object with the same attributes - if (true || !array_key_exists($attrs_signature, $this->_rootDSE_cache)) { - $rootdse =& Net_LDAP2_RootDSE::fetch($this, $attrs); - if ($rootdse instanceof Net_LDAP2_Error) { - return $rootdse; - } - - // search was ok, store rootDSE in cache - $this->_rootDSE_cache[$attrs_signature] = $rootdse; - } - return $this->_rootDSE_cache[$attrs_signature]; - } - - /** - * Alias function of rootDse() for perl-ldap interface - * - * @access public - * @see rootDse() - * @return Net_LDAP2_Error|Net_LDAP2_RootDSE - */ - public function &root_dse() - { - $args = func_get_args(); - return call_user_func_array(array(&$this, 'rootDse'), $args); - } - - /** - * Get a schema object - * - * @param string $dn (optional) Subschema entry dn - * - * @access public - * @return Net_LDAP2_Schema|Net_LDAP2_Error Net_LDAP2_Schema or Net_LDAP2_Error object - */ - public function &schema($dn = null) - { - // Schema caching by Knut-Olav Hoven - // If a schema caching object is registered, we use that to fetch - // a schema object. - // See registerSchemaCache() for more info on this. - if ($this->_schema === null) { - if ($this->_schema_cache) { - $cached_schema = $this->_schema_cache->loadSchema(); - if ($cached_schema instanceof Net_LDAP2_Error) { - return $cached_schema; // route error to client - } else { - if ($cached_schema instanceof Net_LDAP2_Schema) { - $this->_schema = $cached_schema; - } - } - } - } - - // Fetch schema, if not tried before and no cached version available. - // If we are already fetching the schema, we will skip fetching. - if ($this->_schema === null) { - // store a temporary error message so subsequent calls to schema() can - // detect, that we are fetching the schema already. - // Otherwise we will get an infinite loop at Net_LDAP2_Schema::fetch() - $this->_schema = new Net_LDAP2_Error('Schema not initialized'); - $this->_schema = Net_LDAP2_Schema::fetch($this, $dn); - - // If schema caching is active, advise the cache to store the schema - if ($this->_schema_cache) { - $caching_result = $this->_schema_cache->storeSchema($this->_schema); - if ($caching_result instanceof Net_LDAP2_Error) { - return $caching_result; // route error to client - } - } - } - return $this->_schema; - } - - /** - * Enable/disable persistent schema caching - * - * Sometimes it might be useful to allow your scripts to cache - * the schema information on disk, so the schema is not fetched - * every time the script runs which could make your scripts run - * faster. - * - * This method allows you to register a custom object that - * implements your schema cache. Please see the SchemaCache interface - * (SchemaCache.interface.php) for informations on how to implement this. - * To unregister the cache, pass null as $cache parameter. - * - * For ease of use, Net_LDAP2 provides a simple file based cache - * which is used in the example below. You may use this, for example, - * to store the schema in a linux tmpfs which results in the schema - * beeing cached inside the RAM which allows nearly instant access. - * - * // Create the simple file cache object that comes along with Net_LDAP2 - * $mySchemaCache_cfg = array( - * 'path' => '/tmp/Net_LDAP2_Schema.cache', - * 'max_age' => 86400 // max age is 24 hours (in seconds) - * ); - * $mySchemaCache = new Net_LDAP2_SimpleFileSchemaCache($mySchemaCache_cfg); - * $ldap = new Net_LDAP2::connect(...); - * $ldap->registerSchemaCache($mySchemaCache); // enable caching - * // now each call to $ldap->schema() will get the schema from disk! - * - * - * @param Net_LDAP2_SchemaCache|null $cache Object implementing the Net_LDAP2_SchemaCache interface - * - * @return true|Net_LDAP2_Error - */ - public function registerSchemaCache($cache) { - if (is_null($cache) - || (is_object($cache) && in_array('Net_LDAP2_SchemaCache', class_implements($cache))) ) { - $this->_schema_cache = $cache; - return true; - } else { - return new Net_LDAP2_Error('Custom schema caching object is either no '. - 'valid object or does not implement the Net_LDAP2_SchemaCache interface!'); - } - } - - - /** - * Checks if phps ldap-extension is loaded - * - * If it is not loaded, it tries to load it manually using PHPs dl(). - * It knows both windows-dll and *nix-so. - * - * @static - * @return Net_LDAP2_Error|true - */ - public static function checkLDAPExtension() - { - if (!extension_loaded('ldap') && !@dl('ldap.' . PHP_SHLIB_SUFFIX)) { - return new Net_LDAP2_Error("It seems that you do not have the ldap-extension installed. Please install it before using the Net_LDAP2 package."); - } else { - return true; - } - } - - /** - * Encodes given attributes to UTF8 if needed by schema - * - * This function takes attributes in an array and then checks against the schema if they need - * UTF8 encoding. If that is so, they will be encoded. An encoded array will be returned and - * can be used for adding or modifying. - * - * $attributes is expected to be an array with keys describing - * the attribute names and the values as the value of this attribute: - * $attributes = array('cn' => 'foo', 'attr2' => array('mv1', 'mv2')); - * - * @param array $attributes Array of attributes - * - * @access public - * @return array|Net_LDAP2_Error Array of UTF8 encoded attributes or Error - */ - public function utf8Encode($attributes) - { - return $this->utf8($attributes, 'utf8_encode'); - } - - /** - * Decodes the given attribute values if needed by schema - * - * $attributes is expected to be an array with keys describing - * the attribute names and the values as the value of this attribute: - * $attributes = array('cn' => 'foo', 'attr2' => array('mv1', 'mv2')); - * - * @param array $attributes Array of attributes - * - * @access public - * @see utf8Encode() - * @return array|Net_LDAP2_Error Array with decoded attribute values or Error - */ - public function utf8Decode($attributes) - { - return $this->utf8($attributes, 'utf8_decode'); - } - - /** - * Encodes or decodes attribute values if needed - * - * @param array $attributes Array of attributes - * @param array $function Function to apply to attribute values - * - * @access protected - * @return array|Net_LDAP2_Error Array of attributes with function applied to values or Error - */ - protected function utf8($attributes, $function) - { - if (!is_array($attributes) || array_key_exists(0, $attributes)) { - return PEAR::raiseError('Parameter $attributes is expected to be an associative array'); - } - - if (!$this->_schema) { - $this->_schema = $this->schema(); - } - - if (!$this->_link || self::isError($this->_schema) || !function_exists($function)) { - return $attributes; - } - - if (is_array($attributes) && count($attributes) > 0) { - - foreach ($attributes as $k => $v) { - - if (!isset($this->_schemaAttrs[$k])) { - - $attr = $this->_schema->get('attribute', $k); - if (self::isError($attr)) { - continue; - } - - if (false !== strpos($attr['syntax'], '1.3.6.1.4.1.1466.115.121.1.15')) { - $encode = true; - } else { - $encode = false; - } - $this->_schemaAttrs[$k] = $encode; - - } else { - $encode = $this->_schemaAttrs[$k]; - } - - if ($encode) { - if (is_array($v)) { - foreach ($v as $ak => $av) { - $v[$ak] = call_user_func($function, $av); - } - } else { - $v = call_user_func($function, $v); - } - } - $attributes[$k] = $v; - } - } - return $attributes; - } - - /** - * Get the LDAP link resource. It will loop attempting to - * re-establish the connection if the connection attempt fails and - * auto_reconnect has been turned on (see the _config array documentation). - * - * @access public - * @return resource LDAP link - */ - public function &getLink() - { - if ($this->_config['auto_reconnect']) { - while (true) { - // - // Return the link handle if we are already connected. Otherwise - // try to reconnect. - // - if ($this->_link !== false) { - return $this->_link; - } else { - $this->performReconnect(); - } - } - } - return $this->_link; - } -} - -/** -* Net_LDAP2_Error implements a class for reporting portable LDAP error messages. -* -* @category Net -* @package Net_LDAP2 -* @author Tarjej Huse -* @license http://www.gnu.org/copyleft/lesser.html LGPL -* @link http://pear.php.net/package/Net_LDAP22/ -*/ -class Net_LDAP2_Error extends PEAR_Error -{ - /** - * Net_LDAP2_Error constructor. - * - * @param string $message String with error message. - * @param integer $code Net_LDAP2 error code - * @param integer $mode what "error mode" to operate in - * @param mixed $level what error level to use for $mode & PEAR_ERROR_TRIGGER - * @param mixed $debuginfo additional debug info, such as the last query - * - * @access public - * @see PEAR_Error - */ - public function __construct($message = 'Net_LDAP2_Error', $code = NET_LDAP2_ERROR, $mode = PEAR_ERROR_RETURN, - $level = E_USER_NOTICE, $debuginfo = null) - { - if (is_int($code)) { - $this->PEAR_Error($message . ': ' . Net_LDAP2::errorMessage($code), $code, $mode, $level, $debuginfo); - } else { - $this->PEAR_Error("$message: $code", NET_LDAP2_ERROR, $mode, $level, $debuginfo); - } - } -} - -?> diff --git a/extlib/Net/LDAP2/Entry.php b/extlib/Net/LDAP2/Entry.php deleted file mode 100644 index 66de96678..000000000 --- a/extlib/Net/LDAP2/Entry.php +++ /dev/null @@ -1,1055 +0,0 @@ - -* @author Tarjej Huse -* @author Benedikt Hallinger -* @copyright 2009 Tarjej Huse, Jan Wagner, Benedikt Hallinger -* @license http://www.gnu.org/licenses/lgpl-3.0.txt LGPLv3 -* @version SVN: $Id: Entry.php 286787 2009-08-04 06:03:12Z beni $ -* @link http://pear.php.net/package/Net_LDAP2/ -*/ - -/** -* Includes -*/ -require_once 'PEAR.php'; -require_once 'Util.php'; - -/** -* Object representation of a directory entry -* -* This class represents a directory entry. You can add, delete, replace -* attributes and their values, rename the entry, delete the entry. -* -* @category Net -* @package Net_LDAP2 -* @author Jan Wagner -* @author Tarjej Huse -* @author Benedikt Hallinger -* @license http://www.gnu.org/copyleft/lesser.html LGPL -* @link http://pear.php.net/package/Net_LDAP2/ -*/ -class Net_LDAP2_Entry extends PEAR -{ - /** - * Entry ressource identifier - * - * @access protected - * @var ressource - */ - protected $_entry = null; - - /** - * LDAP ressource identifier - * - * @access protected - * @var ressource - */ - protected $_link = null; - - /** - * Net_LDAP2 object - * - * This object will be used for updating and schema checking - * - * @access protected - * @var object Net_LDAP2 - */ - protected $_ldap = null; - - /** - * Distinguished name of the entry - * - * @access protected - * @var string - */ - protected $_dn = null; - - /** - * Attributes - * - * @access protected - * @var array - */ - protected $_attributes = array(); - - /** - * Original attributes before any modification - * - * @access protected - * @var array - */ - protected $_original = array(); - - - /** - * Map of attribute names - * - * @access protected - * @var array - */ - protected $_map = array(); - - - /** - * Is this a new entry? - * - * @access protected - * @var boolean - */ - protected $_new = true; - - /** - * New distinguished name - * - * @access protected - * @var string - */ - protected $_newdn = null; - - /** - * Shall the entry be deleted? - * - * @access protected - * @var boolean - */ - protected $_delete = false; - - /** - * Map with changes to the entry - * - * @access protected - * @var array - */ - protected $_changes = array("add" => array(), - "delete" => array(), - "replace" => array() - ); - /** - * Internal Constructor - * - * Constructor of the entry. Sets up the distinguished name and the entries - * attributes. - * You should not call this method manually! Use {@link Net_LDAP2_Entry::createFresh()} - * or {@link Net_LDAP2_Entry::createConnected()} instead! - * - * @param Net_LDAP2|ressource|array &$ldap Net_LDAP2 object, ldap-link ressource or array of attributes - * @param string|ressource $entry Either a DN or a LDAP-Entry ressource - * - * @access protected - * @return none - */ - protected function __construct(&$ldap, $entry = null) - { - $this->PEAR('Net_LDAP2_Error'); - - // set up entry resource or DN - if (is_resource($entry)) { - $this->_entry = &$entry; - } else { - $this->_dn = $entry; - } - - // set up LDAP link - if ($ldap instanceof Net_LDAP2) { - $this->_ldap = &$ldap; - $this->_link = $ldap->getLink(); - } elseif (is_resource($ldap)) { - $this->_link = $ldap; - } elseif (is_array($ldap)) { - // Special case: here $ldap is an array of attributes, - // this means, we have no link. This is a "virtual" entry. - // We just set up the attributes so one can work with the object - // as expected, but an update() fails unless setLDAP() is called. - $this->setAttributes($ldap); - } - - // if this is an entry existing in the directory, - // then set up as old and fetch attrs - if (is_resource($this->_entry) && is_resource($this->_link)) { - $this->_new = false; - $this->_dn = @ldap_get_dn($this->_link, $this->_entry); - $this->setAttributes(); // fetch attributes from server - } - } - - /** - * Creates a fresh entry that may be added to the directory later on - * - * Use this method, if you want to initialize a fresh entry. - * - * The method should be called statically: $entry = Net_LDAP2_Entry::createFresh(); - * You should put a 'objectClass' attribute into the $attrs so the directory server - * knows which object you want to create. However, you may omit this in case you - * don't want to add this entry to a directory server. - * - * The attributes parameter is as following: - * - * $attrs = array( 'attribute1' => array('value1', 'value2'), - * 'attribute2' => 'single value' - * ); - * - * - * @param string $dn DN of the Entry - * @param array $attrs Attributes of the entry - * - * @static - * @return Net_LDAP2_Entry|Net_LDAP2_Error - */ - public static function createFresh($dn, $attrs = array()) - { - if (!is_array($attrs)) { - return PEAR::raiseError("Unable to create fresh entry: Parameter \$attrs needs to be an array!"); - } - - $entry = new Net_LDAP2_Entry($attrs, $dn); - return $entry; - } - - /** - * Creates a Net_LDAP2_Entry object out of an ldap entry resource - * - * Use this method, if you want to initialize an entry object that is - * already present in some directory and that you have read manually. - * - * Please note, that if you want to create an entry object that represents - * some already existing entry, you should use {@link createExisting()}. - * - * The method should be called statically: $entry = Net_LDAP2_Entry::createConnected(); - * - * @param Net_LDAP2 $ldap Net_LDA2 object - * @param resource $entry PHP LDAP entry resource - * - * @static - * @return Net_LDAP2_Entry|Net_LDAP2_Error - */ - public static function createConnected($ldap, $entry) - { - if (!$ldap instanceof Net_LDAP2) { - return PEAR::raiseError("Unable to create connected entry: Parameter \$ldap needs to be a Net_LDAP2 object!"); - } - if (!is_resource($entry)) { - return PEAR::raiseError("Unable to create connected entry: Parameter \$entry needs to be a ldap entry resource!"); - } - - $entry = new Net_LDAP2_Entry($ldap, $entry); - return $entry; - } - - /** - * Creates an Net_LDAP2_Entry object that is considered already existing - * - * Use this method, if you want to modify an already existing entry - * without fetching it first. - * In most cases however, it is better to fetch the entry via Net_LDAP2->getEntry()! - * - * Please note that you should take care if you construct entries manually with this - * because you may get weird synchronisation problems. - * The attributes and values as well as the entry itself are considered existent - * which may produce errors if you try to modify an entry which doesn't really exist - * or if you try to overwrite some attribute with an value already present. - * - * This method is equal to calling createFresh() and after that markAsNew(FALSE). - * - * The method should be called statically: $entry = Net_LDAP2_Entry::createExisting(); - * - * The attributes parameter is as following: - * - * $attrs = array( 'attribute1' => array('value1', 'value2'), - * 'attribute2' => 'single value' - * ); - * - * - * @param string $dn DN of the Entry - * @param array $attrs Attributes of the entry - * - * @static - * @return Net_LDAP2_Entry|Net_LDAP2_Error - */ - public static function createExisting($dn, $attrs = array()) - { - if (!is_array($attrs)) { - return PEAR::raiseError("Unable to create entry object: Parameter \$attrs needs to be an array!"); - } - - $entry = Net_LDAP2_Entry::createFresh($dn, $attrs); - if ($entry instanceof Net_LDAP2_Error) { - return $entry; - } else { - $entry->markAsNew(false); - return $entry; - } - } - - /** - * Get or set the distinguished name of the entry - * - * If called without an argument the current (or the new DN if set) DN gets returned. - * If you provide an DN, this entry is moved to the new location specified if a DN existed. - * If the DN was not set, the DN gets initialized. Call {@link update()} to actually create - * the new Entry in the directory. - * To fetch the current active DN after setting a new DN but before an update(), you can use - * {@link currentDN()} to retrieve the DN that is currently active. - * - * Please note that special characters (eg german umlauts) should be encoded using utf8_encode(). - * You may use {@link Net_LDAP2_Util::canonical_dn()} for properly encoding of the DN. - * - * @param string $dn New distinguished name - * - * @access public - * @return string|true Distinguished name (or true if a new DN was provided) - */ - public function dn($dn = null) - { - if (false == is_null($dn)) { - if (is_null($this->_dn)) { - $this->_dn = $dn; - } else { - $this->_newdn = $dn; - } - return true; - } - return (isset($this->_newdn) ? $this->_newdn : $this->currentDN()); - } - - /** - * Renames or moves the entry - * - * This is just a convinience alias to {@link dn()} - * to make your code more meaningful. - * - * @param string $newdn The new DN - * - * @return true - */ - public function move($newdn) - { - return $this->dn($newdn); - } - - /** - * Sets the internal attributes array - * - * This fetches the values for the attributes from the server. - * The attribute Syntax will be checked so binary attributes will be returned - * as binary values. - * - * Attributes may be passed directly via the $attributes parameter to setup this - * entry manually. This overrides attribute fetching from the server. - * - * @param array $attributes Attributes to set for this entry - * - * @access protected - * @return void - */ - protected function setAttributes($attributes = null) - { - /* - * fetch attributes from the server - */ - if (is_null($attributes) && is_resource($this->_entry) && is_resource($this->_link)) { - // fetch schema - if ($this->_ldap instanceof Net_LDAP2) { - $schema =& $this->_ldap->schema(); - } - // fetch attributes - $attributes = array(); - do { - if (empty($attr)) { - $ber = null; - $attr = @ldap_first_attribute($this->_link, $this->_entry, $ber); - } else { - $attr = @ldap_next_attribute($this->_link, $this->_entry, $ber); - } - if ($attr) { - $func = 'ldap_get_values'; // standard function to fetch value - - // Try to get binary values as binary data - if ($schema instanceof Net_LDAP2_Schema) { - if ($schema->isBinary($attr)) { - $func = 'ldap_get_values_len'; - } - } - // fetch attribute value (needs error checking?) - $attributes[$attr] = $func($this->_link, $this->_entry, $attr); - } - } while ($attr); - } - - /* - * set attribute data directly, if passed - */ - if (is_array($attributes) && count($attributes) > 0) { - if (isset($attributes["count"]) && is_numeric($attributes["count"])) { - unset($attributes["count"]); - } - foreach ($attributes as $k => $v) { - // attribute names should not be numeric - if (is_numeric($k)) { - continue; - } - // map generic attribute name to real one - $this->_map[strtolower($k)] = $k; - // attribute values should be in an array - if (false == is_array($v)) { - $v = array($v); - } - // remove the value count (comes from ldap server) - if (isset($v["count"])) { - unset($v["count"]); - } - $this->_attributes[$k] = $v; - } - } - - // save a copy for later use - $this->_original = $this->_attributes; - } - - /** - * Get the values of all attributes in a hash - * - * The returned hash has the form - * array('attributename' => 'single value', - * 'attributename' => array('value1', value2', value3')) - * - * @access public - * @return array Hash of all attributes with their values - */ - public function getValues() - { - $attrs = array(); - foreach ($this->_attributes as $attr => $value) { - $attrs[$attr] = $this->getValue($attr); - } - return $attrs; - } - - /** - * Get the value of a specific attribute - * - * The first parameter is the name of the attribute - * The second parameter influences the way the value is returned: - * 'single': only the first value is returned as string - * 'all': all values including the value count are returned in an - * array - * 'default': in all other cases an attribute value with a single value is - * returned as string, if it has multiple values it is returned - * as an array (without value count) - * - * @param string $attr Attribute name - * @param string $option Option - * - * @access public - * @return string|array|PEAR_Error string, array or PEAR_Error - */ - public function getValue($attr, $option = null) - { - $attr = $this->getAttrName($attr); - - if (false == array_key_exists($attr, $this->_attributes)) { - return PEAR::raiseError("Unknown attribute ($attr) requested"); - } - - $value = $this->_attributes[$attr]; - - if ($option == "single" || (count($value) == 1 && $option != 'all')) { - $value = array_shift($value); - } - - return $value; - } - - /** - * Alias function of getValue for perl-ldap interface - * - * @see getValue() - * @return string|array|PEAR_Error - */ - public function get_value() - { - $args = func_get_args(); - return call_user_func_array(array( &$this, 'getValue' ), $args); - } - - /** - * Returns an array of attributes names - * - * @access public - * @return array Array of attribute names - */ - public function attributes() - { - return array_keys($this->_attributes); - } - - /** - * Returns whether an attribute exists or not - * - * @param string $attr Attribute name - * - * @access public - * @return boolean - */ - public function exists($attr) - { - $attr = $this->getAttrName($attr); - return array_key_exists($attr, $this->_attributes); - } - - /** - * Adds a new attribute or a new value to an existing attribute - * - * The paramter has to be an array of the form: - * array('attributename' => 'single value', - * 'attributename' => array('value1', 'value2)) - * When the attribute already exists the values will be added, else the - * attribute will be created. These changes are local to the entry and do - * not affect the entry on the server until update() is called. - * - * Note, that you can add values of attributes that you haven't selected, but if - * you do so, {@link getValue()} and {@link getValues()} will only return the - * values you added, _NOT_ all values present on the server. To avoid this, just refetch - * the entry after calling {@link update()} or select the attribute. - * - * @param array $attr Attributes to add - * - * @access public - * @return true|Net_LDAP2_Error - */ - public function add($attr = array()) - { - if (false == is_array($attr)) { - return PEAR::raiseError("Parameter must be an array"); - } - foreach ($attr as $k => $v) { - $k = $this->getAttrName($k); - if (false == is_array($v)) { - // Do not add empty values - if ($v == null) { - continue; - } else { - $v = array($v); - } - } - // add new values to existing attribute or add new attribute - if ($this->exists($k)) { - $this->_attributes[$k] = array_unique(array_merge($this->_attributes[$k], $v)); - } else { - $this->_map[strtolower($k)] = $k; - $this->_attributes[$k] = $v; - } - // save changes for update() - if (empty($this->_changes["add"][$k])) { - $this->_changes["add"][$k] = array(); - } - $this->_changes["add"][$k] = array_unique(array_merge($this->_changes["add"][$k], $v)); - } - $return = true; - return $return; - } - - /** - * Deletes an whole attribute or a value or the whole entry - * - * The parameter can be one of the following: - * - * "attributename" - The attribute as a whole will be deleted - * array("attributename1", "attributename2) - All given attributes will be - * deleted - * array("attributename" => "value") - The value will be deleted - * array("attributename" => array("value1", "value2") - The given values - * will be deleted - * If $attr is null or omitted , then the whole Entry will be deleted! - * - * These changes are local to the entry and do - * not affect the entry on the server until {@link update()} is called. - * - * Please note that you must select the attribute (at $ldap->search() for example) - * to be able to delete values of it, Otherwise {@link update()} will silently fail - * and remove nothing. - * - * @param string|array $attr Attributes to delete (NULL or missing to delete whole entry) - * - * @access public - * @return true - */ - public function delete($attr = null) - { - if (is_null($attr)) { - $this->_delete = true; - return true; - } - if (is_string($attr)) { - $attr = array($attr); - } - // Make the assumption that attribute names cannot be numeric, - // therefore this has to be a simple list of attribute names to delete - if (is_numeric(key($attr))) { - foreach ($attr as $name) { - if (is_array($name)) { - // someone mixed modes (list mode but specific values given!) - $del_attr_name = array_search($name, $attr); - $this->delete(array($del_attr_name => $name)); - } else { - // mark for update() if this attr was not marked before - $name = $this->getAttrName($name); - if ($this->exists($name)) { - $this->_changes["delete"][$name] = null; - unset($this->_attributes[$name]); - } - } - } - } else { - // Here we have a hash with "attributename" => "value to delete" - foreach ($attr as $name => $values) { - if (is_int($name)) { - // someone mixed modes and gave us just an attribute name - $this->delete($values); - } else { - // mark for update() if this attr was not marked before; - // this time it must consider the selected values also - $name = $this->getAttrName($name); - if ($this->exists($name)) { - if (false == is_array($values)) { - $values = array($values); - } - // save values to be deleted - if (empty($this->_changes["delete"][$name])) { - $this->_changes["delete"][$name] = array(); - } - $this->_changes["delete"][$name] = - array_unique(array_merge($this->_changes["delete"][$name], $values)); - foreach ($values as $value) { - // find the key for the value that should be deleted - $key = array_search($value, $this->_attributes[$name]); - if (false !== $key) { - // delete the value - unset($this->_attributes[$name][$key]); - } - } - } - } - } - } - $return = true; - return $return; - } - - /** - * Replaces attributes or its values - * - * The parameter has to an array of the following form: - * array("attributename" => "single value", - * "attribute2name" => array("value1", "value2"), - * "deleteme1" => null, - * "deleteme2" => "") - * If the attribute does not yet exist it will be added instead (see also $force). - * If the attribue value is null, the attribute will de deleted. - * - * These changes are local to the entry and do - * not affect the entry on the server until {@link update()} is called. - * - * In some cases you are not allowed to read the attributes value (for - * example the ActiveDirectory attribute unicodePwd) but are allowed to - * replace the value. In this case replace() would assume that the attribute - * is not in the directory yet and tries to add it which will result in an - * LDAP_TYPE_OR_VALUE_EXISTS error. - * To force replace mode instead of add, you can set $force to true. - * - * @param array $attr Attributes to replace - * @param bool $force Force replacing mode in case we can't read the attr value but are allowed to replace it - * - * @access public - * @return true|Net_LDAP2_Error - */ - public function replace($attr = array(), $force = false) - { - if (false == is_array($attr)) { - return PEAR::raiseError("Parameter must be an array"); - } - foreach ($attr as $k => $v) { - $k = $this->getAttrName($k); - if (false == is_array($v)) { - // delete attributes with empty values; treat ints as string - if (is_int($v)) { - $v = "$v"; - } - if ($v == null) { - $this->delete($k); - continue; - } else { - $v = array($v); - } - } - // existing attributes will get replaced - if ($this->exists($k) || $force) { - $this->_changes["replace"][$k] = $v; - $this->_attributes[$k] = $v; - } else { - // new ones just get added - $this->add(array($k => $v)); - } - } - $return = true; - return $return; - } - - /** - * Update the entry on the directory server - * - * This will evaluate all changes made so far and send them - * to the directory server. - * Please note, that if you make changes to objectclasses wich - * have mandatory attributes set, update() will currently fail. - * Remove the entry from the server and readd it as new in such cases. - * This also will deal with problems with setting structural object classes. - * - * @param Net_LDAP2 $ldap If passed, a call to setLDAP() is issued prior update, thus switching the LDAP-server. This is for perl-ldap interface compliance - * - * @access public - * @return true|Net_LDAP2_Error - * @todo Entry rename with a DN containing special characters needs testing! - */ - public function update($ldap = null) - { - if ($ldap) { - $msg = $this->setLDAP($ldap); - if (Net_LDAP2::isError($msg)) { - return PEAR::raiseError('You passed an invalid $ldap variable to update()'); - } - } - - // ensure we have a valid LDAP object - $ldap =& $this->getLDAP(); - if (!$ldap instanceof Net_LDAP2) { - return PEAR::raiseError("The entries LDAP object is not valid"); - } - - // Get and check link - $link = $ldap->getLink(); - if (!is_resource($link)) { - return PEAR::raiseError("Could not update entry: internal LDAP link is invalid"); - } - - /* - * Delete the entry - */ - if (true === $this->_delete) { - return $ldap->delete($this); - } - - /* - * New entry - */ - if (true === $this->_new) { - $msg = $ldap->add($this); - if (Net_LDAP2::isError($msg)) { - return $msg; - } - $this->_new = false; - $this->_changes['add'] = array(); - $this->_changes['delete'] = array(); - $this->_changes['replace'] = array(); - $this->_original = $this->_attributes; - - $return = true; - return $return; - } - - /* - * Rename/move entry - */ - if (false == is_null($this->_newdn)) { - if ($ldap->getLDAPVersion() !== 3) { - return PEAR::raiseError("Renaming/Moving an entry is only supported in LDAPv3"); - } - // make dn relative to parent (needed for ldap rename) - $parent = Net_LDAP2_Util::ldap_explode_dn($this->_newdn, array('casefolding' => 'none', 'reverse' => false, 'onlyvalues' => false)); - if (Net_LDAP2::isError($parent)) { - return $parent; - } - $child = array_shift($parent); - // maybe the dn consist of a multivalued RDN, we must build the dn in this case - // because the $child-RDN is an array! - if (is_array($child)) { - $child = Net_LDAP2_Util::canonical_dn($child); - } - $parent = Net_LDAP2_Util::canonical_dn($parent); - - // rename/move - if (false == @ldap_rename($link, $this->_dn, $child, $parent, true)) { - return PEAR::raiseError("Entry not renamed: " . - @ldap_error($link), @ldap_errno($link)); - } - // reflect changes to local copy - $this->_dn = $this->_newdn; - $this->_newdn = null; - } - - /* - * Carry out modifications to the entry - */ - // ADD - foreach ($this->_changes["add"] as $attr => $value) { - // if attribute exists, add new values - if ($this->exists($attr)) { - if (false === @ldap_mod_add($link, $this->dn(), array($attr => $value))) { - return PEAR::raiseError("Could not add new values to attribute $attr: " . - @ldap_error($link), @ldap_errno($link)); - } - } else { - // new attribute - if (false === @ldap_modify($link, $this->dn(), array($attr => $value))) { - return PEAR::raiseError("Could not add new attribute $attr: " . - @ldap_error($link), @ldap_errno($link)); - } - } - // all went well here, I guess - unset($this->_changes["add"][$attr]); - } - - // DELETE - foreach ($this->_changes["delete"] as $attr => $value) { - // In LDAPv3 you need to specify the old values for deleting - if (is_null($value) && $ldap->getLDAPVersion() === 3) { - $value = $this->_original[$attr]; - } - if (false === @ldap_mod_del($link, $this->dn(), array($attr => $value))) { - return PEAR::raiseError("Could not delete attribute $attr: " . - @ldap_error($link), @ldap_errno($link)); - } - unset($this->_changes["delete"][$attr]); - } - - // REPLACE - foreach ($this->_changes["replace"] as $attr => $value) { - if (false === @ldap_modify($link, $this->dn(), array($attr => $value))) { - return PEAR::raiseError("Could not replace attribute $attr values: " . - @ldap_error($link), @ldap_errno($link)); - } - unset($this->_changes["replace"][$attr]); - } - - // all went well, so _original (server) becomes _attributes (local copy) - $this->_original = $this->_attributes; - - $return = true; - return $return; - } - - /** - * Returns the right attribute name - * - * @param string $attr Name of attribute - * - * @access protected - * @return string The right name of the attribute - */ - protected function getAttrName($attr) - { - $name = strtolower($attr); - if (array_key_exists($name, $this->_map)) { - $attr = $this->_map[$name]; - } - return $attr; - } - - /** - * Returns a reference to the LDAP-Object of this entry - * - * @access public - * @return Net_LDAP2|Net_LDAP2_Error Reference to the Net_LDAP2 Object (the connection) or Net_LDAP2_Error - */ - public function &getLDAP() - { - if (!$this->_ldap instanceof Net_LDAP2) { - $err = new PEAR_Error('LDAP is not a valid Net_LDAP2 object'); - return $err; - } else { - return $this->_ldap; - } - } - - /** - * Sets a reference to the LDAP-Object of this entry - * - * After setting a Net_LDAP2 object, calling update() will use that object for - * updating directory contents. Use this to dynamicly switch directorys. - * - * @param Net_LDAP2 &$ldap Net_LDAP2 object that this entry should be connected to - * - * @access public - * @return true|Net_LDAP2_Error - */ - public function setLDAP(&$ldap) - { - if (!$ldap instanceof Net_LDAP2) { - return PEAR::raiseError("LDAP is not a valid Net_LDAP2 object"); - } else { - $this->_ldap =& $ldap; - return true; - } - } - - /** - * Marks the entry as new/existing. - * - * If an Entry is marked as new, it will be added to the directory - * when calling {@link update()}. - * If the entry is marked as old ($mark = false), then the entry is - * assumed to be present in the directory server wich results in - * modification when calling {@link update()}. - * - * @param boolean $mark Value to set, defaults to "true" - * - * @return void - */ - public function markAsNew($mark = true) - { - $this->_new = ($mark)? true : false; - } - - /** - * Applies a regular expression onto a single- or multivalued attribute (like preg_match()) - * - * This method behaves like PHPs preg_match() but with some exceptions. - * If you want to retrieve match information, then you MUST pass the - * $matches parameter via reference! otherwise you will get no matches. - * Since it is possible to have multi valued attributes the $matches - * array will have a additionally numerical dimension (one for each value): - * - * $matches = array( - * 0 => array (usual preg_match() returnarray), - * 1 => array (usual preg_match() returnarray) - * ) - * - * Please note, that $matches will be initialized to an empty array inside. - * - * Usage example: - * - * $result = $entry->preg_match('/089(\d+)/', 'telephoneNumber', &$matches); - * if ( $result === true ){ - * echo "First match: ".$matches[0][1]; // Match of value 1, content of first bracket - * } else { - * if ( Net_LDAP2::isError($result) ) { - * echo "Error: ".$result->getMessage(); - * } else { - * echo "No match found."; - * } - * } - * - * - * Please note that it is important to test for an Net_LDAP2_Error, because objects are - * evaluating to true by default, thus if an error occured, and you only check using "==" then - * you get misleading results. Use the "identical" (===) operator to test for matches to - * avoid this as shown above. - * - * @param string $regex The regular expression - * @param string $attr_name The attribute to search in - * @param array $matches (optional, PASS BY REFERENCE!) Array to store matches in - * - * @return boolean|Net_LDAP2_Error TRUE, if we had a match in one of the values, otherwise false. Net_LDAP2_Error in case something went wrong - */ - public function pregMatch($regex, $attr_name, $matches = array()) - { - $matches = array(); - - // fetch attribute values - $attr = $this->getValue($attr_name, 'all'); - if (Net_LDAP2::isError($attr)) { - return $attr; - } else { - unset($attr['count']); - } - - // perform preg_match() on all values - $match = false; - foreach ($attr as $thisvalue) { - $matches_int = array(); - if (preg_match($regex, $thisvalue, $matches_int)) { - $match = true; - array_push($matches, $matches_int); // store matches in reference - } - } - return $match; - } - - /** - * Alias of {@link pregMatch()} for compatibility to Net_LDAP 1 - * - * @see pregMatch() - * @return boolean|Net_LDAP2_Error - */ - public function preg_match() - { - $args = func_get_args(); - return call_user_func_array(array( &$this, 'pregMatch' ), $args); - } - - /** - * Tells if the entry is consiedered as new (not present in the server) - * - * Please note, that this doesn't tell you if the entry is present on the server. - * Use {@link Net_LDAP2::dnExists()} to see if an entry is already there. - * - * @return boolean - */ - public function isNew() - { - return $this->_new; - } - - - /** - * Is this entry going to be deleted once update() is called? - * - * @return boolean - */ - public function willBeDeleted() - { - return $this->_delete; - } - - /** - * Is this entry going to be moved once update() is called? - * - * @return boolean - */ - public function willBeMoved() - { - return ($this->dn() !== $this->currentDN()); - } - - /** - * Returns always the original DN - * - * If an entry will be moved but {@link update()} was not called, - * {@link dn()} will return the new DN. This method however, returns - * always the current active DN. - * - * @return string - */ - public function currentDN() - { - return $this->_dn; - } - - /** - * Returns the attribute changes to be carried out once update() is called - * - * @return array - */ - public function getChanges() - { - return $this->_changes; - } -} -?> diff --git a/extlib/Net/LDAP2/Filter.php b/extlib/Net/LDAP2/Filter.php deleted file mode 100644 index 0723edab2..000000000 --- a/extlib/Net/LDAP2/Filter.php +++ /dev/null @@ -1,514 +0,0 @@ - -* @copyright 2009 Benedikt Hallinger -* @license http://www.gnu.org/licenses/lgpl-3.0.txt LGPLv3 -* @version SVN: $Id: Filter.php 289978 2009-10-27 09:56:41Z beni $ -* @link http://pear.php.net/package/Net_LDAP2/ -*/ - -/** -* Includes -*/ -require_once 'PEAR.php'; -require_once 'Util.php'; - -/** -* Object representation of a part of a LDAP filter. -* -* This Class is not completely compatible to the PERL interface! -* -* The purpose of this class is, that users can easily build LDAP filters -* without having to worry about right escaping etc. -* A Filter is built using several independent filter objects -* which are combined afterwards. This object works in two -* modes, depending how the object is created. -* If the object is created using the {@link create()} method, then this is a leaf-object. -* If the object is created using the {@link combine()} method, then this is a container object. -* -* LDAP filters are defined in RFC-2254 and can be found under -* {@link http://www.ietf.org/rfc/rfc2254.txt} -* -* Here a quick copy&paste example: -* -* $filter0 = Net_LDAP2_Filter::create('stars', 'equals', '***'); -* $filter_not0 = Net_LDAP2_Filter::combine('not', $filter0); -* -* $filter1 = Net_LDAP2_Filter::create('gn', 'begins', 'bar'); -* $filter2 = Net_LDAP2_Filter::create('gn', 'ends', 'baz'); -* $filter_comp = Net_LDAP2_Filter::combine('or',array($filter_not0, $filter1, $filter2)); -* -* echo $filter_comp->asString(); -* // This will output: (|(!(stars=\0x5c0x2a\0x5c0x2a\0x5c0x2a))(gn=bar*)(gn=*baz)) -* // The stars in $filter0 are treaten as real stars unless you disable escaping. -* -* -* @category Net -* @package Net_LDAP2 -* @author Benedikt Hallinger -* @license http://www.gnu.org/copyleft/lesser.html LGPL -* @link http://pear.php.net/package/Net_LDAP2/ -*/ -class Net_LDAP2_Filter extends PEAR -{ - /** - * Storage for combination of filters - * - * This variable holds a array of filter objects - * that should be combined by this filter object. - * - * @access protected - * @var array - */ - protected $_subfilters = array(); - - /** - * Match of this filter - * - * If this is a leaf filter, then a matching rule is stored, - * if it is a container, then it is a logical operator - * - * @access protected - * @var string - */ - protected $_match; - - /** - * Single filter - * - * If we operate in leaf filter mode, - * then the constructing method stores - * the filter representation here - * - * @acces private - * @var string - */ - protected $_filter; - - /** - * Create a new Net_LDAP2_Filter object and parse $filter. - * - * This is for PERL Net::LDAP interface. - * Construction of Net_LDAP2_Filter objects should happen through either - * {@link create()} or {@link combine()} which give you more control. - * However, you may use the perl iterface if you already have generated filters. - * - * @param string $filter LDAP filter string - * - * @see parse() - */ - public function __construct($filter = false) - { - // The optional parameter must remain here, because otherwise create() crashes - if (false !== $filter) { - $filter_o = self::parse($filter); - if (PEAR::isError($filter_o)) { - $this->_filter = $filter_o; // assign error, so asString() can report it - } else { - $this->_filter = $filter_o->asString(); - } - } - } - - /** - * Constructor of a new part of a LDAP filter. - * - * The following matching rules exists: - * - equals: One of the attributes values is exactly $value - * Please note that case sensitiviness is depends on the - * attributes syntax configured in the server. - * - begins: One of the attributes values must begin with $value - * - ends: One of the attributes values must end with $value - * - contains: One of the attributes values must contain $value - * - present | any: The attribute can contain any value but must be existent - * - greater: The attributes value is greater than $value - * - less: The attributes value is less than $value - * - greaterOrEqual: The attributes value is greater or equal than $value - * - lessOrEqual: The attributes value is less or equal than $value - * - approx: One of the attributes values is similar to $value - * - * If $escape is set to true (default) then $value will be escaped - * properly. If it is set to false then $value will be treaten as raw filter value string. - * You should escape yourself using {@link Net_LDAP2_Util::escape_filter_value()}! - * - * Examples: - * - * // This will find entries that contain an attribute "sn" that ends with "foobar": - * $filter = new Net_LDAP2_Filter('sn', 'ends', 'foobar'); - * - * // This will find entries that contain an attribute "sn" that has any value set: - * $filter = new Net_LDAP2_Filter('sn', 'any'); - * - * - * @param string $attr_name Name of the attribute the filter should apply to - * @param string $match Matching rule (equals, begins, ends, contains, greater, less, greaterOrEqual, lessOrEqual, approx, any) - * @param string $value (optional) if given, then this is used as a filter - * @param boolean $escape Should $value be escaped? (default: yes, see {@link Net_LDAP2_Util::escape_filter_value()} for detailed information) - * - * @return Net_LDAP2_Filter|Net_LDAP2_Error - */ - public static function &create($attr_name, $match, $value = '', $escape = true) - { - $leaf_filter = new Net_LDAP2_Filter(); - if ($escape) { - $array = Net_LDAP2_Util::escape_filter_value(array($value)); - $value = $array[0]; - } - switch (strtolower($match)) { - case 'equals': - $leaf_filter->_filter = '(' . $attr_name . '=' . $value . ')'; - break; - case 'begins': - $leaf_filter->_filter = '(' . $attr_name . '=' . $value . '*)'; - break; - case 'ends': - $leaf_filter->_filter = '(' . $attr_name . '=*' . $value . ')'; - break; - case 'contains': - $leaf_filter->_filter = '(' . $attr_name . '=*' . $value . '*)'; - break; - case 'greater': - $leaf_filter->_filter = '(' . $attr_name . '>' . $value . ')'; - break; - case 'less': - $leaf_filter->_filter = '(' . $attr_name . '<' . $value . ')'; - break; - case 'greaterorequal': - case '>=': - $leaf_filter->_filter = '(' . $attr_name . '>=' . $value . ')'; - break; - case 'lessorequal': - case '<=': - $leaf_filter->_filter = '(' . $attr_name . '<=' . $value . ')'; - break; - case 'approx': - case '~=': - $leaf_filter->_filter = '(' . $attr_name . '~=' . $value . ')'; - break; - case 'any': - case 'present': // alias that may improve user code readability - $leaf_filter->_filter = '(' . $attr_name . '=*)'; - break; - default: - return PEAR::raiseError('Net_LDAP2_Filter create error: matching rule "' . $match . '" not known!'); - } - return $leaf_filter; - } - - /** - * Combine two or more filter objects using a logical operator - * - * This static method combines two or more filter objects and returns one single - * filter object that contains all the others. - * Call this method statically: $filter = Net_LDAP2_Filter('or', array($filter1, $filter2)) - * If the array contains filter strings instead of filter objects, we will try to parse them. - * - * @param string $log_op The locicall operator. May be "and", "or", "not" or the subsequent logical equivalents "&", "|", "!" - * @param array|Net_LDAP2_Filter $filters array with Net_LDAP2_Filter objects - * - * @return Net_LDAP2_Filter|Net_LDAP2_Error - * @static - */ - public static function &combine($log_op, $filters) - { - if (PEAR::isError($filters)) { - return $filters; - } - - // substitude named operators to logical operators - if ($log_op == 'and') $log_op = '&'; - if ($log_op == 'or') $log_op = '|'; - if ($log_op == 'not') $log_op = '!'; - - // tests for sane operation - if ($log_op == '!') { - // Not-combination, here we only accept one filter object or filter string - if ($filters instanceof Net_LDAP2_Filter) { - $filters = array($filters); // force array - } elseif (is_string($filters)) { - $filter_o = self::parse($filters); - if (PEAR::isError($filter_o)) { - $err = PEAR::raiseError('Net_LDAP2_Filter combine error: '.$filter_o->getMessage()); - return $err; - } else { - $filters = array($filter_o); - } - } elseif (is_array($filters)) { - $err = PEAR::raiseError('Net_LDAP2_Filter combine error: operator is "not" but $filter is an array!'); - return $err; - } else { - $err = PEAR::raiseError('Net_LDAP2_Filter combine error: operator is "not" but $filter is not a valid Net_LDAP2_Filter nor a filter string!'); - return $err; - } - } elseif ($log_op == '&' || $log_op == '|') { - if (!is_array($filters) || count($filters) < 2) { - $err = PEAR::raiseError('Net_LDAP2_Filter combine error: parameter $filters is not an array or contains less than two Net_LDAP2_Filter objects!'); - return $err; - } - } else { - $err = PEAR::raiseError('Net_LDAP2_Filter combine error: logical operator is not known!'); - return $err; - } - - $combined_filter = new Net_LDAP2_Filter(); - foreach ($filters as $key => $testfilter) { // check for errors - if (PEAR::isError($testfilter)) { - return $testfilter; - } elseif (is_string($testfilter)) { - // string found, try to parse into an filter object - $filter_o = self::parse($testfilter); - if (PEAR::isError($filter_o)) { - return $filter_o; - } else { - $filters[$key] = $filter_o; - } - } elseif (!$testfilter instanceof Net_LDAP2_Filter) { - $err = PEAR::raiseError('Net_LDAP2_Filter combine error: invalid object passed in array $filters!'); - return $err; - } - } - - $combined_filter->_subfilters = $filters; - $combined_filter->_match = $log_op; - return $combined_filter; - } - - /** - * Parse FILTER into a Net_LDAP2_Filter object - * - * This parses an filter string into Net_LDAP2_Filter objects. - * - * @param string $FILTER The filter string - * - * @access static - * @return Net_LDAP2_Filter|Net_LDAP2_Error - * @todo Leaf-mode: Do we need to escape at all? what about *-chars?check for the need of encoding values, tackle problems (see code comments) - */ - public static function parse($FILTER) - { - if (preg_match('/^\((.+?)\)$/', $FILTER, $matches)) { - if (in_array(substr($matches[1], 0, 1), array('!', '|', '&'))) { - // Subfilter processing: pass subfilters to parse() and combine - // the objects using the logical operator detected - // we have now something like "&(...)(...)(...)" but at least one part ("!(...)"). - // Each subfilter could be an arbitary complex subfilter. - - // extract logical operator and filter arguments - $log_op = substr($matches[1], 0, 1); - $remaining_component = substr($matches[1], 1); - - // split $remaining_component into individual subfilters - // we cannot use split() for this, because we do not know the - // complexiness of the subfilter. Thus, we look trough the filter - // string and just recognize ending filters at the first level. - // We record the index number of the char and use that information - // later to split the string. - $sub_index_pos = array(); - $prev_char = ''; // previous character looked at - $level = 0; // denotes the current bracket level we are, - // >1 is too deep, 1 is ok, 0 is outside any - // subcomponent - for ($curpos = 0; $curpos < strlen($remaining_component); $curpos++) { - $cur_char = substr($remaining_component, $curpos, 1); - - // rise/lower bracket level - if ($cur_char == '(' && $prev_char != '\\') { - $level++; - } elseif ($cur_char == ')' && $prev_char != '\\') { - $level--; - } - - if ($cur_char == '(' && $prev_char == ')' && $level == 1) { - array_push($sub_index_pos, $curpos); // mark the position for splitting - } - $prev_char = $cur_char; - } - - // now perform the splits. To get also the last part, we - // need to add the "END" index to the split array - array_push($sub_index_pos, strlen($remaining_component)); - $subfilters = array(); - $oldpos = 0; - foreach ($sub_index_pos as $s_pos) { - $str_part = substr($remaining_component, $oldpos, $s_pos - $oldpos); - array_push($subfilters, $str_part); - $oldpos = $s_pos; - } - - // some error checking... - if (count($subfilters) == 1) { - // only one subfilter found - } elseif (count($subfilters) > 1) { - // several subfilters found - if ($log_op == "!") { - return PEAR::raiseError("Filter parsing error: invalid filter syntax - NOT operator detected but several arguments given!"); - } - } else { - // this should not happen unless the user specified a wrong filter - return PEAR::raiseError("Filter parsing error: invalid filter syntax - got operator '$log_op' but no argument!"); - } - - // Now parse the subfilters into objects and combine them using the operator - $subfilters_o = array(); - foreach ($subfilters as $s_s) { - $o = self::parse($s_s); - if (PEAR::isError($o)) { - return $o; - } else { - array_push($subfilters_o, self::parse($s_s)); - } - } - - $filter_o = self::combine($log_op, $subfilters_o); - return $filter_o; - - } else { - // This is one leaf filter component, do some syntax checks, then escape and build filter_o - // $matches[1] should be now something like "foo=bar" - - // detect multiple leaf components - // [TODO] Maybe this will make problems with filters containing brackets inside the value - if (stristr($matches[1], ')(')) { - return PEAR::raiseError("Filter parsing error: invalid filter syntax - multiple leaf components detected!"); - } else { - $filter_parts = preg_split('/(?|<|>=|<=)/', $matches[1], 2, PREG_SPLIT_DELIM_CAPTURE); - if (count($filter_parts) != 3) { - return PEAR::raiseError("Filter parsing error: invalid filter syntax - unknown matching rule used"); - } else { - $filter_o = new Net_LDAP2_Filter(); - // [TODO]: Do we need to escape at all? what about *-chars user provide and that should remain special? - // I think, those prevent escaping! We need to check against PERL Net::LDAP! - // $value_arr = Net_LDAP2_Util::escape_filter_value(array($filter_parts[2])); - // $value = $value_arr[0]; - $value = $filter_parts[2]; - $filter_o->_filter = '('.$filter_parts[0].$filter_parts[1].$value.')'; - return $filter_o; - } - } - } - } else { - // ERROR: Filter components must be enclosed in round brackets - return PEAR::raiseError("Filter parsing error: invalid filter syntax - filter components must be enclosed in round brackets"); - } - } - - /** - * Get the string representation of this filter - * - * This method runs through all filter objects and creates - * the string representation of the filter. If this - * filter object is a leaf filter, then it will return - * the string representation of this filter. - * - * @return string|Net_LDAP2_Error - */ - public function asString() - { - if ($this->isLeaf()) { - $return = $this->_filter; - } else { - $return = ''; - foreach ($this->_subfilters as $filter) { - $return = $return.$filter->asString(); - } - $return = '(' . $this->_match . $return . ')'; - } - return $return; - } - - /** - * Alias for perl interface as_string() - * - * @see asString() - * @return string|Net_LDAP2_Error - */ - public function as_string() - { - return $this->asString(); - } - - /** - * Print the text representation of the filter to FH, or the currently selected output handle if FH is not given - * - * This method is only for compatibility to the perl interface. - * However, the original method was called "print" but due to PHP language restrictions, - * we can't have a print() method. - * - * @param resource $FH (optional) A filehandle resource - * - * @return true|Net_LDAP2_Error - */ - public function printMe($FH = false) - { - if (!is_resource($FH)) { - if (PEAR::isError($FH)) { - return $FH; - } - $filter_str = $this->asString(); - if (PEAR::isError($filter_str)) { - return $filter_str; - } else { - print($filter_str); - } - } else { - $filter_str = $this->asString(); - if (PEAR::isError($filter_str)) { - return $filter_str; - } else { - $res = @fwrite($FH, $this->asString()); - if ($res == false) { - return PEAR::raiseError("Unable to write filter string to filehandle \$FH!"); - } - } - } - return true; - } - - /** - * This can be used to escape a string to provide a valid LDAP-Filter. - * - * LDAP will only recognise certain characters as the - * character istself if they are properly escaped. This is - * what this method does. - * The method can be called statically, so you can use it outside - * for your own purposes (eg for escaping only parts of strings) - * - * In fact, this is just a shorthand to {@link Net_LDAP2_Util::escape_filter_value()}. - * For upward compatibiliy reasons you are strongly encouraged to use the escape - * methods provided by the Net_LDAP2_Util class. - * - * @param string $value Any string who should be escaped - * - * @static - * @return string The string $string, but escaped - * @deprecated Do not use this method anymore, instead use Net_LDAP2_Util::escape_filter_value() directly - */ - public static function escape($value) - { - $return = Net_LDAP2_Util::escape_filter_value(array($value)); - return $return[0]; - } - - /** - * Is this a container or a leaf filter object? - * - * @access protected - * @return boolean - */ - protected function isLeaf() - { - if (count($this->_subfilters) > 0) { - return false; // Container! - } else { - return true; // Leaf! - } - } -} -?> diff --git a/extlib/Net/LDAP2/LDIF.php b/extlib/Net/LDAP2/LDIF.php deleted file mode 100644 index 34f3e75dd..000000000 --- a/extlib/Net/LDAP2/LDIF.php +++ /dev/null @@ -1,922 +0,0 @@ - -* @copyright 2009 Benedikt Hallinger -* @license http://www.gnu.org/licenses/lgpl-3.0.txt LGPLv3 -* @version SVN: $Id: LDIF.php 286718 2009-08-03 07:30:49Z beni $ -* @link http://pear.php.net/package/Net_LDAP2/ -*/ - -/** -* Includes -*/ -require_once 'PEAR.php'; -require_once 'Net/LDAP2.php'; -require_once 'Net/LDAP2/Entry.php'; -require_once 'Net/LDAP2/Util.php'; - -/** -* LDIF capabilitys for Net_LDAP2, closely taken from PERLs Net::LDAP -* -* It provides a means to convert between Net_LDAP2_Entry objects and LDAP entries -* represented in LDIF format files. Reading and writing are supported and may -* manipulate single entries or lists of entries. -* -* Usage example: -* -* // Read and parse an ldif-file into Net_LDAP2_Entry objects -* // and print out the DNs. Store the entries for later use. -* require 'Net/LDAP2/LDIF.php'; -* $options = array( -* 'onerror' => 'die' -* ); -* $entries = array(); -* $ldif = new Net_LDAP2_LDIF('test.ldif', 'r', $options); -* do { -* $entry = $ldif->read_entry(); -* $dn = $entry->dn(); -* echo " done building entry: $dn\n"; -* array_push($entries, $entry); -* } while (!$ldif->eof()); -* $ldif->done(); -* -* -* // write those entries to another file -* $ldif = new Net_LDAP2_LDIF('test.out.ldif', 'w', $options); -* $ldif->write_entry($entries); -* $ldif->done(); -* -* -* @category Net -* @package Net_LDAP2 -* @author Benedikt Hallinger -* @license http://www.gnu.org/copyleft/lesser.html LGPL -* @link http://pear.php.net/package/Net_LDAP22/ -* @see http://www.ietf.org/rfc/rfc2849.txt -* @todo Error handling should be PEARified -* @todo LDAPv3 controls are not implemented yet -*/ -class Net_LDAP2_LDIF extends PEAR -{ - /** - * Options - * - * @access protected - * @var array - */ - protected $_options = array('encode' => 'base64', - 'onerror' => null, - 'change' => 0, - 'lowercase' => 0, - 'sort' => 0, - 'version' => null, - 'wrap' => 78, - 'raw' => '' - ); - - /** - * Errorcache - * - * @access protected - * @var array - */ - protected $_error = array('error' => null, - 'line' => 0 - ); - - /** - * Filehandle for read/write - * - * @access protected - * @var array - */ - protected $_FH = null; - - /** - * Says, if we opened the filehandle ourselves - * - * @access protected - * @var array - */ - protected $_FH_opened = false; - - /** - * Linecounter for input file handle - * - * @access protected - * @var array - */ - protected $_input_line = 0; - - /** - * counter for processed entries - * - * @access protected - * @var int - */ - protected $_entrynum = 0; - - /** - * Mode we are working in - * - * Either 'r', 'a' or 'w' - * - * @access protected - * @var string - */ - protected $_mode = false; - - /** - * Tells, if the LDIF version string was already written - * - * @access protected - * @var boolean - */ - protected $_version_written = false; - - /** - * Cache for lines that have build the current entry - * - * @access protected - * @var boolean - */ - protected $_lines_cur = array(); - - /** - * Cache for lines that will build the next entry - * - * @access protected - * @var boolean - */ - protected $_lines_next = array(); - - /** - * Open LDIF file for reading or for writing - * - * new (FILE): - * Open the file read-only. FILE may be the name of a file - * or an already open filehandle. - * If the file doesn't exist, it will be created if in write mode. - * - * new (FILE, MODE, OPTIONS): - * Open the file with the given MODE (see PHPs fopen()), eg "w" or "a". - * FILE may be the name of a file or an already open filehandle. - * PERLs Net_LDAP2 "FILE|" mode does not work curently. - * - * OPTIONS is an associative array and may contain: - * encode => 'none' | 'canonical' | 'base64' - * Some DN values in LDIF cannot be written verbatim and have to be encoded in some way: - * 'none' No encoding. - * 'canonical' See "canonical_dn()" in Net::LDAP::Util. - * 'base64' Use base64. (default, this differs from the Perl interface. - * The perl default is "none"!) - * - * onerror => 'die' | 'warn' | NULL - * Specify what happens when an error is detected. - * 'die' Net_LDAP2_LDIF will croak with an appropriate message. - * 'warn' Net_LDAP2_LDIF will warn (echo) with an appropriate message. - * NULL Net_LDAP2_LDIF will not warn (default), use error(). - * - * change => 1 - * Write entry changes to the LDIF file instead of the entries itself. I.e. write LDAP - * operations acting on the entries to the file instead of the entries contents. - * This writes the changes usually carried out by an update() to the LDIF file. - * - * lowercase => 1 - * Convert attribute names to lowercase when writing. - * - * sort => 1 - * Sort attribute names when writing entries according to the rule: - * objectclass first then all other attributes alphabetically sorted by attribute name - * - * version => '1' - * Set the LDIF version to write to the resulting LDIF file. - * According to RFC 2849 currently the only legal value for this option is 1. - * When this option is set Net_LDAP2_LDIF tries to adhere more strictly to - * the LDIF specification in RFC2489 in a few places. - * The default is NULL meaning no version information is written to the LDIF file. - * - * wrap => 78 - * Number of columns where output line wrapping shall occur. - * Default is 78. Setting it to 40 or lower inhibits wrapping. - * - * raw => REGEX - * Use REGEX to denote the names of attributes that are to be - * considered binary in search results if writing entries. - * Example: raw => "/(?i:^jpegPhoto|;binary)/i" - * - * @param string|ressource $file Filename or filehandle - * @param string $mode Mode to open filename - * @param array $options Options like described above - */ - public function __construct($file, $mode = 'r', $options = array()) - { - $this->PEAR('Net_LDAP2_Error'); // default error class - - // First, parse options - // todo: maybe implement further checks on possible values - foreach ($options as $option => $value) { - if (!array_key_exists($option, $this->_options)) { - $this->dropError('Net_LDAP2_LDIF error: option '.$option.' not known!'); - return; - } else { - $this->_options[$option] = strtolower($value); - } - } - - // setup LDIF class - $this->version($this->_options['version']); - - // setup file mode - if (!preg_match('/^[rwa]\+?$/', $mode)) { - $this->dropError('Net_LDAP2_LDIF error: file mode '.$mode.' not supported!'); - } else { - $this->_mode = $mode; - - // setup filehandle - if (is_resource($file)) { - // TODO: checks on mode possible? - $this->_FH =& $file; - } else { - $imode = substr($this->_mode, 0, 1); - if ($imode == 'r') { - if (!file_exists($file)) { - $this->dropError('Unable to open '.$file.' for read: file not found'); - $this->_mode = false; - } - if (!is_readable($file)) { - $this->dropError('Unable to open '.$file.' for read: permission denied'); - $this->_mode = false; - } - } - - if (($imode == 'w' || $imode == 'a')) { - if (file_exists($file)) { - if (!is_writable($file)) { - $this->dropError('Unable to open '.$file.' for write: permission denied'); - $this->_mode = false; - } - } else { - if (!@touch($file)) { - $this->dropError('Unable to create '.$file.' for write: permission denied'); - $this->_mode = false; - } - } - } - - if ($this->_mode) { - $this->_FH = @fopen($file, $this->_mode); - if (false === $this->_FH) { - // Fallback; should never be reached if tests above are good enough! - $this->dropError('Net_LDAP2_LDIF error: Could not open file '.$file); - } else { - $this->_FH_opened = true; - } - } - } - } - } - - /** - * Read one entry from the file and return it as a Net::LDAP::Entry object. - * - * @return Net_LDAP2_Entry - */ - public function read_entry() - { - // read fresh lines, set them as current lines and create the entry - $attrs = $this->next_lines(true); - if (count($attrs) > 0) { - $this->_lines_cur = $attrs; - } - return $this->current_entry(); - } - - /** - * Returns true when the end of the file is reached. - * - * @return boolean - */ - public function eof() - { - return feof($this->_FH); - } - - /** - * Write the entry or entries to the LDIF file. - * - * If you want to build an LDIF file containing several entries AND - * you want to call write_entry() several times, you must open the filehandle - * in append mode ("a"), otherwise you will always get the last entry only. - * - * @param Net_LDAP2_Entry|array $entries Entry or array of entries - * - * @return void - * @todo implement operations on whole entries (adding a whole entry) - */ - public function write_entry($entries) - { - if (!is_array($entries)) { - $entries = array($entries); - } - - foreach ($entries as $entry) { - $this->_entrynum++; - if (!$entry instanceof Net_LDAP2_Entry) { - $this->dropError('Net_LDAP2_LDIF error: entry '.$this->_entrynum.' is not an Net_LDAP2_Entry object'); - } else { - if ($this->_options['change']) { - // LDIF change mode - // fetch change information from entry - $entry_attrs_changes = $entry->getChanges(); - $num_of_changes = count($entry_attrs_changes['add']) - + count($entry_attrs_changes['replace']) - + count($entry_attrs_changes['delete']); - - $is_changed = ($num_of_changes > 0 || $entry->willBeDeleted() || $entry->willBeMoved()); - - // write version if not done yet - // also write DN of entry - if ($is_changed) { - if (!$this->_version_written) { - $this->write_version(); - } - $this->writeDN($entry->currentDN()); - } - - // process changes - // TODO: consider DN add! - if ($entry->willBeDeleted()) { - $this->writeLine("changetype: delete".PHP_EOL); - } elseif ($entry->willBeMoved()) { - $this->writeLine("changetype: modrdn".PHP_EOL); - $olddn = Net_LDAP2_Util::ldap_explode_dn($entry->currentDN(), array('casefold' => 'none')); // maybe gives a bug if using multivalued RDNs - $oldrdn = array_shift($olddn); - $oldparent = implode(',', $olddn); - $newdn = Net_LDAP2_Util::ldap_explode_dn($entry->dn(), array('casefold' => 'none')); // maybe gives a bug if using multivalued RDNs - $rdn = array_shift($newdn); - $parent = implode(',', $newdn); - $this->writeLine("newrdn: ".$rdn.PHP_EOL); - $this->writeLine("deleteoldrdn: 1".PHP_EOL); - if ($parent !== $oldparent) { - $this->writeLine("newsuperior: ".$parent.PHP_EOL); - } - // TODO: What if the entry has attribute changes as well? - // I think we should check for that and make a dummy - // entry with the changes that is written to the LDIF file - } elseif ($num_of_changes > 0) { - // write attribute change data - $this->writeLine("changetype: modify".PHP_EOL); - foreach ($entry_attrs_changes as $changetype => $entry_attrs) { - foreach ($entry_attrs as $attr_name => $attr_values) { - $this->writeLine("$changetype: $attr_name".PHP_EOL); - if ($attr_values !== null) $this->writeAttribute($attr_name, $attr_values, $changetype); - $this->writeLine("-".PHP_EOL); - } - } - } - - // finish this entrys data if we had changes - if ($is_changed) { - $this->finishEntry(); - } - } else { - // LDIF-content mode - // fetch attributes for further processing - $entry_attrs = $entry->getValues(); - - // sort and put objectclass-attrs to first position - if ($this->_options['sort']) { - ksort($entry_attrs); - if (array_key_exists('objectclass', $entry_attrs)) { - $oc = $entry_attrs['objectclass']; - unset($entry_attrs['objectclass']); - $entry_attrs = array_merge(array('objectclass' => $oc), $entry_attrs); - } - } - - // write data - if (!$this->_version_written) { - $this->write_version(); - } - $this->writeDN($entry->dn()); - foreach ($entry_attrs as $attr_name => $attr_values) { - $this->writeAttribute($attr_name, $attr_values); - } - $this->finishEntry(); - } - } - } - } - - /** - * Write version to LDIF - * - * If the object's version is defined, this method allows to explicitely write the version before an entry is written. - * If not called explicitely, it gets called automatically when writing the first entry. - * - * @return void - */ - public function write_version() - { - $this->_version_written = true; - if (!is_null($this->version())) { - return $this->writeLine('version: '.$this->version().PHP_EOL, 'Net_LDAP2_LDIF error: unable to write version'); - } - } - - /** - * Get or set LDIF version - * - * If called without arguments it returns the version of the LDIF file or NULL if no version has been set. - * If called with an argument it sets the LDIF version to VERSION. - * According to RFC 2849 currently the only legal value for VERSION is 1. - * - * @param int $version (optional) LDIF version to set - * - * @return int - */ - public function version($version = null) - { - if ($version !== null) { - if ($version != 1) { - $this->dropError('Net_LDAP2_LDIF error: illegal LDIF version set'); - } else { - $this->_options['version'] = $version; - } - } - return $this->_options['version']; - } - - /** - * Returns the file handle the Net_LDAP2_LDIF object reads from or writes to. - * - * You can, for example, use this to fetch the content of the LDIF file yourself - * - * @return null|resource - */ - public function &handle() - { - if (!is_resource($this->_FH)) { - $this->dropError('Net_LDAP2_LDIF error: invalid file resource'); - $null = null; - return $null; - } else { - return $this->_FH; - } - } - - /** - * Clean up - * - * This method signals that the LDIF object is no longer needed. - * You can use this to free up some memory and close the file handle. - * The file handle is only closed, if it was opened from Net_LDAP2_LDIF. - * - * @return void - */ - public function done() - { - // close FH if we opened it - if ($this->_FH_opened) { - fclose($this->handle()); - } - - // free variables - foreach (get_object_vars($this) as $name => $value) { - unset($this->$name); - } - } - - /** - * Returns last error message if error was found. - * - * Example: - * - * $ldif->someAction(); - * if ($ldif->error()) { - * echo "Error: ".$ldif->error()." at input line: ".$ldif->error_lines(); - * } - * - * - * @param boolean $as_string If set to true, only the message is returned - * - * @return false|Net_LDAP2_Error - */ - public function error($as_string = false) - { - if (Net_LDAP2::isError($this->_error['error'])) { - return ($as_string)? $this->_error['error']->getMessage() : $this->_error['error']; - } else { - return false; - } - } - - /** - * Returns lines that resulted in error. - * - * Perl returns an array of faulty lines in list context, - * but we always just return an int because of PHPs language. - * - * @return int - */ - public function error_lines() - { - return $this->_error['line']; - } - - /** - * Returns the current Net::LDAP::Entry object. - * - * @return Net_LDAP2_Entry|false - */ - public function current_entry() - { - return $this->parseLines($this->current_lines()); - } - - /** - * Parse LDIF lines of one entry into an Net_LDAP2_Entry object - * - * @param array $lines LDIF lines for one entry - * - * @return Net_LDAP2_Entry|false Net_LDAP2_Entry object for those lines - * @todo what about file inclusions and urls? "jpegphoto:< file:///usr/local/directory/photos/fiona.jpg" - */ - public function parseLines($lines) - { - // parse lines into an array of attributes and build the entry - $attributes = array(); - $dn = false; - foreach ($lines as $line) { - if (preg_match('/^(\w+)(:|::|:<)\s(.+)$/', $line, $matches)) { - $attr =& $matches[1]; - $delim =& $matches[2]; - $data =& $matches[3]; - - if ($delim == ':') { - // normal data - $attributes[$attr][] = $data; - } elseif ($delim == '::') { - // base64 data - $attributes[$attr][] = base64_decode($data); - } elseif ($delim == ':<') { - // file inclusion - // TODO: Is this the job of the LDAP-client or the server? - $this->dropError('File inclusions are currently not supported'); - //$attributes[$attr][] = ...; - } else { - // since the pattern above, the delimeter cannot be something else. - $this->dropError('Net_LDAP2_LDIF parsing error: invalid syntax at parsing entry line: '.$line); - continue; - } - - if (strtolower($attr) == 'dn') { - // DN line detected - $dn = $attributes[$attr][0]; // save possibly decoded DN - unset($attributes[$attr]); // remove wrongly added "dn: " attribute - } - } else { - // line not in "attr: value" format -> ignore - // maybe we should rise an error here, but this should be covered by - // next_lines() already. A problem arises, if users try to feed data of - // several entries to this method - the resulting entry will - // get wrong attributes. However, this is already mentioned in the - // methods documentation above. - } - } - - if (false === $dn) { - $this->dropError('Net_LDAP2_LDIF parsing error: unable to detect DN for entry'); - return false; - } else { - $newentry = Net_LDAP2_Entry::createFresh($dn, $attributes); - return $newentry; - } - } - - /** - * Returns the lines that generated the current Net::LDAP::Entry object. - * - * Note that this returns an empty array if no lines have been read so far. - * - * @return array Array of lines - */ - public function current_lines() - { - return $this->_lines_cur; - } - - /** - * Returns the lines that will generate the next Net::LDAP::Entry object. - * - * If you set $force to TRUE then you can iterate over the lines that build - * up entries manually. Otherwise, iterating is done using {@link read_entry()}. - * Force will move the file pointer forward, thus returning the next entries lines. - * - * Wrapped lines will be unwrapped. Comments are stripped. - * - * @param boolean $force Set this to true if you want to iterate over the lines manually - * - * @return array - */ - public function next_lines($force = false) - { - // if we already have those lines, just return them, otherwise read - if (count($this->_lines_next) == 0 || $force) { - $this->_lines_next = array(); // empty in case something was left (if used $force) - $entry_done = false; - $fh = &$this->handle(); - $commentmode = false; // if we are in an comment, for wrapping purposes - $datalines_read = 0; // how many lines with data we have read - - while (!$entry_done && !$this->eof()) { - $this->_input_line++; - // Read line. Remove line endings, we want only data; - // this is okay since ending spaces should be encoded - $data = rtrim(fgets($fh)); - if ($data === false) { - // error only, if EOF not reached after fgets() call - if (!$this->eof()) { - $this->dropError('Net_LDAP2_LDIF error: error reading from file at input line '.$this->_input_line, $this->_input_line); - } - break; - } else { - if (count($this->_lines_next) > 0 && preg_match('/^$/', $data)) { - // Entry is finished if we have an empty line after we had data - $entry_done = true; - - // Look ahead if the next EOF is nearby. Comments and empty - // lines at the file end may cause problems otherwise - $current_pos = ftell($fh); - $data = fgets($fh); - while (!feof($fh)) { - if (preg_match('/^\s*$/', $data) || preg_match('/^#/', $data)) { - // only empty lines or comments, continue to seek - // TODO: Known bug: Wrappings for comments are okay but are treaten as - // error, since we do not honor comment mode here. - // This should be a very theoretically case, however - // i am willing to fix this if really necessary. - $this->_input_line++; - $current_pos = ftell($fh); - $data = fgets($fh); - } else { - // Data found if non emtpy line and not a comment!! - // Rewind to position prior last read and stop lookahead - fseek($fh, $current_pos); - break; - } - } - // now we have either the file pointer at the beginning of - // a new data position or at the end of file causing feof() to return true - - } else { - // build lines - if (preg_match('/^version:\s(.+)$/', $data, $match)) { - // version statement, set version - $this->version($match[1]); - } elseif (preg_match('/^\w+::?\s.+$/', $data)) { - // normal attribute: add line - $commentmode = false; - $this->_lines_next[] = trim($data); - $datalines_read++; - } elseif (preg_match('/^\s(.+)$/', $data, $matches)) { - // wrapped data: unwrap if not in comment mode - if (!$commentmode) { - if ($datalines_read == 0) { - // first line of entry: wrapped data is illegal - $this->dropError('Net_LDAP2_LDIF error: illegal wrapping at input line '.$this->_input_line, $this->_input_line); - } else { - $last = array_pop($this->_lines_next); - $last = $last.trim($matches[1]); - $this->_lines_next[] = $last; - $datalines_read++; - } - } - } elseif (preg_match('/^#/', $data)) { - // LDIF comments - $commentmode = true; - } elseif (preg_match('/^\s*$/', $data)) { - // empty line but we had no data for this - // entry, so just ignore this line - $commentmode = false; - } else { - $this->dropError('Net_LDAP2_LDIF error: invalid syntax at input line '.$this->_input_line, $this->_input_line); - continue; - } - - } - } - } - } - return $this->_lines_next; - } - - /** - * Convert an attribute and value to LDIF string representation - * - * It honors correct encoding of values according to RFC 2849. - * Line wrapping will occur at the configured maximum but only if - * the value is greater than 40 chars. - * - * @param string $attr_name Name of the attribute - * @param string $attr_value Value of the attribute - * - * @access protected - * @return string LDIF string for that attribute and value - */ - protected function convertAttribute($attr_name, $attr_value) - { - // Handle empty attribute or process - if (strlen($attr_value) == 0) { - $attr_value = " "; - } else { - $base64 = false; - // ASCII-chars that are NOT safe for the - // start and for being inside the value. - // These are the int values of those chars. - $unsafe_init = array(0, 10, 13, 32, 58, 60); - $unsafe = array(0, 10, 13); - - // Test for illegal init char - $init_ord = ord(substr($attr_value, 0, 1)); - if ($init_ord > 127 || in_array($init_ord, $unsafe_init)) { - $base64 = true; - } - - // Test for illegal content char - for ($i = 0; $i < strlen($attr_value); $i++) { - $char_ord = ord(substr($attr_value, $i, 1)); - if ($char_ord > 127 || in_array($char_ord, $unsafe)) { - $base64 = true; - } - } - - // Test for ending space - if (substr($attr_value, -1) == ' ') { - $base64 = true; - } - - // If converting is needed, do it - // Either we have some special chars or a matching "raw" regex - if ($base64 || ($this->_options['raw'] && preg_match($this->_options['raw'], $attr_name))) { - $attr_name .= ':'; - $attr_value = base64_encode($attr_value); - } - - // Lowercase attr names if requested - if ($this->_options['lowercase']) $attr_name = strtolower($attr_name); - - // Handle line wrapping - if ($this->_options['wrap'] > 40 && strlen($attr_value) > $this->_options['wrap']) { - $attr_value = wordwrap($attr_value, $this->_options['wrap'], PHP_EOL." ", true); - } - } - - return $attr_name.': '.$attr_value; - } - - /** - * Convert an entries DN to LDIF string representation - * - * It honors correct encoding of values according to RFC 2849. - * - * @param string $dn UTF8-Encoded DN - * - * @access protected - * @return string LDIF string for that DN - * @todo I am not sure, if the UTF8 stuff is correctly handled right now - */ - protected function convertDN($dn) - { - $base64 = false; - // ASCII-chars that are NOT safe for the - // start and for being inside the dn. - // These are the int values of those chars. - $unsafe_init = array(0, 10, 13, 32, 58, 60); - $unsafe = array(0, 10, 13); - - // Test for illegal init char - $init_ord = ord(substr($dn, 0, 1)); - if ($init_ord >= 127 || in_array($init_ord, $unsafe_init)) { - $base64 = true; - } - - // Test for illegal content char - for ($i = 0; $i < strlen($dn); $i++) { - $char = substr($dn, $i, 1); - if (ord($char) >= 127 || in_array($init_ord, $unsafe)) { - $base64 = true; - } - } - - // Test for ending space - if (substr($dn, -1) == ' ') { - $base64 = true; - } - - // if converting is needed, do it - return ($base64)? 'dn:: '.base64_encode($dn) : 'dn: '.$dn; - } - - /** - * Writes an attribute to the filehandle - * - * @param string $attr_name Name of the attribute - * @param string|array $attr_values Single attribute value or array with attribute values - * - * @access protected - * @return void - */ - protected function writeAttribute($attr_name, $attr_values) - { - // write out attribute content - if (!is_array($attr_values)) { - $attr_values = array($attr_values); - } - foreach ($attr_values as $attr_val) { - $line = $this->convertAttribute($attr_name, $attr_val).PHP_EOL; - $this->writeLine($line, 'Net_LDAP2_LDIF error: unable to write attribute '.$attr_name.' of entry '.$this->_entrynum); - } - } - - /** - * Writes a DN to the filehandle - * - * @param string $dn DN to write - * - * @access protected - * @return void - */ - protected function writeDN($dn) - { - // prepare DN - if ($this->_options['encode'] == 'base64') { - $dn = $this->convertDN($dn).PHP_EOL; - } elseif ($this->_options['encode'] == 'canonical') { - $dn = Net_LDAP2_Util::canonical_dn($dn, array('casefold' => 'none')).PHP_EOL; - } else { - $dn = $dn.PHP_EOL; - } - $this->writeLine($dn, 'Net_LDAP2_LDIF error: unable to write DN of entry '.$this->_entrynum); - } - - /** - * Finishes an LDIF entry - * - * @access protected - * @return void - */ - protected function finishEntry() - { - $this->writeLine(PHP_EOL, 'Net_LDAP2_LDIF error: unable to close entry '.$this->_entrynum); - } - - /** - * Just write an arbitary line to the filehandle - * - * @param string $line Content to write - * @param string $error If error occurs, drop this message - * - * @access protected - * @return true|false - */ - protected function writeLine($line, $error = 'Net_LDAP2_LDIF error: unable to write to filehandle') - { - if (is_resource($this->handle()) && fwrite($this->handle(), $line, strlen($line)) === false) { - $this->dropError($error); - return false; - } else { - return true; - } - } - - /** - * Optionally raises an error and pushes the error on the error cache - * - * @param string $msg Errortext - * @param int $line Line in the LDIF that caused the error - * - * @access protected - * @return void - */ - protected function dropError($msg, $line = null) - { - $this->_error['error'] = new Net_LDAP2_Error($msg); - if ($line !== null) $this->_error['line'] = $line; - - if ($this->_options['onerror'] == 'die') { - die($msg.PHP_EOL); - } elseif ($this->_options['onerror'] == 'warn') { - echo $msg.PHP_EOL; - } - } -} -?> diff --git a/extlib/Net/LDAP2/RootDSE.php b/extlib/Net/LDAP2/RootDSE.php deleted file mode 100644 index 8dc81fd4f..000000000 --- a/extlib/Net/LDAP2/RootDSE.php +++ /dev/null @@ -1,240 +0,0 @@ - -* @copyright 2009 Jan Wagner -* @license http://www.gnu.org/licenses/lgpl-3.0.txt LGPLv3 -* @version SVN: $Id: RootDSE.php 286718 2009-08-03 07:30:49Z beni $ -* @link http://pear.php.net/package/Net_LDAP2/ -*/ - -/** -* Includes -*/ -require_once 'PEAR.php'; - -/** -* Getting the rootDSE entry of a LDAP server -* -* @category Net -* @package Net_LDAP2 -* @author Jan Wagner -* @license http://www.gnu.org/copyleft/lesser.html LGPL -* @link http://pear.php.net/package/Net_LDAP22/ -*/ -class Net_LDAP2_RootDSE extends PEAR -{ - /** - * @access protected - * @var object Net_LDAP2_Entry - **/ - protected $_entry; - - /** - * Class constructor - * - * @param Net_LDAP2_Entry &$entry Net_LDAP2_Entry object of the RootDSE - */ - protected function __construct(&$entry) - { - $this->_entry = $entry; - } - - /** - * Fetches a RootDSE object from an LDAP connection - * - * @param Net_LDAP2 $ldap Directory from which the RootDSE should be fetched - * @param array $attrs Array of attributes to search for - * - * @access static - * @return Net_LDAP2_RootDSE|Net_LDAP2_Error - */ - public static function fetch($ldap, $attrs = null) - { - if (!$ldap instanceof Net_LDAP2) { - return PEAR::raiseError("Unable to fetch Schema: Parameter \$ldap must be a Net_LDAP2 object!"); - } - - if (is_array($attrs) && count($attrs) > 0 ) { - $attributes = $attrs; - } else { - $attributes = array('vendorName', - 'vendorVersion', - 'namingContexts', - 'altServer', - 'supportedExtension', - 'supportedControl', - 'supportedSASLMechanisms', - 'supportedLDAPVersion', - 'subschemaSubentry' ); - } - $result = $ldap->search('', '(objectClass=*)', array('attributes' => $attributes, 'scope' => 'base')); - if (self::isError($result)) { - return $result; - } - $entry = $result->shiftEntry(); - if (false === $entry) { - return PEAR::raiseError('Could not fetch RootDSE entry'); - } - $ret = new Net_LDAP2_RootDSE($entry); - return $ret; - } - - /** - * Gets the requested attribute value - * - * Same usuage as {@link Net_LDAP2_Entry::getValue()} - * - * @param string $attr Attribute name - * @param array $options Array of options - * - * @access public - * @return mixed Net_LDAP2_Error object or attribute values - * @see Net_LDAP2_Entry::get_value() - */ - public function getValue($attr = '', $options = '') - { - return $this->_entry->get_value($attr, $options); - } - - /** - * Alias function of getValue() for perl-ldap interface - * - * @see getValue() - * @return mixed - */ - public function get_value() - { - $args = func_get_args(); - return call_user_func_array(array( &$this, 'getValue' ), $args); - } - - /** - * Determines if the extension is supported - * - * @param array $oids Array of oids to check - * - * @access public - * @return boolean - */ - public function supportedExtension($oids) - { - return $this->checkAttr($oids, 'supportedExtension'); - } - - /** - * Alias function of supportedExtension() for perl-ldap interface - * - * @see supportedExtension() - * @return boolean - */ - public function supported_extension() - { - $args = func_get_args(); - return call_user_func_array(array( &$this, 'supportedExtension'), $args); - } - - /** - * Determines if the version is supported - * - * @param array $versions Versions to check - * - * @access public - * @return boolean - */ - public function supportedVersion($versions) - { - return $this->checkAttr($versions, 'supportedLDAPVersion'); - } - - /** - * Alias function of supportedVersion() for perl-ldap interface - * - * @see supportedVersion() - * @return boolean - */ - public function supported_version() - { - $args = func_get_args(); - return call_user_func_array(array(&$this, 'supportedVersion'), $args); - } - - /** - * Determines if the control is supported - * - * @param array $oids Control oids to check - * - * @access public - * @return boolean - */ - public function supportedControl($oids) - { - return $this->checkAttr($oids, 'supportedControl'); - } - - /** - * Alias function of supportedControl() for perl-ldap interface - * - * @see supportedControl() - * @return boolean - */ - public function supported_control() - { - $args = func_get_args(); - return call_user_func_array(array(&$this, 'supportedControl' ), $args); - } - - /** - * Determines if the sasl mechanism is supported - * - * @param array $mechlist SASL mechanisms to check - * - * @access public - * @return boolean - */ - public function supportedSASLMechanism($mechlist) - { - return $this->checkAttr($mechlist, 'supportedSASLMechanisms'); - } - - /** - * Alias function of supportedSASLMechanism() for perl-ldap interface - * - * @see supportedSASLMechanism() - * @return boolean - */ - public function supported_sasl_mechanism() - { - $args = func_get_args(); - return call_user_func_array(array(&$this, 'supportedSASLMechanism'), $args); - } - - /** - * Checks for existance of value in attribute - * - * @param array $values values to check - * @param string $attr attribute name - * - * @access protected - * @return boolean - */ - protected function checkAttr($values, $attr) - { - if (!is_array($values)) $values = array($values); - - foreach ($values as $value) { - if (!@in_array($value, $this->get_value($attr, 'all'))) { - return false; - } - } - return true; - } -} - -?> diff --git a/extlib/Net/LDAP2/Schema.php b/extlib/Net/LDAP2/Schema.php deleted file mode 100644 index b590eabc5..000000000 --- a/extlib/Net/LDAP2/Schema.php +++ /dev/null @@ -1,516 +0,0 @@ - -* @author Benedikt Hallinger -* @copyright 2009 Jan Wagner, Benedikt Hallinger -* @license http://www.gnu.org/licenses/lgpl-3.0.txt LGPLv3 -* @version SVN: $Id: Schema.php 286718 2009-08-03 07:30:49Z beni $ -* @link http://pear.php.net/package/Net_LDAP2/ -* @todo see the comment at the end of the file -*/ - -/** -* Includes -*/ -require_once 'PEAR.php'; - -/** -* Syntax definitions -* -* Please don't forget to add binary attributes to isBinary() below -* to support proper value fetching from Net_LDAP2_Entry -*/ -define('NET_LDAP2_SYNTAX_BOOLEAN', '1.3.6.1.4.1.1466.115.121.1.7'); -define('NET_LDAP2_SYNTAX_DIRECTORY_STRING', '1.3.6.1.4.1.1466.115.121.1.15'); -define('NET_LDAP2_SYNTAX_DISTINGUISHED_NAME', '1.3.6.1.4.1.1466.115.121.1.12'); -define('NET_LDAP2_SYNTAX_INTEGER', '1.3.6.1.4.1.1466.115.121.1.27'); -define('NET_LDAP2_SYNTAX_JPEG', '1.3.6.1.4.1.1466.115.121.1.28'); -define('NET_LDAP2_SYNTAX_NUMERIC_STRING', '1.3.6.1.4.1.1466.115.121.1.36'); -define('NET_LDAP2_SYNTAX_OID', '1.3.6.1.4.1.1466.115.121.1.38'); -define('NET_LDAP2_SYNTAX_OCTET_STRING', '1.3.6.1.4.1.1466.115.121.1.40'); - -/** -* Load an LDAP Schema and provide information -* -* This class takes a Subschema entry, parses this information -* and makes it available in an array. Most of the code has been -* inspired by perl-ldap( http://perl-ldap.sourceforge.net). -* You will find portions of their implementation in here. -* -* @category Net -* @package Net_LDAP2 -* @author Jan Wagner -* @author Benedikt Hallinger -* @license http://www.gnu.org/copyleft/lesser.html LGPL -* @link http://pear.php.net/package/Net_LDAP22/ -*/ -class Net_LDAP2_Schema extends PEAR -{ - /** - * Map of entry types to ldap attributes of subschema entry - * - * @access public - * @var array - */ - public $types = array( - 'attribute' => 'attributeTypes', - 'ditcontentrule' => 'dITContentRules', - 'ditstructurerule' => 'dITStructureRules', - 'matchingrule' => 'matchingRules', - 'matchingruleuse' => 'matchingRuleUse', - 'nameform' => 'nameForms', - 'objectclass' => 'objectClasses', - 'syntax' => 'ldapSyntaxes' - ); - - /** - * Array of entries belonging to this type - * - * @access protected - * @var array - */ - protected $_attributeTypes = array(); - protected $_matchingRules = array(); - protected $_matchingRuleUse = array(); - protected $_ldapSyntaxes = array(); - protected $_objectClasses = array(); - protected $_dITContentRules = array(); - protected $_dITStructureRules = array(); - protected $_nameForms = array(); - - - /** - * hash of all fetched oids - * - * @access protected - * @var array - */ - protected $_oids = array(); - - /** - * Tells if the schema is initialized - * - * @access protected - * @var boolean - * @see parse(), get() - */ - protected $_initialized = false; - - - /** - * Constructor of the class - * - * @access protected - */ - protected function __construct() - { - $this->PEAR('Net_LDAP2_Error'); // default error class - } - - /** - * Fetch the Schema from an LDAP connection - * - * @param Net_LDAP2 $ldap LDAP connection - * @param string $dn (optional) Subschema entry dn - * - * @access public - * @return Net_LDAP2_Schema|NET_LDAP2_Error - */ - public function fetch($ldap, $dn = null) - { - if (!$ldap instanceof Net_LDAP2) { - return PEAR::raiseError("Unable to fetch Schema: Parameter \$ldap must be a Net_LDAP2 object!"); - } - - $schema_o = new Net_LDAP2_Schema(); - - if (is_null($dn)) { - // get the subschema entry via root dse - $dse = $ldap->rootDSE(array('subschemaSubentry')); - if (false == Net_LDAP2::isError($dse)) { - $base = $dse->getValue('subschemaSubentry', 'single'); - if (!Net_LDAP2::isError($base)) { - $dn = $base; - } - } - } - - // Support for buggy LDAP servers (e.g. Siemens DirX 6.x) that incorrectly - // call this entry subSchemaSubentry instead of subschemaSubentry. - // Note the correct case/spelling as per RFC 2251. - if (is_null($dn)) { - // get the subschema entry via root dse - $dse = $ldap->rootDSE(array('subSchemaSubentry')); - if (false == Net_LDAP2::isError($dse)) { - $base = $dse->getValue('subSchemaSubentry', 'single'); - if (!Net_LDAP2::isError($base)) { - $dn = $base; - } - } - } - - // Final fallback case where there is no subschemaSubentry attribute - // in the root DSE (this is a bug for an LDAP v3 server so report this - // to your LDAP vendor if you get this far). - if (is_null($dn)) { - $dn = 'cn=Subschema'; - } - - // fetch the subschema entry - $result = $ldap->search($dn, '(objectClass=*)', - array('attributes' => array_values($schema_o->types), - 'scope' => 'base')); - if (Net_LDAP2::isError($result)) { - return $result; - } - - $entry = $result->shiftEntry(); - if (!$entry instanceof Net_LDAP2_Entry) { - return PEAR::raiseError('Could not fetch Subschema entry'); - } - - $schema_o->parse($entry); - return $schema_o; - } - - /** - * Return a hash of entries for the given type - * - * Returns a hash of entry for th givene type. Types may be: - * objectclasses, attributes, ditcontentrules, ditstructurerules, matchingrules, - * matchingruleuses, nameforms, syntaxes - * - * @param string $type Type to fetch - * - * @access public - * @return array|Net_LDAP2_Error Array or Net_LDAP2_Error - */ - public function &getAll($type) - { - $map = array('objectclasses' => &$this->_objectClasses, - 'attributes' => &$this->_attributeTypes, - 'ditcontentrules' => &$this->_dITContentRules, - 'ditstructurerules' => &$this->_dITStructureRules, - 'matchingrules' => &$this->_matchingRules, - 'matchingruleuses' => &$this->_matchingRuleUse, - 'nameforms' => &$this->_nameForms, - 'syntaxes' => &$this->_ldapSyntaxes ); - - $key = strtolower($type); - $ret = ((key_exists($key, $map)) ? $map[$key] : PEAR::raiseError("Unknown type $type")); - return $ret; - } - - /** - * Return a specific entry - * - * @param string $type Type of name - * @param string $name Name or OID to fetch - * - * @access public - * @return mixed Entry or Net_LDAP2_Error - */ - public function &get($type, $name) - { - if ($this->_initialized) { - $type = strtolower($type); - if (false == key_exists($type, $this->types)) { - return PEAR::raiseError("No such type $type"); - } - - $name = strtolower($name); - $type_var = &$this->{'_' . $this->types[$type]}; - - if (key_exists($name, $type_var)) { - return $type_var[$name]; - } elseif (key_exists($name, $this->_oids) && $this->_oids[$name]['type'] == $type) { - return $this->_oids[$name]; - } else { - return PEAR::raiseError("Could not find $type $name"); - } - } else { - $return = null; - return $return; - } - } - - - /** - * Fetches attributes that MAY be present in the given objectclass - * - * @param string $oc Name or OID of objectclass - * - * @access public - * @return array|Net_LDAP2_Error Array with attributes or Net_LDAP2_Error - */ - public function may($oc) - { - return $this->_getAttr($oc, 'may'); - } - - /** - * Fetches attributes that MUST be present in the given objectclass - * - * @param string $oc Name or OID of objectclass - * - * @access public - * @return array|Net_LDAP2_Error Array with attributes or Net_LDAP2_Error - */ - public function must($oc) - { - return $this->_getAttr($oc, 'must'); - } - - /** - * Fetches the given attribute from the given objectclass - * - * @param string $oc Name or OID of objectclass - * @param string $attr Name of attribute to fetch - * - * @access protected - * @return array|Net_LDAP2_Error The attribute or Net_LDAP2_Error - */ - protected function _getAttr($oc, $attr) - { - $oc = strtolower($oc); - if (key_exists($oc, $this->_objectClasses) && key_exists($attr, $this->_objectClasses[$oc])) { - return $this->_objectClasses[$oc][$attr]; - } elseif (key_exists($oc, $this->_oids) && - $this->_oids[$oc]['type'] == 'objectclass' && - key_exists($attr, $this->_oids[$oc])) { - return $this->_oids[$oc][$attr]; - } else { - return PEAR::raiseError("Could not find $attr attributes for $oc "); - } - } - - /** - * Returns the name(s) of the immediate superclass(es) - * - * @param string $oc Name or OID of objectclass - * - * @access public - * @return array|Net_LDAP2_Error Array of names or Net_LDAP2_Error - */ - public function superclass($oc) - { - $o = $this->get('objectclass', $oc); - if (Net_LDAP2::isError($o)) { - return $o; - } - return (key_exists('sup', $o) ? $o['sup'] : array()); - } - - /** - * Parses the schema of the given Subschema entry - * - * @param Net_LDAP2_Entry &$entry Subschema entry - * - * @access public - * @return void - */ - public function parse(&$entry) - { - foreach ($this->types as $type => $attr) { - // initialize map type to entry - $type_var = '_' . $attr; - $this->{$type_var} = array(); - - // get values for this type - if ($entry->exists($attr)) { - $values = $entry->getValue($attr); - if (is_array($values)) { - foreach ($values as $value) { - - unset($schema_entry); // this was a real mess without it - - // get the schema entry - $schema_entry = $this->_parse_entry($value); - - // set the type - $schema_entry['type'] = $type; - - // save a ref in $_oids - $this->_oids[$schema_entry['oid']] = &$schema_entry; - - // save refs for all names in type map - $names = $schema_entry['aliases']; - array_push($names, $schema_entry['name']); - foreach ($names as $name) { - $this->{$type_var}[strtolower($name)] = &$schema_entry; - } - } - } - } - } - $this->_initialized = true; - } - - /** - * Parses an attribute value into a schema entry - * - * @param string $value Attribute value - * - * @access protected - * @return array|false Schema entry array or false - */ - protected function &_parse_entry($value) - { - // tokens that have no value associated - $noValue = array('single-value', - 'obsolete', - 'collective', - 'no-user-modification', - 'abstract', - 'structural', - 'auxiliary'); - - // tokens that can have multiple values - $multiValue = array('must', 'may', 'sup'); - - $schema_entry = array('aliases' => array()); // initilization - - $tokens = $this->_tokenize($value); // get an array of tokens - - // remove surrounding brackets - if ($tokens[0] == '(') array_shift($tokens); - if ($tokens[count($tokens) - 1] == ')') array_pop($tokens); // -1 doesnt work on arrays :-( - - $schema_entry['oid'] = array_shift($tokens); // first token is the oid - - // cycle over the tokens until none are left - while (count($tokens) > 0) { - $token = strtolower(array_shift($tokens)); - if (in_array($token, $noValue)) { - $schema_entry[$token] = 1; // single value token - } else { - // this one follows a string or a list if it is multivalued - if (($schema_entry[$token] = array_shift($tokens)) == '(') { - // this creates the list of values and cycles through the tokens - // until the end of the list is reached ')' - $schema_entry[$token] = array(); - while ($tmp = array_shift($tokens)) { - if ($tmp == ')') break; - if ($tmp != '$') array_push($schema_entry[$token], $tmp); - } - } - // create a array if the value should be multivalued but was not - if (in_array($token, $multiValue) && !is_array($schema_entry[$token])) { - $schema_entry[$token] = array($schema_entry[$token]); - } - } - } - // get max length from syntax - if (key_exists('syntax', $schema_entry)) { - if (preg_match('/{(\d+)}/', $schema_entry['syntax'], $matches)) { - $schema_entry['max_length'] = $matches[1]; - } - } - // force a name - if (empty($schema_entry['name'])) { - $schema_entry['name'] = $schema_entry['oid']; - } - // make one name the default and put the other ones into aliases - if (is_array($schema_entry['name'])) { - $aliases = $schema_entry['name']; - $schema_entry['name'] = array_shift($aliases); - $schema_entry['aliases'] = $aliases; - } - return $schema_entry; - } - - /** - * Tokenizes the given value into an array of tokens - * - * @param string $value String to parse - * - * @access protected - * @return array Array of tokens - */ - protected function _tokenize($value) - { - $tokens = array(); // array of tokens - $matches = array(); // matches[0] full pattern match, [1,2,3] subpatterns - - // this one is taken from perl-ldap, modified for php - $pattern = "/\s* (?:([()]) | ([^'\s()]+) | '((?:[^']+|'[^\s)])*)') \s*/x"; - - /** - * This one matches one big pattern wherin only one of the three subpatterns matched - * We are interested in the subpatterns that matched. If it matched its value will be - * non-empty and so it is a token. Tokens may be round brackets, a string, or a string - * enclosed by ' - */ - preg_match_all($pattern, $value, $matches); - - for ($i = 0; $i < count($matches[0]); $i++) { // number of tokens (full pattern match) - for ($j = 1; $j < 4; $j++) { // each subpattern - if (null != trim($matches[$j][$i])) { // pattern match in this subpattern - $tokens[$i] = trim($matches[$j][$i]); // this is the token - } - } - } - return $tokens; - } - - /** - * Returns wether a attribute syntax is binary or not - * - * This method gets used by Net_LDAP2_Entry to decide which - * PHP function needs to be used to fetch the value in the - * proper format (e.g. binary or string) - * - * @param string $attribute The name of the attribute (eg.: 'sn') - * - * @access public - * @return boolean - */ - public function isBinary($attribute) - { - $return = false; // default to false - - // This list contains all syntax that should be treaten as - // containing binary values - // The Syntax Definitons go into constants at the top of this page - $syntax_binary = array( - NET_LDAP2_SYNTAX_OCTET_STRING, - NET_LDAP2_SYNTAX_JPEG - ); - - // Check Syntax - $attr_s = $this->get('attribute', $attribute); - if (Net_LDAP2::isError($attr_s)) { - // Attribute not found in schema - $return = false; // consider attr not binary - } elseif (isset($attr_s['syntax']) && in_array($attr_s['syntax'], $syntax_binary)) { - // Syntax is defined as binary in schema - $return = true; - } else { - // Syntax not defined as binary, or not found - // if attribute is a subtype, check superior attribute syntaxes - if (isset($attr_s['sup'])) { - foreach ($attr_s['sup'] as $superattr) { - $return = $this->isBinary($superattr); - if ($return) { - break; // stop checking parents since we are binary - } - } - } - } - - return $return; - } - - // [TODO] add method that allows us to see to which objectclasses a certain attribute belongs to - // it should return the result structured, e.g. sorted in "may" and "must". Optionally it should - // be able to return it just "flat", e.g. array_merge()d. - // We could use get_all() to achieve this easily, i think -} -?> diff --git a/extlib/Net/LDAP2/SchemaCache.interface.php b/extlib/Net/LDAP2/SchemaCache.interface.php deleted file mode 100644 index e0c3094c4..000000000 --- a/extlib/Net/LDAP2/SchemaCache.interface.php +++ /dev/null @@ -1,59 +0,0 @@ - -* @copyright 2009 Benedikt Hallinger -* @license http://www.gnu.org/licenses/lgpl-3.0.txt LGPLv3 -* @version SVN: $Id: SchemaCache.interface.php 286718 2009-08-03 07:30:49Z beni $ -* @link http://pear.php.net/package/Net_LDAP2/ -*/ - -/** -* Interface describing a custom schema cache object -* -* To implement a custom schema cache, one must implement this interface and -* pass the instanciated object to Net_LDAP2s registerSchemaCache() method. -*/ -interface Net_LDAP2_SchemaCache -{ - /** - * Return the schema object from the cache - * - * Net_LDAP2 will consider anything returned invalid, except - * a valid Net_LDAP2_Schema object. - * In case you return a Net_LDAP2_Error, this error will be routed - * to the return of the $ldap->schema() call. - * If you return something else, Net_LDAP2 will - * fetch a fresh Schema object from the LDAP server. - * - * You may want to implement a cache aging mechanism here too. - * - * @return Net_LDAP2_Schema|Net_LDAP2_Error|false - */ - public function loadSchema(); - - /** - * Store a schema object in the cache - * - * This method will be called, if Net_LDAP2 has fetched a fresh - * schema object from LDAP and wants to init or refresh the cache. - * - * In case of errors you may return a Net_LDAP2_Error which will - * be routet to the client. - * Note that doing this prevents, that the schema object fetched from LDAP - * will be given back to the client, so only return errors if storing - * of the cache is something crucial (e.g. for doing something else with it). - * Normaly you dont want to give back errors in which case Net_LDAP2 needs to - * fetch the schema once per script run and instead use the error - * returned from loadSchema(). - * - * @return true|Net_LDAP2_Error - */ - public function storeSchema($schema); -} diff --git a/extlib/Net/LDAP2/Search.php b/extlib/Net/LDAP2/Search.php deleted file mode 100644 index de4fde122..000000000 --- a/extlib/Net/LDAP2/Search.php +++ /dev/null @@ -1,614 +0,0 @@ - -* @author Benedikt Hallinger -* @copyright 2009 Tarjej Huse, Benedikt Hallinger -* @license http://www.gnu.org/licenses/lgpl-3.0.txt LGPLv3 -* @version SVN: $Id: Search.php 286718 2009-08-03 07:30:49Z beni $ -* @link http://pear.php.net/package/Net_LDAP2/ -*/ - -/** -* Includes -*/ -require_once 'PEAR.php'; - -/** -* Result set of an LDAP search -* -* @category Net -* @package Net_LDAP2 -* @author Tarjej Huse -* @author Benedikt Hallinger -* @license http://www.gnu.org/copyleft/lesser.html LGPL -* @link http://pear.php.net/package/Net_LDAP22/ -*/ -class Net_LDAP2_Search extends PEAR implements Iterator -{ - /** - * Search result identifier - * - * @access protected - * @var resource - */ - protected $_search; - - /** - * LDAP resource link - * - * @access protected - * @var resource - */ - protected $_link; - - /** - * Net_LDAP2 object - * - * A reference of the Net_LDAP2 object for passing to Net_LDAP2_Entry - * - * @access protected - * @var object Net_LDAP2 - */ - protected $_ldap; - - /** - * Result entry identifier - * - * @access protected - * @var resource - */ - protected $_entry = null; - - /** - * The errorcode the search got - * - * Some errorcodes might be of interest, but might not be best handled as errors. - * examples: 4 - LDAP_SIZELIMIT_EXCEEDED - indicates a huge search. - * Incomplete results are returned. If you just want to check if there's anything in the search. - * than this is a point to handle. - * 32 - no such object - search here returns a count of 0. - * - * @access protected - * @var int - */ - protected $_errorCode = 0; // if not set - sucess! - - /** - * Cache for all entries already fetched from iterator interface - * - * @access protected - * @var array - */ - protected $_iteratorCache = array(); - - /** - * What attributes we searched for - * - * The $attributes array contains the names of the searched attributes and gets - * passed from $Net_LDAP2->search() so the Net_LDAP2_Search object can tell - * what attributes was searched for ({@link searchedAttrs()) - * - * This variable gets set from the constructor and returned - * from {@link searchedAttrs()} - * - * @access protected - * @var array - */ - protected $_searchedAttrs = array(); - - /** - * Cache variable for storing entries fetched internally - * - * This currently is only used by {@link pop_entry()} - * - * @access protected - * @var array - */ - protected $_entry_cache = false; - - /** - * Constructor - * - * @param resource &$search Search result identifier - * @param Net_LDAP2|resource &$ldap Net_LDAP2 object or just a LDAP-Link resource - * @param array $attributes (optional) Array with searched attribute names. (see {@link $_searchedAttrs}) - * - * @access public - */ - public function __construct(&$search, &$ldap, $attributes = array()) - { - $this->PEAR('Net_LDAP2_Error'); - - $this->setSearch($search); - - if ($ldap instanceof Net_LDAP2) { - $this->_ldap =& $ldap; - $this->setLink($this->_ldap->getLink()); - } else { - $this->setLink($ldap); - } - - $this->_errorCode = @ldap_errno($this->_link); - - if (is_array($attributes) && !empty($attributes)) { - $this->_searchedAttrs = $attributes; - } - } - - /** - * Returns an array of entry objects - * - * @return array Array of entry objects. - */ - public function entries() - { - $entries = array(); - - while ($entry = $this->shiftEntry()) { - $entries[] = $entry; - } - - return $entries; - } - - /** - * Get the next entry in the searchresult. - * - * This will return a valid Net_LDAP2_Entry object or false, so - * you can use this method to easily iterate over the entries inside - * a while loop. - * - * @return Net_LDAP2_Entry|false Reference to Net_LDAP2_Entry object or false - */ - public function &shiftEntry() - { - if ($this->count() == 0 ) { - $false = false; - return $false; - } - - if (is_null($this->_entry)) { - $this->_entry = @ldap_first_entry($this->_link, $this->_search); - $entry = Net_LDAP2_Entry::createConnected($this->_ldap, $this->_entry); - if ($entry instanceof Net_LDAP2_Error) $entry = false; - } else { - if (!$this->_entry = @ldap_next_entry($this->_link, $this->_entry)) { - $false = false; - return $false; - } - $entry = Net_LDAP2_Entry::createConnected($this->_ldap, $this->_entry); - if ($entry instanceof Net_LDAP2_Error) $entry = false; - } - return $entry; - } - - /** - * Alias function of shiftEntry() for perl-ldap interface - * - * @see shiftEntry() - * @return Net_LDAP2_Entry|false - */ - public function shift_entry() - { - $args = func_get_args(); - return call_user_func_array(array( &$this, 'shiftEntry' ), $args); - } - - /** - * Retrieve the next entry in the searchresult, but starting from last entry - * - * This is the opposite to {@link shiftEntry()} and is also very useful - * to be used inside a while loop. - * - * @return Net_LDAP2_Entry|false - */ - public function popEntry() - { - if (false === $this->_entry_cache) { - // fetch entries into cache if not done so far - $this->_entry_cache = $this->entries(); - } - - $return = array_pop($this->_entry_cache); - return (null === $return)? false : $return; - } - - /** - * Alias function of popEntry() for perl-ldap interface - * - * @see popEntry() - * @return Net_LDAP2_Entry|false - */ - public function pop_entry() - { - $args = func_get_args(); - return call_user_func_array(array( &$this, 'popEntry' ), $args); - } - - /** - * Return entries sorted as array - * - * This returns a array with sorted entries and the values. - * Sorting is done with PHPs {@link array_multisort()}. - * This method relies on {@link as_struct()} to fetch the raw data of the entries. - * - * Please note that attribute names are case sensitive! - * - * Usage example: - * - * // to sort entries first by location, then by surename, but descending: - * $entries = $search->sorted_as_struct(array('locality','sn'), SORT_DESC); - * - * - * @param array $attrs Array of attribute names to sort; order from left to right. - * @param int $order Ordering direction, either constant SORT_ASC or SORT_DESC - * - * @return array|Net_LDAP2_Error Array with sorted entries or error - * @todo what about server side sorting as specified in http://www.ietf.org/rfc/rfc2891.txt? - */ - public function sorted_as_struct($attrs = array('cn'), $order = SORT_ASC) - { - /* - * Old Code, suitable and fast for single valued sorting - * This code should be used if we know that single valued sorting is desired, - * but we need some method to get that knowledge... - */ - /* - $attrs = array_reverse($attrs); - foreach ($attrs as $attribute) { - if (!ldap_sort($this->_link, $this->_search, $attribute)){ - $this->raiseError("Sorting failed for Attribute " . $attribute); - } - } - - $results = ldap_get_entries($this->_link, $this->_search); - - unset($results['count']); //for tidier output - if ($order) { - return array_reverse($results); - } else { - return $results; - }*/ - - /* - * New code: complete "client side" sorting - */ - // first some parameterchecks - if (!is_array($attrs)) { - return PEAR::raiseError("Sorting failed: Parameterlist must be an array!"); - } - if ($order != SORT_ASC && $order != SORT_DESC) { - return PEAR::raiseError("Sorting failed: sorting direction not understood! (neither constant SORT_ASC nor SORT_DESC)"); - } - - // fetch the entries data - $entries = $this->as_struct(); - - // now sort each entries attribute values - // this is neccessary because later we can only sort by one value, - // so we need the highest or lowest attribute now, depending on the - // selected ordering for that specific attribute - foreach ($entries as $dn => $entry) { - foreach ($entry as $attr_name => $attr_values) { - sort($entries[$dn][$attr_name]); - if ($order == SORT_DESC) { - array_reverse($entries[$dn][$attr_name]); - } - } - } - - // reformat entrys array for later use with array_multisort() - $to_sort = array(); // <- will be a numeric array similar to ldap_get_entries - foreach ($entries as $dn => $entry_attr) { - $row = array(); - $row['dn'] = $dn; - foreach ($entry_attr as $attr_name => $attr_values) { - $row[$attr_name] = $attr_values; - } - $to_sort[] = $row; - } - - // Build columns for array_multisort() - // each requested attribute is one row - $columns = array(); - foreach ($attrs as $attr_name) { - foreach ($to_sort as $key => $row) { - $columns[$attr_name][$key] =& $to_sort[$key][$attr_name][0]; - } - } - - // sort the colums with array_multisort, if there is something - // to sort and if we have requested sort columns - if (!empty($to_sort) && !empty($columns)) { - $sort_params = ''; - foreach ($attrs as $attr_name) { - $sort_params .= '$columns[\''.$attr_name.'\'], '.$order.', '; - } - eval("array_multisort($sort_params \$to_sort);"); // perform sorting - } - - return $to_sort; - } - - /** - * Return entries sorted as objects - * - * This returns a array with sorted Net_LDAP2_Entry objects. - * The sorting is actually done with {@link sorted_as_struct()}. - * - * Please note that attribute names are case sensitive! - * Also note, that it is (depending on server capabilitys) possible to let - * the server sort your results. This happens through search controls - * and is described in detail at {@link http://www.ietf.org/rfc/rfc2891.txt} - * - * Usage example: - * - * // to sort entries first by location, then by surename, but descending: - * $entries = $search->sorted(array('locality','sn'), SORT_DESC); - * - * - * @param array $attrs Array of sort attributes to sort; order from left to right. - * @param int $order Ordering direction, either constant SORT_ASC or SORT_DESC - * - * @return array|Net_LDAP2_Error Array with sorted Net_LDAP2_Entries or error - * @todo Entry object construction could be faster. Maybe we could use one of the factorys instead of fetching the entry again - */ - public function sorted($attrs = array('cn'), $order = SORT_ASC) - { - $return = array(); - $sorted = $this->sorted_as_struct($attrs, $order); - if (PEAR::isError($sorted)) { - return $sorted; - } - foreach ($sorted as $key => $row) { - $entry = $this->_ldap->getEntry($row['dn'], $this->searchedAttrs()); - if (!PEAR::isError($entry)) { - array_push($return, $entry); - } else { - return $entry; - } - } - return $return; - } - - /** - * Return entries as array - * - * This method returns the entries and the selected attributes values as - * array. - * The first array level contains all found entries where the keys are the - * DNs of the entries. The second level arrays contian the entries attributes - * such that the keys is the lowercased name of the attribute and the values - * are stored in another indexed array. Note that the attribute values are stored - * in an array even if there is no or just one value. - * - * The array has the following structure: - * - * $return = array( - * 'cn=foo,dc=example,dc=com' => array( - * 'sn' => array('foo'), - * 'multival' => array('val1', 'val2', 'valN') - * ) - * 'cn=bar,dc=example,dc=com' => array( - * 'sn' => array('bar'), - * 'multival' => array('val1', 'valN') - * ) - * ) - * - * - * @return array associative result array as described above - */ - public function as_struct() - { - $return = array(); - $entries = $this->entries(); - foreach ($entries as $entry) { - $attrs = array(); - $entry_attributes = $entry->attributes(); - foreach ($entry_attributes as $attr_name) { - $attr_values = $entry->getValue($attr_name, 'all'); - if (!is_array($attr_values)) { - $attr_values = array($attr_values); - } - $attrs[$attr_name] = $attr_values; - } - $return[$entry->dn()] = $attrs; - } - return $return; - } - - /** - * Set the search objects resource link - * - * @param resource &$search Search result identifier - * - * @access public - * @return void - */ - public function setSearch(&$search) - { - $this->_search = $search; - } - - /** - * Set the ldap ressource link - * - * @param resource &$link Link identifier - * - * @access public - * @return void - */ - public function setLink(&$link) - { - $this->_link = $link; - } - - /** - * Returns the number of entries in the searchresult - * - * @return int Number of entries in search. - */ - public function count() - { - // this catches the situation where OL returned errno 32 = no such object! - if (!$this->_search) { - return 0; - } - return @ldap_count_entries($this->_link, $this->_search); - } - - /** - * Get the errorcode the object got in its search. - * - * @return int The ldap error number. - */ - public function getErrorCode() - { - return $this->_errorCode; - } - - /** - * Destructor - * - * @access protected - */ - public function _Net_LDAP2_Search() - { - @ldap_free_result($this->_search); - } - - /** - * Closes search result - * - * @return void - */ - public function done() - { - $this->_Net_LDAP2_Search(); - } - - /** - * Return the attribute names this search selected - * - * @return array - * @see $_searchedAttrs - * @access protected - */ - protected function searchedAttrs() - { - return $this->_searchedAttrs; - } - - /** - * Tells if this search exceeds a sizelimit - * - * @return boolean - */ - public function sizeLimitExceeded() - { - return ($this->getErrorCode() == 4); - } - - - /* - * SPL Iterator interface methods. - * This interface allows to use Net_LDAP2_Search - * objects directly inside a foreach loop! - */ - /** - * SPL Iterator interface: Return the current element. - * - * The SPL Iterator interface allows you to fetch entries inside - * a foreach() loop: foreach ($search as $dn => $entry) { ... - * - * Of course, you may call {@link current()}, {@link key()}, {@link next()}, - * {@link rewind()} and {@link valid()} yourself. - * - * If the search throwed an error, it returns false. - * False is also returned, if the end is reached - * In case no call to next() was made, we will issue one, - * thus returning the first entry. - * - * @return Net_LDAP2_Entry|false - */ - public function current() - { - if (count($this->_iteratorCache) == 0) { - $this->next(); - reset($this->_iteratorCache); - } - $entry = current($this->_iteratorCache); - return ($entry instanceof Net_LDAP2_Entry)? $entry : false; - } - - /** - * SPL Iterator interface: Return the identifying key (DN) of the current entry. - * - * @see current() - * @return string|false DN of the current entry; false in case no entry is returned by current() - */ - public function key() - { - $entry = $this->current(); - return ($entry instanceof Net_LDAP2_Entry)? $entry->dn() :false; - } - - /** - * SPL Iterator interface: Move forward to next entry. - * - * After a call to {@link next()}, {@link current()} will return - * the next entry in the result set. - * - * @see current() - * @return void - */ - public function next() - { - // fetch next entry. - // if we have no entrys anymore, we add false (which is - // returned by shiftEntry()) so current() will complain. - if (count($this->_iteratorCache) - 1 <= $this->count()) { - $this->_iteratorCache[] = $this->shiftEntry(); - } - - // move on array pointer to current element. - // even if we have added all entries, this will - // ensure proper operation in case we rewind() - next($this->_iteratorCache); - } - - /** - * SPL Iterator interface: Check if there is a current element after calls to {@link rewind()} or {@link next()}. - * - * Used to check if we've iterated to the end of the collection. - * - * @see current() - * @return boolean FALSE if there's nothing more to iterate over - */ - public function valid() - { - return ($this->current() instanceof Net_LDAP2_Entry); - } - - /** - * SPL Iterator interface: Rewind the Iterator to the first element. - * - * After rewinding, {@link current()} will return the first entry in the result set. - * - * @see current() - * @return void - */ - public function rewind() - { - reset($this->_iteratorCache); - } -} - -?> diff --git a/extlib/Net/LDAP2/SimpleFileSchemaCache.php b/extlib/Net/LDAP2/SimpleFileSchemaCache.php deleted file mode 100644 index 8019654ac..000000000 --- a/extlib/Net/LDAP2/SimpleFileSchemaCache.php +++ /dev/null @@ -1,97 +0,0 @@ - -* @copyright 2009 Benedikt Hallinger -* @license http://www.gnu.org/licenses/lgpl-3.0.txt LGPLv3 -* @version SVN: $Id: SimpleFileSchemaCache.php 286718 2009-08-03 07:30:49Z beni $ -* @link http://pear.php.net/package/Net_LDAP2/ -*/ - -/** -* A simple file based schema cacher with cache aging. -* -* Once the cache is too old, the loadSchema() method will return false, so -* Net_LDAP2 will fetch a fresh object from the LDAP server that will -* overwrite the current (outdated) old cache. -*/ -class Net_LDAP2_SimpleFileSchemaCache implements Net_LDAP2_SchemaCache -{ - /** - * Internal config of this cache - * - * @see Net_LDAP2_SimpleFileSchemaCache() - * @var array - */ - protected $config = array( - 'path' => '/tmp/Net_LDAP_Schema.cache', - 'max_age' => 1200 - ); - - /** - * Initialize the simple cache - * - * Config is as following: - * path Complete path to the cache file. - * max_age Maximum age of cache in seconds, 0 means "endlessly". - * - * @param array $cfg Config array - */ - public function Net_LDAP2_SimpleFileSchemaCache($cfg) - { - foreach ($cfg as $key => $value) { - if (array_key_exists($key, $this->config)) { - if (gettype($this->config[$key]) != gettype($value)) { - $this->getCore()->dropFatalError(__CLASS__.": Could not set config! Key $key does not match type ".gettype($this->config[$key])."!"); - } - $this->config[$key] = $value; - } else { - $this->getCore()->dropFatalError(__CLASS__.": Could not set config! Key $key is not defined!"); - } - } - } - - /** - * Return the schema object from the cache - * - * If file is existent and cache has not expired yet, - * then the cache is deserialized and returned. - * - * @return Net_LDAP2_Schema|Net_LDAP2_Error|false - */ - public function loadSchema() - { - $return = false; // Net_LDAP2 will load schema from LDAP - if (file_exists($this->config['path'])) { - $cache_maxage = filemtime($this->config['path']) + $this->config['max_age']; - if (time() <= $cache_maxage || $this->config['max_age'] == 0) { - $return = unserialize(file_get_contents($this->config['path'])); - } - } - return $return; - } - - /** - * Store a schema object in the cache - * - * This method will be called, if Net_LDAP2 has fetched a fresh - * schema object from LDAP and wants to init or refresh the cache. - * - * To invalidate the cache and cause Net_LDAP2 to refresh the cache, - * you can call this method with null or false as value. - * The next call to $ldap->schema() will then refresh the caches object. - * - * @param mixed $schema The object that should be cached - * @return true|Net_LDAP2_Error|false - */ - public function storeSchema($schema) { - file_put_contents($this->config['path'], serialize($schema)); - return true; - } -} diff --git a/extlib/Net/LDAP2/Util.php b/extlib/Net/LDAP2/Util.php deleted file mode 100644 index 48b03f9f9..000000000 --- a/extlib/Net/LDAP2/Util.php +++ /dev/null @@ -1,572 +0,0 @@ - -* @copyright 2009 Benedikt Hallinger -* @license http://www.gnu.org/licenses/lgpl-3.0.txt LGPLv3 -* @version SVN: $Id: Util.php 286718 2009-08-03 07:30:49Z beni $ -* @link http://pear.php.net/package/Net_LDAP2/ -*/ - -/** -* Includes -*/ -require_once 'PEAR.php'; - -/** -* Utility Class for Net_LDAP2 -* -* This class servers some functionality to the other classes of Net_LDAP2 but most of -* the methods can be used separately as well. -* -* @category Net -* @package Net_LDAP2 -* @author Benedikt Hallinger -* @license http://www.gnu.org/copyleft/lesser.html LGPL -* @link http://pear.php.net/package/Net_LDAP22/ -*/ -class Net_LDAP2_Util extends PEAR -{ - /** - * Constructor - * - * @access public - */ - public function __construct() - { - // We do nothing here, since all methods can be called statically. - // In Net_LDAP <= 0.7, we needed a instance of Util, because - // it was possible to do utf8 encoding and decoding, but this - // has been moved to the LDAP class. The constructor remains only - // here to document the downward compatibility of creating an instance. - } - - /** - * Explodes the given DN into its elements - * - * {@link http://www.ietf.org/rfc/rfc2253.txt RFC 2253} says, a Distinguished Name is a sequence - * of Relative Distinguished Names (RDNs), which themselves - * are sets of Attributes. For each RDN a array is constructed where the RDN part is stored. - * - * For example, the DN 'OU=Sales+CN=J. Smith,DC=example,DC=net' is exploded to: - * array( [0] => array([0] => 'OU=Sales', [1] => 'CN=J. Smith'), [2] => 'DC=example', [3] => 'DC=net' ) - * - * [NOT IMPLEMENTED] DNs might also contain values, which are the bytes of the BER encoding of - * the X.500 AttributeValue rather than some LDAP string syntax. These values are hex-encoded - * and prefixed with a #. To distinguish such BER values, ldap_explode_dn uses references to - * the actual values, e.g. '1.3.6.1.4.1.1466.0=#04024869,DC=example,DC=com' is exploded to: - * [ { '1.3.6.1.4.1.1466.0' => "\004\002Hi" }, { 'DC' => 'example' }, { 'DC' => 'com' } ]; - * See {@link http://www.vijaymukhi.com/vmis/berldap.htm} for more information on BER. - * - * It also performs the following operations on the given DN: - * - Unescape "\" followed by ",", "+", """, "\", "<", ">", ";", "#", "=", " ", or a hexpair - * and strings beginning with "#". - * - Removes the leading 'OID.' characters if the type is an OID instead of a name. - * - If an RDN contains multiple parts, the parts are re-ordered so that the attribute type names are in alphabetical order. - * - * OPTIONS is a list of name/value pairs, valid options are: - * casefold Controls case folding of attribute types names. - * Attribute values are not affected by this option. - * The default is to uppercase. Valid values are: - * lower Lowercase attribute types names. - * upper Uppercase attribute type names. This is the default. - * none Do not change attribute type names. - * reverse If TRUE, the RDN sequence is reversed. - * onlyvalues If TRUE, then only attributes values are returned ('foo' instead of 'cn=foo') - * - - * @param string $dn The DN that should be exploded - * @param array $options Options to use - * - * @static - * @return array Parts of the exploded DN - * @todo implement BER - */ - public static function ldap_explode_dn($dn, $options = array('casefold' => 'upper')) - { - if (!isset($options['onlyvalues'])) $options['onlyvalues'] = false; - if (!isset($options['reverse'])) $options['reverse'] = false; - if (!isset($options['casefold'])) $options['casefold'] = 'upper'; - - // Escaping of DN and stripping of "OID." - $dn = self::canonical_dn($dn, array('casefold' => $options['casefold'])); - - // splitting the DN - $dn_array = preg_split('/(?<=[^\\\\]),/', $dn); - - // clear wrong splitting (possibly we have split too much) - // /!\ Not clear, if this is neccessary here - //$dn_array = self::correct_dn_splitting($dn_array, ','); - - // construct subarrays for multivalued RDNs and unescape DN value - // also convert to output format and apply casefolding - foreach ($dn_array as $key => $value) { - $value_u = self::unescape_dn_value($value); - $rdns = self::split_rdn_multival($value_u[0]); - if (count($rdns) > 1) { - // MV RDN! - foreach ($rdns as $subrdn_k => $subrdn_v) { - // Casefolding - if ($options['casefold'] == 'upper') $subrdn_v = preg_replace("/^(\w+=)/e", "''.strtoupper('\\1').''", $subrdn_v); - if ($options['casefold'] == 'lower') $subrdn_v = preg_replace("/^(\w+=)/e", "''.strtolower('\\1').''", $subrdn_v); - - if ($options['onlyvalues']) { - preg_match('/(.+?)(?", ";", "#", "=" with a special meaning in RFC 2252 - * are preceeded by ba backslash. Control characters with an ASCII code < 32 are represented as \hexpair. - * Finally all leading and trailing spaces are converted to sequences of \20. - * - * @param array $values An array containing the DN values that should be escaped - * - * @static - * @return array The array $values, but escaped - */ - public static function escape_dn_value($values = array()) - { - // Parameter validation - if (!is_array($values)) { - $values = array($values); - } - - foreach ($values as $key => $val) { - // Escaping of filter meta characters - $val = str_replace('\\', '\\\\', $val); - $val = str_replace(',', '\,', $val); - $val = str_replace('+', '\+', $val); - $val = str_replace('"', '\"', $val); - $val = str_replace('<', '\<', $val); - $val = str_replace('>', '\>', $val); - $val = str_replace(';', '\;', $val); - $val = str_replace('#', '\#', $val); - $val = str_replace('=', '\=', $val); - - // ASCII < 32 escaping - $val = self::asc2hex32($val); - - // Convert all leading and trailing spaces to sequences of \20. - if (preg_match('/^(\s*)(.+?)(\s*)$/', $val, $matches)) { - $val = $matches[2]; - for ($i = 0; $i < strlen($matches[1]); $i++) { - $val = '\20'.$val; - } - for ($i = 0; $i < strlen($matches[3]); $i++) { - $val = $val.'\20'; - } - } - - if (null === $val) $val = '\0'; // apply escaped "null" if string is empty - - $values[$key] = $val; - } - - return $values; - } - - /** - * Undoes the conversion done by escape_dn_value(). - * - * Any escape sequence starting with a baskslash - hexpair or special character - - * will be transformed back to the corresponding character. - * - * @param array $values Array of DN Values - * - * @return array Same as $values, but unescaped - * @static - */ - public static function unescape_dn_value($values = array()) - { - // Parameter validation - if (!is_array($values)) { - $values = array($values); - } - - foreach ($values as $key => $val) { - // strip slashes from special chars - $val = str_replace('\\\\', '\\', $val); - $val = str_replace('\,', ',', $val); - $val = str_replace('\+', '+', $val); - $val = str_replace('\"', '"', $val); - $val = str_replace('\<', '<', $val); - $val = str_replace('\>', '>', $val); - $val = str_replace('\;', ';', $val); - $val = str_replace('\#', '#', $val); - $val = str_replace('\=', '=', $val); - - // Translate hex code into ascii - $values[$key] = self::hex2asc($val); - } - - return $values; - } - - /** - * Returns the given DN in a canonical form - * - * Returns false if DN is not a valid Distinguished Name. - * DN can either be a string or an array - * as returned by ldap_explode_dn, which is useful when constructing a DN. - * The DN array may have be indexed (each array value is a OCL=VALUE pair) - * or associative (array key is OCL and value is VALUE). - * - * It performs the following operations on the given DN: - * - Removes the leading 'OID.' characters if the type is an OID instead of a name. - * - Escapes all RFC 2253 special characters (",", "+", """, "\", "<", ">", ";", "#", "="), slashes ("/"), and any other character where the ASCII code is < 32 as \hexpair. - * - Converts all leading and trailing spaces in values to be \20. - * - If an RDN contains multiple parts, the parts are re-ordered so that the attribute type names are in alphabetical order. - * - * OPTIONS is a list of name/value pairs, valid options are: - * casefold Controls case folding of attribute type names. - * Attribute values are not affected by this option. The default is to uppercase. - * Valid values are: - * lower Lowercase attribute type names. - * upper Uppercase attribute type names. This is the default. - * none Do not change attribute type names. - * [NOT IMPLEMENTED] mbcescape If TRUE, characters that are encoded as a multi-octet UTF-8 sequence will be escaped as \(hexpair){2,*}. - * reverse If TRUE, the RDN sequence is reversed. - * separator Separator to use between RDNs. Defaults to comma (','). - * - * Note: The empty string "" is a valid DN, so be sure not to do a "$can_dn == false" test, - * because an empty string evaluates to false. Use the "===" operator instead. - * - * @param array|string $dn The DN - * @param array $options Options to use - * - * @static - * @return false|string The canonical DN or FALSE - * @todo implement option mbcescape - */ - public static function canonical_dn($dn, $options = array('casefold' => 'upper', 'separator' => ',')) - { - if ($dn === '') return $dn; // empty DN is valid! - - // options check - if (!isset($options['reverse'])) { - $options['reverse'] = false; - } else { - $options['reverse'] = true; - } - if (!isset($options['casefold'])) $options['casefold'] = 'upper'; - if (!isset($options['separator'])) $options['separator'] = ','; - - - if (!is_array($dn)) { - // It is not clear to me if the perl implementation splits by the user defined - // separator or if it just uses this separator to construct the new DN - $dn = preg_split('/(?<=[^\\\\])'.$options['separator'].'/', $dn); - - // clear wrong splitting (possibly we have split too much) - $dn = self::correct_dn_splitting($dn, $options['separator']); - } else { - // Is array, check, if the array is indexed or associative - $assoc = false; - foreach ($dn as $dn_key => $dn_part) { - if (!is_int($dn_key)) { - $assoc = true; - } - } - // convert to indexed, if associative array detected - if ($assoc) { - $newdn = array(); - foreach ($dn as $dn_key => $dn_part) { - if (is_array($dn_part)) { - ksort($dn_part, SORT_STRING); // we assume here, that the rdn parts are also associative - $newdn[] = $dn_part; // copy array as-is, so we can resolve it later - } else { - $newdn[] = $dn_key.'='.$dn_part; - } - } - $dn =& $newdn; - } - } - - // Escaping and casefolding - foreach ($dn as $pos => $dnval) { - if (is_array($dnval)) { - // subarray detected, this means very surely, that we had - // a multivalued dn part, which must be resolved - $dnval_new = ''; - foreach ($dnval as $subkey => $subval) { - // build RDN part - if (!is_int($subkey)) { - $subval = $subkey.'='.$subval; - } - $subval_processed = self::canonical_dn($subval); - if (false === $subval_processed) return false; - $dnval_new .= $subval_processed.'+'; - } - $dn[$pos] = substr($dnval_new, 0, -1); // store RDN part, strip last plus - } else { - // try to split multivalued RDNS into array - $rdns = self::split_rdn_multival($dnval); - if (count($rdns) > 1) { - // Multivalued RDN was detected! - // The RDN value is expected to be correctly split by split_rdn_multival(). - // It's time to sort the RDN and build the DN! - $rdn_string = ''; - sort($rdns, SORT_STRING); // Sort RDN keys alphabetically - foreach ($rdns as $rdn) { - $subval_processed = self::canonical_dn($rdn); - if (false === $subval_processed) return false; - $rdn_string .= $subval_processed.'+'; - } - - $dn[$pos] = substr($rdn_string, 0, -1); // store RDN part, strip last plus - - } else { - // no multivalued RDN! - // split at first unescaped "=" - $dn_comp = preg_split('/(?<=[^\\\\])=/', $rdns[0], 2); - $ocl = ltrim($dn_comp[0]); // trim left whitespaces 'cause of "cn=foo, l=bar" syntax (whitespace after comma) - $val = $dn_comp[1]; - - // strip 'OID.', otherwise apply casefolding and escaping - if (substr(strtolower($ocl), 0, 4) == 'oid.') { - $ocl = substr($ocl, 4); - } else { - if ($options['casefold'] == 'upper') $ocl = strtoupper($ocl); - if ($options['casefold'] == 'lower') $ocl = strtolower($ocl); - $ocl = self::escape_dn_value(array($ocl)); - $ocl = $ocl[0]; - } - - // escaping of dn-value - $val = self::escape_dn_value(array($val)); - $val = str_replace('/', '\/', $val[0]); - - $dn[$pos] = $ocl.'='.$val; - } - } - } - - if ($options['reverse']) $dn = array_reverse($dn); - return implode($options['separator'], $dn); - } - - /** - * Escapes the given VALUES according to RFC 2254 so that they can be safely used in LDAP filters. - * - * Any control characters with an ACII code < 32 as well as the characters with special meaning in - * LDAP filters "*", "(", ")", and "\" (the backslash) are converted into the representation of a - * backslash followed by two hex digits representing the hexadecimal value of the character. - * - * @param array $values Array of values to escape - * - * @static - * @return array Array $values, but escaped - */ - public static function escape_filter_value($values = array()) - { - // Parameter validation - if (!is_array($values)) { - $values = array($values); - } - - foreach ($values as $key => $val) { - // Escaping of filter meta characters - $val = str_replace('\\', '\5c', $val); - $val = str_replace('*', '\2a', $val); - $val = str_replace('(', '\28', $val); - $val = str_replace(')', '\29', $val); - - // ASCII < 32 escaping - $val = self::asc2hex32($val); - - if (null === $val) $val = '\0'; // apply escaped "null" if string is empty - - $values[$key] = $val; - } - - return $values; - } - - /** - * Undoes the conversion done by {@link escape_filter_value()}. - * - * Converts any sequences of a backslash followed by two hex digits into the corresponding character. - * - * @param array $values Array of values to escape - * - * @static - * @return array Array $values, but unescaped - */ - public static function unescape_filter_value($values = array()) - { - // Parameter validation - if (!is_array($values)) { - $values = array($values); - } - - foreach ($values as $key => $value) { - // Translate hex code into ascii - $values[$key] = self::hex2asc($value); - } - - return $values; - } - - /** - * Converts all ASCII chars < 32 to "\HEX" - * - * @param string $string String to convert - * - * @static - * @return string - */ - public static function asc2hex32($string) - { - for ($i = 0; $i < strlen($string); $i++) { - $char = substr($string, $i, 1); - if (ord($char) < 32) { - $hex = dechex(ord($char)); - if (strlen($hex) == 1) $hex = '0'.$hex; - $string = str_replace($char, '\\'.$hex, $string); - } - } - return $string; - } - - /** - * Converts all Hex expressions ("\HEX") to their original ASCII characters - * - * @param string $string String to convert - * - * @static - * @author beni@php.net, heavily based on work from DavidSmith@byu.net - * @return string - */ - public static function hex2asc($string) - { - $string = preg_replace("/\\\([0-9A-Fa-f]{2})/e", "''.chr(hexdec('\\1')).''", $string); - return $string; - } - - /** - * Split an multivalued RDN value into an Array - * - * A RDN can contain multiple values, spearated by a plus sign. - * This function returns each separate ocl=value pair of the RDN part. - * - * If no multivalued RDN is detected, an array containing only - * the original rdn part is returned. - * - * For example, the multivalued RDN 'OU=Sales+CN=J. Smith' is exploded to: - * array([0] => 'OU=Sales', [1] => 'CN=J. Smith') - * - * The method trys to be smart if it encounters unescaped "+" characters, but may fail, - * so ensure escaped "+"es in attr names and attr values. - * - * [BUG] If you have a multivalued RDN with unescaped plus characters - * and there is a unescaped plus sign at the end of an value followed by an - * attribute name containing an unescaped plus, then you will get wrong splitting: - * $rdn = 'OU=Sales+C+N=J. Smith'; - * returns: - * array('OU=Sales+C', 'N=J. Smith'); - * The "C+" is treaten as value of the first pair instead as attr name of the second pair. - * To prevent this, escape correctly. - * - * @param string $rdn Part of an (multivalued) escaped RDN (eg. ou=foo OR ou=foo+cn=bar) - * - * @static - * @return array Array with the components of the multivalued RDN or Error - */ - public static function split_rdn_multival($rdn) - { - $rdns = preg_split('/(? $dn_value) { - $dn_value = $dn[$key]; // refresh value (foreach caches!) - // if the dn_value is not in attr=value format, then we had an - // unescaped separator character inside the attr name or the value. - // We assume, that it was the attribute value. - // [TODO] To solve this, we might ask the schema. Keep in mind, that UTIL class - // must remain independent from the other classes or connections. - if (!preg_match('/.+(? diff --git a/plugins/LdapCommon/LdapCommon.php b/plugins/LdapCommon/LdapCommon.php index e2ca569f3..ee436d824 100644 --- a/plugins/LdapCommon/LdapCommon.php +++ b/plugins/LdapCommon/LdapCommon.php @@ -31,6 +31,9 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } +// We bundle the Net/LDAP2 library... +set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/extlib'); + class LdapCommon { protected static $ldap_connections = array(); diff --git a/plugins/LdapCommon/extlib/Net/LDAP2.php b/plugins/LdapCommon/extlib/Net/LDAP2.php new file mode 100644 index 000000000..26f5e7560 --- /dev/null +++ b/plugins/LdapCommon/extlib/Net/LDAP2.php @@ -0,0 +1,1791 @@ + +* @author Jan Wagner +* @author Del +* @author Benedikt Hallinger +* @copyright 2003-2007 Tarjej Huse, Jan Wagner, Del Elson, Benedikt Hallinger +* @license http://www.gnu.org/licenses/lgpl-3.0.txt LGPLv3 +* @version SVN: $Id: LDAP2.php 286788 2009-08-04 06:05:49Z beni $ +* @link http://pear.php.net/package/Net_LDAP2/ +*/ + +/** +* Package includes. +*/ +require_once 'PEAR.php'; +require_once 'Net/LDAP2/RootDSE.php'; +require_once 'Net/LDAP2/Schema.php'; +require_once 'Net/LDAP2/Entry.php'; +require_once 'Net/LDAP2/Search.php'; +require_once 'Net/LDAP2/Util.php'; +require_once 'Net/LDAP2/Filter.php'; +require_once 'Net/LDAP2/LDIF.php'; +require_once 'Net/LDAP2/SchemaCache.interface.php'; +require_once 'Net/LDAP2/SimpleFileSchemaCache.php'; + +/** +* Error constants for errors that are not LDAP errors. +*/ +define('NET_LDAP2_ERROR', 1000); + +/** +* Net_LDAP2 Version +*/ +define('NET_LDAP2_VERSION', '2.0.7'); + +/** +* Net_LDAP2 - manipulate LDAP servers the right way! +* +* @category Net +* @package Net_LDAP2 +* @author Tarjej Huse +* @author Jan Wagner +* @author Del +* @author Benedikt Hallinger +* @copyright 2003-2007 Tarjej Huse, Jan Wagner, Del Elson, Benedikt Hallinger +* @license http://www.gnu.org/copyleft/lesser.html LGPL +* @link http://pear.php.net/package/Net_LDAP2/ +*/ +class Net_LDAP2 extends PEAR +{ + /** + * Class configuration array + * + * host = the ldap host to connect to + * (may be an array of several hosts to try) + * port = the server port + * version = ldap version (defaults to v 3) + * starttls = when set, ldap_start_tls() is run after connecting. + * bindpw = no explanation needed + * binddn = the DN to bind as. + * basedn = ldap base + * options = hash of ldap options to set (opt => val) + * filter = default search filter + * scope = default search scope + * + * Newly added in 2.0.0RC4, for auto-reconnect: + * auto_reconnect = if set to true then the class will automatically + * attempt to reconnect to the LDAP server in certain + * failure conditionswhen attempting a search, or other + * LDAP operation. Defaults to false. Note that if you + * set this to true, calls to search() may block + * indefinitely if there is a catastrophic server failure. + * min_backoff = minimum reconnection delay period (in seconds). + * current_backoff = initial reconnection delay period (in seconds). + * max_backoff = maximum reconnection delay period (in seconds). + * + * @access protected + * @var array + */ + protected $_config = array('host' => 'localhost', + 'port' => 389, + 'version' => 3, + 'starttls' => false, + 'binddn' => '', + 'bindpw' => '', + 'basedn' => '', + 'options' => array(), + 'filter' => '(objectClass=*)', + 'scope' => 'sub', + 'auto_reconnect' => false, + 'min_backoff' => 1, + 'current_backoff' => 1, + 'max_backoff' => 32); + + /** + * List of hosts we try to establish a connection to + * + * @access protected + * @var array + */ + protected $_host_list = array(); + + /** + * List of hosts that are known to be down. + * + * @access protected + * @var array + */ + protected $_down_host_list = array(); + + /** + * LDAP resource link. + * + * @access protected + * @var resource + */ + protected $_link = false; + + /** + * Net_LDAP2_Schema object + * + * This gets set and returned by {@link schema()} + * + * @access protected + * @var object Net_LDAP2_Schema + */ + protected $_schema = null; + + /** + * Schema cacher function callback + * + * @see registerSchemaCache() + * @var string + */ + protected $_schema_cache = null; + + /** + * Cache for attribute encoding checks + * + * @access protected + * @var array Hash with attribute names as key and boolean value + * to determine whether they should be utf8 encoded or not. + */ + protected $_schemaAttrs = array(); + + /** + * Cache for rootDSE objects + * + * Hash with requested rootDSE attr names as key and rootDSE object as value + * + * Since the RootDSE object itself may request a rootDSE object, + * {@link rootDse()} caches successful requests. + * Internally, Net_LDAP2 needs several lookups to this object, so + * caching increases performance significally. + * + * @access protected + * @var array + */ + protected $_rootDSE_cache = array(); + + /** + * Returns the Net_LDAP2 Release version, may be called statically + * + * @static + * @return string Net_LDAP2 version + */ + public static function getVersion() + { + return NET_LDAP2_VERSION; + } + + /** + * Configure Net_LDAP2, connect and bind + * + * Use this method as starting point of using Net_LDAP2 + * to establish a connection to your LDAP server. + * + * Static function that returns either an error object or the new Net_LDAP2 + * object. Something like a factory. Takes a config array with the needed + * parameters. + * + * @param array $config Configuration array + * + * @access public + * @return Net_LDAP2_Error|Net_LDAP2 Net_LDAP2_Error or Net_LDAP2 object + */ + public static function &connect($config = array()) + { + $ldap_check = self::checkLDAPExtension(); + if (self::iserror($ldap_check)) { + return $ldap_check; + } + + @$obj = new Net_LDAP2($config); + + // todo? better errorhandling for setConfig()? + + // connect and bind with credentials in config + $err = $obj->bind(); + if (self::isError($err)) { + return $err; + } + + return $obj; + } + + /** + * Net_LDAP2 constructor + * + * Sets the config array + * + * Please note that the usual way of getting Net_LDAP2 to work is + * to call something like: + * $ldap = Net_LDAP2::connect($ldap_config); + * + * @param array $config Configuration array + * + * @access protected + * @return void + * @see $_config + */ + public function __construct($config = array()) + { + $this->PEAR('Net_LDAP2_Error'); + $this->setConfig($config); + } + + /** + * Sets the internal configuration array + * + * @param array $config Configuration array + * + * @access protected + * @return void + */ + protected function setConfig($config) + { + // + // Parameter check -- probably should raise an error here if config + // is not an array. + // + if (! is_array($config)) { + return; + } + + foreach ($config as $k => $v) { + if (isset($this->_config[$k])) { + $this->_config[$k] = $v; + } else { + // map old (Net_LDAP2) parms to new ones + switch($k) { + case "dn": + $this->_config["binddn"] = $v; + break; + case "password": + $this->_config["bindpw"] = $v; + break; + case "tls": + $this->_config["starttls"] = $v; + break; + case "base": + $this->_config["basedn"] = $v; + break; + } + } + } + + // + // Ensure the host list is an array. + // + if (is_array($this->_config['host'])) { + $this->_host_list = $this->_config['host']; + } else { + if (strlen($this->_config['host']) > 0) { + $this->_host_list = array($this->_config['host']); + } else { + $this->_host_list = array(); + // ^ this will cause an error in performConnect(), + // so the user is notified about the failure + } + } + + // + // Reset the down host list, which seems like a sensible thing to do + // if the config is being reset for some reason. + // + $this->_down_host_list = array(); + } + + /** + * Bind or rebind to the ldap-server + * + * This function binds with the given dn and password to the server. In case + * no connection has been made yet, it will be started and startTLS issued + * if appropiate. + * + * The internal bind configuration is not being updated, so if you call + * bind() without parameters, you can rebind with the credentials + * provided at first connecting to the server. + * + * @param string $dn Distinguished name for binding + * @param string $password Password for binding + * + * @access public + * @return Net_LDAP2_Error|true Net_LDAP2_Error object or true + */ + public function bind($dn = null, $password = null) + { + // fetch current bind credentials + if (is_null($dn)) { + $dn = $this->_config["binddn"]; + } + if (is_null($password)) { + $password = $this->_config["bindpw"]; + } + + // Connect first, if we haven't so far. + // This will also bind us to the server. + if ($this->_link === false) { + // store old credentials so we can revert them later + // then overwrite config with new bind credentials + $olddn = $this->_config["binddn"]; + $oldpw = $this->_config["bindpw"]; + + // overwrite bind credentials in config + // so performConnect() knows about them + $this->_config["binddn"] = $dn; + $this->_config["bindpw"] = $password; + + // try to connect with provided credentials + $msg = $this->performConnect(); + + // reset to previous config + $this->_config["binddn"] = $olddn; + $this->_config["bindpw"] = $oldpw; + + // see if bind worked + if (self::isError($msg)) { + return $msg; + } + } else { + // do the requested bind as we are + // asked to bind manually + if (is_null($dn)) { + // anonymous bind + $msg = @ldap_bind($this->_link); + } else { + // privileged bind + $msg = @ldap_bind($this->_link, $dn, $password); + } + if (false === $msg) { + return PEAR::raiseError("Bind failed: " . + @ldap_error($this->_link), + @ldap_errno($this->_link)); + } + } + return true; + } + + /** + * Connect to the ldap-server + * + * This function connects to the LDAP server specified in + * the configuration, binds and set up the LDAP protocol as needed. + * + * @access protected + * @return Net_LDAP2_Error|true Net_LDAP2_Error object or true + */ + protected function performConnect() + { + // Note: Connecting is briefly described in RFC1777. + // Basicly it works like this: + // 1. set up TCP connection + // 2. secure that connection if neccessary + // 3a. setLDAPVersion to tell server which version we want to speak + // 3b. perform bind + // 3c. setLDAPVersion to tell server which version we want to speak + // together with a test for supported versions + // 4. set additional protocol options + + // Return true if we are already connected. + if ($this->_link !== false) { + return true; + } + + // Connnect to the LDAP server if we are not connected. Note that + // with some LDAP clients, ldapperformConnect returns a link value even + // if no connection is made. We need to do at least one anonymous + // bind to ensure that a connection is actually valid. + // + // Ref: http://www.php.net/manual/en/function.ldap-connect.php + + // Default error message in case all connection attempts + // fail but no message is set + $current_error = new PEAR_Error('Unknown connection error'); + + // Catch empty $_host_list arrays. + if (!is_array($this->_host_list) || count($this->_host_list) == 0) { + $current_error = PEAR::raiseError('No Servers configured! Please '. + 'pass in an array of servers to Net_LDAP2'); + return $current_error; + } + + // Cycle through the host list. + foreach ($this->_host_list as $host) { + + // Ensure we have a valid string for host name + if (is_array($host)) { + $current_error = PEAR::raiseError('No Servers configured! '. + 'Please pass in an one dimensional array of servers to '. + 'Net_LDAP2! (multidimensional array detected!)'); + continue; + } + + // Skip this host if it is known to be down. + if (in_array($host, $this->_down_host_list)) { + continue; + } + + // Record the host that we are actually connecting to in case + // we need it later. + $this->_config['host'] = $host; + + // Attempt a connection. + $this->_link = @ldap_connect($host, $this->_config['port']); + if (false === $this->_link) { + $current_error = PEAR::raiseError('Could not connect to ' . + $host . ':' . $this->_config['port']); + $this->_down_host_list[] = $host; + continue; + } + + // If we're supposed to use TLS, do so before we try to bind, + // as some strict servers only allow binding via secure connections + if ($this->_config["starttls"] === true) { + if (self::isError($msg = $this->startTLS())) { + $current_error = $msg; + $this->_link = false; + $this->_down_host_list[] = $host; + continue; + } + } + + // Try to set the configured LDAP version on the connection if LDAP + // server needs that before binding (eg OpenLDAP). + // This could be necessary since rfc-1777 states that the protocol version + // has to be set at the bind request. + // We use force here which means that the test in the rootDSE is skipped; + // this is neccessary, because some strict LDAP servers only allow to + // read the LDAP rootDSE (which tells us the supported protocol versions) + // with authenticated clients. + // This may fail in which case we try again after binding. + // In this case, most probably the bind() or setLDAPVersion()-call + // below will also fail, providing error messages. + $version_set = false; + $ignored_err = $this->setLDAPVersion(0, true); + if (!self::isError($ignored_err)) { + $version_set = true; + } + + // Attempt to bind to the server. If we have credentials configured, + // we try to use them, otherwise its an anonymous bind. + // As stated by RFC-1777, the bind request should be the first + // operation to be performed after the connection is established. + // This may give an protocol error if the server does not support + // V2 binds and the above call to setLDAPVersion() failed. + // In case the above call failed, we try an V2 bind here and set the + // version afterwards (with checking to the rootDSE). + $msg = $this->bind(); + if (self::isError($msg)) { + // The bind failed, discard link and save error msg. + // Then record the host as down and try next one + if ($msg->getCode() == 0x02 && !$version_set) { + // provide a finer grained error message + // if protocol error arieses because of invalid version + $msg = new Net_LDAP2_Error($msg->getMessage(). + " (could not set LDAP protocol version to ". + $this->_config['version'].")", + $msg->getCode()); + } + $this->_link = false; + $current_error = $msg; + $this->_down_host_list[] = $host; + continue; + } + + // Set desired LDAP version if not successfully set before. + // Here, a check against the rootDSE is performed, so we get a + // error message if the server does not support the version. + // The rootDSE entry should tell us which LDAP versions are + // supported. However, some strict LDAP servers only allow + // bound suers to read the rootDSE. + if (!$version_set) { + if (self::isError($msg = $this->setLDAPVersion())) { + $current_error = $msg; + $this->_link = false; + $this->_down_host_list[] = $host; + continue; + } + } + + // Set LDAP parameters, now we know we have a valid connection. + if (isset($this->_config['options']) && + is_array($this->_config['options']) && + count($this->_config['options'])) { + foreach ($this->_config['options'] as $opt => $val) { + $err = $this->setOption($opt, $val); + if (self::isError($err)) { + $current_error = $err; + $this->_link = false; + $this->_down_host_list[] = $host; + continue 2; + } + } + } + + // At this stage we have connected, bound, and set up options, + // so we have a known good LDAP server. Time to go home. + return true; + } + + + // All connection attempts have failed, return the last error. + return $current_error; + } + + /** + * Reconnect to the ldap-server. + * + * In case the connection to the LDAP + * service has dropped out for some reason, this function will reconnect, + * and re-bind if a bind has been attempted in the past. It is probably + * most useful when the server list provided to the new() or connect() + * function is an array rather than a single host name, because in that + * case it will be able to connect to a failover or secondary server in + * case the primary server goes down. + * + * This doesn't return anything, it just tries to re-establish + * the current connection. It will sleep for the current backoff + * period (seconds) before attempting the connect, and if the + * connection fails it will double the backoff period, but not + * try again. If you want to ensure a reconnection during a + * transient period of server downtime then you need to call this + * function in a loop. + * + * @access protected + * @return Net_LDAP2_Error|true Net_LDAP2_Error object or true + */ + protected function performReconnect() + { + + // Return true if we are already connected. + if ($this->_link !== false) { + return true; + } + + // Default error message in case all connection attempts + // fail but no message is set + $current_error = new PEAR_Error('Unknown connection error'); + + // Sleep for a backoff period in seconds. + sleep($this->_config['current_backoff']); + + // Retry all available connections. + $this->_down_host_list = array(); + $msg = $this->performConnect(); + + // Bail out if that fails. + if (self::isError($msg)) { + $this->_config['current_backoff'] = + $this->_config['current_backoff'] * 2; + if ($this->_config['current_backoff'] > $this->_config['max_backoff']) { + $this->_config['current_backoff'] = $this->_config['max_backoff']; + } + return $msg; + } + + // Now we should be able to safely (re-)bind. + $msg = $this->bind(); + if (self::isError($msg)) { + $this->_config['current_backoff'] = $this->_config['current_backoff'] * 2; + if ($this->_config['current_backoff'] > $this->_config['max_backoff']) { + $this->_config['current_backoff'] = $this->_config['max_backoff']; + } + + // _config['host'] should have had the last connected host stored in it + // by performConnect(). Since we are unable to bind to that host we can safely + // assume that it is down or has some other problem. + $this->_down_host_list[] = $this->_config['host']; + return $msg; + } + + // At this stage we have connected, bound, and set up options, + // so we have a known good LDAP server. Time to go home. + $this->_config['current_backoff'] = $this->_config['min_backoff']; + return true; + } + + /** + * Starts an encrypted session + * + * @access public + * @return Net_LDAP2_Error|true Net_LDAP2_Error object or true + */ + public function startTLS() + { + // Test to see if the server supports TLS first. + // This is done via testing the extensions offered by the server. + // The OID 1.3.6.1.4.1.1466.20037 tells us, if TLS is supported. + $rootDSE = $this->rootDse(); + if (self::isError($rootDSE)) { + return $this->raiseError("Unable to fetch rootDSE entry ". + "to see if TLS is supoported: ".$rootDSE->getMessage(), $rootDSE->getCode()); + } + + $supported_extensions = $rootDSE->getValue('supportedExtension'); + if (self::isError($supported_extensions)) { + return $this->raiseError("Unable to fetch rootDSE attribute 'supportedExtension' ". + "to see if TLS is supoported: ".$supported_extensions->getMessage(), $supported_extensions->getCode()); + } + + if (in_array('1.3.6.1.4.1.1466.20037', $supported_extensions)) { + if (false === @ldap_start_tls($this->_link)) { + return $this->raiseError("TLS not started: " . + @ldap_error($this->_link), + @ldap_errno($this->_link)); + } + return true; + } else { + return $this->raiseError("Server reports that it does not support TLS"); + } + } + + /** + * alias function of startTLS() for perl-ldap interface + * + * @return void + * @see startTLS() + */ + public function start_tls() + { + $args = func_get_args(); + return call_user_func_array(array( &$this, 'startTLS' ), $args); + } + + /** + * Close LDAP connection. + * + * Closes the connection. Use this when the session is over. + * + * @return void + */ + public function done() + { + $this->_Net_LDAP2(); + } + + /** + * Alias for {@link done()} + * + * @return void + * @see done() + */ + public function disconnect() + { + $this->done(); + } + + /** + * Destructor + * + * @access protected + */ + public function _Net_LDAP2() + { + @ldap_close($this->_link); + } + + /** + * Add a new entryobject to a directory. + * + * Use add to add a new Net_LDAP2_Entry object to the directory. + * This also links the entry to the connection used for the add, + * if it was a fresh entry ({@link Net_LDAP2_Entry::createFresh()}) + * + * @param Net_LDAP2_Entry &$entry Net_LDAP2_Entry + * + * @return Net_LDAP2_Error|true Net_LDAP2_Error object or true + */ + public function add(&$entry) + { + if (!$entry instanceof Net_LDAP2_Entry) { + return PEAR::raiseError('Parameter to Net_LDAP2::add() must be a Net_LDAP2_Entry object.'); + } + + // Continue attempting the add operation in a loop until we + // get a success, a definitive failure, or the world ends. + $foo = 0; + while (true) { + $link = $this->getLink(); + + if ($link === false) { + // We do not have a successful connection yet. The call to + // getLink() would have kept trying if we wanted one. Go + // home now. + return PEAR::raiseError("Could not add entry " . $entry->dn() . + " no valid LDAP connection could be found."); + } + + if (@ldap_add($link, $entry->dn(), $entry->getValues())) { + // entry successfully added, we should update its $ldap reference + // in case it is not set so far (fresh entry) + if (!$entry->getLDAP() instanceof Net_LDAP2) { + $entry->setLDAP($this); + } + // store, that the entry is present inside the directory + $entry->markAsNew(false); + return true; + } else { + // We have a failure. What type? We may be able to reconnect + // and try again. + $error_code = @ldap_errno($link); + $error_name = $this->errorMessage($error_code); + + if (($error_name === 'LDAP_OPERATIONS_ERROR') && + ($this->_config['auto_reconnect'])) { + + // The server has become disconnected before trying the + // operation. We should try again, possibly with a different + // server. + $this->_link = false; + $this->performReconnect(); + } else { + // Errors other than the above catched are just passed + // back to the user so he may react upon them. + return PEAR::raiseError("Could not add entry " . $entry->dn() . " " . + $error_name, + $error_code); + } + } + } + } + + /** + * Delete an entry from the directory + * + * The object may either be a string representing the dn or a Net_LDAP2_Entry + * object. When the boolean paramter recursive is set, all subentries of the + * entry will be deleted as well. + * + * @param string|Net_LDAP2_Entry $dn DN-string or Net_LDAP2_Entry + * @param boolean $recursive Should we delete all children recursive as well? + * + * @access public + * @return Net_LDAP2_Error|true Net_LDAP2_Error object or true + */ + public function delete($dn, $recursive = false) + { + if ($dn instanceof Net_LDAP2_Entry) { + $dn = $dn->dn(); + } + if (false === is_string($dn)) { + return PEAR::raiseError("Parameter is not a string nor an entry object!"); + } + // Recursive delete searches for children and calls delete for them + if ($recursive) { + $result = @ldap_list($this->_link, $dn, '(objectClass=*)', array(null), 0, 0); + if (@ldap_count_entries($this->_link, $result)) { + $subentry = @ldap_first_entry($this->_link, $result); + $this->delete(@ldap_get_dn($this->_link, $subentry), true); + while ($subentry = @ldap_next_entry($this->_link, $subentry)) { + $this->delete(@ldap_get_dn($this->_link, $subentry), true); + } + } + } + + // Continue attempting the delete operation in a loop until we + // get a success, a definitive failure, or the world ends. + while (true) { + $link = $this->getLink(); + + if ($link === false) { + // We do not have a successful connection yet. The call to + // getLink() would have kept trying if we wanted one. Go + // home now. + return PEAR::raiseError("Could not add entry " . $dn . + " no valid LDAP connection could be found."); + } + + if (@ldap_delete($link, $dn)) { + // entry successfully deleted. + return true; + } else { + // We have a failure. What type? + // We may be able to reconnect and try again. + $error_code = @ldap_errno($link); + $error_name = $this->errorMessage($error_code); + + if (($this->errorMessage($error_code) === 'LDAP_OPERATIONS_ERROR') && + ($this->_config['auto_reconnect'])) { + // The server has become disconnected before trying the + // operation. We should try again, possibly with a + // different server. + $this->_link = false; + $this->performReconnect(); + + } elseif ($error_code == 66) { + // Subentries present, server refused to delete. + // Deleting subentries is the clients responsibility, but + // since the user may not know of the subentries, we do not + // force that here but instead notify the developer so he + // may take actions himself. + return PEAR::raiseError("Could not delete entry $dn because of subentries. Use the recursive parameter to delete them."); + + } else { + // Errors other than the above catched are just passed + // back to the user so he may react upon them. + return PEAR::raiseError("Could not delete entry " . $dn . " " . + $error_name, + $error_code); + } + } + } + } + + /** + * Modify an ldapentry directly on the server + * + * This one takes the DN or a Net_LDAP2_Entry object and an array of actions. + * This array should be something like this: + * + * array('add' => array('attribute1' => array('val1', 'val2'), + * 'attribute2' => array('val1')), + * 'delete' => array('attribute1'), + * 'replace' => array('attribute1' => array('val1')), + * 'changes' => array('add' => ..., + * 'replace' => ..., + * 'delete' => array('attribute1', 'attribute2' => array('val1'))) + * + * The changes array is there so the order of operations can be influenced + * (the operations are done in order of appearance). + * The order of execution is as following: + * 1. adds from 'add' array + * 2. deletes from 'delete' array + * 3. replaces from 'replace' array + * 4. changes (add, replace, delete) in order of appearance + * All subarrays (add, replace, delete, changes) may be given at the same time. + * + * The function calls the corresponding functions of an Net_LDAP2_Entry + * object. A detailed description of array structures can be found there. + * + * Unlike the modification methods provided by the Net_LDAP2_Entry object, + * this method will instantly carry out an update() after each operation, + * thus modifying "directly" on the server. + * + * @param string|Net_LDAP2_Entry $entry DN-string or Net_LDAP2_Entry + * @param array $parms Array of changes + * + * @access public + * @return Net_LDAP2_Error|true Net_LDAP2_Error object or true + */ + public function modify($entry, $parms = array()) + { + if (is_string($entry)) { + $entry = $this->getEntry($entry); + if (self::isError($entry)) { + return $entry; + } + } + if (!$entry instanceof Net_LDAP2_Entry) { + return PEAR::raiseError("Parameter is not a string nor an entry object!"); + } + + // Perform changes mentioned separately + foreach (array('add', 'delete', 'replace') as $action) { + if (isset($parms[$action])) { + $msg = $entry->$action($parms[$action]); + if (self::isError($msg)) { + return $msg; + } + $entry->setLDAP($this); + + // Because the @ldap functions are called inside Net_LDAP2_Entry::update(), + // we have to trap the error codes issued from that if we want to support + // reconnection. + while (true) { + $msg = $entry->update(); + + if (self::isError($msg)) { + // We have a failure. What type? We may be able to reconnect + // and try again. + $error_code = $msg->getCode(); + $error_name = $this->errorMessage($error_code); + + if (($this->errorMessage($error_code) === 'LDAP_OPERATIONS_ERROR') && + ($this->_config['auto_reconnect'])) { + + // The server has become disconnected before trying the + // operation. We should try again, possibly with a different + // server. + $this->_link = false; + $this->performReconnect(); + + } else { + + // Errors other than the above catched are just passed + // back to the user so he may react upon them. + return PEAR::raiseError("Could not modify entry: ".$msg->getMessage()); + } + } else { + // modification succeedet, evaluate next change + break; + } + } + } + } + + // perform combined changes in 'changes' array + if (isset($parms['changes']) && is_array($parms['changes'])) { + foreach ($parms['changes'] as $action => $value) { + + // Because the @ldap functions are called inside Net_LDAP2_Entry::update, + // we have to trap the error codes issued from that if we want to support + // reconnection. + while (true) { + $msg = $this->modify($entry, array($action => $value)); + + if (self::isError($msg)) { + // We have a failure. What type? We may be able to reconnect + // and try again. + $error_code = $msg->getCode(); + $error_name = $this->errorMessage($error_code); + + if (($this->errorMessage($error_code) === 'LDAP_OPERATIONS_ERROR') && + ($this->_config['auto_reconnect'])) { + + // The server has become disconnected before trying the + // operation. We should try again, possibly with a different + // server. + $this->_link = false; + $this->performReconnect(); + + } else { + // Errors other than the above catched are just passed + // back to the user so he may react upon them. + return $msg; + } + } else { + // modification succeedet, evaluate next change + break; + } + } + } + } + + return true; + } + + /** + * Run a ldap search query + * + * Search is used to query the ldap-database. + * $base and $filter may be ommitted. The one from config will + * then be used. $base is either a DN-string or an Net_LDAP2_Entry + * object in which case its DN willb e used. + * + * Params may contain: + * + * scope: The scope which will be used for searching + * base - Just one entry + * sub - The whole tree + * one - Immediately below $base + * sizelimit: Limit the number of entries returned (default: 0 = unlimited), + * timelimit: Limit the time spent for searching (default: 0 = unlimited), + * attrsonly: If true, the search will only return the attribute names, + * attributes: Array of attribute names, which the entry should contain. + * It is good practice to limit this to just the ones you need. + * [NOT IMPLEMENTED] + * deref: By default aliases are dereferenced to locate the base object for the search, but not when + * searching subordinates of the base object. This may be changed by specifying one of the + * following values: + * + * never - Do not dereference aliases in searching or in locating the base object of the search. + * search - Dereference aliases in subordinates of the base object in searching, but not in + * locating the base object of the search. + * find + * always + * + * Please note, that you cannot override server side limitations to sizelimit + * and timelimit: You can always only lower a given limit. + * + * @param string|Net_LDAP2_Entry $base LDAP searchbase + * @param string|Net_LDAP2_Filter $filter LDAP search filter or a Net_LDAP2_Filter object + * @param array $params Array of options + * + * @access public + * @return Net_LDAP2_Search|Net_LDAP2_Error Net_LDAP2_Search object or Net_LDAP2_Error object + * @todo implement search controls (sorting etc) + */ + public function search($base = null, $filter = null, $params = array()) + { + if (is_null($base)) { + $base = $this->_config['basedn']; + } + if ($base instanceof Net_LDAP2_Entry) { + $base = $base->dn(); // fetch DN of entry, making searchbase relative to the entry + } + if (is_null($filter)) { + $filter = $this->_config['filter']; + } + if ($filter instanceof Net_LDAP2_Filter) { + $filter = $filter->asString(); // convert Net_LDAP2_Filter to string representation + } + if (PEAR::isError($filter)) { + return $filter; + } + if (PEAR::isError($base)) { + return $base; + } + + /* setting searchparameters */ + (isset($params['sizelimit'])) ? $sizelimit = $params['sizelimit'] : $sizelimit = 0; + (isset($params['timelimit'])) ? $timelimit = $params['timelimit'] : $timelimit = 0; + (isset($params['attrsonly'])) ? $attrsonly = $params['attrsonly'] : $attrsonly = 0; + (isset($params['attributes'])) ? $attributes = $params['attributes'] : $attributes = array(); + + // Ensure $attributes to be an array in case only one + // attribute name was given as string + if (!is_array($attributes)) { + $attributes = array($attributes); + } + + // reorganize the $attributes array index keys + // sometimes there are problems with not consecutive indexes + $attributes = array_values($attributes); + + // scoping makes searches faster! + $scope = (isset($params['scope']) ? $params['scope'] : $this->_config['scope']); + + switch ($scope) { + case 'one': + $search_function = 'ldap_list'; + break; + case 'base': + $search_function = 'ldap_read'; + break; + default: + $search_function = 'ldap_search'; + } + + // Continue attempting the search operation until we get a success + // or a definitive failure. + while (true) { + $link = $this->getLink(); + $search = @call_user_func($search_function, + $link, + $base, + $filter, + $attributes, + $attrsonly, + $sizelimit, + $timelimit); + + if ($err = @ldap_errno($link)) { + if ($err == 32) { + // Errorcode 32 = no such object, i.e. a nullresult. + return $obj = new Net_LDAP2_Search ($search, $this, $attributes); + } elseif ($err == 4) { + // Errorcode 4 = sizelimit exeeded. + return $obj = new Net_LDAP2_Search ($search, $this, $attributes); + } elseif ($err == 87) { + // bad search filter + return $this->raiseError($this->errorMessage($err) . "($filter)", $err); + } elseif (($err == 1) && ($this->_config['auto_reconnect'])) { + // Errorcode 1 = LDAP_OPERATIONS_ERROR but we can try a reconnect. + $this->_link = false; + $this->performReconnect(); + } else { + $msg = "\nParameters:\nBase: $base\nFilter: $filter\nScope: $scope"; + return $this->raiseError($this->errorMessage($err) . $msg, $err); + } + } else { + return $obj = new Net_LDAP2_Search($search, $this, $attributes); + } + } + } + + /** + * Set an LDAP option + * + * @param string $option Option to set + * @param mixed $value Value to set Option to + * + * @access public + * @return Net_LDAP2_Error|true Net_LDAP2_Error object or true + */ + public function setOption($option, $value) + { + if ($this->_link) { + if (defined($option)) { + if (@ldap_set_option($this->_link, constant($option), $value)) { + return true; + } else { + $err = @ldap_errno($this->_link); + if ($err) { + $msg = @ldap_err2str($err); + } else { + $err = NET_LDAP2_ERROR; + $msg = $this->errorMessage($err); + } + return $this->raiseError($msg, $err); + } + } else { + return $this->raiseError("Unkown Option requested"); + } + } else { + return $this->raiseError("Could not set LDAP option: No LDAP connection"); + } + } + + /** + * Get an LDAP option value + * + * @param string $option Option to get + * + * @access public + * @return Net_LDAP2_Error|string Net_LDAP2_Error or option value + */ + public function getOption($option) + { + if ($this->_link) { + if (defined($option)) { + if (@ldap_get_option($this->_link, constant($option), $value)) { + return $value; + } else { + $err = @ldap_errno($this->_link); + if ($err) { + $msg = @ldap_err2str($err); + } else { + $err = NET_LDAP2_ERROR; + $msg = $this->errorMessage($err); + } + return $this->raiseError($msg, $err); + } + } else { + $this->raiseError("Unkown Option requested"); + } + } else { + $this->raiseError("No LDAP connection"); + } + } + + /** + * Get the LDAP_PROTOCOL_VERSION that is used on the connection. + * + * A lot of ldap functionality is defined by what protocol version the ldap server speaks. + * This might be 2 or 3. + * + * @return int + */ + public function getLDAPVersion() + { + if ($this->_link) { + $version = $this->getOption("LDAP_OPT_PROTOCOL_VERSION"); + } else { + $version = $this->_config['version']; + } + return $version; + } + + /** + * Set the LDAP_PROTOCOL_VERSION that is used on the connection. + * + * @param int $version LDAP-version that should be used + * @param boolean $force If set to true, the check against the rootDSE will be skipped + * + * @return Net_LDAP2_Error|true Net_LDAP2_Error object or true + * @todo Checking via the rootDSE takes much time - why? fetching and instanciation is quick! + */ + public function setLDAPVersion($version = 0, $force = false) + { + if (!$version) { + $version = $this->_config['version']; + } + + // + // Check to see if the server supports this version first. + // + // Todo: Why is this so horribly slow? + // $this->rootDse() is very fast, as well as Net_LDAP2_RootDSE::fetch() + // seems like a problem at copiyng the object inside PHP?? + // Additionally, this is not always reproducable... + // + if (!$force) { + $rootDSE = $this->rootDse(); + if ($rootDSE instanceof Net_LDAP2_Error) { + return $rootDSE; + } else { + $supported_versions = $rootDSE->getValue('supportedLDAPVersion'); + if (is_string($supported_versions)) { + $supported_versions = array($supported_versions); + } + $check_ok = in_array($version, $supported_versions); + } + } + + if ($force || $check_ok) { + return $this->setOption("LDAP_OPT_PROTOCOL_VERSION", $version); + } else { + return $this->raiseError("LDAP Server does not support protocol version " . $version); + } + } + + + /** + * Tells if a DN does exist in the directory + * + * @param string|Net_LDAP2_Entry $dn The DN of the object to test + * + * @return boolean|Net_LDAP2_Error + */ + public function dnExists($dn) + { + if (PEAR::isError($dn)) { + return $dn; + } + if ($dn instanceof Net_LDAP2_Entry) { + $dn = $dn->dn(); + } + if (false === is_string($dn)) { + return PEAR::raiseError('Parameter $dn is not a string nor an entry object!'); + } + + // make dn relative to parent + $base = Net_LDAP2_Util::ldap_explode_dn($dn, array('casefold' => 'none', 'reverse' => false, 'onlyvalues' => false)); + if (self::isError($base)) { + return $base; + } + $entry_rdn = array_shift($base); + if (is_array($entry_rdn)) { + // maybe the dn consist of a multivalued RDN, we must build the dn in this case + // because the $entry_rdn is an array! + $filter_dn = Net_LDAP2_Util::canonical_dn($entry_rdn); + } + $base = Net_LDAP2_Util::canonical_dn($base); + + $result = @ldap_list($this->_link, $base, $entry_rdn, array(), 1, 1); + if (@ldap_count_entries($this->_link, $result)) { + return true; + } + if (ldap_errno($this->_link) == 32) { + return false; + } + if (ldap_errno($this->_link) != 0) { + return PEAR::raiseError(ldap_error($this->_link), ldap_errno($this->_link)); + } + return false; + } + + + /** + * Get a specific entry based on the DN + * + * @param string $dn DN of the entry that should be fetched + * @param array $attr Array of Attributes to select. If ommitted, all attributes are fetched. + * + * @return Net_LDAP2_Entry|Net_LDAP2_Error Reference to a Net_LDAP2_Entry object or Net_LDAP2_Error object + * @todo Maybe check against the shema should be done to be sure the attribute type exists + */ + public function &getEntry($dn, $attr = array()) + { + if (!is_array($attr)) { + $attr = array($attr); + } + $result = $this->search($dn, '(objectClass=*)', + array('scope' => 'base', 'attributes' => $attr)); + if (self::isError($result)) { + return $result; + } elseif ($result->count() == 0) { + return PEAR::raiseError('Could not fetch entry '.$dn.': no entry found'); + } + $entry = $result->shiftEntry(); + if (false == $entry) { + return PEAR::raiseError('Could not fetch entry (error retrieving entry from search result)'); + } + return $entry; + } + + /** + * Rename or move an entry + * + * This method will instantly carry out an update() after the move, + * so the entry is moved instantly. + * You can pass an optional Net_LDAP2 object. In this case, a cross directory + * move will be performed which deletes the entry in the source (THIS) directory + * and adds it in the directory $target_ldap. + * A cross directory move will switch the Entrys internal LDAP reference so + * updates to the entry will go to the new directory. + * + * Note that if you want to do a cross directory move, you need to + * pass an Net_LDAP2_Entry object, otherwise the attributes will be empty. + * + * @param string|Net_LDAP2_Entry $entry Entry DN or Entry object + * @param string $newdn New location + * @param Net_LDAP2 $target_ldap (optional) Target directory for cross server move; should be passed via reference + * + * @return Net_LDAP2_Error|true + */ + public function move($entry, $newdn, $target_ldap = null) + { + if (is_string($entry)) { + $entry_o = $this->getEntry($entry); + } else { + $entry_o =& $entry; + } + if (!$entry_o instanceof Net_LDAP2_Entry) { + return PEAR::raiseError('Parameter $entry is expected to be a Net_LDAP2_Entry object! (If DN was passed, conversion failed)'); + } + if (null !== $target_ldap && !$target_ldap instanceof Net_LDAP2) { + return PEAR::raiseError('Parameter $target_ldap is expected to be a Net_LDAP2 object!'); + } + + if ($target_ldap && $target_ldap !== $this) { + // cross directory move + if (is_string($entry)) { + return PEAR::raiseError('Unable to perform cross directory move: operation requires a Net_LDAP2_Entry object'); + } + if ($target_ldap->dnExists($newdn)) { + return PEAR::raiseError('Unable to perform cross directory move: entry does exist in target directory'); + } + $entry_o->dn($newdn); + $res = $target_ldap->add($entry_o); + if (self::isError($res)) { + return PEAR::raiseError('Unable to perform cross directory move: '.$res->getMessage().' in target directory'); + } + $res = $this->delete($entry_o->currentDN()); + if (self::isError($res)) { + $res2 = $target_ldap->delete($entry_o); // undo add + if (self::isError($res2)) { + $add_error_string = 'Additionally, the deletion (undo add) of $entry in target directory failed.'; + } + return PEAR::raiseError('Unable to perform cross directory move: '.$res->getMessage().' in source directory. '.$add_error_string); + } + $entry_o->setLDAP($target_ldap); + return true; + } else { + // local move + $entry_o->dn($newdn); + $entry_o->setLDAP($this); + return $entry_o->update(); + } + } + + /** + * Copy an entry to a new location + * + * The entry will be immediately copied. + * Please note that only attributes you have + * selected will be copied. + * + * @param Net_LDAP2_Entry &$entry Entry object + * @param string $newdn New FQF-DN of the entry + * + * @return Net_LDAP2_Error|Net_LDAP2_Entry Error Message or reference to the copied entry + */ + public function ©(&$entry, $newdn) + { + if (!$entry instanceof Net_LDAP2_Entry) { + return PEAR::raiseError('Parameter $entry is expected to be a Net_LDAP2_Entry object!'); + } + + $newentry = Net_LDAP2_Entry::createFresh($newdn, $entry->getValues()); + $result = $this->add($newentry); + + if ($result instanceof Net_LDAP2_Error) { + return $result; + } else { + return $newentry; + } + } + + + /** + * Returns the string for an ldap errorcode. + * + * Made to be able to make better errorhandling + * Function based on DB::errorMessage() + * Tip: The best description of the errorcodes is found here: + * http://www.directory-info.com/LDAP2/LDAPErrorCodes.html + * + * @param int $errorcode Error code + * + * @return string The errorstring for the error. + */ + public function errorMessage($errorcode) + { + $errorMessages = array( + 0x00 => "LDAP_SUCCESS", + 0x01 => "LDAP_OPERATIONS_ERROR", + 0x02 => "LDAP_PROTOCOL_ERROR", + 0x03 => "LDAP_TIMELIMIT_EXCEEDED", + 0x04 => "LDAP_SIZELIMIT_EXCEEDED", + 0x05 => "LDAP_COMPARE_FALSE", + 0x06 => "LDAP_COMPARE_TRUE", + 0x07 => "LDAP_AUTH_METHOD_NOT_SUPPORTED", + 0x08 => "LDAP_STRONG_AUTH_REQUIRED", + 0x09 => "LDAP_PARTIAL_RESULTS", + 0x0a => "LDAP_REFERRAL", + 0x0b => "LDAP_ADMINLIMIT_EXCEEDED", + 0x0c => "LDAP_UNAVAILABLE_CRITICAL_EXTENSION", + 0x0d => "LDAP_CONFIDENTIALITY_REQUIRED", + 0x0e => "LDAP_SASL_BIND_INPROGRESS", + 0x10 => "LDAP_NO_SUCH_ATTRIBUTE", + 0x11 => "LDAP_UNDEFINED_TYPE", + 0x12 => "LDAP_INAPPROPRIATE_MATCHING", + 0x13 => "LDAP_CONSTRAINT_VIOLATION", + 0x14 => "LDAP_TYPE_OR_VALUE_EXISTS", + 0x15 => "LDAP_INVALID_SYNTAX", + 0x20 => "LDAP_NO_SUCH_OBJECT", + 0x21 => "LDAP_ALIAS_PROBLEM", + 0x22 => "LDAP_INVALID_DN_SYNTAX", + 0x23 => "LDAP_IS_LEAF", + 0x24 => "LDAP_ALIAS_DEREF_PROBLEM", + 0x30 => "LDAP_INAPPROPRIATE_AUTH", + 0x31 => "LDAP_INVALID_CREDENTIALS", + 0x32 => "LDAP_INSUFFICIENT_ACCESS", + 0x33 => "LDAP_BUSY", + 0x34 => "LDAP_UNAVAILABLE", + 0x35 => "LDAP_UNWILLING_TO_PERFORM", + 0x36 => "LDAP_LOOP_DETECT", + 0x3C => "LDAP_SORT_CONTROL_MISSING", + 0x3D => "LDAP_INDEX_RANGE_ERROR", + 0x40 => "LDAP_NAMING_VIOLATION", + 0x41 => "LDAP_OBJECT_CLASS_VIOLATION", + 0x42 => "LDAP_NOT_ALLOWED_ON_NONLEAF", + 0x43 => "LDAP_NOT_ALLOWED_ON_RDN", + 0x44 => "LDAP_ALREADY_EXISTS", + 0x45 => "LDAP_NO_OBJECT_CLASS_MODS", + 0x46 => "LDAP_RESULTS_TOO_LARGE", + 0x47 => "LDAP_AFFECTS_MULTIPLE_DSAS", + 0x50 => "LDAP_OTHER", + 0x51 => "LDAP_SERVER_DOWN", + 0x52 => "LDAP_LOCAL_ERROR", + 0x53 => "LDAP_ENCODING_ERROR", + 0x54 => "LDAP_DECODING_ERROR", + 0x55 => "LDAP_TIMEOUT", + 0x56 => "LDAP_AUTH_UNKNOWN", + 0x57 => "LDAP_FILTER_ERROR", + 0x58 => "LDAP_USER_CANCELLED", + 0x59 => "LDAP_PARAM_ERROR", + 0x5a => "LDAP_NO_MEMORY", + 0x5b => "LDAP_CONNECT_ERROR", + 0x5c => "LDAP_NOT_SUPPORTED", + 0x5d => "LDAP_CONTROL_NOT_FOUND", + 0x5e => "LDAP_NO_RESULTS_RETURNED", + 0x5f => "LDAP_MORE_RESULTS_TO_RETURN", + 0x60 => "LDAP_CLIENT_LOOP", + 0x61 => "LDAP_REFERRAL_LIMIT_EXCEEDED", + 1000 => "Unknown Net_LDAP2 Error" + ); + + return isset($errorMessages[$errorcode]) ? + $errorMessages[$errorcode] : + $errorMessages[NET_LDAP2_ERROR] . ' (' . $errorcode . ')'; + } + + /** + * Gets a rootDSE object + * + * This either fetches a fresh rootDSE object or returns it from + * the internal cache for performance reasons, if possible. + * + * @param array $attrs Array of attributes to search for + * + * @access public + * @return Net_LDAP2_Error|Net_LDAP2_RootDSE Net_LDAP2_Error or Net_LDAP2_RootDSE object + */ + public function &rootDse($attrs = null) + { + if ($attrs !== null && !is_array($attrs)) { + return PEAR::raiseError('Parameter $attr is expected to be an array!'); + } + + $attrs_signature = serialize($attrs); + + // see if we need to fetch a fresh object, or if we already + // requested this object with the same attributes + if (true || !array_key_exists($attrs_signature, $this->_rootDSE_cache)) { + $rootdse =& Net_LDAP2_RootDSE::fetch($this, $attrs); + if ($rootdse instanceof Net_LDAP2_Error) { + return $rootdse; + } + + // search was ok, store rootDSE in cache + $this->_rootDSE_cache[$attrs_signature] = $rootdse; + } + return $this->_rootDSE_cache[$attrs_signature]; + } + + /** + * Alias function of rootDse() for perl-ldap interface + * + * @access public + * @see rootDse() + * @return Net_LDAP2_Error|Net_LDAP2_RootDSE + */ + public function &root_dse() + { + $args = func_get_args(); + return call_user_func_array(array(&$this, 'rootDse'), $args); + } + + /** + * Get a schema object + * + * @param string $dn (optional) Subschema entry dn + * + * @access public + * @return Net_LDAP2_Schema|Net_LDAP2_Error Net_LDAP2_Schema or Net_LDAP2_Error object + */ + public function &schema($dn = null) + { + // Schema caching by Knut-Olav Hoven + // If a schema caching object is registered, we use that to fetch + // a schema object. + // See registerSchemaCache() for more info on this. + if ($this->_schema === null) { + if ($this->_schema_cache) { + $cached_schema = $this->_schema_cache->loadSchema(); + if ($cached_schema instanceof Net_LDAP2_Error) { + return $cached_schema; // route error to client + } else { + if ($cached_schema instanceof Net_LDAP2_Schema) { + $this->_schema = $cached_schema; + } + } + } + } + + // Fetch schema, if not tried before and no cached version available. + // If we are already fetching the schema, we will skip fetching. + if ($this->_schema === null) { + // store a temporary error message so subsequent calls to schema() can + // detect, that we are fetching the schema already. + // Otherwise we will get an infinite loop at Net_LDAP2_Schema::fetch() + $this->_schema = new Net_LDAP2_Error('Schema not initialized'); + $this->_schema = Net_LDAP2_Schema::fetch($this, $dn); + + // If schema caching is active, advise the cache to store the schema + if ($this->_schema_cache) { + $caching_result = $this->_schema_cache->storeSchema($this->_schema); + if ($caching_result instanceof Net_LDAP2_Error) { + return $caching_result; // route error to client + } + } + } + return $this->_schema; + } + + /** + * Enable/disable persistent schema caching + * + * Sometimes it might be useful to allow your scripts to cache + * the schema information on disk, so the schema is not fetched + * every time the script runs which could make your scripts run + * faster. + * + * This method allows you to register a custom object that + * implements your schema cache. Please see the SchemaCache interface + * (SchemaCache.interface.php) for informations on how to implement this. + * To unregister the cache, pass null as $cache parameter. + * + * For ease of use, Net_LDAP2 provides a simple file based cache + * which is used in the example below. You may use this, for example, + * to store the schema in a linux tmpfs which results in the schema + * beeing cached inside the RAM which allows nearly instant access. + * + * // Create the simple file cache object that comes along with Net_LDAP2 + * $mySchemaCache_cfg = array( + * 'path' => '/tmp/Net_LDAP2_Schema.cache', + * 'max_age' => 86400 // max age is 24 hours (in seconds) + * ); + * $mySchemaCache = new Net_LDAP2_SimpleFileSchemaCache($mySchemaCache_cfg); + * $ldap = new Net_LDAP2::connect(...); + * $ldap->registerSchemaCache($mySchemaCache); // enable caching + * // now each call to $ldap->schema() will get the schema from disk! + * + * + * @param Net_LDAP2_SchemaCache|null $cache Object implementing the Net_LDAP2_SchemaCache interface + * + * @return true|Net_LDAP2_Error + */ + public function registerSchemaCache($cache) { + if (is_null($cache) + || (is_object($cache) && in_array('Net_LDAP2_SchemaCache', class_implements($cache))) ) { + $this->_schema_cache = $cache; + return true; + } else { + return new Net_LDAP2_Error('Custom schema caching object is either no '. + 'valid object or does not implement the Net_LDAP2_SchemaCache interface!'); + } + } + + + /** + * Checks if phps ldap-extension is loaded + * + * If it is not loaded, it tries to load it manually using PHPs dl(). + * It knows both windows-dll and *nix-so. + * + * @static + * @return Net_LDAP2_Error|true + */ + public static function checkLDAPExtension() + { + if (!extension_loaded('ldap') && !@dl('ldap.' . PHP_SHLIB_SUFFIX)) { + return new Net_LDAP2_Error("It seems that you do not have the ldap-extension installed. Please install it before using the Net_LDAP2 package."); + } else { + return true; + } + } + + /** + * Encodes given attributes to UTF8 if needed by schema + * + * This function takes attributes in an array and then checks against the schema if they need + * UTF8 encoding. If that is so, they will be encoded. An encoded array will be returned and + * can be used for adding or modifying. + * + * $attributes is expected to be an array with keys describing + * the attribute names and the values as the value of this attribute: + * $attributes = array('cn' => 'foo', 'attr2' => array('mv1', 'mv2')); + * + * @param array $attributes Array of attributes + * + * @access public + * @return array|Net_LDAP2_Error Array of UTF8 encoded attributes or Error + */ + public function utf8Encode($attributes) + { + return $this->utf8($attributes, 'utf8_encode'); + } + + /** + * Decodes the given attribute values if needed by schema + * + * $attributes is expected to be an array with keys describing + * the attribute names and the values as the value of this attribute: + * $attributes = array('cn' => 'foo', 'attr2' => array('mv1', 'mv2')); + * + * @param array $attributes Array of attributes + * + * @access public + * @see utf8Encode() + * @return array|Net_LDAP2_Error Array with decoded attribute values or Error + */ + public function utf8Decode($attributes) + { + return $this->utf8($attributes, 'utf8_decode'); + } + + /** + * Encodes or decodes attribute values if needed + * + * @param array $attributes Array of attributes + * @param array $function Function to apply to attribute values + * + * @access protected + * @return array|Net_LDAP2_Error Array of attributes with function applied to values or Error + */ + protected function utf8($attributes, $function) + { + if (!is_array($attributes) || array_key_exists(0, $attributes)) { + return PEAR::raiseError('Parameter $attributes is expected to be an associative array'); + } + + if (!$this->_schema) { + $this->_schema = $this->schema(); + } + + if (!$this->_link || self::isError($this->_schema) || !function_exists($function)) { + return $attributes; + } + + if (is_array($attributes) && count($attributes) > 0) { + + foreach ($attributes as $k => $v) { + + if (!isset($this->_schemaAttrs[$k])) { + + $attr = $this->_schema->get('attribute', $k); + if (self::isError($attr)) { + continue; + } + + if (false !== strpos($attr['syntax'], '1.3.6.1.4.1.1466.115.121.1.15')) { + $encode = true; + } else { + $encode = false; + } + $this->_schemaAttrs[$k] = $encode; + + } else { + $encode = $this->_schemaAttrs[$k]; + } + + if ($encode) { + if (is_array($v)) { + foreach ($v as $ak => $av) { + $v[$ak] = call_user_func($function, $av); + } + } else { + $v = call_user_func($function, $v); + } + } + $attributes[$k] = $v; + } + } + return $attributes; + } + + /** + * Get the LDAP link resource. It will loop attempting to + * re-establish the connection if the connection attempt fails and + * auto_reconnect has been turned on (see the _config array documentation). + * + * @access public + * @return resource LDAP link + */ + public function &getLink() + { + if ($this->_config['auto_reconnect']) { + while (true) { + // + // Return the link handle if we are already connected. Otherwise + // try to reconnect. + // + if ($this->_link !== false) { + return $this->_link; + } else { + $this->performReconnect(); + } + } + } + return $this->_link; + } +} + +/** +* Net_LDAP2_Error implements a class for reporting portable LDAP error messages. +* +* @category Net +* @package Net_LDAP2 +* @author Tarjej Huse +* @license http://www.gnu.org/copyleft/lesser.html LGPL +* @link http://pear.php.net/package/Net_LDAP22/ +*/ +class Net_LDAP2_Error extends PEAR_Error +{ + /** + * Net_LDAP2_Error constructor. + * + * @param string $message String with error message. + * @param integer $code Net_LDAP2 error code + * @param integer $mode what "error mode" to operate in + * @param mixed $level what error level to use for $mode & PEAR_ERROR_TRIGGER + * @param mixed $debuginfo additional debug info, such as the last query + * + * @access public + * @see PEAR_Error + */ + public function __construct($message = 'Net_LDAP2_Error', $code = NET_LDAP2_ERROR, $mode = PEAR_ERROR_RETURN, + $level = E_USER_NOTICE, $debuginfo = null) + { + if (is_int($code)) { + $this->PEAR_Error($message . ': ' . Net_LDAP2::errorMessage($code), $code, $mode, $level, $debuginfo); + } else { + $this->PEAR_Error("$message: $code", NET_LDAP2_ERROR, $mode, $level, $debuginfo); + } + } +} + +?> diff --git a/plugins/LdapCommon/extlib/Net/LDAP2/Entry.php b/plugins/LdapCommon/extlib/Net/LDAP2/Entry.php new file mode 100644 index 000000000..66de96678 --- /dev/null +++ b/plugins/LdapCommon/extlib/Net/LDAP2/Entry.php @@ -0,0 +1,1055 @@ + +* @author Tarjej Huse +* @author Benedikt Hallinger +* @copyright 2009 Tarjej Huse, Jan Wagner, Benedikt Hallinger +* @license http://www.gnu.org/licenses/lgpl-3.0.txt LGPLv3 +* @version SVN: $Id: Entry.php 286787 2009-08-04 06:03:12Z beni $ +* @link http://pear.php.net/package/Net_LDAP2/ +*/ + +/** +* Includes +*/ +require_once 'PEAR.php'; +require_once 'Util.php'; + +/** +* Object representation of a directory entry +* +* This class represents a directory entry. You can add, delete, replace +* attributes and their values, rename the entry, delete the entry. +* +* @category Net +* @package Net_LDAP2 +* @author Jan Wagner +* @author Tarjej Huse +* @author Benedikt Hallinger +* @license http://www.gnu.org/copyleft/lesser.html LGPL +* @link http://pear.php.net/package/Net_LDAP2/ +*/ +class Net_LDAP2_Entry extends PEAR +{ + /** + * Entry ressource identifier + * + * @access protected + * @var ressource + */ + protected $_entry = null; + + /** + * LDAP ressource identifier + * + * @access protected + * @var ressource + */ + protected $_link = null; + + /** + * Net_LDAP2 object + * + * This object will be used for updating and schema checking + * + * @access protected + * @var object Net_LDAP2 + */ + protected $_ldap = null; + + /** + * Distinguished name of the entry + * + * @access protected + * @var string + */ + protected $_dn = null; + + /** + * Attributes + * + * @access protected + * @var array + */ + protected $_attributes = array(); + + /** + * Original attributes before any modification + * + * @access protected + * @var array + */ + protected $_original = array(); + + + /** + * Map of attribute names + * + * @access protected + * @var array + */ + protected $_map = array(); + + + /** + * Is this a new entry? + * + * @access protected + * @var boolean + */ + protected $_new = true; + + /** + * New distinguished name + * + * @access protected + * @var string + */ + protected $_newdn = null; + + /** + * Shall the entry be deleted? + * + * @access protected + * @var boolean + */ + protected $_delete = false; + + /** + * Map with changes to the entry + * + * @access protected + * @var array + */ + protected $_changes = array("add" => array(), + "delete" => array(), + "replace" => array() + ); + /** + * Internal Constructor + * + * Constructor of the entry. Sets up the distinguished name and the entries + * attributes. + * You should not call this method manually! Use {@link Net_LDAP2_Entry::createFresh()} + * or {@link Net_LDAP2_Entry::createConnected()} instead! + * + * @param Net_LDAP2|ressource|array &$ldap Net_LDAP2 object, ldap-link ressource or array of attributes + * @param string|ressource $entry Either a DN or a LDAP-Entry ressource + * + * @access protected + * @return none + */ + protected function __construct(&$ldap, $entry = null) + { + $this->PEAR('Net_LDAP2_Error'); + + // set up entry resource or DN + if (is_resource($entry)) { + $this->_entry = &$entry; + } else { + $this->_dn = $entry; + } + + // set up LDAP link + if ($ldap instanceof Net_LDAP2) { + $this->_ldap = &$ldap; + $this->_link = $ldap->getLink(); + } elseif (is_resource($ldap)) { + $this->_link = $ldap; + } elseif (is_array($ldap)) { + // Special case: here $ldap is an array of attributes, + // this means, we have no link. This is a "virtual" entry. + // We just set up the attributes so one can work with the object + // as expected, but an update() fails unless setLDAP() is called. + $this->setAttributes($ldap); + } + + // if this is an entry existing in the directory, + // then set up as old and fetch attrs + if (is_resource($this->_entry) && is_resource($this->_link)) { + $this->_new = false; + $this->_dn = @ldap_get_dn($this->_link, $this->_entry); + $this->setAttributes(); // fetch attributes from server + } + } + + /** + * Creates a fresh entry that may be added to the directory later on + * + * Use this method, if you want to initialize a fresh entry. + * + * The method should be called statically: $entry = Net_LDAP2_Entry::createFresh(); + * You should put a 'objectClass' attribute into the $attrs so the directory server + * knows which object you want to create. However, you may omit this in case you + * don't want to add this entry to a directory server. + * + * The attributes parameter is as following: + * + * $attrs = array( 'attribute1' => array('value1', 'value2'), + * 'attribute2' => 'single value' + * ); + * + * + * @param string $dn DN of the Entry + * @param array $attrs Attributes of the entry + * + * @static + * @return Net_LDAP2_Entry|Net_LDAP2_Error + */ + public static function createFresh($dn, $attrs = array()) + { + if (!is_array($attrs)) { + return PEAR::raiseError("Unable to create fresh entry: Parameter \$attrs needs to be an array!"); + } + + $entry = new Net_LDAP2_Entry($attrs, $dn); + return $entry; + } + + /** + * Creates a Net_LDAP2_Entry object out of an ldap entry resource + * + * Use this method, if you want to initialize an entry object that is + * already present in some directory and that you have read manually. + * + * Please note, that if you want to create an entry object that represents + * some already existing entry, you should use {@link createExisting()}. + * + * The method should be called statically: $entry = Net_LDAP2_Entry::createConnected(); + * + * @param Net_LDAP2 $ldap Net_LDA2 object + * @param resource $entry PHP LDAP entry resource + * + * @static + * @return Net_LDAP2_Entry|Net_LDAP2_Error + */ + public static function createConnected($ldap, $entry) + { + if (!$ldap instanceof Net_LDAP2) { + return PEAR::raiseError("Unable to create connected entry: Parameter \$ldap needs to be a Net_LDAP2 object!"); + } + if (!is_resource($entry)) { + return PEAR::raiseError("Unable to create connected entry: Parameter \$entry needs to be a ldap entry resource!"); + } + + $entry = new Net_LDAP2_Entry($ldap, $entry); + return $entry; + } + + /** + * Creates an Net_LDAP2_Entry object that is considered already existing + * + * Use this method, if you want to modify an already existing entry + * without fetching it first. + * In most cases however, it is better to fetch the entry via Net_LDAP2->getEntry()! + * + * Please note that you should take care if you construct entries manually with this + * because you may get weird synchronisation problems. + * The attributes and values as well as the entry itself are considered existent + * which may produce errors if you try to modify an entry which doesn't really exist + * or if you try to overwrite some attribute with an value already present. + * + * This method is equal to calling createFresh() and after that markAsNew(FALSE). + * + * The method should be called statically: $entry = Net_LDAP2_Entry::createExisting(); + * + * The attributes parameter is as following: + * + * $attrs = array( 'attribute1' => array('value1', 'value2'), + * 'attribute2' => 'single value' + * ); + * + * + * @param string $dn DN of the Entry + * @param array $attrs Attributes of the entry + * + * @static + * @return Net_LDAP2_Entry|Net_LDAP2_Error + */ + public static function createExisting($dn, $attrs = array()) + { + if (!is_array($attrs)) { + return PEAR::raiseError("Unable to create entry object: Parameter \$attrs needs to be an array!"); + } + + $entry = Net_LDAP2_Entry::createFresh($dn, $attrs); + if ($entry instanceof Net_LDAP2_Error) { + return $entry; + } else { + $entry->markAsNew(false); + return $entry; + } + } + + /** + * Get or set the distinguished name of the entry + * + * If called without an argument the current (or the new DN if set) DN gets returned. + * If you provide an DN, this entry is moved to the new location specified if a DN existed. + * If the DN was not set, the DN gets initialized. Call {@link update()} to actually create + * the new Entry in the directory. + * To fetch the current active DN after setting a new DN but before an update(), you can use + * {@link currentDN()} to retrieve the DN that is currently active. + * + * Please note that special characters (eg german umlauts) should be encoded using utf8_encode(). + * You may use {@link Net_LDAP2_Util::canonical_dn()} for properly encoding of the DN. + * + * @param string $dn New distinguished name + * + * @access public + * @return string|true Distinguished name (or true if a new DN was provided) + */ + public function dn($dn = null) + { + if (false == is_null($dn)) { + if (is_null($this->_dn)) { + $this->_dn = $dn; + } else { + $this->_newdn = $dn; + } + return true; + } + return (isset($this->_newdn) ? $this->_newdn : $this->currentDN()); + } + + /** + * Renames or moves the entry + * + * This is just a convinience alias to {@link dn()} + * to make your code more meaningful. + * + * @param string $newdn The new DN + * + * @return true + */ + public function move($newdn) + { + return $this->dn($newdn); + } + + /** + * Sets the internal attributes array + * + * This fetches the values for the attributes from the server. + * The attribute Syntax will be checked so binary attributes will be returned + * as binary values. + * + * Attributes may be passed directly via the $attributes parameter to setup this + * entry manually. This overrides attribute fetching from the server. + * + * @param array $attributes Attributes to set for this entry + * + * @access protected + * @return void + */ + protected function setAttributes($attributes = null) + { + /* + * fetch attributes from the server + */ + if (is_null($attributes) && is_resource($this->_entry) && is_resource($this->_link)) { + // fetch schema + if ($this->_ldap instanceof Net_LDAP2) { + $schema =& $this->_ldap->schema(); + } + // fetch attributes + $attributes = array(); + do { + if (empty($attr)) { + $ber = null; + $attr = @ldap_first_attribute($this->_link, $this->_entry, $ber); + } else { + $attr = @ldap_next_attribute($this->_link, $this->_entry, $ber); + } + if ($attr) { + $func = 'ldap_get_values'; // standard function to fetch value + + // Try to get binary values as binary data + if ($schema instanceof Net_LDAP2_Schema) { + if ($schema->isBinary($attr)) { + $func = 'ldap_get_values_len'; + } + } + // fetch attribute value (needs error checking?) + $attributes[$attr] = $func($this->_link, $this->_entry, $attr); + } + } while ($attr); + } + + /* + * set attribute data directly, if passed + */ + if (is_array($attributes) && count($attributes) > 0) { + if (isset($attributes["count"]) && is_numeric($attributes["count"])) { + unset($attributes["count"]); + } + foreach ($attributes as $k => $v) { + // attribute names should not be numeric + if (is_numeric($k)) { + continue; + } + // map generic attribute name to real one + $this->_map[strtolower($k)] = $k; + // attribute values should be in an array + if (false == is_array($v)) { + $v = array($v); + } + // remove the value count (comes from ldap server) + if (isset($v["count"])) { + unset($v["count"]); + } + $this->_attributes[$k] = $v; + } + } + + // save a copy for later use + $this->_original = $this->_attributes; + } + + /** + * Get the values of all attributes in a hash + * + * The returned hash has the form + * array('attributename' => 'single value', + * 'attributename' => array('value1', value2', value3')) + * + * @access public + * @return array Hash of all attributes with their values + */ + public function getValues() + { + $attrs = array(); + foreach ($this->_attributes as $attr => $value) { + $attrs[$attr] = $this->getValue($attr); + } + return $attrs; + } + + /** + * Get the value of a specific attribute + * + * The first parameter is the name of the attribute + * The second parameter influences the way the value is returned: + * 'single': only the first value is returned as string + * 'all': all values including the value count are returned in an + * array + * 'default': in all other cases an attribute value with a single value is + * returned as string, if it has multiple values it is returned + * as an array (without value count) + * + * @param string $attr Attribute name + * @param string $option Option + * + * @access public + * @return string|array|PEAR_Error string, array or PEAR_Error + */ + public function getValue($attr, $option = null) + { + $attr = $this->getAttrName($attr); + + if (false == array_key_exists($attr, $this->_attributes)) { + return PEAR::raiseError("Unknown attribute ($attr) requested"); + } + + $value = $this->_attributes[$attr]; + + if ($option == "single" || (count($value) == 1 && $option != 'all')) { + $value = array_shift($value); + } + + return $value; + } + + /** + * Alias function of getValue for perl-ldap interface + * + * @see getValue() + * @return string|array|PEAR_Error + */ + public function get_value() + { + $args = func_get_args(); + return call_user_func_array(array( &$this, 'getValue' ), $args); + } + + /** + * Returns an array of attributes names + * + * @access public + * @return array Array of attribute names + */ + public function attributes() + { + return array_keys($this->_attributes); + } + + /** + * Returns whether an attribute exists or not + * + * @param string $attr Attribute name + * + * @access public + * @return boolean + */ + public function exists($attr) + { + $attr = $this->getAttrName($attr); + return array_key_exists($attr, $this->_attributes); + } + + /** + * Adds a new attribute or a new value to an existing attribute + * + * The paramter has to be an array of the form: + * array('attributename' => 'single value', + * 'attributename' => array('value1', 'value2)) + * When the attribute already exists the values will be added, else the + * attribute will be created. These changes are local to the entry and do + * not affect the entry on the server until update() is called. + * + * Note, that you can add values of attributes that you haven't selected, but if + * you do so, {@link getValue()} and {@link getValues()} will only return the + * values you added, _NOT_ all values present on the server. To avoid this, just refetch + * the entry after calling {@link update()} or select the attribute. + * + * @param array $attr Attributes to add + * + * @access public + * @return true|Net_LDAP2_Error + */ + public function add($attr = array()) + { + if (false == is_array($attr)) { + return PEAR::raiseError("Parameter must be an array"); + } + foreach ($attr as $k => $v) { + $k = $this->getAttrName($k); + if (false == is_array($v)) { + // Do not add empty values + if ($v == null) { + continue; + } else { + $v = array($v); + } + } + // add new values to existing attribute or add new attribute + if ($this->exists($k)) { + $this->_attributes[$k] = array_unique(array_merge($this->_attributes[$k], $v)); + } else { + $this->_map[strtolower($k)] = $k; + $this->_attributes[$k] = $v; + } + // save changes for update() + if (empty($this->_changes["add"][$k])) { + $this->_changes["add"][$k] = array(); + } + $this->_changes["add"][$k] = array_unique(array_merge($this->_changes["add"][$k], $v)); + } + $return = true; + return $return; + } + + /** + * Deletes an whole attribute or a value or the whole entry + * + * The parameter can be one of the following: + * + * "attributename" - The attribute as a whole will be deleted + * array("attributename1", "attributename2) - All given attributes will be + * deleted + * array("attributename" => "value") - The value will be deleted + * array("attributename" => array("value1", "value2") - The given values + * will be deleted + * If $attr is null or omitted , then the whole Entry will be deleted! + * + * These changes are local to the entry and do + * not affect the entry on the server until {@link update()} is called. + * + * Please note that you must select the attribute (at $ldap->search() for example) + * to be able to delete values of it, Otherwise {@link update()} will silently fail + * and remove nothing. + * + * @param string|array $attr Attributes to delete (NULL or missing to delete whole entry) + * + * @access public + * @return true + */ + public function delete($attr = null) + { + if (is_null($attr)) { + $this->_delete = true; + return true; + } + if (is_string($attr)) { + $attr = array($attr); + } + // Make the assumption that attribute names cannot be numeric, + // therefore this has to be a simple list of attribute names to delete + if (is_numeric(key($attr))) { + foreach ($attr as $name) { + if (is_array($name)) { + // someone mixed modes (list mode but specific values given!) + $del_attr_name = array_search($name, $attr); + $this->delete(array($del_attr_name => $name)); + } else { + // mark for update() if this attr was not marked before + $name = $this->getAttrName($name); + if ($this->exists($name)) { + $this->_changes["delete"][$name] = null; + unset($this->_attributes[$name]); + } + } + } + } else { + // Here we have a hash with "attributename" => "value to delete" + foreach ($attr as $name => $values) { + if (is_int($name)) { + // someone mixed modes and gave us just an attribute name + $this->delete($values); + } else { + // mark for update() if this attr was not marked before; + // this time it must consider the selected values also + $name = $this->getAttrName($name); + if ($this->exists($name)) { + if (false == is_array($values)) { + $values = array($values); + } + // save values to be deleted + if (empty($this->_changes["delete"][$name])) { + $this->_changes["delete"][$name] = array(); + } + $this->_changes["delete"][$name] = + array_unique(array_merge($this->_changes["delete"][$name], $values)); + foreach ($values as $value) { + // find the key for the value that should be deleted + $key = array_search($value, $this->_attributes[$name]); + if (false !== $key) { + // delete the value + unset($this->_attributes[$name][$key]); + } + } + } + } + } + } + $return = true; + return $return; + } + + /** + * Replaces attributes or its values + * + * The parameter has to an array of the following form: + * array("attributename" => "single value", + * "attribute2name" => array("value1", "value2"), + * "deleteme1" => null, + * "deleteme2" => "") + * If the attribute does not yet exist it will be added instead (see also $force). + * If the attribue value is null, the attribute will de deleted. + * + * These changes are local to the entry and do + * not affect the entry on the server until {@link update()} is called. + * + * In some cases you are not allowed to read the attributes value (for + * example the ActiveDirectory attribute unicodePwd) but are allowed to + * replace the value. In this case replace() would assume that the attribute + * is not in the directory yet and tries to add it which will result in an + * LDAP_TYPE_OR_VALUE_EXISTS error. + * To force replace mode instead of add, you can set $force to true. + * + * @param array $attr Attributes to replace + * @param bool $force Force replacing mode in case we can't read the attr value but are allowed to replace it + * + * @access public + * @return true|Net_LDAP2_Error + */ + public function replace($attr = array(), $force = false) + { + if (false == is_array($attr)) { + return PEAR::raiseError("Parameter must be an array"); + } + foreach ($attr as $k => $v) { + $k = $this->getAttrName($k); + if (false == is_array($v)) { + // delete attributes with empty values; treat ints as string + if (is_int($v)) { + $v = "$v"; + } + if ($v == null) { + $this->delete($k); + continue; + } else { + $v = array($v); + } + } + // existing attributes will get replaced + if ($this->exists($k) || $force) { + $this->_changes["replace"][$k] = $v; + $this->_attributes[$k] = $v; + } else { + // new ones just get added + $this->add(array($k => $v)); + } + } + $return = true; + return $return; + } + + /** + * Update the entry on the directory server + * + * This will evaluate all changes made so far and send them + * to the directory server. + * Please note, that if you make changes to objectclasses wich + * have mandatory attributes set, update() will currently fail. + * Remove the entry from the server and readd it as new in such cases. + * This also will deal with problems with setting structural object classes. + * + * @param Net_LDAP2 $ldap If passed, a call to setLDAP() is issued prior update, thus switching the LDAP-server. This is for perl-ldap interface compliance + * + * @access public + * @return true|Net_LDAP2_Error + * @todo Entry rename with a DN containing special characters needs testing! + */ + public function update($ldap = null) + { + if ($ldap) { + $msg = $this->setLDAP($ldap); + if (Net_LDAP2::isError($msg)) { + return PEAR::raiseError('You passed an invalid $ldap variable to update()'); + } + } + + // ensure we have a valid LDAP object + $ldap =& $this->getLDAP(); + if (!$ldap instanceof Net_LDAP2) { + return PEAR::raiseError("The entries LDAP object is not valid"); + } + + // Get and check link + $link = $ldap->getLink(); + if (!is_resource($link)) { + return PEAR::raiseError("Could not update entry: internal LDAP link is invalid"); + } + + /* + * Delete the entry + */ + if (true === $this->_delete) { + return $ldap->delete($this); + } + + /* + * New entry + */ + if (true === $this->_new) { + $msg = $ldap->add($this); + if (Net_LDAP2::isError($msg)) { + return $msg; + } + $this->_new = false; + $this->_changes['add'] = array(); + $this->_changes['delete'] = array(); + $this->_changes['replace'] = array(); + $this->_original = $this->_attributes; + + $return = true; + return $return; + } + + /* + * Rename/move entry + */ + if (false == is_null($this->_newdn)) { + if ($ldap->getLDAPVersion() !== 3) { + return PEAR::raiseError("Renaming/Moving an entry is only supported in LDAPv3"); + } + // make dn relative to parent (needed for ldap rename) + $parent = Net_LDAP2_Util::ldap_explode_dn($this->_newdn, array('casefolding' => 'none', 'reverse' => false, 'onlyvalues' => false)); + if (Net_LDAP2::isError($parent)) { + return $parent; + } + $child = array_shift($parent); + // maybe the dn consist of a multivalued RDN, we must build the dn in this case + // because the $child-RDN is an array! + if (is_array($child)) { + $child = Net_LDAP2_Util::canonical_dn($child); + } + $parent = Net_LDAP2_Util::canonical_dn($parent); + + // rename/move + if (false == @ldap_rename($link, $this->_dn, $child, $parent, true)) { + return PEAR::raiseError("Entry not renamed: " . + @ldap_error($link), @ldap_errno($link)); + } + // reflect changes to local copy + $this->_dn = $this->_newdn; + $this->_newdn = null; + } + + /* + * Carry out modifications to the entry + */ + // ADD + foreach ($this->_changes["add"] as $attr => $value) { + // if attribute exists, add new values + if ($this->exists($attr)) { + if (false === @ldap_mod_add($link, $this->dn(), array($attr => $value))) { + return PEAR::raiseError("Could not add new values to attribute $attr: " . + @ldap_error($link), @ldap_errno($link)); + } + } else { + // new attribute + if (false === @ldap_modify($link, $this->dn(), array($attr => $value))) { + return PEAR::raiseError("Could not add new attribute $attr: " . + @ldap_error($link), @ldap_errno($link)); + } + } + // all went well here, I guess + unset($this->_changes["add"][$attr]); + } + + // DELETE + foreach ($this->_changes["delete"] as $attr => $value) { + // In LDAPv3 you need to specify the old values for deleting + if (is_null($value) && $ldap->getLDAPVersion() === 3) { + $value = $this->_original[$attr]; + } + if (false === @ldap_mod_del($link, $this->dn(), array($attr => $value))) { + return PEAR::raiseError("Could not delete attribute $attr: " . + @ldap_error($link), @ldap_errno($link)); + } + unset($this->_changes["delete"][$attr]); + } + + // REPLACE + foreach ($this->_changes["replace"] as $attr => $value) { + if (false === @ldap_modify($link, $this->dn(), array($attr => $value))) { + return PEAR::raiseError("Could not replace attribute $attr values: " . + @ldap_error($link), @ldap_errno($link)); + } + unset($this->_changes["replace"][$attr]); + } + + // all went well, so _original (server) becomes _attributes (local copy) + $this->_original = $this->_attributes; + + $return = true; + return $return; + } + + /** + * Returns the right attribute name + * + * @param string $attr Name of attribute + * + * @access protected + * @return string The right name of the attribute + */ + protected function getAttrName($attr) + { + $name = strtolower($attr); + if (array_key_exists($name, $this->_map)) { + $attr = $this->_map[$name]; + } + return $attr; + } + + /** + * Returns a reference to the LDAP-Object of this entry + * + * @access public + * @return Net_LDAP2|Net_LDAP2_Error Reference to the Net_LDAP2 Object (the connection) or Net_LDAP2_Error + */ + public function &getLDAP() + { + if (!$this->_ldap instanceof Net_LDAP2) { + $err = new PEAR_Error('LDAP is not a valid Net_LDAP2 object'); + return $err; + } else { + return $this->_ldap; + } + } + + /** + * Sets a reference to the LDAP-Object of this entry + * + * After setting a Net_LDAP2 object, calling update() will use that object for + * updating directory contents. Use this to dynamicly switch directorys. + * + * @param Net_LDAP2 &$ldap Net_LDAP2 object that this entry should be connected to + * + * @access public + * @return true|Net_LDAP2_Error + */ + public function setLDAP(&$ldap) + { + if (!$ldap instanceof Net_LDAP2) { + return PEAR::raiseError("LDAP is not a valid Net_LDAP2 object"); + } else { + $this->_ldap =& $ldap; + return true; + } + } + + /** + * Marks the entry as new/existing. + * + * If an Entry is marked as new, it will be added to the directory + * when calling {@link update()}. + * If the entry is marked as old ($mark = false), then the entry is + * assumed to be present in the directory server wich results in + * modification when calling {@link update()}. + * + * @param boolean $mark Value to set, defaults to "true" + * + * @return void + */ + public function markAsNew($mark = true) + { + $this->_new = ($mark)? true : false; + } + + /** + * Applies a regular expression onto a single- or multivalued attribute (like preg_match()) + * + * This method behaves like PHPs preg_match() but with some exceptions. + * If you want to retrieve match information, then you MUST pass the + * $matches parameter via reference! otherwise you will get no matches. + * Since it is possible to have multi valued attributes the $matches + * array will have a additionally numerical dimension (one for each value): + * + * $matches = array( + * 0 => array (usual preg_match() returnarray), + * 1 => array (usual preg_match() returnarray) + * ) + * + * Please note, that $matches will be initialized to an empty array inside. + * + * Usage example: + * + * $result = $entry->preg_match('/089(\d+)/', 'telephoneNumber', &$matches); + * if ( $result === true ){ + * echo "First match: ".$matches[0][1]; // Match of value 1, content of first bracket + * } else { + * if ( Net_LDAP2::isError($result) ) { + * echo "Error: ".$result->getMessage(); + * } else { + * echo "No match found."; + * } + * } + * + * + * Please note that it is important to test for an Net_LDAP2_Error, because objects are + * evaluating to true by default, thus if an error occured, and you only check using "==" then + * you get misleading results. Use the "identical" (===) operator to test for matches to + * avoid this as shown above. + * + * @param string $regex The regular expression + * @param string $attr_name The attribute to search in + * @param array $matches (optional, PASS BY REFERENCE!) Array to store matches in + * + * @return boolean|Net_LDAP2_Error TRUE, if we had a match in one of the values, otherwise false. Net_LDAP2_Error in case something went wrong + */ + public function pregMatch($regex, $attr_name, $matches = array()) + { + $matches = array(); + + // fetch attribute values + $attr = $this->getValue($attr_name, 'all'); + if (Net_LDAP2::isError($attr)) { + return $attr; + } else { + unset($attr['count']); + } + + // perform preg_match() on all values + $match = false; + foreach ($attr as $thisvalue) { + $matches_int = array(); + if (preg_match($regex, $thisvalue, $matches_int)) { + $match = true; + array_push($matches, $matches_int); // store matches in reference + } + } + return $match; + } + + /** + * Alias of {@link pregMatch()} for compatibility to Net_LDAP 1 + * + * @see pregMatch() + * @return boolean|Net_LDAP2_Error + */ + public function preg_match() + { + $args = func_get_args(); + return call_user_func_array(array( &$this, 'pregMatch' ), $args); + } + + /** + * Tells if the entry is consiedered as new (not present in the server) + * + * Please note, that this doesn't tell you if the entry is present on the server. + * Use {@link Net_LDAP2::dnExists()} to see if an entry is already there. + * + * @return boolean + */ + public function isNew() + { + return $this->_new; + } + + + /** + * Is this entry going to be deleted once update() is called? + * + * @return boolean + */ + public function willBeDeleted() + { + return $this->_delete; + } + + /** + * Is this entry going to be moved once update() is called? + * + * @return boolean + */ + public function willBeMoved() + { + return ($this->dn() !== $this->currentDN()); + } + + /** + * Returns always the original DN + * + * If an entry will be moved but {@link update()} was not called, + * {@link dn()} will return the new DN. This method however, returns + * always the current active DN. + * + * @return string + */ + public function currentDN() + { + return $this->_dn; + } + + /** + * Returns the attribute changes to be carried out once update() is called + * + * @return array + */ + public function getChanges() + { + return $this->_changes; + } +} +?> diff --git a/plugins/LdapCommon/extlib/Net/LDAP2/Filter.php b/plugins/LdapCommon/extlib/Net/LDAP2/Filter.php new file mode 100644 index 000000000..0723edab2 --- /dev/null +++ b/plugins/LdapCommon/extlib/Net/LDAP2/Filter.php @@ -0,0 +1,514 @@ + +* @copyright 2009 Benedikt Hallinger +* @license http://www.gnu.org/licenses/lgpl-3.0.txt LGPLv3 +* @version SVN: $Id: Filter.php 289978 2009-10-27 09:56:41Z beni $ +* @link http://pear.php.net/package/Net_LDAP2/ +*/ + +/** +* Includes +*/ +require_once 'PEAR.php'; +require_once 'Util.php'; + +/** +* Object representation of a part of a LDAP filter. +* +* This Class is not completely compatible to the PERL interface! +* +* The purpose of this class is, that users can easily build LDAP filters +* without having to worry about right escaping etc. +* A Filter is built using several independent filter objects +* which are combined afterwards. This object works in two +* modes, depending how the object is created. +* If the object is created using the {@link create()} method, then this is a leaf-object. +* If the object is created using the {@link combine()} method, then this is a container object. +* +* LDAP filters are defined in RFC-2254 and can be found under +* {@link http://www.ietf.org/rfc/rfc2254.txt} +* +* Here a quick copy&paste example: +* +* $filter0 = Net_LDAP2_Filter::create('stars', 'equals', '***'); +* $filter_not0 = Net_LDAP2_Filter::combine('not', $filter0); +* +* $filter1 = Net_LDAP2_Filter::create('gn', 'begins', 'bar'); +* $filter2 = Net_LDAP2_Filter::create('gn', 'ends', 'baz'); +* $filter_comp = Net_LDAP2_Filter::combine('or',array($filter_not0, $filter1, $filter2)); +* +* echo $filter_comp->asString(); +* // This will output: (|(!(stars=\0x5c0x2a\0x5c0x2a\0x5c0x2a))(gn=bar*)(gn=*baz)) +* // The stars in $filter0 are treaten as real stars unless you disable escaping. +* +* +* @category Net +* @package Net_LDAP2 +* @author Benedikt Hallinger +* @license http://www.gnu.org/copyleft/lesser.html LGPL +* @link http://pear.php.net/package/Net_LDAP2/ +*/ +class Net_LDAP2_Filter extends PEAR +{ + /** + * Storage for combination of filters + * + * This variable holds a array of filter objects + * that should be combined by this filter object. + * + * @access protected + * @var array + */ + protected $_subfilters = array(); + + /** + * Match of this filter + * + * If this is a leaf filter, then a matching rule is stored, + * if it is a container, then it is a logical operator + * + * @access protected + * @var string + */ + protected $_match; + + /** + * Single filter + * + * If we operate in leaf filter mode, + * then the constructing method stores + * the filter representation here + * + * @acces private + * @var string + */ + protected $_filter; + + /** + * Create a new Net_LDAP2_Filter object and parse $filter. + * + * This is for PERL Net::LDAP interface. + * Construction of Net_LDAP2_Filter objects should happen through either + * {@link create()} or {@link combine()} which give you more control. + * However, you may use the perl iterface if you already have generated filters. + * + * @param string $filter LDAP filter string + * + * @see parse() + */ + public function __construct($filter = false) + { + // The optional parameter must remain here, because otherwise create() crashes + if (false !== $filter) { + $filter_o = self::parse($filter); + if (PEAR::isError($filter_o)) { + $this->_filter = $filter_o; // assign error, so asString() can report it + } else { + $this->_filter = $filter_o->asString(); + } + } + } + + /** + * Constructor of a new part of a LDAP filter. + * + * The following matching rules exists: + * - equals: One of the attributes values is exactly $value + * Please note that case sensitiviness is depends on the + * attributes syntax configured in the server. + * - begins: One of the attributes values must begin with $value + * - ends: One of the attributes values must end with $value + * - contains: One of the attributes values must contain $value + * - present | any: The attribute can contain any value but must be existent + * - greater: The attributes value is greater than $value + * - less: The attributes value is less than $value + * - greaterOrEqual: The attributes value is greater or equal than $value + * - lessOrEqual: The attributes value is less or equal than $value + * - approx: One of the attributes values is similar to $value + * + * If $escape is set to true (default) then $value will be escaped + * properly. If it is set to false then $value will be treaten as raw filter value string. + * You should escape yourself using {@link Net_LDAP2_Util::escape_filter_value()}! + * + * Examples: + * + * // This will find entries that contain an attribute "sn" that ends with "foobar": + * $filter = new Net_LDAP2_Filter('sn', 'ends', 'foobar'); + * + * // This will find entries that contain an attribute "sn" that has any value set: + * $filter = new Net_LDAP2_Filter('sn', 'any'); + * + * + * @param string $attr_name Name of the attribute the filter should apply to + * @param string $match Matching rule (equals, begins, ends, contains, greater, less, greaterOrEqual, lessOrEqual, approx, any) + * @param string $value (optional) if given, then this is used as a filter + * @param boolean $escape Should $value be escaped? (default: yes, see {@link Net_LDAP2_Util::escape_filter_value()} for detailed information) + * + * @return Net_LDAP2_Filter|Net_LDAP2_Error + */ + public static function &create($attr_name, $match, $value = '', $escape = true) + { + $leaf_filter = new Net_LDAP2_Filter(); + if ($escape) { + $array = Net_LDAP2_Util::escape_filter_value(array($value)); + $value = $array[0]; + } + switch (strtolower($match)) { + case 'equals': + $leaf_filter->_filter = '(' . $attr_name . '=' . $value . ')'; + break; + case 'begins': + $leaf_filter->_filter = '(' . $attr_name . '=' . $value . '*)'; + break; + case 'ends': + $leaf_filter->_filter = '(' . $attr_name . '=*' . $value . ')'; + break; + case 'contains': + $leaf_filter->_filter = '(' . $attr_name . '=*' . $value . '*)'; + break; + case 'greater': + $leaf_filter->_filter = '(' . $attr_name . '>' . $value . ')'; + break; + case 'less': + $leaf_filter->_filter = '(' . $attr_name . '<' . $value . ')'; + break; + case 'greaterorequal': + case '>=': + $leaf_filter->_filter = '(' . $attr_name . '>=' . $value . ')'; + break; + case 'lessorequal': + case '<=': + $leaf_filter->_filter = '(' . $attr_name . '<=' . $value . ')'; + break; + case 'approx': + case '~=': + $leaf_filter->_filter = '(' . $attr_name . '~=' . $value . ')'; + break; + case 'any': + case 'present': // alias that may improve user code readability + $leaf_filter->_filter = '(' . $attr_name . '=*)'; + break; + default: + return PEAR::raiseError('Net_LDAP2_Filter create error: matching rule "' . $match . '" not known!'); + } + return $leaf_filter; + } + + /** + * Combine two or more filter objects using a logical operator + * + * This static method combines two or more filter objects and returns one single + * filter object that contains all the others. + * Call this method statically: $filter = Net_LDAP2_Filter('or', array($filter1, $filter2)) + * If the array contains filter strings instead of filter objects, we will try to parse them. + * + * @param string $log_op The locicall operator. May be "and", "or", "not" or the subsequent logical equivalents "&", "|", "!" + * @param array|Net_LDAP2_Filter $filters array with Net_LDAP2_Filter objects + * + * @return Net_LDAP2_Filter|Net_LDAP2_Error + * @static + */ + public static function &combine($log_op, $filters) + { + if (PEAR::isError($filters)) { + return $filters; + } + + // substitude named operators to logical operators + if ($log_op == 'and') $log_op = '&'; + if ($log_op == 'or') $log_op = '|'; + if ($log_op == 'not') $log_op = '!'; + + // tests for sane operation + if ($log_op == '!') { + // Not-combination, here we only accept one filter object or filter string + if ($filters instanceof Net_LDAP2_Filter) { + $filters = array($filters); // force array + } elseif (is_string($filters)) { + $filter_o = self::parse($filters); + if (PEAR::isError($filter_o)) { + $err = PEAR::raiseError('Net_LDAP2_Filter combine error: '.$filter_o->getMessage()); + return $err; + } else { + $filters = array($filter_o); + } + } elseif (is_array($filters)) { + $err = PEAR::raiseError('Net_LDAP2_Filter combine error: operator is "not" but $filter is an array!'); + return $err; + } else { + $err = PEAR::raiseError('Net_LDAP2_Filter combine error: operator is "not" but $filter is not a valid Net_LDAP2_Filter nor a filter string!'); + return $err; + } + } elseif ($log_op == '&' || $log_op == '|') { + if (!is_array($filters) || count($filters) < 2) { + $err = PEAR::raiseError('Net_LDAP2_Filter combine error: parameter $filters is not an array or contains less than two Net_LDAP2_Filter objects!'); + return $err; + } + } else { + $err = PEAR::raiseError('Net_LDAP2_Filter combine error: logical operator is not known!'); + return $err; + } + + $combined_filter = new Net_LDAP2_Filter(); + foreach ($filters as $key => $testfilter) { // check for errors + if (PEAR::isError($testfilter)) { + return $testfilter; + } elseif (is_string($testfilter)) { + // string found, try to parse into an filter object + $filter_o = self::parse($testfilter); + if (PEAR::isError($filter_o)) { + return $filter_o; + } else { + $filters[$key] = $filter_o; + } + } elseif (!$testfilter instanceof Net_LDAP2_Filter) { + $err = PEAR::raiseError('Net_LDAP2_Filter combine error: invalid object passed in array $filters!'); + return $err; + } + } + + $combined_filter->_subfilters = $filters; + $combined_filter->_match = $log_op; + return $combined_filter; + } + + /** + * Parse FILTER into a Net_LDAP2_Filter object + * + * This parses an filter string into Net_LDAP2_Filter objects. + * + * @param string $FILTER The filter string + * + * @access static + * @return Net_LDAP2_Filter|Net_LDAP2_Error + * @todo Leaf-mode: Do we need to escape at all? what about *-chars?check for the need of encoding values, tackle problems (see code comments) + */ + public static function parse($FILTER) + { + if (preg_match('/^\((.+?)\)$/', $FILTER, $matches)) { + if (in_array(substr($matches[1], 0, 1), array('!', '|', '&'))) { + // Subfilter processing: pass subfilters to parse() and combine + // the objects using the logical operator detected + // we have now something like "&(...)(...)(...)" but at least one part ("!(...)"). + // Each subfilter could be an arbitary complex subfilter. + + // extract logical operator and filter arguments + $log_op = substr($matches[1], 0, 1); + $remaining_component = substr($matches[1], 1); + + // split $remaining_component into individual subfilters + // we cannot use split() for this, because we do not know the + // complexiness of the subfilter. Thus, we look trough the filter + // string and just recognize ending filters at the first level. + // We record the index number of the char and use that information + // later to split the string. + $sub_index_pos = array(); + $prev_char = ''; // previous character looked at + $level = 0; // denotes the current bracket level we are, + // >1 is too deep, 1 is ok, 0 is outside any + // subcomponent + for ($curpos = 0; $curpos < strlen($remaining_component); $curpos++) { + $cur_char = substr($remaining_component, $curpos, 1); + + // rise/lower bracket level + if ($cur_char == '(' && $prev_char != '\\') { + $level++; + } elseif ($cur_char == ')' && $prev_char != '\\') { + $level--; + } + + if ($cur_char == '(' && $prev_char == ')' && $level == 1) { + array_push($sub_index_pos, $curpos); // mark the position for splitting + } + $prev_char = $cur_char; + } + + // now perform the splits. To get also the last part, we + // need to add the "END" index to the split array + array_push($sub_index_pos, strlen($remaining_component)); + $subfilters = array(); + $oldpos = 0; + foreach ($sub_index_pos as $s_pos) { + $str_part = substr($remaining_component, $oldpos, $s_pos - $oldpos); + array_push($subfilters, $str_part); + $oldpos = $s_pos; + } + + // some error checking... + if (count($subfilters) == 1) { + // only one subfilter found + } elseif (count($subfilters) > 1) { + // several subfilters found + if ($log_op == "!") { + return PEAR::raiseError("Filter parsing error: invalid filter syntax - NOT operator detected but several arguments given!"); + } + } else { + // this should not happen unless the user specified a wrong filter + return PEAR::raiseError("Filter parsing error: invalid filter syntax - got operator '$log_op' but no argument!"); + } + + // Now parse the subfilters into objects and combine them using the operator + $subfilters_o = array(); + foreach ($subfilters as $s_s) { + $o = self::parse($s_s); + if (PEAR::isError($o)) { + return $o; + } else { + array_push($subfilters_o, self::parse($s_s)); + } + } + + $filter_o = self::combine($log_op, $subfilters_o); + return $filter_o; + + } else { + // This is one leaf filter component, do some syntax checks, then escape and build filter_o + // $matches[1] should be now something like "foo=bar" + + // detect multiple leaf components + // [TODO] Maybe this will make problems with filters containing brackets inside the value + if (stristr($matches[1], ')(')) { + return PEAR::raiseError("Filter parsing error: invalid filter syntax - multiple leaf components detected!"); + } else { + $filter_parts = preg_split('/(?|<|>=|<=)/', $matches[1], 2, PREG_SPLIT_DELIM_CAPTURE); + if (count($filter_parts) != 3) { + return PEAR::raiseError("Filter parsing error: invalid filter syntax - unknown matching rule used"); + } else { + $filter_o = new Net_LDAP2_Filter(); + // [TODO]: Do we need to escape at all? what about *-chars user provide and that should remain special? + // I think, those prevent escaping! We need to check against PERL Net::LDAP! + // $value_arr = Net_LDAP2_Util::escape_filter_value(array($filter_parts[2])); + // $value = $value_arr[0]; + $value = $filter_parts[2]; + $filter_o->_filter = '('.$filter_parts[0].$filter_parts[1].$value.')'; + return $filter_o; + } + } + } + } else { + // ERROR: Filter components must be enclosed in round brackets + return PEAR::raiseError("Filter parsing error: invalid filter syntax - filter components must be enclosed in round brackets"); + } + } + + /** + * Get the string representation of this filter + * + * This method runs through all filter objects and creates + * the string representation of the filter. If this + * filter object is a leaf filter, then it will return + * the string representation of this filter. + * + * @return string|Net_LDAP2_Error + */ + public function asString() + { + if ($this->isLeaf()) { + $return = $this->_filter; + } else { + $return = ''; + foreach ($this->_subfilters as $filter) { + $return = $return.$filter->asString(); + } + $return = '(' . $this->_match . $return . ')'; + } + return $return; + } + + /** + * Alias for perl interface as_string() + * + * @see asString() + * @return string|Net_LDAP2_Error + */ + public function as_string() + { + return $this->asString(); + } + + /** + * Print the text representation of the filter to FH, or the currently selected output handle if FH is not given + * + * This method is only for compatibility to the perl interface. + * However, the original method was called "print" but due to PHP language restrictions, + * we can't have a print() method. + * + * @param resource $FH (optional) A filehandle resource + * + * @return true|Net_LDAP2_Error + */ + public function printMe($FH = false) + { + if (!is_resource($FH)) { + if (PEAR::isError($FH)) { + return $FH; + } + $filter_str = $this->asString(); + if (PEAR::isError($filter_str)) { + return $filter_str; + } else { + print($filter_str); + } + } else { + $filter_str = $this->asString(); + if (PEAR::isError($filter_str)) { + return $filter_str; + } else { + $res = @fwrite($FH, $this->asString()); + if ($res == false) { + return PEAR::raiseError("Unable to write filter string to filehandle \$FH!"); + } + } + } + return true; + } + + /** + * This can be used to escape a string to provide a valid LDAP-Filter. + * + * LDAP will only recognise certain characters as the + * character istself if they are properly escaped. This is + * what this method does. + * The method can be called statically, so you can use it outside + * for your own purposes (eg for escaping only parts of strings) + * + * In fact, this is just a shorthand to {@link Net_LDAP2_Util::escape_filter_value()}. + * For upward compatibiliy reasons you are strongly encouraged to use the escape + * methods provided by the Net_LDAP2_Util class. + * + * @param string $value Any string who should be escaped + * + * @static + * @return string The string $string, but escaped + * @deprecated Do not use this method anymore, instead use Net_LDAP2_Util::escape_filter_value() directly + */ + public static function escape($value) + { + $return = Net_LDAP2_Util::escape_filter_value(array($value)); + return $return[0]; + } + + /** + * Is this a container or a leaf filter object? + * + * @access protected + * @return boolean + */ + protected function isLeaf() + { + if (count($this->_subfilters) > 0) { + return false; // Container! + } else { + return true; // Leaf! + } + } +} +?> diff --git a/plugins/LdapCommon/extlib/Net/LDAP2/LDIF.php b/plugins/LdapCommon/extlib/Net/LDAP2/LDIF.php new file mode 100644 index 000000000..34f3e75dd --- /dev/null +++ b/plugins/LdapCommon/extlib/Net/LDAP2/LDIF.php @@ -0,0 +1,922 @@ + +* @copyright 2009 Benedikt Hallinger +* @license http://www.gnu.org/licenses/lgpl-3.0.txt LGPLv3 +* @version SVN: $Id: LDIF.php 286718 2009-08-03 07:30:49Z beni $ +* @link http://pear.php.net/package/Net_LDAP2/ +*/ + +/** +* Includes +*/ +require_once 'PEAR.php'; +require_once 'Net/LDAP2.php'; +require_once 'Net/LDAP2/Entry.php'; +require_once 'Net/LDAP2/Util.php'; + +/** +* LDIF capabilitys for Net_LDAP2, closely taken from PERLs Net::LDAP +* +* It provides a means to convert between Net_LDAP2_Entry objects and LDAP entries +* represented in LDIF format files. Reading and writing are supported and may +* manipulate single entries or lists of entries. +* +* Usage example: +* +* // Read and parse an ldif-file into Net_LDAP2_Entry objects +* // and print out the DNs. Store the entries for later use. +* require 'Net/LDAP2/LDIF.php'; +* $options = array( +* 'onerror' => 'die' +* ); +* $entries = array(); +* $ldif = new Net_LDAP2_LDIF('test.ldif', 'r', $options); +* do { +* $entry = $ldif->read_entry(); +* $dn = $entry->dn(); +* echo " done building entry: $dn\n"; +* array_push($entries, $entry); +* } while (!$ldif->eof()); +* $ldif->done(); +* +* +* // write those entries to another file +* $ldif = new Net_LDAP2_LDIF('test.out.ldif', 'w', $options); +* $ldif->write_entry($entries); +* $ldif->done(); +* +* +* @category Net +* @package Net_LDAP2 +* @author Benedikt Hallinger +* @license http://www.gnu.org/copyleft/lesser.html LGPL +* @link http://pear.php.net/package/Net_LDAP22/ +* @see http://www.ietf.org/rfc/rfc2849.txt +* @todo Error handling should be PEARified +* @todo LDAPv3 controls are not implemented yet +*/ +class Net_LDAP2_LDIF extends PEAR +{ + /** + * Options + * + * @access protected + * @var array + */ + protected $_options = array('encode' => 'base64', + 'onerror' => null, + 'change' => 0, + 'lowercase' => 0, + 'sort' => 0, + 'version' => null, + 'wrap' => 78, + 'raw' => '' + ); + + /** + * Errorcache + * + * @access protected + * @var array + */ + protected $_error = array('error' => null, + 'line' => 0 + ); + + /** + * Filehandle for read/write + * + * @access protected + * @var array + */ + protected $_FH = null; + + /** + * Says, if we opened the filehandle ourselves + * + * @access protected + * @var array + */ + protected $_FH_opened = false; + + /** + * Linecounter for input file handle + * + * @access protected + * @var array + */ + protected $_input_line = 0; + + /** + * counter for processed entries + * + * @access protected + * @var int + */ + protected $_entrynum = 0; + + /** + * Mode we are working in + * + * Either 'r', 'a' or 'w' + * + * @access protected + * @var string + */ + protected $_mode = false; + + /** + * Tells, if the LDIF version string was already written + * + * @access protected + * @var boolean + */ + protected $_version_written = false; + + /** + * Cache for lines that have build the current entry + * + * @access protected + * @var boolean + */ + protected $_lines_cur = array(); + + /** + * Cache for lines that will build the next entry + * + * @access protected + * @var boolean + */ + protected $_lines_next = array(); + + /** + * Open LDIF file for reading or for writing + * + * new (FILE): + * Open the file read-only. FILE may be the name of a file + * or an already open filehandle. + * If the file doesn't exist, it will be created if in write mode. + * + * new (FILE, MODE, OPTIONS): + * Open the file with the given MODE (see PHPs fopen()), eg "w" or "a". + * FILE may be the name of a file or an already open filehandle. + * PERLs Net_LDAP2 "FILE|" mode does not work curently. + * + * OPTIONS is an associative array and may contain: + * encode => 'none' | 'canonical' | 'base64' + * Some DN values in LDIF cannot be written verbatim and have to be encoded in some way: + * 'none' No encoding. + * 'canonical' See "canonical_dn()" in Net::LDAP::Util. + * 'base64' Use base64. (default, this differs from the Perl interface. + * The perl default is "none"!) + * + * onerror => 'die' | 'warn' | NULL + * Specify what happens when an error is detected. + * 'die' Net_LDAP2_LDIF will croak with an appropriate message. + * 'warn' Net_LDAP2_LDIF will warn (echo) with an appropriate message. + * NULL Net_LDAP2_LDIF will not warn (default), use error(). + * + * change => 1 + * Write entry changes to the LDIF file instead of the entries itself. I.e. write LDAP + * operations acting on the entries to the file instead of the entries contents. + * This writes the changes usually carried out by an update() to the LDIF file. + * + * lowercase => 1 + * Convert attribute names to lowercase when writing. + * + * sort => 1 + * Sort attribute names when writing entries according to the rule: + * objectclass first then all other attributes alphabetically sorted by attribute name + * + * version => '1' + * Set the LDIF version to write to the resulting LDIF file. + * According to RFC 2849 currently the only legal value for this option is 1. + * When this option is set Net_LDAP2_LDIF tries to adhere more strictly to + * the LDIF specification in RFC2489 in a few places. + * The default is NULL meaning no version information is written to the LDIF file. + * + * wrap => 78 + * Number of columns where output line wrapping shall occur. + * Default is 78. Setting it to 40 or lower inhibits wrapping. + * + * raw => REGEX + * Use REGEX to denote the names of attributes that are to be + * considered binary in search results if writing entries. + * Example: raw => "/(?i:^jpegPhoto|;binary)/i" + * + * @param string|ressource $file Filename or filehandle + * @param string $mode Mode to open filename + * @param array $options Options like described above + */ + public function __construct($file, $mode = 'r', $options = array()) + { + $this->PEAR('Net_LDAP2_Error'); // default error class + + // First, parse options + // todo: maybe implement further checks on possible values + foreach ($options as $option => $value) { + if (!array_key_exists($option, $this->_options)) { + $this->dropError('Net_LDAP2_LDIF error: option '.$option.' not known!'); + return; + } else { + $this->_options[$option] = strtolower($value); + } + } + + // setup LDIF class + $this->version($this->_options['version']); + + // setup file mode + if (!preg_match('/^[rwa]\+?$/', $mode)) { + $this->dropError('Net_LDAP2_LDIF error: file mode '.$mode.' not supported!'); + } else { + $this->_mode = $mode; + + // setup filehandle + if (is_resource($file)) { + // TODO: checks on mode possible? + $this->_FH =& $file; + } else { + $imode = substr($this->_mode, 0, 1); + if ($imode == 'r') { + if (!file_exists($file)) { + $this->dropError('Unable to open '.$file.' for read: file not found'); + $this->_mode = false; + } + if (!is_readable($file)) { + $this->dropError('Unable to open '.$file.' for read: permission denied'); + $this->_mode = false; + } + } + + if (($imode == 'w' || $imode == 'a')) { + if (file_exists($file)) { + if (!is_writable($file)) { + $this->dropError('Unable to open '.$file.' for write: permission denied'); + $this->_mode = false; + } + } else { + if (!@touch($file)) { + $this->dropError('Unable to create '.$file.' for write: permission denied'); + $this->_mode = false; + } + } + } + + if ($this->_mode) { + $this->_FH = @fopen($file, $this->_mode); + if (false === $this->_FH) { + // Fallback; should never be reached if tests above are good enough! + $this->dropError('Net_LDAP2_LDIF error: Could not open file '.$file); + } else { + $this->_FH_opened = true; + } + } + } + } + } + + /** + * Read one entry from the file and return it as a Net::LDAP::Entry object. + * + * @return Net_LDAP2_Entry + */ + public function read_entry() + { + // read fresh lines, set them as current lines and create the entry + $attrs = $this->next_lines(true); + if (count($attrs) > 0) { + $this->_lines_cur = $attrs; + } + return $this->current_entry(); + } + + /** + * Returns true when the end of the file is reached. + * + * @return boolean + */ + public function eof() + { + return feof($this->_FH); + } + + /** + * Write the entry or entries to the LDIF file. + * + * If you want to build an LDIF file containing several entries AND + * you want to call write_entry() several times, you must open the filehandle + * in append mode ("a"), otherwise you will always get the last entry only. + * + * @param Net_LDAP2_Entry|array $entries Entry or array of entries + * + * @return void + * @todo implement operations on whole entries (adding a whole entry) + */ + public function write_entry($entries) + { + if (!is_array($entries)) { + $entries = array($entries); + } + + foreach ($entries as $entry) { + $this->_entrynum++; + if (!$entry instanceof Net_LDAP2_Entry) { + $this->dropError('Net_LDAP2_LDIF error: entry '.$this->_entrynum.' is not an Net_LDAP2_Entry object'); + } else { + if ($this->_options['change']) { + // LDIF change mode + // fetch change information from entry + $entry_attrs_changes = $entry->getChanges(); + $num_of_changes = count($entry_attrs_changes['add']) + + count($entry_attrs_changes['replace']) + + count($entry_attrs_changes['delete']); + + $is_changed = ($num_of_changes > 0 || $entry->willBeDeleted() || $entry->willBeMoved()); + + // write version if not done yet + // also write DN of entry + if ($is_changed) { + if (!$this->_version_written) { + $this->write_version(); + } + $this->writeDN($entry->currentDN()); + } + + // process changes + // TODO: consider DN add! + if ($entry->willBeDeleted()) { + $this->writeLine("changetype: delete".PHP_EOL); + } elseif ($entry->willBeMoved()) { + $this->writeLine("changetype: modrdn".PHP_EOL); + $olddn = Net_LDAP2_Util::ldap_explode_dn($entry->currentDN(), array('casefold' => 'none')); // maybe gives a bug if using multivalued RDNs + $oldrdn = array_shift($olddn); + $oldparent = implode(',', $olddn); + $newdn = Net_LDAP2_Util::ldap_explode_dn($entry->dn(), array('casefold' => 'none')); // maybe gives a bug if using multivalued RDNs + $rdn = array_shift($newdn); + $parent = implode(',', $newdn); + $this->writeLine("newrdn: ".$rdn.PHP_EOL); + $this->writeLine("deleteoldrdn: 1".PHP_EOL); + if ($parent !== $oldparent) { + $this->writeLine("newsuperior: ".$parent.PHP_EOL); + } + // TODO: What if the entry has attribute changes as well? + // I think we should check for that and make a dummy + // entry with the changes that is written to the LDIF file + } elseif ($num_of_changes > 0) { + // write attribute change data + $this->writeLine("changetype: modify".PHP_EOL); + foreach ($entry_attrs_changes as $changetype => $entry_attrs) { + foreach ($entry_attrs as $attr_name => $attr_values) { + $this->writeLine("$changetype: $attr_name".PHP_EOL); + if ($attr_values !== null) $this->writeAttribute($attr_name, $attr_values, $changetype); + $this->writeLine("-".PHP_EOL); + } + } + } + + // finish this entrys data if we had changes + if ($is_changed) { + $this->finishEntry(); + } + } else { + // LDIF-content mode + // fetch attributes for further processing + $entry_attrs = $entry->getValues(); + + // sort and put objectclass-attrs to first position + if ($this->_options['sort']) { + ksort($entry_attrs); + if (array_key_exists('objectclass', $entry_attrs)) { + $oc = $entry_attrs['objectclass']; + unset($entry_attrs['objectclass']); + $entry_attrs = array_merge(array('objectclass' => $oc), $entry_attrs); + } + } + + // write data + if (!$this->_version_written) { + $this->write_version(); + } + $this->writeDN($entry->dn()); + foreach ($entry_attrs as $attr_name => $attr_values) { + $this->writeAttribute($attr_name, $attr_values); + } + $this->finishEntry(); + } + } + } + } + + /** + * Write version to LDIF + * + * If the object's version is defined, this method allows to explicitely write the version before an entry is written. + * If not called explicitely, it gets called automatically when writing the first entry. + * + * @return void + */ + public function write_version() + { + $this->_version_written = true; + if (!is_null($this->version())) { + return $this->writeLine('version: '.$this->version().PHP_EOL, 'Net_LDAP2_LDIF error: unable to write version'); + } + } + + /** + * Get or set LDIF version + * + * If called without arguments it returns the version of the LDIF file or NULL if no version has been set. + * If called with an argument it sets the LDIF version to VERSION. + * According to RFC 2849 currently the only legal value for VERSION is 1. + * + * @param int $version (optional) LDIF version to set + * + * @return int + */ + public function version($version = null) + { + if ($version !== null) { + if ($version != 1) { + $this->dropError('Net_LDAP2_LDIF error: illegal LDIF version set'); + } else { + $this->_options['version'] = $version; + } + } + return $this->_options['version']; + } + + /** + * Returns the file handle the Net_LDAP2_LDIF object reads from or writes to. + * + * You can, for example, use this to fetch the content of the LDIF file yourself + * + * @return null|resource + */ + public function &handle() + { + if (!is_resource($this->_FH)) { + $this->dropError('Net_LDAP2_LDIF error: invalid file resource'); + $null = null; + return $null; + } else { + return $this->_FH; + } + } + + /** + * Clean up + * + * This method signals that the LDIF object is no longer needed. + * You can use this to free up some memory and close the file handle. + * The file handle is only closed, if it was opened from Net_LDAP2_LDIF. + * + * @return void + */ + public function done() + { + // close FH if we opened it + if ($this->_FH_opened) { + fclose($this->handle()); + } + + // free variables + foreach (get_object_vars($this) as $name => $value) { + unset($this->$name); + } + } + + /** + * Returns last error message if error was found. + * + * Example: + * + * $ldif->someAction(); + * if ($ldif->error()) { + * echo "Error: ".$ldif->error()." at input line: ".$ldif->error_lines(); + * } + * + * + * @param boolean $as_string If set to true, only the message is returned + * + * @return false|Net_LDAP2_Error + */ + public function error($as_string = false) + { + if (Net_LDAP2::isError($this->_error['error'])) { + return ($as_string)? $this->_error['error']->getMessage() : $this->_error['error']; + } else { + return false; + } + } + + /** + * Returns lines that resulted in error. + * + * Perl returns an array of faulty lines in list context, + * but we always just return an int because of PHPs language. + * + * @return int + */ + public function error_lines() + { + return $this->_error['line']; + } + + /** + * Returns the current Net::LDAP::Entry object. + * + * @return Net_LDAP2_Entry|false + */ + public function current_entry() + { + return $this->parseLines($this->current_lines()); + } + + /** + * Parse LDIF lines of one entry into an Net_LDAP2_Entry object + * + * @param array $lines LDIF lines for one entry + * + * @return Net_LDAP2_Entry|false Net_LDAP2_Entry object for those lines + * @todo what about file inclusions and urls? "jpegphoto:< file:///usr/local/directory/photos/fiona.jpg" + */ + public function parseLines($lines) + { + // parse lines into an array of attributes and build the entry + $attributes = array(); + $dn = false; + foreach ($lines as $line) { + if (preg_match('/^(\w+)(:|::|:<)\s(.+)$/', $line, $matches)) { + $attr =& $matches[1]; + $delim =& $matches[2]; + $data =& $matches[3]; + + if ($delim == ':') { + // normal data + $attributes[$attr][] = $data; + } elseif ($delim == '::') { + // base64 data + $attributes[$attr][] = base64_decode($data); + } elseif ($delim == ':<') { + // file inclusion + // TODO: Is this the job of the LDAP-client or the server? + $this->dropError('File inclusions are currently not supported'); + //$attributes[$attr][] = ...; + } else { + // since the pattern above, the delimeter cannot be something else. + $this->dropError('Net_LDAP2_LDIF parsing error: invalid syntax at parsing entry line: '.$line); + continue; + } + + if (strtolower($attr) == 'dn') { + // DN line detected + $dn = $attributes[$attr][0]; // save possibly decoded DN + unset($attributes[$attr]); // remove wrongly added "dn: " attribute + } + } else { + // line not in "attr: value" format -> ignore + // maybe we should rise an error here, but this should be covered by + // next_lines() already. A problem arises, if users try to feed data of + // several entries to this method - the resulting entry will + // get wrong attributes. However, this is already mentioned in the + // methods documentation above. + } + } + + if (false === $dn) { + $this->dropError('Net_LDAP2_LDIF parsing error: unable to detect DN for entry'); + return false; + } else { + $newentry = Net_LDAP2_Entry::createFresh($dn, $attributes); + return $newentry; + } + } + + /** + * Returns the lines that generated the current Net::LDAP::Entry object. + * + * Note that this returns an empty array if no lines have been read so far. + * + * @return array Array of lines + */ + public function current_lines() + { + return $this->_lines_cur; + } + + /** + * Returns the lines that will generate the next Net::LDAP::Entry object. + * + * If you set $force to TRUE then you can iterate over the lines that build + * up entries manually. Otherwise, iterating is done using {@link read_entry()}. + * Force will move the file pointer forward, thus returning the next entries lines. + * + * Wrapped lines will be unwrapped. Comments are stripped. + * + * @param boolean $force Set this to true if you want to iterate over the lines manually + * + * @return array + */ + public function next_lines($force = false) + { + // if we already have those lines, just return them, otherwise read + if (count($this->_lines_next) == 0 || $force) { + $this->_lines_next = array(); // empty in case something was left (if used $force) + $entry_done = false; + $fh = &$this->handle(); + $commentmode = false; // if we are in an comment, for wrapping purposes + $datalines_read = 0; // how many lines with data we have read + + while (!$entry_done && !$this->eof()) { + $this->_input_line++; + // Read line. Remove line endings, we want only data; + // this is okay since ending spaces should be encoded + $data = rtrim(fgets($fh)); + if ($data === false) { + // error only, if EOF not reached after fgets() call + if (!$this->eof()) { + $this->dropError('Net_LDAP2_LDIF error: error reading from file at input line '.$this->_input_line, $this->_input_line); + } + break; + } else { + if (count($this->_lines_next) > 0 && preg_match('/^$/', $data)) { + // Entry is finished if we have an empty line after we had data + $entry_done = true; + + // Look ahead if the next EOF is nearby. Comments and empty + // lines at the file end may cause problems otherwise + $current_pos = ftell($fh); + $data = fgets($fh); + while (!feof($fh)) { + if (preg_match('/^\s*$/', $data) || preg_match('/^#/', $data)) { + // only empty lines or comments, continue to seek + // TODO: Known bug: Wrappings for comments are okay but are treaten as + // error, since we do not honor comment mode here. + // This should be a very theoretically case, however + // i am willing to fix this if really necessary. + $this->_input_line++; + $current_pos = ftell($fh); + $data = fgets($fh); + } else { + // Data found if non emtpy line and not a comment!! + // Rewind to position prior last read and stop lookahead + fseek($fh, $current_pos); + break; + } + } + // now we have either the file pointer at the beginning of + // a new data position or at the end of file causing feof() to return true + + } else { + // build lines + if (preg_match('/^version:\s(.+)$/', $data, $match)) { + // version statement, set version + $this->version($match[1]); + } elseif (preg_match('/^\w+::?\s.+$/', $data)) { + // normal attribute: add line + $commentmode = false; + $this->_lines_next[] = trim($data); + $datalines_read++; + } elseif (preg_match('/^\s(.+)$/', $data, $matches)) { + // wrapped data: unwrap if not in comment mode + if (!$commentmode) { + if ($datalines_read == 0) { + // first line of entry: wrapped data is illegal + $this->dropError('Net_LDAP2_LDIF error: illegal wrapping at input line '.$this->_input_line, $this->_input_line); + } else { + $last = array_pop($this->_lines_next); + $last = $last.trim($matches[1]); + $this->_lines_next[] = $last; + $datalines_read++; + } + } + } elseif (preg_match('/^#/', $data)) { + // LDIF comments + $commentmode = true; + } elseif (preg_match('/^\s*$/', $data)) { + // empty line but we had no data for this + // entry, so just ignore this line + $commentmode = false; + } else { + $this->dropError('Net_LDAP2_LDIF error: invalid syntax at input line '.$this->_input_line, $this->_input_line); + continue; + } + + } + } + } + } + return $this->_lines_next; + } + + /** + * Convert an attribute and value to LDIF string representation + * + * It honors correct encoding of values according to RFC 2849. + * Line wrapping will occur at the configured maximum but only if + * the value is greater than 40 chars. + * + * @param string $attr_name Name of the attribute + * @param string $attr_value Value of the attribute + * + * @access protected + * @return string LDIF string for that attribute and value + */ + protected function convertAttribute($attr_name, $attr_value) + { + // Handle empty attribute or process + if (strlen($attr_value) == 0) { + $attr_value = " "; + } else { + $base64 = false; + // ASCII-chars that are NOT safe for the + // start and for being inside the value. + // These are the int values of those chars. + $unsafe_init = array(0, 10, 13, 32, 58, 60); + $unsafe = array(0, 10, 13); + + // Test for illegal init char + $init_ord = ord(substr($attr_value, 0, 1)); + if ($init_ord > 127 || in_array($init_ord, $unsafe_init)) { + $base64 = true; + } + + // Test for illegal content char + for ($i = 0; $i < strlen($attr_value); $i++) { + $char_ord = ord(substr($attr_value, $i, 1)); + if ($char_ord > 127 || in_array($char_ord, $unsafe)) { + $base64 = true; + } + } + + // Test for ending space + if (substr($attr_value, -1) == ' ') { + $base64 = true; + } + + // If converting is needed, do it + // Either we have some special chars or a matching "raw" regex + if ($base64 || ($this->_options['raw'] && preg_match($this->_options['raw'], $attr_name))) { + $attr_name .= ':'; + $attr_value = base64_encode($attr_value); + } + + // Lowercase attr names if requested + if ($this->_options['lowercase']) $attr_name = strtolower($attr_name); + + // Handle line wrapping + if ($this->_options['wrap'] > 40 && strlen($attr_value) > $this->_options['wrap']) { + $attr_value = wordwrap($attr_value, $this->_options['wrap'], PHP_EOL." ", true); + } + } + + return $attr_name.': '.$attr_value; + } + + /** + * Convert an entries DN to LDIF string representation + * + * It honors correct encoding of values according to RFC 2849. + * + * @param string $dn UTF8-Encoded DN + * + * @access protected + * @return string LDIF string for that DN + * @todo I am not sure, if the UTF8 stuff is correctly handled right now + */ + protected function convertDN($dn) + { + $base64 = false; + // ASCII-chars that are NOT safe for the + // start and for being inside the dn. + // These are the int values of those chars. + $unsafe_init = array(0, 10, 13, 32, 58, 60); + $unsafe = array(0, 10, 13); + + // Test for illegal init char + $init_ord = ord(substr($dn, 0, 1)); + if ($init_ord >= 127 || in_array($init_ord, $unsafe_init)) { + $base64 = true; + } + + // Test for illegal content char + for ($i = 0; $i < strlen($dn); $i++) { + $char = substr($dn, $i, 1); + if (ord($char) >= 127 || in_array($init_ord, $unsafe)) { + $base64 = true; + } + } + + // Test for ending space + if (substr($dn, -1) == ' ') { + $base64 = true; + } + + // if converting is needed, do it + return ($base64)? 'dn:: '.base64_encode($dn) : 'dn: '.$dn; + } + + /** + * Writes an attribute to the filehandle + * + * @param string $attr_name Name of the attribute + * @param string|array $attr_values Single attribute value or array with attribute values + * + * @access protected + * @return void + */ + protected function writeAttribute($attr_name, $attr_values) + { + // write out attribute content + if (!is_array($attr_values)) { + $attr_values = array($attr_values); + } + foreach ($attr_values as $attr_val) { + $line = $this->convertAttribute($attr_name, $attr_val).PHP_EOL; + $this->writeLine($line, 'Net_LDAP2_LDIF error: unable to write attribute '.$attr_name.' of entry '.$this->_entrynum); + } + } + + /** + * Writes a DN to the filehandle + * + * @param string $dn DN to write + * + * @access protected + * @return void + */ + protected function writeDN($dn) + { + // prepare DN + if ($this->_options['encode'] == 'base64') { + $dn = $this->convertDN($dn).PHP_EOL; + } elseif ($this->_options['encode'] == 'canonical') { + $dn = Net_LDAP2_Util::canonical_dn($dn, array('casefold' => 'none')).PHP_EOL; + } else { + $dn = $dn.PHP_EOL; + } + $this->writeLine($dn, 'Net_LDAP2_LDIF error: unable to write DN of entry '.$this->_entrynum); + } + + /** + * Finishes an LDIF entry + * + * @access protected + * @return void + */ + protected function finishEntry() + { + $this->writeLine(PHP_EOL, 'Net_LDAP2_LDIF error: unable to close entry '.$this->_entrynum); + } + + /** + * Just write an arbitary line to the filehandle + * + * @param string $line Content to write + * @param string $error If error occurs, drop this message + * + * @access protected + * @return true|false + */ + protected function writeLine($line, $error = 'Net_LDAP2_LDIF error: unable to write to filehandle') + { + if (is_resource($this->handle()) && fwrite($this->handle(), $line, strlen($line)) === false) { + $this->dropError($error); + return false; + } else { + return true; + } + } + + /** + * Optionally raises an error and pushes the error on the error cache + * + * @param string $msg Errortext + * @param int $line Line in the LDIF that caused the error + * + * @access protected + * @return void + */ + protected function dropError($msg, $line = null) + { + $this->_error['error'] = new Net_LDAP2_Error($msg); + if ($line !== null) $this->_error['line'] = $line; + + if ($this->_options['onerror'] == 'die') { + die($msg.PHP_EOL); + } elseif ($this->_options['onerror'] == 'warn') { + echo $msg.PHP_EOL; + } + } +} +?> diff --git a/plugins/LdapCommon/extlib/Net/LDAP2/RootDSE.php b/plugins/LdapCommon/extlib/Net/LDAP2/RootDSE.php new file mode 100644 index 000000000..8dc81fd4f --- /dev/null +++ b/plugins/LdapCommon/extlib/Net/LDAP2/RootDSE.php @@ -0,0 +1,240 @@ + +* @copyright 2009 Jan Wagner +* @license http://www.gnu.org/licenses/lgpl-3.0.txt LGPLv3 +* @version SVN: $Id: RootDSE.php 286718 2009-08-03 07:30:49Z beni $ +* @link http://pear.php.net/package/Net_LDAP2/ +*/ + +/** +* Includes +*/ +require_once 'PEAR.php'; + +/** +* Getting the rootDSE entry of a LDAP server +* +* @category Net +* @package Net_LDAP2 +* @author Jan Wagner +* @license http://www.gnu.org/copyleft/lesser.html LGPL +* @link http://pear.php.net/package/Net_LDAP22/ +*/ +class Net_LDAP2_RootDSE extends PEAR +{ + /** + * @access protected + * @var object Net_LDAP2_Entry + **/ + protected $_entry; + + /** + * Class constructor + * + * @param Net_LDAP2_Entry &$entry Net_LDAP2_Entry object of the RootDSE + */ + protected function __construct(&$entry) + { + $this->_entry = $entry; + } + + /** + * Fetches a RootDSE object from an LDAP connection + * + * @param Net_LDAP2 $ldap Directory from which the RootDSE should be fetched + * @param array $attrs Array of attributes to search for + * + * @access static + * @return Net_LDAP2_RootDSE|Net_LDAP2_Error + */ + public static function fetch($ldap, $attrs = null) + { + if (!$ldap instanceof Net_LDAP2) { + return PEAR::raiseError("Unable to fetch Schema: Parameter \$ldap must be a Net_LDAP2 object!"); + } + + if (is_array($attrs) && count($attrs) > 0 ) { + $attributes = $attrs; + } else { + $attributes = array('vendorName', + 'vendorVersion', + 'namingContexts', + 'altServer', + 'supportedExtension', + 'supportedControl', + 'supportedSASLMechanisms', + 'supportedLDAPVersion', + 'subschemaSubentry' ); + } + $result = $ldap->search('', '(objectClass=*)', array('attributes' => $attributes, 'scope' => 'base')); + if (self::isError($result)) { + return $result; + } + $entry = $result->shiftEntry(); + if (false === $entry) { + return PEAR::raiseError('Could not fetch RootDSE entry'); + } + $ret = new Net_LDAP2_RootDSE($entry); + return $ret; + } + + /** + * Gets the requested attribute value + * + * Same usuage as {@link Net_LDAP2_Entry::getValue()} + * + * @param string $attr Attribute name + * @param array $options Array of options + * + * @access public + * @return mixed Net_LDAP2_Error object or attribute values + * @see Net_LDAP2_Entry::get_value() + */ + public function getValue($attr = '', $options = '') + { + return $this->_entry->get_value($attr, $options); + } + + /** + * Alias function of getValue() for perl-ldap interface + * + * @see getValue() + * @return mixed + */ + public function get_value() + { + $args = func_get_args(); + return call_user_func_array(array( &$this, 'getValue' ), $args); + } + + /** + * Determines if the extension is supported + * + * @param array $oids Array of oids to check + * + * @access public + * @return boolean + */ + public function supportedExtension($oids) + { + return $this->checkAttr($oids, 'supportedExtension'); + } + + /** + * Alias function of supportedExtension() for perl-ldap interface + * + * @see supportedExtension() + * @return boolean + */ + public function supported_extension() + { + $args = func_get_args(); + return call_user_func_array(array( &$this, 'supportedExtension'), $args); + } + + /** + * Determines if the version is supported + * + * @param array $versions Versions to check + * + * @access public + * @return boolean + */ + public function supportedVersion($versions) + { + return $this->checkAttr($versions, 'supportedLDAPVersion'); + } + + /** + * Alias function of supportedVersion() for perl-ldap interface + * + * @see supportedVersion() + * @return boolean + */ + public function supported_version() + { + $args = func_get_args(); + return call_user_func_array(array(&$this, 'supportedVersion'), $args); + } + + /** + * Determines if the control is supported + * + * @param array $oids Control oids to check + * + * @access public + * @return boolean + */ + public function supportedControl($oids) + { + return $this->checkAttr($oids, 'supportedControl'); + } + + /** + * Alias function of supportedControl() for perl-ldap interface + * + * @see supportedControl() + * @return boolean + */ + public function supported_control() + { + $args = func_get_args(); + return call_user_func_array(array(&$this, 'supportedControl' ), $args); + } + + /** + * Determines if the sasl mechanism is supported + * + * @param array $mechlist SASL mechanisms to check + * + * @access public + * @return boolean + */ + public function supportedSASLMechanism($mechlist) + { + return $this->checkAttr($mechlist, 'supportedSASLMechanisms'); + } + + /** + * Alias function of supportedSASLMechanism() for perl-ldap interface + * + * @see supportedSASLMechanism() + * @return boolean + */ + public function supported_sasl_mechanism() + { + $args = func_get_args(); + return call_user_func_array(array(&$this, 'supportedSASLMechanism'), $args); + } + + /** + * Checks for existance of value in attribute + * + * @param array $values values to check + * @param string $attr attribute name + * + * @access protected + * @return boolean + */ + protected function checkAttr($values, $attr) + { + if (!is_array($values)) $values = array($values); + + foreach ($values as $value) { + if (!@in_array($value, $this->get_value($attr, 'all'))) { + return false; + } + } + return true; + } +} + +?> diff --git a/plugins/LdapCommon/extlib/Net/LDAP2/Schema.php b/plugins/LdapCommon/extlib/Net/LDAP2/Schema.php new file mode 100644 index 000000000..b590eabc5 --- /dev/null +++ b/plugins/LdapCommon/extlib/Net/LDAP2/Schema.php @@ -0,0 +1,516 @@ + +* @author Benedikt Hallinger +* @copyright 2009 Jan Wagner, Benedikt Hallinger +* @license http://www.gnu.org/licenses/lgpl-3.0.txt LGPLv3 +* @version SVN: $Id: Schema.php 286718 2009-08-03 07:30:49Z beni $ +* @link http://pear.php.net/package/Net_LDAP2/ +* @todo see the comment at the end of the file +*/ + +/** +* Includes +*/ +require_once 'PEAR.php'; + +/** +* Syntax definitions +* +* Please don't forget to add binary attributes to isBinary() below +* to support proper value fetching from Net_LDAP2_Entry +*/ +define('NET_LDAP2_SYNTAX_BOOLEAN', '1.3.6.1.4.1.1466.115.121.1.7'); +define('NET_LDAP2_SYNTAX_DIRECTORY_STRING', '1.3.6.1.4.1.1466.115.121.1.15'); +define('NET_LDAP2_SYNTAX_DISTINGUISHED_NAME', '1.3.6.1.4.1.1466.115.121.1.12'); +define('NET_LDAP2_SYNTAX_INTEGER', '1.3.6.1.4.1.1466.115.121.1.27'); +define('NET_LDAP2_SYNTAX_JPEG', '1.3.6.1.4.1.1466.115.121.1.28'); +define('NET_LDAP2_SYNTAX_NUMERIC_STRING', '1.3.6.1.4.1.1466.115.121.1.36'); +define('NET_LDAP2_SYNTAX_OID', '1.3.6.1.4.1.1466.115.121.1.38'); +define('NET_LDAP2_SYNTAX_OCTET_STRING', '1.3.6.1.4.1.1466.115.121.1.40'); + +/** +* Load an LDAP Schema and provide information +* +* This class takes a Subschema entry, parses this information +* and makes it available in an array. Most of the code has been +* inspired by perl-ldap( http://perl-ldap.sourceforge.net). +* You will find portions of their implementation in here. +* +* @category Net +* @package Net_LDAP2 +* @author Jan Wagner +* @author Benedikt Hallinger +* @license http://www.gnu.org/copyleft/lesser.html LGPL +* @link http://pear.php.net/package/Net_LDAP22/ +*/ +class Net_LDAP2_Schema extends PEAR +{ + /** + * Map of entry types to ldap attributes of subschema entry + * + * @access public + * @var array + */ + public $types = array( + 'attribute' => 'attributeTypes', + 'ditcontentrule' => 'dITContentRules', + 'ditstructurerule' => 'dITStructureRules', + 'matchingrule' => 'matchingRules', + 'matchingruleuse' => 'matchingRuleUse', + 'nameform' => 'nameForms', + 'objectclass' => 'objectClasses', + 'syntax' => 'ldapSyntaxes' + ); + + /** + * Array of entries belonging to this type + * + * @access protected + * @var array + */ + protected $_attributeTypes = array(); + protected $_matchingRules = array(); + protected $_matchingRuleUse = array(); + protected $_ldapSyntaxes = array(); + protected $_objectClasses = array(); + protected $_dITContentRules = array(); + protected $_dITStructureRules = array(); + protected $_nameForms = array(); + + + /** + * hash of all fetched oids + * + * @access protected + * @var array + */ + protected $_oids = array(); + + /** + * Tells if the schema is initialized + * + * @access protected + * @var boolean + * @see parse(), get() + */ + protected $_initialized = false; + + + /** + * Constructor of the class + * + * @access protected + */ + protected function __construct() + { + $this->PEAR('Net_LDAP2_Error'); // default error class + } + + /** + * Fetch the Schema from an LDAP connection + * + * @param Net_LDAP2 $ldap LDAP connection + * @param string $dn (optional) Subschema entry dn + * + * @access public + * @return Net_LDAP2_Schema|NET_LDAP2_Error + */ + public function fetch($ldap, $dn = null) + { + if (!$ldap instanceof Net_LDAP2) { + return PEAR::raiseError("Unable to fetch Schema: Parameter \$ldap must be a Net_LDAP2 object!"); + } + + $schema_o = new Net_LDAP2_Schema(); + + if (is_null($dn)) { + // get the subschema entry via root dse + $dse = $ldap->rootDSE(array('subschemaSubentry')); + if (false == Net_LDAP2::isError($dse)) { + $base = $dse->getValue('subschemaSubentry', 'single'); + if (!Net_LDAP2::isError($base)) { + $dn = $base; + } + } + } + + // Support for buggy LDAP servers (e.g. Siemens DirX 6.x) that incorrectly + // call this entry subSchemaSubentry instead of subschemaSubentry. + // Note the correct case/spelling as per RFC 2251. + if (is_null($dn)) { + // get the subschema entry via root dse + $dse = $ldap->rootDSE(array('subSchemaSubentry')); + if (false == Net_LDAP2::isError($dse)) { + $base = $dse->getValue('subSchemaSubentry', 'single'); + if (!Net_LDAP2::isError($base)) { + $dn = $base; + } + } + } + + // Final fallback case where there is no subschemaSubentry attribute + // in the root DSE (this is a bug for an LDAP v3 server so report this + // to your LDAP vendor if you get this far). + if (is_null($dn)) { + $dn = 'cn=Subschema'; + } + + // fetch the subschema entry + $result = $ldap->search($dn, '(objectClass=*)', + array('attributes' => array_values($schema_o->types), + 'scope' => 'base')); + if (Net_LDAP2::isError($result)) { + return $result; + } + + $entry = $result->shiftEntry(); + if (!$entry instanceof Net_LDAP2_Entry) { + return PEAR::raiseError('Could not fetch Subschema entry'); + } + + $schema_o->parse($entry); + return $schema_o; + } + + /** + * Return a hash of entries for the given type + * + * Returns a hash of entry for th givene type. Types may be: + * objectclasses, attributes, ditcontentrules, ditstructurerules, matchingrules, + * matchingruleuses, nameforms, syntaxes + * + * @param string $type Type to fetch + * + * @access public + * @return array|Net_LDAP2_Error Array or Net_LDAP2_Error + */ + public function &getAll($type) + { + $map = array('objectclasses' => &$this->_objectClasses, + 'attributes' => &$this->_attributeTypes, + 'ditcontentrules' => &$this->_dITContentRules, + 'ditstructurerules' => &$this->_dITStructureRules, + 'matchingrules' => &$this->_matchingRules, + 'matchingruleuses' => &$this->_matchingRuleUse, + 'nameforms' => &$this->_nameForms, + 'syntaxes' => &$this->_ldapSyntaxes ); + + $key = strtolower($type); + $ret = ((key_exists($key, $map)) ? $map[$key] : PEAR::raiseError("Unknown type $type")); + return $ret; + } + + /** + * Return a specific entry + * + * @param string $type Type of name + * @param string $name Name or OID to fetch + * + * @access public + * @return mixed Entry or Net_LDAP2_Error + */ + public function &get($type, $name) + { + if ($this->_initialized) { + $type = strtolower($type); + if (false == key_exists($type, $this->types)) { + return PEAR::raiseError("No such type $type"); + } + + $name = strtolower($name); + $type_var = &$this->{'_' . $this->types[$type]}; + + if (key_exists($name, $type_var)) { + return $type_var[$name]; + } elseif (key_exists($name, $this->_oids) && $this->_oids[$name]['type'] == $type) { + return $this->_oids[$name]; + } else { + return PEAR::raiseError("Could not find $type $name"); + } + } else { + $return = null; + return $return; + } + } + + + /** + * Fetches attributes that MAY be present in the given objectclass + * + * @param string $oc Name or OID of objectclass + * + * @access public + * @return array|Net_LDAP2_Error Array with attributes or Net_LDAP2_Error + */ + public function may($oc) + { + return $this->_getAttr($oc, 'may'); + } + + /** + * Fetches attributes that MUST be present in the given objectclass + * + * @param string $oc Name or OID of objectclass + * + * @access public + * @return array|Net_LDAP2_Error Array with attributes or Net_LDAP2_Error + */ + public function must($oc) + { + return $this->_getAttr($oc, 'must'); + } + + /** + * Fetches the given attribute from the given objectclass + * + * @param string $oc Name or OID of objectclass + * @param string $attr Name of attribute to fetch + * + * @access protected + * @return array|Net_LDAP2_Error The attribute or Net_LDAP2_Error + */ + protected function _getAttr($oc, $attr) + { + $oc = strtolower($oc); + if (key_exists($oc, $this->_objectClasses) && key_exists($attr, $this->_objectClasses[$oc])) { + return $this->_objectClasses[$oc][$attr]; + } elseif (key_exists($oc, $this->_oids) && + $this->_oids[$oc]['type'] == 'objectclass' && + key_exists($attr, $this->_oids[$oc])) { + return $this->_oids[$oc][$attr]; + } else { + return PEAR::raiseError("Could not find $attr attributes for $oc "); + } + } + + /** + * Returns the name(s) of the immediate superclass(es) + * + * @param string $oc Name or OID of objectclass + * + * @access public + * @return array|Net_LDAP2_Error Array of names or Net_LDAP2_Error + */ + public function superclass($oc) + { + $o = $this->get('objectclass', $oc); + if (Net_LDAP2::isError($o)) { + return $o; + } + return (key_exists('sup', $o) ? $o['sup'] : array()); + } + + /** + * Parses the schema of the given Subschema entry + * + * @param Net_LDAP2_Entry &$entry Subschema entry + * + * @access public + * @return void + */ + public function parse(&$entry) + { + foreach ($this->types as $type => $attr) { + // initialize map type to entry + $type_var = '_' . $attr; + $this->{$type_var} = array(); + + // get values for this type + if ($entry->exists($attr)) { + $values = $entry->getValue($attr); + if (is_array($values)) { + foreach ($values as $value) { + + unset($schema_entry); // this was a real mess without it + + // get the schema entry + $schema_entry = $this->_parse_entry($value); + + // set the type + $schema_entry['type'] = $type; + + // save a ref in $_oids + $this->_oids[$schema_entry['oid']] = &$schema_entry; + + // save refs for all names in type map + $names = $schema_entry['aliases']; + array_push($names, $schema_entry['name']); + foreach ($names as $name) { + $this->{$type_var}[strtolower($name)] = &$schema_entry; + } + } + } + } + } + $this->_initialized = true; + } + + /** + * Parses an attribute value into a schema entry + * + * @param string $value Attribute value + * + * @access protected + * @return array|false Schema entry array or false + */ + protected function &_parse_entry($value) + { + // tokens that have no value associated + $noValue = array('single-value', + 'obsolete', + 'collective', + 'no-user-modification', + 'abstract', + 'structural', + 'auxiliary'); + + // tokens that can have multiple values + $multiValue = array('must', 'may', 'sup'); + + $schema_entry = array('aliases' => array()); // initilization + + $tokens = $this->_tokenize($value); // get an array of tokens + + // remove surrounding brackets + if ($tokens[0] == '(') array_shift($tokens); + if ($tokens[count($tokens) - 1] == ')') array_pop($tokens); // -1 doesnt work on arrays :-( + + $schema_entry['oid'] = array_shift($tokens); // first token is the oid + + // cycle over the tokens until none are left + while (count($tokens) > 0) { + $token = strtolower(array_shift($tokens)); + if (in_array($token, $noValue)) { + $schema_entry[$token] = 1; // single value token + } else { + // this one follows a string or a list if it is multivalued + if (($schema_entry[$token] = array_shift($tokens)) == '(') { + // this creates the list of values and cycles through the tokens + // until the end of the list is reached ')' + $schema_entry[$token] = array(); + while ($tmp = array_shift($tokens)) { + if ($tmp == ')') break; + if ($tmp != '$') array_push($schema_entry[$token], $tmp); + } + } + // create a array if the value should be multivalued but was not + if (in_array($token, $multiValue) && !is_array($schema_entry[$token])) { + $schema_entry[$token] = array($schema_entry[$token]); + } + } + } + // get max length from syntax + if (key_exists('syntax', $schema_entry)) { + if (preg_match('/{(\d+)}/', $schema_entry['syntax'], $matches)) { + $schema_entry['max_length'] = $matches[1]; + } + } + // force a name + if (empty($schema_entry['name'])) { + $schema_entry['name'] = $schema_entry['oid']; + } + // make one name the default and put the other ones into aliases + if (is_array($schema_entry['name'])) { + $aliases = $schema_entry['name']; + $schema_entry['name'] = array_shift($aliases); + $schema_entry['aliases'] = $aliases; + } + return $schema_entry; + } + + /** + * Tokenizes the given value into an array of tokens + * + * @param string $value String to parse + * + * @access protected + * @return array Array of tokens + */ + protected function _tokenize($value) + { + $tokens = array(); // array of tokens + $matches = array(); // matches[0] full pattern match, [1,2,3] subpatterns + + // this one is taken from perl-ldap, modified for php + $pattern = "/\s* (?:([()]) | ([^'\s()]+) | '((?:[^']+|'[^\s)])*)') \s*/x"; + + /** + * This one matches one big pattern wherin only one of the three subpatterns matched + * We are interested in the subpatterns that matched. If it matched its value will be + * non-empty and so it is a token. Tokens may be round brackets, a string, or a string + * enclosed by ' + */ + preg_match_all($pattern, $value, $matches); + + for ($i = 0; $i < count($matches[0]); $i++) { // number of tokens (full pattern match) + for ($j = 1; $j < 4; $j++) { // each subpattern + if (null != trim($matches[$j][$i])) { // pattern match in this subpattern + $tokens[$i] = trim($matches[$j][$i]); // this is the token + } + } + } + return $tokens; + } + + /** + * Returns wether a attribute syntax is binary or not + * + * This method gets used by Net_LDAP2_Entry to decide which + * PHP function needs to be used to fetch the value in the + * proper format (e.g. binary or string) + * + * @param string $attribute The name of the attribute (eg.: 'sn') + * + * @access public + * @return boolean + */ + public function isBinary($attribute) + { + $return = false; // default to false + + // This list contains all syntax that should be treaten as + // containing binary values + // The Syntax Definitons go into constants at the top of this page + $syntax_binary = array( + NET_LDAP2_SYNTAX_OCTET_STRING, + NET_LDAP2_SYNTAX_JPEG + ); + + // Check Syntax + $attr_s = $this->get('attribute', $attribute); + if (Net_LDAP2::isError($attr_s)) { + // Attribute not found in schema + $return = false; // consider attr not binary + } elseif (isset($attr_s['syntax']) && in_array($attr_s['syntax'], $syntax_binary)) { + // Syntax is defined as binary in schema + $return = true; + } else { + // Syntax not defined as binary, or not found + // if attribute is a subtype, check superior attribute syntaxes + if (isset($attr_s['sup'])) { + foreach ($attr_s['sup'] as $superattr) { + $return = $this->isBinary($superattr); + if ($return) { + break; // stop checking parents since we are binary + } + } + } + } + + return $return; + } + + // [TODO] add method that allows us to see to which objectclasses a certain attribute belongs to + // it should return the result structured, e.g. sorted in "may" and "must". Optionally it should + // be able to return it just "flat", e.g. array_merge()d. + // We could use get_all() to achieve this easily, i think +} +?> diff --git a/plugins/LdapCommon/extlib/Net/LDAP2/SchemaCache.interface.php b/plugins/LdapCommon/extlib/Net/LDAP2/SchemaCache.interface.php new file mode 100644 index 000000000..e0c3094c4 --- /dev/null +++ b/plugins/LdapCommon/extlib/Net/LDAP2/SchemaCache.interface.php @@ -0,0 +1,59 @@ + +* @copyright 2009 Benedikt Hallinger +* @license http://www.gnu.org/licenses/lgpl-3.0.txt LGPLv3 +* @version SVN: $Id: SchemaCache.interface.php 286718 2009-08-03 07:30:49Z beni $ +* @link http://pear.php.net/package/Net_LDAP2/ +*/ + +/** +* Interface describing a custom schema cache object +* +* To implement a custom schema cache, one must implement this interface and +* pass the instanciated object to Net_LDAP2s registerSchemaCache() method. +*/ +interface Net_LDAP2_SchemaCache +{ + /** + * Return the schema object from the cache + * + * Net_LDAP2 will consider anything returned invalid, except + * a valid Net_LDAP2_Schema object. + * In case you return a Net_LDAP2_Error, this error will be routed + * to the return of the $ldap->schema() call. + * If you return something else, Net_LDAP2 will + * fetch a fresh Schema object from the LDAP server. + * + * You may want to implement a cache aging mechanism here too. + * + * @return Net_LDAP2_Schema|Net_LDAP2_Error|false + */ + public function loadSchema(); + + /** + * Store a schema object in the cache + * + * This method will be called, if Net_LDAP2 has fetched a fresh + * schema object from LDAP and wants to init or refresh the cache. + * + * In case of errors you may return a Net_LDAP2_Error which will + * be routet to the client. + * Note that doing this prevents, that the schema object fetched from LDAP + * will be given back to the client, so only return errors if storing + * of the cache is something crucial (e.g. for doing something else with it). + * Normaly you dont want to give back errors in which case Net_LDAP2 needs to + * fetch the schema once per script run and instead use the error + * returned from loadSchema(). + * + * @return true|Net_LDAP2_Error + */ + public function storeSchema($schema); +} diff --git a/plugins/LdapCommon/extlib/Net/LDAP2/Search.php b/plugins/LdapCommon/extlib/Net/LDAP2/Search.php new file mode 100644 index 000000000..de4fde122 --- /dev/null +++ b/plugins/LdapCommon/extlib/Net/LDAP2/Search.php @@ -0,0 +1,614 @@ + +* @author Benedikt Hallinger +* @copyright 2009 Tarjej Huse, Benedikt Hallinger +* @license http://www.gnu.org/licenses/lgpl-3.0.txt LGPLv3 +* @version SVN: $Id: Search.php 286718 2009-08-03 07:30:49Z beni $ +* @link http://pear.php.net/package/Net_LDAP2/ +*/ + +/** +* Includes +*/ +require_once 'PEAR.php'; + +/** +* Result set of an LDAP search +* +* @category Net +* @package Net_LDAP2 +* @author Tarjej Huse +* @author Benedikt Hallinger +* @license http://www.gnu.org/copyleft/lesser.html LGPL +* @link http://pear.php.net/package/Net_LDAP22/ +*/ +class Net_LDAP2_Search extends PEAR implements Iterator +{ + /** + * Search result identifier + * + * @access protected + * @var resource + */ + protected $_search; + + /** + * LDAP resource link + * + * @access protected + * @var resource + */ + protected $_link; + + /** + * Net_LDAP2 object + * + * A reference of the Net_LDAP2 object for passing to Net_LDAP2_Entry + * + * @access protected + * @var object Net_LDAP2 + */ + protected $_ldap; + + /** + * Result entry identifier + * + * @access protected + * @var resource + */ + protected $_entry = null; + + /** + * The errorcode the search got + * + * Some errorcodes might be of interest, but might not be best handled as errors. + * examples: 4 - LDAP_SIZELIMIT_EXCEEDED - indicates a huge search. + * Incomplete results are returned. If you just want to check if there's anything in the search. + * than this is a point to handle. + * 32 - no such object - search here returns a count of 0. + * + * @access protected + * @var int + */ + protected $_errorCode = 0; // if not set - sucess! + + /** + * Cache for all entries already fetched from iterator interface + * + * @access protected + * @var array + */ + protected $_iteratorCache = array(); + + /** + * What attributes we searched for + * + * The $attributes array contains the names of the searched attributes and gets + * passed from $Net_LDAP2->search() so the Net_LDAP2_Search object can tell + * what attributes was searched for ({@link searchedAttrs()) + * + * This variable gets set from the constructor and returned + * from {@link searchedAttrs()} + * + * @access protected + * @var array + */ + protected $_searchedAttrs = array(); + + /** + * Cache variable for storing entries fetched internally + * + * This currently is only used by {@link pop_entry()} + * + * @access protected + * @var array + */ + protected $_entry_cache = false; + + /** + * Constructor + * + * @param resource &$search Search result identifier + * @param Net_LDAP2|resource &$ldap Net_LDAP2 object or just a LDAP-Link resource + * @param array $attributes (optional) Array with searched attribute names. (see {@link $_searchedAttrs}) + * + * @access public + */ + public function __construct(&$search, &$ldap, $attributes = array()) + { + $this->PEAR('Net_LDAP2_Error'); + + $this->setSearch($search); + + if ($ldap instanceof Net_LDAP2) { + $this->_ldap =& $ldap; + $this->setLink($this->_ldap->getLink()); + } else { + $this->setLink($ldap); + } + + $this->_errorCode = @ldap_errno($this->_link); + + if (is_array($attributes) && !empty($attributes)) { + $this->_searchedAttrs = $attributes; + } + } + + /** + * Returns an array of entry objects + * + * @return array Array of entry objects. + */ + public function entries() + { + $entries = array(); + + while ($entry = $this->shiftEntry()) { + $entries[] = $entry; + } + + return $entries; + } + + /** + * Get the next entry in the searchresult. + * + * This will return a valid Net_LDAP2_Entry object or false, so + * you can use this method to easily iterate over the entries inside + * a while loop. + * + * @return Net_LDAP2_Entry|false Reference to Net_LDAP2_Entry object or false + */ + public function &shiftEntry() + { + if ($this->count() == 0 ) { + $false = false; + return $false; + } + + if (is_null($this->_entry)) { + $this->_entry = @ldap_first_entry($this->_link, $this->_search); + $entry = Net_LDAP2_Entry::createConnected($this->_ldap, $this->_entry); + if ($entry instanceof Net_LDAP2_Error) $entry = false; + } else { + if (!$this->_entry = @ldap_next_entry($this->_link, $this->_entry)) { + $false = false; + return $false; + } + $entry = Net_LDAP2_Entry::createConnected($this->_ldap, $this->_entry); + if ($entry instanceof Net_LDAP2_Error) $entry = false; + } + return $entry; + } + + /** + * Alias function of shiftEntry() for perl-ldap interface + * + * @see shiftEntry() + * @return Net_LDAP2_Entry|false + */ + public function shift_entry() + { + $args = func_get_args(); + return call_user_func_array(array( &$this, 'shiftEntry' ), $args); + } + + /** + * Retrieve the next entry in the searchresult, but starting from last entry + * + * This is the opposite to {@link shiftEntry()} and is also very useful + * to be used inside a while loop. + * + * @return Net_LDAP2_Entry|false + */ + public function popEntry() + { + if (false === $this->_entry_cache) { + // fetch entries into cache if not done so far + $this->_entry_cache = $this->entries(); + } + + $return = array_pop($this->_entry_cache); + return (null === $return)? false : $return; + } + + /** + * Alias function of popEntry() for perl-ldap interface + * + * @see popEntry() + * @return Net_LDAP2_Entry|false + */ + public function pop_entry() + { + $args = func_get_args(); + return call_user_func_array(array( &$this, 'popEntry' ), $args); + } + + /** + * Return entries sorted as array + * + * This returns a array with sorted entries and the values. + * Sorting is done with PHPs {@link array_multisort()}. + * This method relies on {@link as_struct()} to fetch the raw data of the entries. + * + * Please note that attribute names are case sensitive! + * + * Usage example: + * + * // to sort entries first by location, then by surename, but descending: + * $entries = $search->sorted_as_struct(array('locality','sn'), SORT_DESC); + * + * + * @param array $attrs Array of attribute names to sort; order from left to right. + * @param int $order Ordering direction, either constant SORT_ASC or SORT_DESC + * + * @return array|Net_LDAP2_Error Array with sorted entries or error + * @todo what about server side sorting as specified in http://www.ietf.org/rfc/rfc2891.txt? + */ + public function sorted_as_struct($attrs = array('cn'), $order = SORT_ASC) + { + /* + * Old Code, suitable and fast for single valued sorting + * This code should be used if we know that single valued sorting is desired, + * but we need some method to get that knowledge... + */ + /* + $attrs = array_reverse($attrs); + foreach ($attrs as $attribute) { + if (!ldap_sort($this->_link, $this->_search, $attribute)){ + $this->raiseError("Sorting failed for Attribute " . $attribute); + } + } + + $results = ldap_get_entries($this->_link, $this->_search); + + unset($results['count']); //for tidier output + if ($order) { + return array_reverse($results); + } else { + return $results; + }*/ + + /* + * New code: complete "client side" sorting + */ + // first some parameterchecks + if (!is_array($attrs)) { + return PEAR::raiseError("Sorting failed: Parameterlist must be an array!"); + } + if ($order != SORT_ASC && $order != SORT_DESC) { + return PEAR::raiseError("Sorting failed: sorting direction not understood! (neither constant SORT_ASC nor SORT_DESC)"); + } + + // fetch the entries data + $entries = $this->as_struct(); + + // now sort each entries attribute values + // this is neccessary because later we can only sort by one value, + // so we need the highest or lowest attribute now, depending on the + // selected ordering for that specific attribute + foreach ($entries as $dn => $entry) { + foreach ($entry as $attr_name => $attr_values) { + sort($entries[$dn][$attr_name]); + if ($order == SORT_DESC) { + array_reverse($entries[$dn][$attr_name]); + } + } + } + + // reformat entrys array for later use with array_multisort() + $to_sort = array(); // <- will be a numeric array similar to ldap_get_entries + foreach ($entries as $dn => $entry_attr) { + $row = array(); + $row['dn'] = $dn; + foreach ($entry_attr as $attr_name => $attr_values) { + $row[$attr_name] = $attr_values; + } + $to_sort[] = $row; + } + + // Build columns for array_multisort() + // each requested attribute is one row + $columns = array(); + foreach ($attrs as $attr_name) { + foreach ($to_sort as $key => $row) { + $columns[$attr_name][$key] =& $to_sort[$key][$attr_name][0]; + } + } + + // sort the colums with array_multisort, if there is something + // to sort and if we have requested sort columns + if (!empty($to_sort) && !empty($columns)) { + $sort_params = ''; + foreach ($attrs as $attr_name) { + $sort_params .= '$columns[\''.$attr_name.'\'], '.$order.', '; + } + eval("array_multisort($sort_params \$to_sort);"); // perform sorting + } + + return $to_sort; + } + + /** + * Return entries sorted as objects + * + * This returns a array with sorted Net_LDAP2_Entry objects. + * The sorting is actually done with {@link sorted_as_struct()}. + * + * Please note that attribute names are case sensitive! + * Also note, that it is (depending on server capabilitys) possible to let + * the server sort your results. This happens through search controls + * and is described in detail at {@link http://www.ietf.org/rfc/rfc2891.txt} + * + * Usage example: + * + * // to sort entries first by location, then by surename, but descending: + * $entries = $search->sorted(array('locality','sn'), SORT_DESC); + * + * + * @param array $attrs Array of sort attributes to sort; order from left to right. + * @param int $order Ordering direction, either constant SORT_ASC or SORT_DESC + * + * @return array|Net_LDAP2_Error Array with sorted Net_LDAP2_Entries or error + * @todo Entry object construction could be faster. Maybe we could use one of the factorys instead of fetching the entry again + */ + public function sorted($attrs = array('cn'), $order = SORT_ASC) + { + $return = array(); + $sorted = $this->sorted_as_struct($attrs, $order); + if (PEAR::isError($sorted)) { + return $sorted; + } + foreach ($sorted as $key => $row) { + $entry = $this->_ldap->getEntry($row['dn'], $this->searchedAttrs()); + if (!PEAR::isError($entry)) { + array_push($return, $entry); + } else { + return $entry; + } + } + return $return; + } + + /** + * Return entries as array + * + * This method returns the entries and the selected attributes values as + * array. + * The first array level contains all found entries where the keys are the + * DNs of the entries. The second level arrays contian the entries attributes + * such that the keys is the lowercased name of the attribute and the values + * are stored in another indexed array. Note that the attribute values are stored + * in an array even if there is no or just one value. + * + * The array has the following structure: + * + * $return = array( + * 'cn=foo,dc=example,dc=com' => array( + * 'sn' => array('foo'), + * 'multival' => array('val1', 'val2', 'valN') + * ) + * 'cn=bar,dc=example,dc=com' => array( + * 'sn' => array('bar'), + * 'multival' => array('val1', 'valN') + * ) + * ) + * + * + * @return array associative result array as described above + */ + public function as_struct() + { + $return = array(); + $entries = $this->entries(); + foreach ($entries as $entry) { + $attrs = array(); + $entry_attributes = $entry->attributes(); + foreach ($entry_attributes as $attr_name) { + $attr_values = $entry->getValue($attr_name, 'all'); + if (!is_array($attr_values)) { + $attr_values = array($attr_values); + } + $attrs[$attr_name] = $attr_values; + } + $return[$entry->dn()] = $attrs; + } + return $return; + } + + /** + * Set the search objects resource link + * + * @param resource &$search Search result identifier + * + * @access public + * @return void + */ + public function setSearch(&$search) + { + $this->_search = $search; + } + + /** + * Set the ldap ressource link + * + * @param resource &$link Link identifier + * + * @access public + * @return void + */ + public function setLink(&$link) + { + $this->_link = $link; + } + + /** + * Returns the number of entries in the searchresult + * + * @return int Number of entries in search. + */ + public function count() + { + // this catches the situation where OL returned errno 32 = no such object! + if (!$this->_search) { + return 0; + } + return @ldap_count_entries($this->_link, $this->_search); + } + + /** + * Get the errorcode the object got in its search. + * + * @return int The ldap error number. + */ + public function getErrorCode() + { + return $this->_errorCode; + } + + /** + * Destructor + * + * @access protected + */ + public function _Net_LDAP2_Search() + { + @ldap_free_result($this->_search); + } + + /** + * Closes search result + * + * @return void + */ + public function done() + { + $this->_Net_LDAP2_Search(); + } + + /** + * Return the attribute names this search selected + * + * @return array + * @see $_searchedAttrs + * @access protected + */ + protected function searchedAttrs() + { + return $this->_searchedAttrs; + } + + /** + * Tells if this search exceeds a sizelimit + * + * @return boolean + */ + public function sizeLimitExceeded() + { + return ($this->getErrorCode() == 4); + } + + + /* + * SPL Iterator interface methods. + * This interface allows to use Net_LDAP2_Search + * objects directly inside a foreach loop! + */ + /** + * SPL Iterator interface: Return the current element. + * + * The SPL Iterator interface allows you to fetch entries inside + * a foreach() loop: foreach ($search as $dn => $entry) { ... + * + * Of course, you may call {@link current()}, {@link key()}, {@link next()}, + * {@link rewind()} and {@link valid()} yourself. + * + * If the search throwed an error, it returns false. + * False is also returned, if the end is reached + * In case no call to next() was made, we will issue one, + * thus returning the first entry. + * + * @return Net_LDAP2_Entry|false + */ + public function current() + { + if (count($this->_iteratorCache) == 0) { + $this->next(); + reset($this->_iteratorCache); + } + $entry = current($this->_iteratorCache); + return ($entry instanceof Net_LDAP2_Entry)? $entry : false; + } + + /** + * SPL Iterator interface: Return the identifying key (DN) of the current entry. + * + * @see current() + * @return string|false DN of the current entry; false in case no entry is returned by current() + */ + public function key() + { + $entry = $this->current(); + return ($entry instanceof Net_LDAP2_Entry)? $entry->dn() :false; + } + + /** + * SPL Iterator interface: Move forward to next entry. + * + * After a call to {@link next()}, {@link current()} will return + * the next entry in the result set. + * + * @see current() + * @return void + */ + public function next() + { + // fetch next entry. + // if we have no entrys anymore, we add false (which is + // returned by shiftEntry()) so current() will complain. + if (count($this->_iteratorCache) - 1 <= $this->count()) { + $this->_iteratorCache[] = $this->shiftEntry(); + } + + // move on array pointer to current element. + // even if we have added all entries, this will + // ensure proper operation in case we rewind() + next($this->_iteratorCache); + } + + /** + * SPL Iterator interface: Check if there is a current element after calls to {@link rewind()} or {@link next()}. + * + * Used to check if we've iterated to the end of the collection. + * + * @see current() + * @return boolean FALSE if there's nothing more to iterate over + */ + public function valid() + { + return ($this->current() instanceof Net_LDAP2_Entry); + } + + /** + * SPL Iterator interface: Rewind the Iterator to the first element. + * + * After rewinding, {@link current()} will return the first entry in the result set. + * + * @see current() + * @return void + */ + public function rewind() + { + reset($this->_iteratorCache); + } +} + +?> diff --git a/plugins/LdapCommon/extlib/Net/LDAP2/SimpleFileSchemaCache.php b/plugins/LdapCommon/extlib/Net/LDAP2/SimpleFileSchemaCache.php new file mode 100644 index 000000000..8019654ac --- /dev/null +++ b/plugins/LdapCommon/extlib/Net/LDAP2/SimpleFileSchemaCache.php @@ -0,0 +1,97 @@ + +* @copyright 2009 Benedikt Hallinger +* @license http://www.gnu.org/licenses/lgpl-3.0.txt LGPLv3 +* @version SVN: $Id: SimpleFileSchemaCache.php 286718 2009-08-03 07:30:49Z beni $ +* @link http://pear.php.net/package/Net_LDAP2/ +*/ + +/** +* A simple file based schema cacher with cache aging. +* +* Once the cache is too old, the loadSchema() method will return false, so +* Net_LDAP2 will fetch a fresh object from the LDAP server that will +* overwrite the current (outdated) old cache. +*/ +class Net_LDAP2_SimpleFileSchemaCache implements Net_LDAP2_SchemaCache +{ + /** + * Internal config of this cache + * + * @see Net_LDAP2_SimpleFileSchemaCache() + * @var array + */ + protected $config = array( + 'path' => '/tmp/Net_LDAP_Schema.cache', + 'max_age' => 1200 + ); + + /** + * Initialize the simple cache + * + * Config is as following: + * path Complete path to the cache file. + * max_age Maximum age of cache in seconds, 0 means "endlessly". + * + * @param array $cfg Config array + */ + public function Net_LDAP2_SimpleFileSchemaCache($cfg) + { + foreach ($cfg as $key => $value) { + if (array_key_exists($key, $this->config)) { + if (gettype($this->config[$key]) != gettype($value)) { + $this->getCore()->dropFatalError(__CLASS__.": Could not set config! Key $key does not match type ".gettype($this->config[$key])."!"); + } + $this->config[$key] = $value; + } else { + $this->getCore()->dropFatalError(__CLASS__.": Could not set config! Key $key is not defined!"); + } + } + } + + /** + * Return the schema object from the cache + * + * If file is existent and cache has not expired yet, + * then the cache is deserialized and returned. + * + * @return Net_LDAP2_Schema|Net_LDAP2_Error|false + */ + public function loadSchema() + { + $return = false; // Net_LDAP2 will load schema from LDAP + if (file_exists($this->config['path'])) { + $cache_maxage = filemtime($this->config['path']) + $this->config['max_age']; + if (time() <= $cache_maxage || $this->config['max_age'] == 0) { + $return = unserialize(file_get_contents($this->config['path'])); + } + } + return $return; + } + + /** + * Store a schema object in the cache + * + * This method will be called, if Net_LDAP2 has fetched a fresh + * schema object from LDAP and wants to init or refresh the cache. + * + * To invalidate the cache and cause Net_LDAP2 to refresh the cache, + * you can call this method with null or false as value. + * The next call to $ldap->schema() will then refresh the caches object. + * + * @param mixed $schema The object that should be cached + * @return true|Net_LDAP2_Error|false + */ + public function storeSchema($schema) { + file_put_contents($this->config['path'], serialize($schema)); + return true; + } +} diff --git a/plugins/LdapCommon/extlib/Net/LDAP2/Util.php b/plugins/LdapCommon/extlib/Net/LDAP2/Util.php new file mode 100644 index 000000000..48b03f9f9 --- /dev/null +++ b/plugins/LdapCommon/extlib/Net/LDAP2/Util.php @@ -0,0 +1,572 @@ + +* @copyright 2009 Benedikt Hallinger +* @license http://www.gnu.org/licenses/lgpl-3.0.txt LGPLv3 +* @version SVN: $Id: Util.php 286718 2009-08-03 07:30:49Z beni $ +* @link http://pear.php.net/package/Net_LDAP2/ +*/ + +/** +* Includes +*/ +require_once 'PEAR.php'; + +/** +* Utility Class for Net_LDAP2 +* +* This class servers some functionality to the other classes of Net_LDAP2 but most of +* the methods can be used separately as well. +* +* @category Net +* @package Net_LDAP2 +* @author Benedikt Hallinger +* @license http://www.gnu.org/copyleft/lesser.html LGPL +* @link http://pear.php.net/package/Net_LDAP22/ +*/ +class Net_LDAP2_Util extends PEAR +{ + /** + * Constructor + * + * @access public + */ + public function __construct() + { + // We do nothing here, since all methods can be called statically. + // In Net_LDAP <= 0.7, we needed a instance of Util, because + // it was possible to do utf8 encoding and decoding, but this + // has been moved to the LDAP class. The constructor remains only + // here to document the downward compatibility of creating an instance. + } + + /** + * Explodes the given DN into its elements + * + * {@link http://www.ietf.org/rfc/rfc2253.txt RFC 2253} says, a Distinguished Name is a sequence + * of Relative Distinguished Names (RDNs), which themselves + * are sets of Attributes. For each RDN a array is constructed where the RDN part is stored. + * + * For example, the DN 'OU=Sales+CN=J. Smith,DC=example,DC=net' is exploded to: + * array( [0] => array([0] => 'OU=Sales', [1] => 'CN=J. Smith'), [2] => 'DC=example', [3] => 'DC=net' ) + * + * [NOT IMPLEMENTED] DNs might also contain values, which are the bytes of the BER encoding of + * the X.500 AttributeValue rather than some LDAP string syntax. These values are hex-encoded + * and prefixed with a #. To distinguish such BER values, ldap_explode_dn uses references to + * the actual values, e.g. '1.3.6.1.4.1.1466.0=#04024869,DC=example,DC=com' is exploded to: + * [ { '1.3.6.1.4.1.1466.0' => "\004\002Hi" }, { 'DC' => 'example' }, { 'DC' => 'com' } ]; + * See {@link http://www.vijaymukhi.com/vmis/berldap.htm} for more information on BER. + * + * It also performs the following operations on the given DN: + * - Unescape "\" followed by ",", "+", """, "\", "<", ">", ";", "#", "=", " ", or a hexpair + * and strings beginning with "#". + * - Removes the leading 'OID.' characters if the type is an OID instead of a name. + * - If an RDN contains multiple parts, the parts are re-ordered so that the attribute type names are in alphabetical order. + * + * OPTIONS is a list of name/value pairs, valid options are: + * casefold Controls case folding of attribute types names. + * Attribute values are not affected by this option. + * The default is to uppercase. Valid values are: + * lower Lowercase attribute types names. + * upper Uppercase attribute type names. This is the default. + * none Do not change attribute type names. + * reverse If TRUE, the RDN sequence is reversed. + * onlyvalues If TRUE, then only attributes values are returned ('foo' instead of 'cn=foo') + * + + * @param string $dn The DN that should be exploded + * @param array $options Options to use + * + * @static + * @return array Parts of the exploded DN + * @todo implement BER + */ + public static function ldap_explode_dn($dn, $options = array('casefold' => 'upper')) + { + if (!isset($options['onlyvalues'])) $options['onlyvalues'] = false; + if (!isset($options['reverse'])) $options['reverse'] = false; + if (!isset($options['casefold'])) $options['casefold'] = 'upper'; + + // Escaping of DN and stripping of "OID." + $dn = self::canonical_dn($dn, array('casefold' => $options['casefold'])); + + // splitting the DN + $dn_array = preg_split('/(?<=[^\\\\]),/', $dn); + + // clear wrong splitting (possibly we have split too much) + // /!\ Not clear, if this is neccessary here + //$dn_array = self::correct_dn_splitting($dn_array, ','); + + // construct subarrays for multivalued RDNs and unescape DN value + // also convert to output format and apply casefolding + foreach ($dn_array as $key => $value) { + $value_u = self::unescape_dn_value($value); + $rdns = self::split_rdn_multival($value_u[0]); + if (count($rdns) > 1) { + // MV RDN! + foreach ($rdns as $subrdn_k => $subrdn_v) { + // Casefolding + if ($options['casefold'] == 'upper') $subrdn_v = preg_replace("/^(\w+=)/e", "''.strtoupper('\\1').''", $subrdn_v); + if ($options['casefold'] == 'lower') $subrdn_v = preg_replace("/^(\w+=)/e", "''.strtolower('\\1').''", $subrdn_v); + + if ($options['onlyvalues']) { + preg_match('/(.+?)(?", ";", "#", "=" with a special meaning in RFC 2252 + * are preceeded by ba backslash. Control characters with an ASCII code < 32 are represented as \hexpair. + * Finally all leading and trailing spaces are converted to sequences of \20. + * + * @param array $values An array containing the DN values that should be escaped + * + * @static + * @return array The array $values, but escaped + */ + public static function escape_dn_value($values = array()) + { + // Parameter validation + if (!is_array($values)) { + $values = array($values); + } + + foreach ($values as $key => $val) { + // Escaping of filter meta characters + $val = str_replace('\\', '\\\\', $val); + $val = str_replace(',', '\,', $val); + $val = str_replace('+', '\+', $val); + $val = str_replace('"', '\"', $val); + $val = str_replace('<', '\<', $val); + $val = str_replace('>', '\>', $val); + $val = str_replace(';', '\;', $val); + $val = str_replace('#', '\#', $val); + $val = str_replace('=', '\=', $val); + + // ASCII < 32 escaping + $val = self::asc2hex32($val); + + // Convert all leading and trailing spaces to sequences of \20. + if (preg_match('/^(\s*)(.+?)(\s*)$/', $val, $matches)) { + $val = $matches[2]; + for ($i = 0; $i < strlen($matches[1]); $i++) { + $val = '\20'.$val; + } + for ($i = 0; $i < strlen($matches[3]); $i++) { + $val = $val.'\20'; + } + } + + if (null === $val) $val = '\0'; // apply escaped "null" if string is empty + + $values[$key] = $val; + } + + return $values; + } + + /** + * Undoes the conversion done by escape_dn_value(). + * + * Any escape sequence starting with a baskslash - hexpair or special character - + * will be transformed back to the corresponding character. + * + * @param array $values Array of DN Values + * + * @return array Same as $values, but unescaped + * @static + */ + public static function unescape_dn_value($values = array()) + { + // Parameter validation + if (!is_array($values)) { + $values = array($values); + } + + foreach ($values as $key => $val) { + // strip slashes from special chars + $val = str_replace('\\\\', '\\', $val); + $val = str_replace('\,', ',', $val); + $val = str_replace('\+', '+', $val); + $val = str_replace('\"', '"', $val); + $val = str_replace('\<', '<', $val); + $val = str_replace('\>', '>', $val); + $val = str_replace('\;', ';', $val); + $val = str_replace('\#', '#', $val); + $val = str_replace('\=', '=', $val); + + // Translate hex code into ascii + $values[$key] = self::hex2asc($val); + } + + return $values; + } + + /** + * Returns the given DN in a canonical form + * + * Returns false if DN is not a valid Distinguished Name. + * DN can either be a string or an array + * as returned by ldap_explode_dn, which is useful when constructing a DN. + * The DN array may have be indexed (each array value is a OCL=VALUE pair) + * or associative (array key is OCL and value is VALUE). + * + * It performs the following operations on the given DN: + * - Removes the leading 'OID.' characters if the type is an OID instead of a name. + * - Escapes all RFC 2253 special characters (",", "+", """, "\", "<", ">", ";", "#", "="), slashes ("/"), and any other character where the ASCII code is < 32 as \hexpair. + * - Converts all leading and trailing spaces in values to be \20. + * - If an RDN contains multiple parts, the parts are re-ordered so that the attribute type names are in alphabetical order. + * + * OPTIONS is a list of name/value pairs, valid options are: + * casefold Controls case folding of attribute type names. + * Attribute values are not affected by this option. The default is to uppercase. + * Valid values are: + * lower Lowercase attribute type names. + * upper Uppercase attribute type names. This is the default. + * none Do not change attribute type names. + * [NOT IMPLEMENTED] mbcescape If TRUE, characters that are encoded as a multi-octet UTF-8 sequence will be escaped as \(hexpair){2,*}. + * reverse If TRUE, the RDN sequence is reversed. + * separator Separator to use between RDNs. Defaults to comma (','). + * + * Note: The empty string "" is a valid DN, so be sure not to do a "$can_dn == false" test, + * because an empty string evaluates to false. Use the "===" operator instead. + * + * @param array|string $dn The DN + * @param array $options Options to use + * + * @static + * @return false|string The canonical DN or FALSE + * @todo implement option mbcescape + */ + public static function canonical_dn($dn, $options = array('casefold' => 'upper', 'separator' => ',')) + { + if ($dn === '') return $dn; // empty DN is valid! + + // options check + if (!isset($options['reverse'])) { + $options['reverse'] = false; + } else { + $options['reverse'] = true; + } + if (!isset($options['casefold'])) $options['casefold'] = 'upper'; + if (!isset($options['separator'])) $options['separator'] = ','; + + + if (!is_array($dn)) { + // It is not clear to me if the perl implementation splits by the user defined + // separator or if it just uses this separator to construct the new DN + $dn = preg_split('/(?<=[^\\\\])'.$options['separator'].'/', $dn); + + // clear wrong splitting (possibly we have split too much) + $dn = self::correct_dn_splitting($dn, $options['separator']); + } else { + // Is array, check, if the array is indexed or associative + $assoc = false; + foreach ($dn as $dn_key => $dn_part) { + if (!is_int($dn_key)) { + $assoc = true; + } + } + // convert to indexed, if associative array detected + if ($assoc) { + $newdn = array(); + foreach ($dn as $dn_key => $dn_part) { + if (is_array($dn_part)) { + ksort($dn_part, SORT_STRING); // we assume here, that the rdn parts are also associative + $newdn[] = $dn_part; // copy array as-is, so we can resolve it later + } else { + $newdn[] = $dn_key.'='.$dn_part; + } + } + $dn =& $newdn; + } + } + + // Escaping and casefolding + foreach ($dn as $pos => $dnval) { + if (is_array($dnval)) { + // subarray detected, this means very surely, that we had + // a multivalued dn part, which must be resolved + $dnval_new = ''; + foreach ($dnval as $subkey => $subval) { + // build RDN part + if (!is_int($subkey)) { + $subval = $subkey.'='.$subval; + } + $subval_processed = self::canonical_dn($subval); + if (false === $subval_processed) return false; + $dnval_new .= $subval_processed.'+'; + } + $dn[$pos] = substr($dnval_new, 0, -1); // store RDN part, strip last plus + } else { + // try to split multivalued RDNS into array + $rdns = self::split_rdn_multival($dnval); + if (count($rdns) > 1) { + // Multivalued RDN was detected! + // The RDN value is expected to be correctly split by split_rdn_multival(). + // It's time to sort the RDN and build the DN! + $rdn_string = ''; + sort($rdns, SORT_STRING); // Sort RDN keys alphabetically + foreach ($rdns as $rdn) { + $subval_processed = self::canonical_dn($rdn); + if (false === $subval_processed) return false; + $rdn_string .= $subval_processed.'+'; + } + + $dn[$pos] = substr($rdn_string, 0, -1); // store RDN part, strip last plus + + } else { + // no multivalued RDN! + // split at first unescaped "=" + $dn_comp = preg_split('/(?<=[^\\\\])=/', $rdns[0], 2); + $ocl = ltrim($dn_comp[0]); // trim left whitespaces 'cause of "cn=foo, l=bar" syntax (whitespace after comma) + $val = $dn_comp[1]; + + // strip 'OID.', otherwise apply casefolding and escaping + if (substr(strtolower($ocl), 0, 4) == 'oid.') { + $ocl = substr($ocl, 4); + } else { + if ($options['casefold'] == 'upper') $ocl = strtoupper($ocl); + if ($options['casefold'] == 'lower') $ocl = strtolower($ocl); + $ocl = self::escape_dn_value(array($ocl)); + $ocl = $ocl[0]; + } + + // escaping of dn-value + $val = self::escape_dn_value(array($val)); + $val = str_replace('/', '\/', $val[0]); + + $dn[$pos] = $ocl.'='.$val; + } + } + } + + if ($options['reverse']) $dn = array_reverse($dn); + return implode($options['separator'], $dn); + } + + /** + * Escapes the given VALUES according to RFC 2254 so that they can be safely used in LDAP filters. + * + * Any control characters with an ACII code < 32 as well as the characters with special meaning in + * LDAP filters "*", "(", ")", and "\" (the backslash) are converted into the representation of a + * backslash followed by two hex digits representing the hexadecimal value of the character. + * + * @param array $values Array of values to escape + * + * @static + * @return array Array $values, but escaped + */ + public static function escape_filter_value($values = array()) + { + // Parameter validation + if (!is_array($values)) { + $values = array($values); + } + + foreach ($values as $key => $val) { + // Escaping of filter meta characters + $val = str_replace('\\', '\5c', $val); + $val = str_replace('*', '\2a', $val); + $val = str_replace('(', '\28', $val); + $val = str_replace(')', '\29', $val); + + // ASCII < 32 escaping + $val = self::asc2hex32($val); + + if (null === $val) $val = '\0'; // apply escaped "null" if string is empty + + $values[$key] = $val; + } + + return $values; + } + + /** + * Undoes the conversion done by {@link escape_filter_value()}. + * + * Converts any sequences of a backslash followed by two hex digits into the corresponding character. + * + * @param array $values Array of values to escape + * + * @static + * @return array Array $values, but unescaped + */ + public static function unescape_filter_value($values = array()) + { + // Parameter validation + if (!is_array($values)) { + $values = array($values); + } + + foreach ($values as $key => $value) { + // Translate hex code into ascii + $values[$key] = self::hex2asc($value); + } + + return $values; + } + + /** + * Converts all ASCII chars < 32 to "\HEX" + * + * @param string $string String to convert + * + * @static + * @return string + */ + public static function asc2hex32($string) + { + for ($i = 0; $i < strlen($string); $i++) { + $char = substr($string, $i, 1); + if (ord($char) < 32) { + $hex = dechex(ord($char)); + if (strlen($hex) == 1) $hex = '0'.$hex; + $string = str_replace($char, '\\'.$hex, $string); + } + } + return $string; + } + + /** + * Converts all Hex expressions ("\HEX") to their original ASCII characters + * + * @param string $string String to convert + * + * @static + * @author beni@php.net, heavily based on work from DavidSmith@byu.net + * @return string + */ + public static function hex2asc($string) + { + $string = preg_replace("/\\\([0-9A-Fa-f]{2})/e", "''.chr(hexdec('\\1')).''", $string); + return $string; + } + + /** + * Split an multivalued RDN value into an Array + * + * A RDN can contain multiple values, spearated by a plus sign. + * This function returns each separate ocl=value pair of the RDN part. + * + * If no multivalued RDN is detected, an array containing only + * the original rdn part is returned. + * + * For example, the multivalued RDN 'OU=Sales+CN=J. Smith' is exploded to: + * array([0] => 'OU=Sales', [1] => 'CN=J. Smith') + * + * The method trys to be smart if it encounters unescaped "+" characters, but may fail, + * so ensure escaped "+"es in attr names and attr values. + * + * [BUG] If you have a multivalued RDN with unescaped plus characters + * and there is a unescaped plus sign at the end of an value followed by an + * attribute name containing an unescaped plus, then you will get wrong splitting: + * $rdn = 'OU=Sales+C+N=J. Smith'; + * returns: + * array('OU=Sales+C', 'N=J. Smith'); + * The "C+" is treaten as value of the first pair instead as attr name of the second pair. + * To prevent this, escape correctly. + * + * @param string $rdn Part of an (multivalued) escaped RDN (eg. ou=foo OR ou=foo+cn=bar) + * + * @static + * @return array Array with the components of the multivalued RDN or Error + */ + public static function split_rdn_multival($rdn) + { + $rdns = preg_split('/(? $dn_value) { + $dn_value = $dn[$key]; // refresh value (foreach caches!) + // if the dn_value is not in attr=value format, then we had an + // unescaped separator character inside the attr name or the value. + // We assume, that it was the attribute value. + // [TODO] To solve this, we might ask the schema. Keep in mind, that UTIL class + // must remain independent from the other classes or connections. + if (!preg_match('/.+(? -- cgit v1.2.3-54-g00ecf From abe4be5438180f5e4f7618f60112023e5ccd788e Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Tue, 23 Mar 2010 22:42:30 -0400 Subject: Use $param instead of hardcoded 'attach' name. --- lib/mediafile.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/mediafile.php b/lib/mediafile.php index 10d90d008..1c96c42d7 100644 --- a/lib/mediafile.php +++ b/lib/mediafile.php @@ -171,7 +171,7 @@ class MediaFile return; } - if (!MediaFile::respectsQuota($user, $_FILES['attach']['size'])) { + if (!MediaFile::respectsQuota($user, $_FILES[$param]['size'])) { // Should never actually get here -- cgit v1.2.3-54-g00ecf From a3da5b24c9fc602e147304333ac059d0aae13de7 Mon Sep 17 00:00:00 2001 From: Julien C Date: Sun, 7 Feb 2010 18:29:42 +0100 Subject: Misc small fixes, plus a new hook in tag.php --- EVENTS.txt | 2 +- actions/tag.php | 13 +++++++++---- plugins/RSSCloud/RSSCloudPlugin.php | 2 +- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/EVENTS.txt b/EVENTS.txt index 2da6f3da6..cf9c6123f 100644 --- a/EVENTS.txt +++ b/EVENTS.txt @@ -141,7 +141,7 @@ StartLogout: Before logging out EndLogout: After logging out - $action: the logout action -ArgsInitialized: After the argument array has been initialized +ArgsInitialize: After the argument array has been initialized - $args: associative array of arguments, can be modified StartAddressData: Allows the site owner to provide additional information about themselves for contact (e.g., tagline, email, location) diff --git a/actions/tag.php b/actions/tag.php index ee9617b66..72668a0c9 100644 --- a/actions/tag.php +++ b/actions/tag.php @@ -102,12 +102,17 @@ class TagAction extends Action function showContent() { - $nl = new NoticeList($this->notice, $this); + if(Event::handle('StartTagShowContent', array($this))) { + + $nl = new NoticeList($this->notice, $this); - $cnt = $nl->show(); + $cnt = $nl->show(); - $this->pagination($this->page > 1, $cnt > NOTICES_PER_PAGE, - $this->page, 'tag', array('tag' => $this->tag)); + $this->pagination($this->page > 1, $cnt > NOTICES_PER_PAGE, + $this->page, 'tag', array('tag' => $this->tag)); + + Event::handle('EndTagShowContent', array($this)) + } } function isReadOnly($args) diff --git a/plugins/RSSCloud/RSSCloudPlugin.php b/plugins/RSSCloud/RSSCloudPlugin.php index 9f444c8bb..001106ace 100644 --- a/plugins/RSSCloud/RSSCloudPlugin.php +++ b/plugins/RSSCloud/RSSCloudPlugin.php @@ -105,7 +105,7 @@ class RSSCloudPlugin extends Plugin * @return boolean hook return */ - function onRouterInitialized(&$m) + function onRouterInitialized($m) { $m->connect('/main/rsscloud/request_notify', array('action' => 'RSSCloudRequestNotify')); -- cgit v1.2.3-54-g00ecf From 7b1b6045e61973b8835e7253d6b532a752535297 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Wed, 24 Mar 2010 00:00:55 -0700 Subject: Look for the first object in the Activity --- plugins/OStatus/actions/usersalmon.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/OStatus/actions/usersalmon.php b/plugins/OStatus/actions/usersalmon.php index ecdcfa193..6c360c49f 100644 --- a/plugins/OStatus/actions/usersalmon.php +++ b/plugins/OStatus/actions/usersalmon.php @@ -92,7 +92,7 @@ class UsersalmonAction extends SalmonAction throw new ClientException("Not to anyone in reply to anything!"); } - $existing = Notice::staticGet('uri', $this->act->object->id); + $existing = Notice::staticGet('uri', $this->act->objects[0]->id); if (!empty($existing)) { common_log(LOG_ERR, "Not saving notice '{$existing->uri}'; already exists."); @@ -143,7 +143,7 @@ class UsersalmonAction extends SalmonAction function handleFavorite() { - $notice = $this->getNotice($this->act->object); + $notice = $this->getNotice($this->act->objects[0]); $profile = $this->ensureProfile()->localProfile(); $old = Fave::pkeyGet(array('user_id' => $profile->id, @@ -164,7 +164,7 @@ class UsersalmonAction extends SalmonAction */ function handleUnfavorite() { - $notice = $this->getNotice($this->act->object); + $notice = $this->getNotice($this->act->objects[0]); $profile = $this->ensureProfile()->localProfile(); $fave = Fave::pkeyGet(array('user_id' => $profile->id, -- cgit v1.2.3-54-g00ecf From 647b3a1f6bff2f0c8f02ea65939ebde088742b16 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 24 Mar 2010 14:50:12 +0100 Subject: Moved print inside base stylesheet using media rules. One less HTTP GET. --- lib/action.php | 3 +-- theme/base/css/display.css | 32 ++++++++++++++++++++++++++++++++ theme/biz/css/base.css | 32 ++++++++++++++++++++++++++++++++ theme/biz/css/display.css | 3 ++- theme/cloudy/css/display.css | 30 ++++++++++++++++++++++++++++++ theme/default/css/display.css | 4 +++- theme/h4ck3r/css/base.css | 32 ++++++++++++++++++++++++++++++++ theme/h4ck3r/css/display.css | 5 ++++- theme/identica/css/display.css | 4 +++- theme/pigeonthoughts/css/base.css | 32 ++++++++++++++++++++++++++++++++ theme/pigeonthoughts/css/display.css | 4 +++- 11 files changed, 174 insertions(+), 7 deletions(-) diff --git a/lib/action.php b/lib/action.php index 491d7d481..09113a598 100644 --- a/lib/action.php +++ b/lib/action.php @@ -198,8 +198,7 @@ class Action extends HTMLOutputter // lawsuit if (Event::handle('StartShowStatusNetStyles', array($this)) && Event::handle('StartShowLaconicaStyles', array($this))) { - $this->cssLink('css/display.css',null,'screen, projection, tv'); - $this->cssLink('css/print.css','base','print'); + $this->cssLink('css/display.css',null, 'screen, projection, tv, print'); Event::handle('EndShowStatusNetStyles', array($this)); Event::handle('EndShowLaconicaStyles', array($this)); } diff --git a/theme/base/css/display.css b/theme/base/css/display.css index d58684efb..36f0533b1 100644 --- a/theme/base/css/display.css +++ b/theme/base/css/display.css @@ -7,6 +7,7 @@ * @link http://status.net/ */ +@media screen, projection, tv { * { margin:0; padding:0; } img { display:block; border:0; } a abbr { cursor: pointer; border-bottom:0; } @@ -1688,3 +1689,34 @@ width:auto; #bookmarklet #wrap { min-width:0; } + +}/*end of @media screen, projection, tv*/ + + +@media print { +a:after { background-color:#FFFFFF; } +a:not([href^="#"]):after { content:" <"attr(href)"> "; } +img { border:none; } +p { orphans: 2; widows: 1; } + +#site_nav_global_primary, +#site_nav_local_views, +#form_notice, +.pagination, +#site_nav_global_secondary, +.entity_actions, +.notice-options, +#aside_primary, +.form_subscription_edit .submit { +display:none; +} +.timestamp dt, .timestamp dd, +.device dt, .device dd { +display:inline; +} +.profiles li, +.notices li { +margin-bottom:18px; +} + +}/*end of @media print*/ diff --git a/theme/biz/css/base.css b/theme/biz/css/base.css index 2c2ab33a0..43b8e4656 100644 --- a/theme/biz/css/base.css +++ b/theme/biz/css/base.css @@ -7,6 +7,7 @@ * @link http://status.net/ */ +@media screen, projection, tv { * { margin:0; padding:0; } img { display:block; border:0; } a abbr { cursor: pointer; border-bottom:0; } @@ -1358,3 +1359,34 @@ display:none; .guide { clear:both; } + +}/*end of @media screen, projection, tv*/ + + +@media print { +a:after { background-color:#FFFFFF; } +a:not([href^="#"]):after { content:" <"attr(href)"> "; } +img { border:none; } +p { orphans: 2; widows: 1; } + +#site_nav_global_primary, +#site_nav_local_views, +#form_notice, +.pagination, +#site_nav_global_secondary, +.entity_actions, +.notice-options, +#aside_primary, +.form_subscription_edit .submit { +display:none; +} +.timestamp dt, .timestamp dd, +.device dt, .device dd { +display:inline; +} +.profiles li, +.notices li { +margin-bottom:18px; +} + +}/*end of @media print*/ diff --git a/theme/biz/css/display.css b/theme/biz/css/display.css index 3e97444f1..cafb152dc 100644 --- a/theme/biz/css/display.css +++ b/theme/biz/css/display.css @@ -7,8 +7,9 @@ * @link http://status.net/ */ -@import url(base.css); +@import url(base.css) screen, projection, tv, print; +@media screen, projection, tv { html { background-color:#144A6E; } diff --git a/theme/cloudy/css/display.css b/theme/cloudy/css/display.css index 5bc32e6d9..d9e9f3ce2 100644 --- a/theme/cloudy/css/display.css +++ b/theme/cloudy/css/display.css @@ -7,6 +7,7 @@ * @link http://status.net/ */ +@media screen, projection, tv { * { margin:0; padding:0; } img { display:block; border:0; } a abbr { cursor: pointer; border-bottom:0; } @@ -2099,4 +2100,33 @@ border-left-color:#FFFFFF; #footer { background-color:#FFFFFF; } +}/*end of @media screen, projection, tv*/ + +@media print { +a:after { background-color:#FFFFFF; } +a:not([href^="#"]):after { content:" <"attr(href)"> "; } +img { border:none; } +p { orphans: 2; widows: 1; } + +#site_nav_global_primary, +#site_nav_local_views, +#form_notice, +.pagination, +#site_nav_global_secondary, +.entity_actions, +.notice-options, +#aside_primary, +.form_subscription_edit .submit { +display:none; +} +.timestamp dt, .timestamp dd, +.device dt, .device dd { +display:inline; +} +.profiles li, +.notices li { +margin-bottom:18px; +} + +}/*end of @media print*/ diff --git a/theme/default/css/display.css b/theme/default/css/display.css index d7f15cc46..7ccd234cd 100644 --- a/theme/default/css/display.css +++ b/theme/default/css/display.css @@ -7,8 +7,9 @@ * @link http://status.net/ */ -@import url(../../base/css/display.css); +@import url(../../base/css/display.css) screen, projection, tv, print; +@media screen, projection, tv { body, a:active { background-color:#CEE1E9; @@ -516,3 +517,4 @@ background-position:90% 47%; background-position:10% 47%; } +}/*end of @media screen, projection, tv*/ diff --git a/theme/h4ck3r/css/base.css b/theme/h4ck3r/css/base.css index 18ea742a5..0302653fd 100644 --- a/theme/h4ck3r/css/base.css +++ b/theme/h4ck3r/css/base.css @@ -7,6 +7,7 @@ * @link http://status.net/ */ +@media screen, projection, tv { * { margin:0; padding:0; } img { display:block; border:0; } a abbr { cursor: pointer; border-bottom:0; } @@ -1137,3 +1138,34 @@ display:none; .guide { clear:both; } + +}/*end of @media screen, projection, tv*/ + + +@media print { +a:after { background-color:#FFFFFF; } +a:not([href^="#"]):after { content:" <"attr(href)"> "; } +img { border:none; } +p { orphans: 2; widows: 1; } + +#site_nav_global_primary, +#site_nav_local_views, +#form_notice, +.pagination, +#site_nav_global_secondary, +.entity_actions, +.notice-options, +#aside_primary, +.form_subscription_edit .submit { +display:none; +} +.timestamp dt, .timestamp dd, +.device dt, .device dd { +display:inline; +} +.profiles li, +.notices li { +margin-bottom:18px; +} + +}/*end of @media print*/ diff --git a/theme/h4ck3r/css/display.css b/theme/h4ck3r/css/display.css index 58b3f242a..7112765ab 100644 --- a/theme/h4ck3r/css/display.css +++ b/theme/h4ck3r/css/display.css @@ -7,8 +7,9 @@ * @link http://status.net/ */ -@import url(base.css); +@import url(base.css) screen, projection, tv, print; +@media screen, projection, tv { html, body, a:active { @@ -234,3 +235,5 @@ background-position:10% 45%; background-image:url(../../base/images/icons/twotone/green/arrow-right.gif); background-position:90% 45%; } + +}/*end of @media screen, projection, tv*/ diff --git a/theme/identica/css/display.css b/theme/identica/css/display.css index d9f39e780..3972657a7 100644 --- a/theme/identica/css/display.css +++ b/theme/identica/css/display.css @@ -7,8 +7,9 @@ * @link http://status.net/ */ -@import url(../../base/css/display.css); +@import url(../../base/css/display.css) screen, projection, tv, print; +@media screen, projection, tv { body, a:active { background-color:#F0F2F5; @@ -515,3 +516,4 @@ background-position:90% 47%; background-position:10% 47%; } +}/*end of @media screen, projection, tv*/ diff --git a/theme/pigeonthoughts/css/base.css b/theme/pigeonthoughts/css/base.css index 2814260bd..bd12e6eaa 100644 --- a/theme/pigeonthoughts/css/base.css +++ b/theme/pigeonthoughts/css/base.css @@ -7,6 +7,7 @@ * @link http://status.net/ */ +@media screen, projection, tv { * { margin:0; padding:0; } img { display:block; border:0; } a abbr { cursor: pointer; border-bottom:0; } @@ -1383,3 +1384,34 @@ display:none; .guide { clear:both; } + +}/*end of @media screen, projection, tv*/ + + +@media print { +a:after { background-color:#FFFFFF; } +a:not([href^="#"]):after { content:" <"attr(href)"> "; } +img { border:none; } +p { orphans: 2; widows: 1; } + +#site_nav_global_primary, +#site_nav_local_views, +#form_notice, +.pagination, +#site_nav_global_secondary, +.entity_actions, +.notice-options, +#aside_primary, +.form_subscription_edit .submit { +display:none; +} +.timestamp dt, .timestamp dd, +.device dt, .device dd { +display:inline; +} +.profiles li, +.notices li { +margin-bottom:18px; +} + +}/*end of @media print*/ diff --git a/theme/pigeonthoughts/css/display.css b/theme/pigeonthoughts/css/display.css index dfeb01b48..de5164ea8 100644 --- a/theme/pigeonthoughts/css/display.css +++ b/theme/pigeonthoughts/css/display.css @@ -7,8 +7,9 @@ * @link http://status.net/ */ -@import url(base.css); +@import url(base.css) screen, projection, tv, print; +@media screen, projection, tv { html { background:url(../images/illustrations/illu_pigeons-01.png) no-repeat 0 100%; } @@ -496,3 +497,4 @@ background-position:90% 47%; background-position:10% 47%; } +}/*end of @media screen, projection, tv*/ -- cgit v1.2.3-54-g00ecf From 5808f86584a64d6dbd12e070b268f40c043917e4 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 24 Mar 2010 15:13:38 +0100 Subject: Removed print stylesheet --- theme/base/css/print.css | 36 ------------------------------------ 1 file changed, 36 deletions(-) delete mode 100644 theme/base/css/print.css diff --git a/theme/base/css/print.css b/theme/base/css/print.css deleted file mode 100644 index 094d07fed..000000000 --- a/theme/base/css/print.css +++ /dev/null @@ -1,36 +0,0 @@ -/** theme: base - * - * @package StatusNet - * @author Sarven Capadisli - * @copyright 2009 StatusNet, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://status.net/ - */ - -a:after { background-color:#fff; } -a:not([href^="#"]):after { content:" ( "attr(href)" ) "; } - -img { border:none; } -p { orphans: 2; widows: 1; } - -#site_nav_global_primary, -#site_nav_local_views, -#form_notice, -.pagination, -#site_nav_global_secondary, -.entity_actions, -.notice-options, -#aside_primary, -.form_subscription_edit .submit { -display:none; -} - -.timestamp dt, .timestamp dd, -.device dt, .device dd { -display:inline; -} - -.profiles li, -.notices li { -margin-bottom:18px; -} -- cgit v1.2.3-54-g00ecf From 10410907a0a6f1af9fb18cb3341db792baa49cf3 Mon Sep 17 00:00:00 2001 From: James Walker Date: Wed, 24 Mar 2010 14:27:35 -0400 Subject: A bit safer checking in the keypair parsing --- plugins/OStatus/lib/magicenvelope.php | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/plugins/OStatus/lib/magicenvelope.php b/plugins/OStatus/lib/magicenvelope.php index 9266cab5c..799b5e307 100644 --- a/plugins/OStatus/lib/magicenvelope.php +++ b/plugins/OStatus/lib/magicenvelope.php @@ -59,12 +59,21 @@ class MagicEnvelope } if ($xrd->links) { if ($link = Discovery::getService($xrd->links, Magicsig::PUBLICKEYREL)) { - list($type, $keypair) = explode(',', $link['href']); - if (empty($keypair)) { + $keypair = false; + $parts = explode(',', $link['href']); + if (count($parts) == 2) { + $keypair = $parts[1]; + } else { // Backwards compatibility check for separator bug in 0.9.0 - list($type, $keypair) = explode(';', $link['href']); + $parts = explode(';', $link['href']); + if (count($parts) == 2) { + $keypair = $parts[1]; + } + } + + if ($keypair) { + return $keypair; } - return $keypair; } } throw new Exception('Unable to locate signer public key'); -- cgit v1.2.3-54-g00ecf From c4273f0ef32f65267ddf43dc5dc6977659a0697e Mon Sep 17 00:00:00 2001 From: James Walker Date: Wed, 24 Mar 2010 15:15:20 -0400 Subject: Check for 0.9.0 bad keys from old Crypt_RSA library --- plugins/OStatus/classes/Magicsig.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/plugins/OStatus/classes/Magicsig.php b/plugins/OStatus/classes/Magicsig.php index 87c684c93..1a9541495 100644 --- a/plugins/OStatus/classes/Magicsig.php +++ b/plugins/OStatus/classes/Magicsig.php @@ -50,7 +50,15 @@ class Magicsig extends Memcached_DataObject { $obj = parent::staticGet(__CLASS__, $k, $v); if (!empty($obj)) { - return Magicsig::fromString($obj->keypair); + $obj = Magicsig::fromString($obj->keypair); + + // Double check keys: Crypt_RSA did not + // consistently generate good keypairs. + // We've also moved to 1024 bit keys. + if (strlen($obj->publicKey->modulus->toBits()) != 1024) { + $obj->delete(); + return false; + } } return $obj; -- cgit v1.2.3-54-g00ecf From cfca789b34eeac6c531c4c7aac622ed2e2510390 Mon Sep 17 00:00:00 2001 From: James Walker Date: Wed, 24 Mar 2010 15:18:41 -0400 Subject: Updated Math_Biginteger from upstream - removing safe* workarounds --- plugins/OStatus/classes/Magicsig.php | 8 ++++---- plugins/OStatus/extlib/Math/BigInteger.php | 8 ++++---- plugins/OStatus/lib/safecrypt_rsa.php | 18 ------------------ plugins/OStatus/lib/safemath_biginteger.php | 20 -------------------- 4 files changed, 8 insertions(+), 46 deletions(-) delete mode 100644 plugins/OStatus/lib/safecrypt_rsa.php delete mode 100644 plugins/OStatus/lib/safemath_biginteger.php diff --git a/plugins/OStatus/classes/Magicsig.php b/plugins/OStatus/classes/Magicsig.php index 1a9541495..c7dd17c26 100644 --- a/plugins/OStatus/classes/Magicsig.php +++ b/plugins/OStatus/classes/Magicsig.php @@ -108,16 +108,16 @@ class Magicsig extends Memcached_DataObject public function generate($user_id) { - $rsa = new SafeCrypt_RSA(); + $rsa = new Crypt_RSA(); $keypair = $rsa->createKey(); $rsa->loadKey($keypair['privatekey']); - $this->privateKey = new SafeCrypt_RSA(); + $this->privateKey = new Crypt_RSA(); $this->privateKey->loadKey($keypair['privatekey']); - $this->publicKey = new SafeCrypt_RSA(); + $this->publicKey = new Crypt_RSA(); $this->publicKey->loadKey($keypair['publickey']); $this->user_id = $user_id; @@ -169,7 +169,7 @@ class Magicsig extends Memcached_DataObject { common_log(LOG_DEBUG, "Adding ".$type." key: (".$mod .', '. $exp .")"); - $rsa = new SafeCrypt_RSA(); + $rsa = new Crypt_RSA(); $rsa->signatureMode = CRYPT_RSA_SIGNATURE_PKCS1; $rsa->setHash('sha256'); $rsa->modulus = new Math_BigInteger(base64_url_decode($mod), 256); diff --git a/plugins/OStatus/extlib/Math/BigInteger.php b/plugins/OStatus/extlib/Math/BigInteger.php index 9733351d4..4373805f9 100644 --- a/plugins/OStatus/extlib/Math/BigInteger.php +++ b/plugins/OStatus/extlib/Math/BigInteger.php @@ -67,7 +67,7 @@ * @author Jim Wigginton * @copyright MMVI Jim Wigginton * @license http://www.gnu.org/licenses/lgpl.txt - * @version $Id: BigInteger.php,v 1.31 2010/03/01 17:28:19 terrafrost Exp $ + * @version $Id: BigInteger.php,v 1.33 2010/03/22 22:32:03 terrafrost Exp $ * @link http://pear.php.net/package/Math_BigInteger */ @@ -294,7 +294,7 @@ class Math_BigInteger { $this->value = array(); } - if ($x === 0) { + if (empty($x)) { return; } @@ -718,7 +718,7 @@ class Math_BigInteger { * * Will be called, automatically, when serialize() is called on a Math_BigInteger object. * - * @see __wakeup + * @see __wakeup() * @access public */ function __sleep() @@ -740,7 +740,7 @@ class Math_BigInteger { * * Will be called, automatically, when unserialize() is called on a Math_BigInteger object. * - * @see __sleep + * @see __sleep() * @access public */ function __wakeup() diff --git a/plugins/OStatus/lib/safecrypt_rsa.php b/plugins/OStatus/lib/safecrypt_rsa.php deleted file mode 100644 index f3aa2c928..000000000 --- a/plugins/OStatus/lib/safecrypt_rsa.php +++ /dev/null @@ -1,18 +0,0 @@ -zero = new SafeMath_BigInteger(); - } -} - diff --git a/plugins/OStatus/lib/safemath_biginteger.php b/plugins/OStatus/lib/safemath_biginteger.php deleted file mode 100644 index c05e24d1e..000000000 --- a/plugins/OStatus/lib/safemath_biginteger.php +++ /dev/null @@ -1,20 +0,0 @@ -hex == '') { - $this->hex = '0'; - } - parent::__wakeup(); - } -} - -- cgit v1.2.3-54-g00ecf From 9e0b9857f435bf45d353bc88eb2462d483bcc46b Mon Sep 17 00:00:00 2001 From: James Walker Date: Wed, 24 Mar 2010 15:26:03 -0400 Subject: Make sure we're requiring the library --- plugins/OStatus/classes/Magicsig.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/OStatus/classes/Magicsig.php b/plugins/OStatus/classes/Magicsig.php index c7dd17c26..864fef628 100644 --- a/plugins/OStatus/classes/Magicsig.php +++ b/plugins/OStatus/classes/Magicsig.php @@ -27,6 +27,8 @@ * @link http://status.net/ */ +require_once 'Crypt/RSA.php'; + class Magicsig extends Memcached_DataObject { -- cgit v1.2.3-54-g00ecf From e7ae36b52a8192021f3a48f1a3929bbeee877ccd Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 24 Mar 2010 20:50:07 +0100 Subject: Updated tag list output in subscriptions list. Matches userprofile. --- lib/subscriptionlist.php | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/subscriptionlist.php b/lib/subscriptionlist.php index e1207774f..fc8f33f2e 100644 --- a/lib/subscriptionlist.php +++ b/lib/subscriptionlist.php @@ -113,12 +113,13 @@ class SubscriptionListItem extends ProfileListItem $this->out->elementStart('ul', 'tags xoxo'); foreach ($tags as $tag) { $this->out->elementStart('li'); - $this->out->element('span', 'mark_hash', '#'); - $this->out->element('a', array('rel' => 'tag', - 'href' => common_local_url($this->action->trimmed('action'), - array('nickname' => $this->owner->nickname, - 'tag' => $tag))), - $tag); + // Avoid space by using raw output. + $pt = '#'; + $this->out->raw($pt); $this->out->elementEnd('li'); } $this->out->elementEnd('ul'); -- cgit v1.2.3-54-g00ecf From 09ff213d1c6b8dc42f28b9c637431bafa54146ec Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 24 Mar 2010 20:58:13 +0100 Subject: Using hCard label instead of location. Matches userprofile. --- lib/profilelist.php | 2 +- theme/base/css/display.css | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/profilelist.php b/lib/profilelist.php index d970e605a..3e5513895 100644 --- a/lib/profilelist.php +++ b/lib/profilelist.php @@ -213,7 +213,7 @@ class ProfileListItem extends Widget { if (!empty($this->profile->location)) { $this->out->text(' '); - $this->out->elementStart('span', 'location'); + $this->out->elementStart('span', 'label'); $this->out->raw($this->highlight($this->profile->location)); $this->out->elementEnd('span'); } diff --git a/theme/base/css/display.css b/theme/base/css/display.css index 36f0533b1..b0ab02bce 100644 --- a/theme/base/css/display.css +++ b/theme/base/css/display.css @@ -926,7 +926,7 @@ display:inline; } .profile .entity_profile .fn, -.profile .entity_profile .location { +.profile .entity_profile .label { margin-left:11px; margin-bottom:4px; width:auto; -- cgit v1.2.3-54-g00ecf From 9fe12be41eec8132fcfa6da2dc5fad926a932286 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 24 Mar 2010 21:34:53 +0100 Subject: Using unique @for, @id pair for jabber and sms options in subscriptions --- actions/subscriptions.php | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/actions/subscriptions.php b/actions/subscriptions.php index ba6171ef4..7b10b3425 100644 --- a/actions/subscriptions.php +++ b/actions/subscriptions.php @@ -196,12 +196,30 @@ class SubscriptionsListItem extends SubscriptionListItem $this->out->hidden('token', common_session_token()); $this->out->hidden('profile', $this->profile->id); if (common_config('xmpp', 'enabled')) { - $this->out->checkbox('jabber', _('Jabber'), $sub->jabber); + $attrs = array('name' => 'jabber', + 'type' => 'checkbox', + 'class' => 'checkbox', + 'id' => 'jabber-'.$this->profile->id); + if ($sub->jabber) { + $attrs['checked'] = 'checked'; + } + + $this->out->element('input', $attrs); + $this->out->element('label', array('for' => 'jabber-'.$this->profile->id), _('Jabber')); } else { $this->out->hidden('jabber', $sub->jabber); } if (common_config('sms', 'enabled')) { - $this->out->checkbox('sms', _('SMS'), $sub->sms); + $attrs = array('name' => 'sms', + 'type' => 'checkbox', + 'class' => 'checkbox', + 'id' => 'sms-'.$this->profile->id); + if ($sub->sms) { + $attrs['checked'] = 'checked'; + } + + $this->out->element('input', $attrs); + $this->out->element('label', array('for' => 'sms-'.$this->profile->id), _('SMS')); } else { $this->out->hidden('sms', $sub->sms); } -- cgit v1.2.3-54-g00ecf From a954fd65ba00328cd1a76e620113d2f639340aaf Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 24 Mar 2010 13:36:57 -0700 Subject: Fix for API group methods, caused failure or output corruption when pulling up local groups by name in api/statusnet/groups/is_member.json/xml --- lib/apiaction.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/apiaction.php b/lib/apiaction.php index e6aaf9316..9fc1a0779 100644 --- a/lib/apiaction.php +++ b/lib/apiaction.php @@ -1273,7 +1273,7 @@ class ApiAction extends Action if (empty($local)) { return null; } else { - return User_group::staticGet('id', $local->id); + return User_group::staticGet('id', $local->group_id); } } -- cgit v1.2.3-54-g00ecf From fd608c0de03294eaecb22ab11a0c6d8945c11f38 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 24 Mar 2010 13:36:57 -0700 Subject: Fix for API group methods, caused failure or output corruption when pulling up local groups by name in api/statusnet/groups/is_member.json/xml --- lib/apiaction.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/apiaction.php b/lib/apiaction.php index e4a1df3d1..5cedfaefe 100644 --- a/lib/apiaction.php +++ b/lib/apiaction.php @@ -1239,7 +1239,7 @@ class ApiAction extends Action if (empty($local)) { return null; } else { - return User_group::staticGet('id', $local->id); + return User_group::staticGet('id', $local->group_id); } } -- cgit v1.2.3-54-g00ecf From 2c50d4aa4487e5317e5b71909691acc3345d4a9e Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 24 Mar 2010 22:40:59 +0100 Subject: location -> label class for cloudy --- theme/cloudy/css/display.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/theme/cloudy/css/display.css b/theme/cloudy/css/display.css index d9e9f3ce2..d1b9d198d 100644 --- a/theme/cloudy/css/display.css +++ b/theme/cloudy/css/display.css @@ -873,7 +873,7 @@ display:inline; } .profile .entity_profile .fn, -.profile .entity_profile .location { +.profile .entity_profile .label { margin-left:11px; margin-bottom:4px; width:auto; -- cgit v1.2.3-54-g00ecf From 97e83112d249cd2fbb281da59c80d43e0fe33818 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 24 Mar 2010 23:31:30 +0100 Subject: A lot of updates to keep the themes current (at least in functionality) --- theme/biz/css/base.css | 134 +++++++++++++++++-- theme/biz/css/display.css | 12 +- theme/cloudy/css/display.css | 35 +++-- theme/h4ck3r/css/base.css | 249 ++++++++++++++++++++++++++++++----- theme/h4ck3r/css/display.css | 9 +- theme/pigeonthoughts/css/base.css | 83 ++++++++---- theme/pigeonthoughts/css/display.css | 22 +++- 7 files changed, 461 insertions(+), 83 deletions(-) diff --git a/theme/biz/css/base.css b/theme/biz/css/base.css index 43b8e4656..3650988f3 100644 --- a/theme/biz/css/base.css +++ b/theme/biz/css/base.css @@ -849,7 +849,8 @@ margin-right:11px; /* NOTICE */ .notice, -.profile { +.profile, +.application { position:relative; padding-top:11px; padding-bottom:11px; @@ -862,10 +863,15 @@ border-top-style:dotted; .notices li { list-style-type:none; } -.notices li.hover { -border-radius:4px; --moz-border-radius:4px; --webkit-border-radius:4px; +.notices .notices { +margin-top:7px; +margin-left:2%; +width:98%; +float:left; +} +.mark-top { +border-top-width:1px; +border-top-style:solid; } /* NOTICES */ @@ -996,25 +1002,22 @@ text-transform:lowercase; .dialogbox { position:absolute; -top:-4px; -right:29px; +top:-1px; +right:-1px; z-index:9; -min-width:199px; float:none; -background-color:#FFF; padding:11px; border-radius:7px; -moz-border-radius:7px; -webkit-border-radius:7px; border-style:solid; border-width:1px; -border-color:#DDDDDD; --moz-box-shadow:3px 7px 5px rgba(194, 194, 194, 0.7); } .dialogbox legend { display:block !important; margin-right:18px; +margin-bottom:18px; } .dialogbox button.close { @@ -1023,11 +1026,22 @@ right:3px; top:3px; } +.dialogbox .form_guide { +font-weight:normal; +padding:0; +} + .dialogbox .submit_dialogbox { font-weight:bold; text-indent:0; min-width:46px; } +.dialogbox input { +padding-left:4px; +} +.dialogbox fieldset { +margin-bottom:0; +} #wrap form.processing input.submit, .entity_actions a.processing, @@ -1103,6 +1117,104 @@ width:16px; height:16px; } +.notice .attachment { +position:relative; +padding-left:16px; +} +.notice .attachment.more { +text-indent:-9999px; +width:16px; +height:16px; +display:inline-block; +overflow:hidden; +vertical-align:middle; +margin-left:4px; +} + +#attachments .attachment, +.notice .attachment.more { +padding-left:0; +} +.notice .attachment img { +position:absolute; +top:18px; +left:0; +z-index:99; +} +#shownotice .notice .attachment img { +position:static; +} + +#attachments { +clear:both; +float:left; +width:100%; +margin-top:18px; +} +#attachments dt { +font-weight:bold; +font-size:1.3em; +margin-bottom:4px; +} + +#attachments ol li { +margin-bottom:18px; +list-style-type:decimal; +float:left; +clear:both; +} + +#jOverlayContent, +#jOverlayContent #content, +#jOverlayContent #content_inner { +width: auto !important; +margin-bottom:0; +} +#jOverlayContent #content { +padding:11px; +min-height:auto; +} +#jOverlayContent .entry-title { +display:block; +margin-bottom:11px; +} +#jOverlayContent button { +position:absolute; +top:0; +right:0; +} +#jOverlayContent h1 { +max-width:425px; +} +#jOverlayContent #content { +border-radius:7px; +-moz-border-radius:7px; +-webkit-border-radius:7px; +} +#jOverlayLoading { +top:5%; +left:40%; +} +#attachment_view img { +max-width:480px; +max-height:480px; +} +#attachment_view #oembed_info { +margin-top:11px; +} +#attachment_view #oembed_info dt, +#attachment_view #oembed_info dd { +float:left; +} +#attachment_view #oembed_info dt { +clear:left; +margin-right:11px; +font-weight:bold; +} +#attachment_view #oembed_info dt:after { +content: ":"; +} + #usergroups #new_group { float: left; margin-right: 2em; diff --git a/theme/biz/css/display.css b/theme/biz/css/display.css index cafb152dc..b2143cce3 100644 --- a/theme/biz/css/display.css +++ b/theme/biz/css/display.css @@ -242,7 +242,9 @@ border-color:#FFFFFF; #content, #site_nav_local_views .current a, .entity_send-a-message .form_notice, -.entity_moderation:hover ul { +.entity_moderation:hover ul, +.entity_role:hover ul, +.dialogbox { background-color:#FFFFFF; } @@ -359,6 +361,9 @@ background-position: 5px -1973px; .notice .attachment { background-position:0 -394px; } +.notice .attachment.more { +background-position:0 -2770px; +} #attachments .attachment { background:none; } @@ -381,14 +386,19 @@ background-position:0 -1582px; background-position:0 -1648px; } +.notices .attachment.more, .notices div.entry-content, .notices div.notice-options { opacity:0.4; } +.notices li:hover .attachment.more, .notices li:hover div.entry-content, .notices li:hover div.notice-options { opacity:1; } +.opaque { +opacity:1 !important; +} div.notice-options a, div.notice-options input { font-family:sans-serif; diff --git a/theme/cloudy/css/display.css b/theme/cloudy/css/display.css index d1b9d198d..5c3d8b5f7 100644 --- a/theme/cloudy/css/display.css +++ b/theme/cloudy/css/display.css @@ -901,7 +901,8 @@ margin-right:11px; /* NOTICE */ .notice, -.profile { +.profile, +.application { position:relative; padding-top:11px; padding-bottom:11px; @@ -1032,25 +1033,22 @@ left:0; .dialogbox { position:absolute; -top:-4px; -right:29px; +top:-1px; +right:-1px; z-index:9; -min-width:199px; float:none; -background-color:#FFF; padding:11px; border-radius:7px; -moz-border-radius:7px; -webkit-border-radius:7px; border-style:solid; border-width:1px; -border-color:#DDDDDD; --moz-box-shadow:3px 7px 5px rgba(194, 194, 194, 0.7); } .dialogbox legend { display:block !important; margin-right:18px; +margin-bottom:18px; } .dialogbox button.close { @@ -1059,9 +1057,21 @@ right:3px; top:3px; } +.dialogbox .form_guide { +font-weight:normal; +padding:0; +} + .dialogbox .submit_dialogbox { -text-indent:0; font-weight:bold; +text-indent:0; +min-width:46px; +} +.dialogbox input { +padding-left:4px; +} +.dialogbox fieldset { +margin-bottom:0; } .notice-options { @@ -1808,7 +1818,9 @@ border-color:#FFFFFF; #content, #site_nav_local_views .current a, .entity_send-a-message .form_notice, -.entity_moderation:hover ul { +.entity_moderation:hover ul, +.entity_role:hover ul, +.dialogbox { background-color:#FFFFFF; } @@ -1940,6 +1952,9 @@ background-position: 0 -1714px; .notice .attachment { background-position:0 -394px; } +.notice .attachment.more { +background-position:0 -2770px; +} #attachments .attachment { background:none; } @@ -1962,10 +1977,12 @@ background-position:0 -1582px; background-position:0 -1648px; } +.notices .attachment.more, .notices div.entry-content, .notices div.notice-options { opacity:0.4; } +.notices li:hover .attachment.more, .notices li:hover div.entry-content, .notices li:hover div.notice-options { opacity:1; diff --git a/theme/h4ck3r/css/base.css b/theme/h4ck3r/css/base.css index 0302653fd..4c0e74218 100644 --- a/theme/h4ck3r/css/base.css +++ b/theme/h4ck3r/css/base.css @@ -701,7 +701,8 @@ margin-right:11px; /* NOTICE */ .notice, -.profile { +.profile, +.application { position:relative; padding-top:11px; padding-bottom:11px; @@ -709,11 +710,21 @@ clear:both; float:left; width:100%; border-top-width:1px; -border-top-style:dashed; +border-top-style:dotted; } .notices li { list-style-type:none; } +.notices .notices { +margin-top:7px; +margin-left:2%; +width:98%; +float:left; +} +.mark-top { +border-top-width:1px; +border-top-style:solid; +} /* NOTICES */ @@ -813,74 +824,248 @@ text-transform:lowercase; } -.notice-options { -padding-left:2%; +.notice .notice-options a, +.notice .notice-options input { float:left; -width:50%; +font-size:1.025em; +} + +.notice div.entry-content .timestamp { +display:inline-block; +} + +.entry-content .repeat { +display:block; +} +.entry-content .repeat .photo { +float:none; +margin-right:1px; +position:relative; +top:4px; +left:0; +} + +.dialogbox { +position:absolute; +top:-1px; +right:-1px; +z-index:9; +float:none; +padding:11px; +border-radius:7px; +-moz-border-radius:7px; +-webkit-border-radius:7px; +border-style:solid; +border-width:1px; +} + +.dialogbox legend { +display:block !important; +margin-right:18px; +margin-bottom:18px; +} + +.dialogbox button.close { +position:absolute; +right:3px; +top:3px; +} + +.dialogbox .form_guide { +font-weight:normal; +padding:0; +} + +.dialogbox .submit_dialogbox { +font-weight:bold; +text-indent:0; +min-width:46px; +} +.dialogbox input { +padding-left:4px; +} +.dialogbox fieldset { +margin-bottom:0; +} + +#wrap form.processing input.submit, +.entity_actions a.processing, +.dialogbox.processing .submit_dialogbox { +cursor:wait; +outline:none; +text-indent:-9999px; +} + +.form_repeat.dialogbox { +top:-4px; +right:29px; +min-width:199px; +} + +.notice-options { position:relative; font-size:0.95em; -width:12.5%; +width:113px; float:right; +margin-top:3px; +margin-right:4px; } .notice-options a { float:left; } -.notice-options .notice_delete, .notice-options .notice_reply, +.notice-options .form_repeat, .notice-options .form_favor, -.notice-options .form_disfavor { -position:absolute; -top:0; +.notice-options .form_disfavor, +.notice-options .repeated { +float:left; +margin-left:14.2%; } .notice-options .form_favor, .notice-options .form_disfavor { -left:0; -} -.notice-options .notice_reply { -left:29px; -} -.notice-options .notice_delete { -right:0; -} -.notice-options .notice_reply dt { -display:none; +margin-left:0; } - .notice-options input, -.notice-options a { +.notice-options a, +.notice-options .repeated { text-indent:-9999px; outline:none; } - -.notice-options .notice_reply a, .notice-options input.submit { display:block; border:0; } -.notice-options .notice_reply a, -.notice-options .notice_delete a { +.notice-options .notice_reply, +.notice-options .notice_delete { text-decoration:none; -padding-left:16px; } - +.notice .notice-options .notice_delete { +float:right; +} .notice-options form input.submit { width:16px; -padding:2px 0; +height:16px; +padding:0; +border-radius:0; +-moz-border-radius:0; +-webkit-border-radius:0; } - -.notice-options .notice_delete dt, +.notice-options .form_repeat legend, .notice-options .form_favor legend, .notice-options .form_disfavor legend { display:none; } -.notice-options .notice_delete fieldset, +.notice-options .form_repeat fieldset, .notice-options .form_favor fieldset, .notice-options .form_disfavor fieldset { border:0; padding:0; } +.notice-options a, +.notice-options .repeated { +width:16px; +height:16px; +} + + +.notice .attachment { +position:relative; +padding-left:16px; +} +.notice .attachment.more { +text-indent:-9999px; +width:16px; +height:16px; +display:inline-block; +overflow:hidden; +vertical-align:middle; +margin-left:4px; +} + +#attachments .attachment, +.notice .attachment.more { +padding-left:0; +} +.notice .attachment img { +position:absolute; +top:18px; +left:0; +z-index:99; +} +#shownotice .notice .attachment img { +position:static; +} + +#attachments { +clear:both; +float:left; +width:100%; +margin-top:18px; +} +#attachments dt { +font-weight:bold; +font-size:1.3em; +margin-bottom:4px; +} + +#attachments ol li { +margin-bottom:18px; +list-style-type:decimal; +float:left; +clear:both; +} +#jOverlayContent, +#jOverlayContent #content, +#jOverlayContent #content_inner { +width: auto !important; +margin-bottom:0; +} +#jOverlayContent #content { +padding:11px; +min-height:auto; +} +#jOverlayContent .entry-title { +display:block; +margin-bottom:11px; +} +#jOverlayContent button { +position:absolute; +top:0; +right:0; +} +#jOverlayContent h1 { +max-width:425px; +} +#jOverlayContent #content { +border-radius:7px; +-moz-border-radius:7px; +-webkit-border-radius:7px; +} +#jOverlayLoading { +top:5%; +left:40%; +} +#attachment_view img { +max-width:480px; +max-height:480px; +} +#attachment_view #oembed_info { +margin-top:11px; +} +#attachment_view #oembed_info dt, +#attachment_view #oembed_info dd { +float:left; +} +#attachment_view #oembed_info dt { +clear:left; +margin-right:11px; +font-weight:bold; +} +#attachment_view #oembed_info dt:after { +content: ":"; +} #usergroups #new_group { float: left; diff --git a/theme/h4ck3r/css/display.css b/theme/h4ck3r/css/display.css index 7112765ab..276659dce 100644 --- a/theme/h4ck3r/css/display.css +++ b/theme/h4ck3r/css/display.css @@ -200,14 +200,19 @@ background:transparent url(../../base/images/icons/twotone/green/disfavourite.gi background:transparent url(../../base/images/icons/twotone/green/trash.gif) no-repeat 0 45%; } +.notices .attachment.more, .notices div.entry-content, .notices div.notice-options { opacity:0.4; } -.notices li.hover div.entry-content, -.notices li.hover div.notice-options { +.notices li:hover .attachment.more, +.notices li:hover div.entry-content, +.notices li:hover div.notice-options { opacity:1; } +.opaque { +opacity:1 !important; +} div.entry-content { color:#ccc; } diff --git a/theme/pigeonthoughts/css/base.css b/theme/pigeonthoughts/css/base.css index bd12e6eaa..bc2e24dc5 100644 --- a/theme/pigeonthoughts/css/base.css +++ b/theme/pigeonthoughts/css/base.css @@ -792,25 +792,30 @@ margin-right:11px; /* NOTICE */ .notice, -.profile { +.profile, +.application { position:relative; -padding:11px 2%; +padding-top:11px; +padding-bottom:11px; clear:both; float:left; -width:95.7%; -border-width:1px; -border-style:solid; -margin-bottom:11px; +width:100%; +border-top-width:1px; +border-top-style:dotted; } .notices li { list-style-type:none; } .notices .notices { margin-top:7px; -margin-left:5%; -width:95%; +margin-left:2%; +width:98%; float:left; } +.mark-top { +border-top-width:1px; +border-top-style:solid; +} #aside_primary .notice, #aside_primary .profile { @@ -970,36 +975,38 @@ outline:none; text-indent:-9999px; } +.form_repeat.dialogbox { +top:-4px; +right:29px; +min-width:199px; +} + .notice-options { position:relative; font-size:0.95em; -width:90px; +width:113px; float:right; -margin-right:11px; +margin-top:3px; +margin-right:4px; } - .notice-options a { float:left; } -.notice-options .notice_delete, .notice-options .notice_reply, +.notice-options .form_repeat, .notice-options .form_favor, -.notice-options .form_disfavor { -position:absolute; -top:0; +.notice-options .form_disfavor, +.notice-options .repeated { +float:left; +margin-left:14.2%; } .notice-options .form_favor, .notice-options .form_disfavor { -left:0; -} -.notice-options .notice_reply { -left:29px; -} -.notice-options .notice_delete { -right:0; +margin-left:0; } .notice-options input, -.notice-options a { +.notice-options a, +.notice-options .repeated { text-indent:-9999px; outline:none; } @@ -1010,27 +1017,51 @@ border:0; .notice-options .notice_reply, .notice-options .notice_delete { text-decoration:none; -padding-left:16px; +} +.notice .notice-options .notice_delete { +float:right; } .notice-options form input.submit { width:16px; -padding:2px 0; +height:16px; +padding:0; +border-radius:0; +-moz-border-radius:0; +-webkit-border-radius:0; } +.notice-options .form_repeat legend, .notice-options .form_favor legend, .notice-options .form_disfavor legend { display:none; } +.notice-options .form_repeat fieldset, .notice-options .form_favor fieldset, .notice-options .form_disfavor fieldset { border:0; padding:0; } +.notice-options a, +.notice-options .repeated { +width:16px; +height:16px; +} .notice .attachment { position:relative; padding-left:16px; } -#attachments .attachment { +.notice .attachment.more { +text-indent:-9999px; +width:16px; +height:16px; +display:inline-block; +overflow:hidden; +vertical-align:middle; +margin-left:4px; +} + +#attachments .attachment, +.notice .attachment.more { padding-left:0; } .notice .attachment img { diff --git a/theme/pigeonthoughts/css/display.css b/theme/pigeonthoughts/css/display.css index de5164ea8..62fa8817a 100644 --- a/theme/pigeonthoughts/css/display.css +++ b/theme/pigeonthoughts/css/display.css @@ -141,7 +141,6 @@ background-color:transparent; color:#000000; } - .aside .section { border-color:#FFFFFF; background-color:#FFFFFF; @@ -173,6 +172,11 @@ color:#7F1114; color:#FFFFFF; } +.aside .section .dialogbox { +color:#000000; +} + + .section .profile { border-top-color:#87B4C8; @@ -254,6 +258,13 @@ background:#FFFFFF url(../../base/images/icons/icon_processing.gif) no-repeat 47 background-image:none; } +.entity_send-a-message .form_notice, +.entity_moderation:hover ul, +.entity_role:hover ul, +.dialogbox { +background-color:#FFFFFF; +} + #content, #site_nav_local_views a { border-color:#FFFFFF; @@ -414,6 +425,9 @@ background-position: 0 -1714px; .notice .attachment { background-position:0 -394px; } +.notice .attachment.more { +background-position:0 -2770px; +} #attachments .attachment { background:none; } @@ -436,15 +450,19 @@ background-position:0 -1582px; background-position:0 -1648px; } - +.notices .attachment.more, .notices div.entry-content, .notices div.notice-options { opacity:0.4; } +.notices li:hover .attachment.more, .notices li:hover div.entry-content, .notices li:hover div.notice-options { opacity:1; } +.opaque { +opacity:1 !important; +} div.entry-content { color:#333333; } -- cgit v1.2.3-54-g00ecf From 1089c0e23c9b7be7128ee220959ce598db9a3cfe Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 25 Mar 2010 15:08:00 +0100 Subject: Updated biz theme to use realtime icons from core --- theme/biz/css/base.css | 2 +- theme/biz/css/display.css | 35 ++++++++++++++++++++++++++++++++++- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/theme/biz/css/base.css b/theme/biz/css/base.css index 3650988f3..f5efdb49c 100644 --- a/theme/biz/css/base.css +++ b/theme/biz/css/base.css @@ -1,7 +1,7 @@ /** theme: biz base * * @package StatusNet - * @author Sarven Capadisli + * @author Sarven Capadisli * @copyright 2009 StatusNet, Inc. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ diff --git a/theme/biz/css/display.css b/theme/biz/css/display.css index b2143cce3..ea09ef4c0 100644 --- a/theme/biz/css/display.css +++ b/theme/biz/css/display.css @@ -206,15 +206,26 @@ button.close, .form_user_unsubscribe input.submit, .form_group_join input.submit, .form_user_subscribe input.submit, +.form_remote_authorize input.submit, .entity_subscribe a, .entity_moderation p, .entity_sandbox input.submit, .entity_silence input.submit, .entity_delete input.submit, +.entity_role p, +.entity_role_administrator input.submit, +.entity_role_moderator input.submit, .notice-options .repeated, .form_notice label[for=notice_data-geo], button.minimize, -.form_reset_key input.submit { +.form_reset_key input.submit, +.entity_clear input.submit, +.entity_flag input.submit, +.entity_flag p, +.entity_subscribe input.submit, +#realtime_play, +#realtime_pause, +#realtime_popup { background-image:url(../../base/images/icons/icons-01.gif); background-repeat:no-repeat; background-color:transparent; @@ -355,6 +366,28 @@ background-position: 5px -1511px; .form_reset_key input.submit { background-position: 5px -1973px; } +.entity_clear input.submit { +background-position: 5px -2039px; +} +.entity_flag input.submit, +.entity_flag p { +background-position: 5px -2105px; +} +.entity_subscribe input.accept { +background-position: 5px -2171px; +} +.entity_subscribe input.reject { +background-position: 5px -2237px; +} +#realtime_play { +background-position: 0 -2308px; +} +#realtime_pause { +background-position: 0 -2374px; +} +#realtime_popup { +background-position: 0 -1714px; +} /* NOTICES */ -- cgit v1.2.3-54-g00ecf From 518551bf70429d10d5c7ce905a0e482bceffad18 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 25 Mar 2010 17:33:59 +0100 Subject: Fix for processing indicator for aside --- theme/cloudy/css/display.css | 3 ++- theme/default/css/display.css | 2 +- theme/identica/css/display.css | 2 +- theme/pigeonthoughts/css/display.css | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/theme/cloudy/css/display.css b/theme/cloudy/css/display.css index 5c3d8b5f7..caea5cf44 100644 --- a/theme/cloudy/css/display.css +++ b/theme/cloudy/css/display.css @@ -1663,7 +1663,8 @@ background-color:transparent; } #wrap form.processing input.submit, -.entity_actions a.processing { +#core a.processing, +.dialogbox.processing .submit_dialogbox { background:#FFFFFF url(../../base/images/icons/icon_processing.gif) no-repeat 47% 47%; cursor:wait; text-indent:-9999px; diff --git a/theme/default/css/display.css b/theme/default/css/display.css index 7ccd234cd..5e3748cb7 100644 --- a/theme/default/css/display.css +++ b/theme/default/css/display.css @@ -214,7 +214,7 @@ background-color:transparent; } #wrap form.processing input.submit, -#content a.processing, +#core a.processing, .dialogbox.processing .submit_dialogbox { background:#FFFFFF url(../../base/images/icons/icon_processing.gif) no-repeat 47% 47%; } diff --git a/theme/identica/css/display.css b/theme/identica/css/display.css index 3972657a7..440dd8be2 100644 --- a/theme/identica/css/display.css +++ b/theme/identica/css/display.css @@ -215,7 +215,7 @@ background-color:transparent; } #wrap form.processing input.submit, -#content a.processing, +#core a.processing, .dialogbox.processing .submit_dialogbox { background:#FFFFFF url(../../base/images/icons/icon_processing.gif) no-repeat 47% 47%; } diff --git a/theme/pigeonthoughts/css/display.css b/theme/pigeonthoughts/css/display.css index 62fa8817a..e584683fc 100644 --- a/theme/pigeonthoughts/css/display.css +++ b/theme/pigeonthoughts/css/display.css @@ -250,7 +250,7 @@ background-color:transparent; #wrap form.processing input.submit, -.entity_actions a.processing, +#core a.processing, .dialogbox.processing .submit_dialogbox { background:#FFFFFF url(../../base/images/icons/icon_processing.gif) no-repeat 47% 47%; } -- cgit v1.2.3-54-g00ecf From 7f1b852c97ff1e14eef7b42dfef42f372e22ea72 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 25 Mar 2010 17:47:04 +0100 Subject: If indenting is disabled on the output, this fixes the entity_tags crop --- theme/base/css/display.css | 3 +++ 1 file changed, 3 insertions(+) diff --git a/theme/base/css/display.css b/theme/base/css/display.css index b0ab02bce..f48bdf55e 100644 --- a/theme/base/css/display.css +++ b/theme/base/css/display.css @@ -858,6 +858,9 @@ display:inline; display:inline; margin-right:7px; } +.entity_tags li:before { +content:'\0009'; +} .aside .section { margin-bottom:29px; -- cgit v1.2.3-54-g00ecf From 6e644f77a43ea7028e0aafb2d83059d0f19db701 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 25 Mar 2010 13:49:12 -0400 Subject: Store blacklist patterns in their own tables We were bumping into limits on the config format in the Blacklist plugin. So, added new tables for nickname and homepage blacklists, and changed the plugin to use those instead of config file (actually, still uses config file in addition, for compatibility). --- plugins/Blacklist/BlacklistPlugin.php | 61 ++++++++-- plugins/Blacklist/Homepage_blacklist.php | 189 ++++++++++++++++++++++++++++++ plugins/Blacklist/Nickname_blacklist.php | 180 ++++++++++++++++++++++++++++ plugins/Blacklist/blacklistadminpanel.php | 40 +++---- 4 files changed, 437 insertions(+), 33 deletions(-) create mode 100644 plugins/Blacklist/Homepage_blacklist.php create mode 100644 plugins/Blacklist/Nickname_blacklist.php diff --git a/plugins/Blacklist/BlacklistPlugin.php b/plugins/Blacklist/BlacklistPlugin.php index fb8f7306f..a7d0942da 100644 --- a/plugins/Blacklist/BlacklistPlugin.php +++ b/plugins/Blacklist/BlacklistPlugin.php @@ -62,13 +62,56 @@ class BlacklistPlugin extends Plugin { $confNicknames = $this->_configArray('blacklist', 'nicknames'); + $dbNicknames = Nickname_blacklist::getPatterns(); + $this->_nicknamePatterns = array_merge($this->nicknames, - $confNicknames); + $confNicknames, + $dbNicknames); $confURLs = $this->_configArray('blacklist', 'urls'); + $dbURLs = Homepage_blacklist::getPatterns(); + $this->_urlPatterns = array_merge($this->urls, - $confURLs); + $confURLs, + $dbURLs); + } + + /** + * Database schema setup + * + * @return boolean hook value + */ + + function onCheckSchema() + { + $schema = Schema::get(); + + // For storing blacklist patterns for nicknames + + $schema->ensureTable('nickname_blacklist', + array(new ColumnDef('pattern', + 'varchar', + 255, + false, + 'PRI'), + new ColumnDef('created', + 'datetime', + null, + false))); + + $schema->ensureTable('homepage_blacklist', + array(new ColumnDef('pattern', + 'varchar', + 255, + false, + 'PRI'), + new ColumnDef('created', + 'datetime', + null, + false))); + + return true; } /** @@ -280,6 +323,10 @@ class BlacklistPlugin extends Plugin { switch (strtolower($cls)) { + case 'nickname_blacklist': + case 'homepage_blacklist': + include_once INSTALLDIR.'/plugins/Blacklist/'.ucfirst($cls).'.php'; + return false; case 'blacklistadminpanelaction': $base = strtolower(mb_substr($cls, 0, -6)); include_once INSTALLDIR.'/plugins/Blacklist/'.$base.'.php'; @@ -391,20 +438,14 @@ class BlacklistPlugin extends Plugin function onEndDeleteUser($action, $user) { - common_debug("Action args: " . print_r($action->args, true)); - if ($action->boolean('blacklisthomepage')) { $pattern = $action->trimmed('blacklisthomepagepattern'); - $confURLs = $this->_configArray('blacklist', 'urls'); - $confURLs[] = $pattern; - Config::save('blacklist', 'urls', implode("\r\n", $confURLs)); + Homepage_blacklist::ensurePattern($pattern); } if ($action->boolean('blacklistnickname')) { $pattern = $action->trimmed('blacklistnicknamepattern'); - $confNicknames = $this->_configArray('blacklist', 'nicknames'); - $confNicknames[] = $pattern; - Config::save('blacklist', 'nicknames', implode("\r\n", $confNicknames)); + Nickname_blacklist::ensurePattern($pattern); } return true; diff --git a/plugins/Blacklist/Homepage_blacklist.php b/plugins/Blacklist/Homepage_blacklist.php new file mode 100644 index 000000000..32080667e --- /dev/null +++ b/plugins/Blacklist/Homepage_blacklist.php @@ -0,0 +1,189 @@ + + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2009, StatusNet, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; + +/** + * Data class for Homepage blacklist + * + * @category Action + * @package StatusNet + * @author Evan Prodromou + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * @see DB_DataObject + */ + +class Homepage_blacklist extends Memcached_DataObject +{ + public $__table = 'homepage_blacklist'; // table name + public $pattern; // string pattern + public $created; // datetime + + /** + * Get an instance by key + * + * This is a utility method to get a single instance with a given key value. + * + * @param string $k Key to use to lookup (usually 'user_id' for this class) + * @param mixed $v Value to lookup + * + * @return Homepage_blacklist object found, or null for no hits + * + */ + + function staticGet($k, $v=null) + { + return Memcached_DataObject::staticGet('Homepage_blacklist', $k, $v); + } + + /** + * return table definition for DB_DataObject + * + * DB_DataObject needs to know something about the table to manipulate + * instances. This method provides all the DB_DataObject needs to know. + * + * @return array array of column definitions + */ + + function table() + { + return array('pattern' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL, + 'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL); + } + + /** + * return key definitions for DB_DataObject + * + * DB_DataObject needs to know about keys that the table has; this function + * defines them. + * + * @return array key definitions + */ + + function keys() + { + return array('pattern' => 'K'); + } + + /** + * return key definitions for Memcached_DataObject + * + * Our caching system uses the same key definitions, but uses a different + * method to get them. + * + * @return array key definitions + */ + + function keyTypes() + { + return $this->keys(); + } + + /** + * Return a list of patterns to check + * + * @return array string patterns to check + */ + + static function getPatterns() + { + $patterns = self::cacheGet('homepage_blacklist:patterns'); + + if ($patterns === false) { + + $patterns = array(); + + $nb = new Homepage_blacklist(); + + $nb->find(); + + while ($nb->fetch()) { + $patterns[] = $nb->pattern; + } + + self::cacheSet('homepage_blacklist:patterns', $patterns); + } + + return $patterns; + } + + /** + * Save new list of patterns + * + * @return array of patterns to check + */ + + static function saveNew($newPatterns) + { + $oldPatterns = self::getPatterns(); + + // Delete stuff that's old that not in new + + $toDelete = array_diff($oldPatterns, $newPatterns); + + // Insert stuff that's in new and not in old + + $toInsert = array_diff($newPatterns, $oldPatterns); + + foreach ($toDelete as $pattern) { + $nb = Homepage_blacklist::staticGet('pattern', $pattern); + if (!empty($nb)) { + $nb->delete(); + } + } + + foreach ($toInsert as $pattern) { + $nb = new Homepage_blacklist(); + $nb->pattern = $pattern; + $nb->created = common_sql_now(); + $nb->insert(); + } + + self::blow('homepage_blacklist:patterns'); + } + + static function ensurePattern($pattern) + { + $hb = Homepage_blacklist::staticGet('pattern', $pattern); + + if (empty($nb)) { + $hb = new Homepage_blacklist(); + $hb->pattern = $pattern; + $hb->created = common_sql_now(); + $hb->insert(); + self::blow('homepage_blacklist:patterns'); + } + } +} diff --git a/plugins/Blacklist/Nickname_blacklist.php b/plugins/Blacklist/Nickname_blacklist.php new file mode 100644 index 000000000..981063144 --- /dev/null +++ b/plugins/Blacklist/Nickname_blacklist.php @@ -0,0 +1,180 @@ + + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2009, StatusNet, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; + +/** + * Data class for Nickname blacklist + * + * @category Action + * @package StatusNet + * @author Evan Prodromou + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * @see DB_DataObject + */ + +class Nickname_blacklist extends Memcached_DataObject +{ + public $__table = 'nickname_blacklist'; // table name + public $pattern; // string pattern + public $created; // datetime + + /** + * Get an instance by key + * + * This is a utility method to get a single instance with a given key value. + * + * @param string $k Key to use to lookup + * @param mixed $v Value to lookup + * + * @return Nickname_blacklist object found, or null for no hits + * + */ + + function staticGet($k, $v=null) + { + return Memcached_DataObject::staticGet('Nickname_blacklist', $k, $v); + } + + /** + * return table definition for DB_DataObject + * + * @return array array of column definitions + */ + + function table() + { + return array('pattern' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL, + 'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL); + } + + /** + * return key definitions for DB_DataObject + * + * @return array key definitions + */ + + function keys() + { + return array('pattern' => 'K'); + } + + /** + * return key definitions for Memcached_DataObject + * + * @return array key definitions + */ + + function keyTypes() + { + return $this->keys(); + } + + /** + * Return a list of patterns to check + * + * @return array string patterns to check + */ + + static function getPatterns() + { + $patterns = self::cacheGet('nickname_blacklist:patterns'); + + if ($patterns === false) { + + $patterns = array(); + + $nb = new Nickname_blacklist(); + + $nb->find(); + + while ($nb->fetch()) { + $patterns[] = $nb->pattern; + } + + self::cacheSet('nickname_blacklist:patterns', $patterns); + } + + return $patterns; + } + + /** + * Save new list of patterns + * + * @return array of patterns to check + */ + + static function saveNew($newPatterns) + { + $oldPatterns = self::getPatterns(); + + // Delete stuff that's old that not in new + + $toDelete = array_diff($oldPatterns, $newPatterns); + + // Insert stuff that's in new and not in old + + $toInsert = array_diff($newPatterns, $oldPatterns); + + foreach ($toDelete as $pattern) { + $nb = Nickname_blacklist::staticGet('pattern', $pattern); + if (!empty($nb)) { + $nb->delete(); + } + } + + foreach ($toInsert as $pattern) { + $nb = new Nickname_blacklist(); + $nb->pattern = $pattern; + $nb->created = common_sql_now(); + $nb->insert(); + } + + self::blow('nickname_blacklist:patterns'); + } + + static function ensurePattern($pattern) + { + $nb = Nickname_blacklist::staticGet('pattern', $pattern); + + if (empty($nb)) { + $nb = new Nickname_blacklist(); + $nb->pattern = $pattern; + $nb->created = common_sql_now(); + $nb->insert(); + self::blow('nickname_blacklist:patterns'); + } + } +} diff --git a/plugins/Blacklist/blacklistadminpanel.php b/plugins/Blacklist/blacklistadminpanel.php index 98d07080d..b996aba8d 100644 --- a/plugins/Blacklist/blacklistadminpanel.php +++ b/plugins/Blacklist/blacklistadminpanel.php @@ -88,35 +88,24 @@ class BlacklistadminpanelAction extends AdminPanelAction function saveSettings() { - static $settings = array( - 'blacklist' => array('nicknames', 'urls'), - ); + $nickPatterns = array(); - $values = array(); + $rawNickPatterns = explode("\n", $this->trimmed('blacklist-nicknames')); - foreach ($settings as $section => $parts) { - foreach ($parts as $setting) { - $values[$section][$setting] = $this->trimmed("$section-$setting"); - } + foreach ($rawNickPatterns as $raw) { + $nickPatterns[] = trim($raw); } - // This throws an exception on validation errors + Nickname_blacklist::saveNew($nickPatterns); - $this->validate($values); + $rawUrlPatterns = explode("\n", $this->trimmed('blacklist-urls')); + $urlPatterns = array(); - // 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]); - } + foreach ($rawUrlPatterns as $raw) { + $urlPatterns[] = trim($raw); } - $config->query('COMMIT'); + Homepage_blacklist::saveNew($urlPatterns); return; } @@ -191,14 +180,19 @@ class BlacklistAdminPanelForm extends Form $this->out->elementStart('ul', 'form_data'); $this->out->elementStart('li'); + + $nickPatterns = Nickname_blacklist::getPatterns(); + $this->out->textarea('blacklist-nicknames', _m('Nicknames'), - common_config('blacklist', 'nicknames'), + implode("\r\n", $nickPatterns), _('Patterns of nicknames to block, one per line')); $this->out->elementEnd('li'); + $urlPatterns = Homepage_blacklist::getPatterns(); + $this->out->elementStart('li'); $this->out->textarea('blacklist-urls', _m('URLs'), - common_config('blacklist', 'urls'), + implode("\r\n", $urlPatterns), _('Patterns of URLs to block, one per line')); $this->out->elementEnd('li'); -- cgit v1.2.3-54-g00ecf From 38fac1d46364933b2d0a0a33a02c0b4b78e376b4 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Thu, 25 Mar 2010 12:21:02 -0700 Subject: Clarify RewriteBase comment in htaccess.sample --- htaccess.sample | 2 ++ 1 file changed, 2 insertions(+) diff --git a/htaccess.sample b/htaccess.sample index 18a868698..1b7701609 100644 --- a/htaccess.sample +++ b/htaccess.sample @@ -2,6 +2,8 @@ RewriteEngine On # NOTE: change this to your actual StatusNet path; may be "/". + # http://example.com/ => / + # http://example.com/mublog/ => /mublog/ RewriteBase /mublog/ -- cgit v1.2.3-54-g00ecf From cd9017408e3a970d5d12433b9b81266817e0cc6f Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Thu, 25 Mar 2010 12:48:31 -0700 Subject: And clarify a little more --- htaccess.sample | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/htaccess.sample b/htaccess.sample index 1b7701609..fa09b30f6 100644 --- a/htaccess.sample +++ b/htaccess.sample @@ -1,14 +1,17 @@ RewriteEngine On - # NOTE: change this to your actual StatusNet path; may be "/". - # http://example.com/ => / - # http://example.com/mublog/ => /mublog/ - + # NOTE: change this to your actual StatusNet base URL path, + # minus the domain part: + # + # http://example.com/ => / + # http://example.com/mublog/ => /mublog/ + # RewriteBase /mublog/ ## Uncomment these if having trouble with API authentication ## when PHP is running in CGI or FastCGI mode. + # #RewriteCond %{HTTP:Authorization} ^(.*) #RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1] -- cgit v1.2.3-54-g00ecf From 321093886fd708696c28118893443aa598c6b97f Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sat, 13 Mar 2010 16:48:21 -0500 Subject: Assigned an identifier for the representative user and group profile --- actions/showgroup.php | 3 ++- lib/userprofile.php | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/actions/showgroup.php b/actions/showgroup.php index 5704b13d1..a0d05ba37 100644 --- a/actions/showgroup.php +++ b/actions/showgroup.php @@ -221,7 +221,8 @@ class ShowgroupAction extends GroupDesignAction function showGroupProfile() { - $this->elementStart('div', 'entity_profile vcard author'); + $this->elementStart('div', array('id' => 'i', + 'class' => 'entity_profile vcard author')); $this->element('h2', null, _('Group profile')); diff --git a/lib/userprofile.php b/lib/userprofile.php index 2c3b1ea45..ca060842b 100644 --- a/lib/userprofile.php +++ b/lib/userprofile.php @@ -71,7 +71,8 @@ class UserProfile extends Widget { if (Event::handle('StartProfilePageProfileSection', array(&$this->out, $this->profile))) { - $this->out->elementStart('div', 'entity_profile vcard author'); + $this->out->elementStart('div', array('id' => 'i', + 'class' => 'entity_profile vcard author')); $this->out->element('h2', null, _('User profile')); if (Event::handle('StartProfilePageProfileElements', array(&$this->out, $this->profile))) { -- cgit v1.2.3-54-g00ecf From 9ea48298d507ca286e4d7f0dc44291438062782e Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sun, 14 Mar 2010 14:06:14 -0400 Subject: Updated plugin to open external links on a new window that are not attachments --- plugins/OpenExternalLinkTarget/OpenExternalLinkTargetPlugin.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/OpenExternalLinkTarget/OpenExternalLinkTargetPlugin.php b/plugins/OpenExternalLinkTarget/OpenExternalLinkTargetPlugin.php index ebb0189e0..6756f1993 100644 --- a/plugins/OpenExternalLinkTarget/OpenExternalLinkTargetPlugin.php +++ b/plugins/OpenExternalLinkTarget/OpenExternalLinkTargetPlugin.php @@ -45,7 +45,7 @@ class OpenExternalLinkTargetPlugin extends Plugin { function onEndShowScripts($action) { - $action->inlineScript('$("a[rel~=external]").click(function(){ window.open(this.href); return false; });'); + $action->inlineScript('$("a[rel~=external]:not([class~=attachment])").live("click", function(){ window.open(this.href); return false; });'); return true; } -- cgit v1.2.3-54-g00ecf From 53bed00f9028523ba003956ed88f9549ec203e3b Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sun, 14 Mar 2010 14:11:21 -0400 Subject: Added rel=external to geo location link --- lib/noticelist.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/noticelist.php b/lib/noticelist.php index 811b7e4f1..0d4cd4dd9 100644 --- a/lib/noticelist.php +++ b/lib/noticelist.php @@ -443,7 +443,8 @@ class NoticeListItem extends Widget $name); } else { $xstr = new XMLStringer(false); - $xstr->elementStart('a', array('href' => $url)); + $xstr->elementStart('a', array('href' => $url, + 'rel' => 'external')); $xstr->element('abbr', array('class' => 'geo', 'title' => $latlon), $name); -- cgit v1.2.3-54-g00ecf From 3c5586d4bd2b00a2c3a140830fcc7b3e15898242 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sun, 14 Mar 2010 15:01:24 -0400 Subject: Using rel=external instead of class=external for jOverlay title link --- lib/attachmentlist.php | 6 ++---- theme/base/css/display.css | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/lib/attachmentlist.php b/lib/attachmentlist.php index fe38281af..b503bfb45 100644 --- a/lib/attachmentlist.php +++ b/lib/attachmentlist.php @@ -248,9 +248,7 @@ class Attachment extends AttachmentListItem $this->out->elementStart('div', array('id' => 'attachment_view', 'class' => 'hentry')); $this->out->elementStart('div', 'entry-title'); - $this->out->elementStart('a', $this->linkAttr()); - $this->out->element('span', null, $this->linkTitle()); - $this->out->elementEnd('a'); + $this->out->element('a', $this->linkAttr(), $this->linkTitle()); $this->out->elementEnd('div'); $this->out->elementStart('div', 'entry-content'); @@ -296,7 +294,7 @@ class Attachment extends AttachmentListItem } function linkAttr() { - return array('class' => 'external', 'href' => $this->attachment->url); + return array('rel' => 'external', 'href' => $this->attachment->url); } function linkTitle() { diff --git a/theme/base/css/display.css b/theme/base/css/display.css index 782d3dc71..a2e4cdf2a 100644 --- a/theme/base/css/display.css +++ b/theme/base/css/display.css @@ -1326,7 +1326,7 @@ margin-bottom:0; padding:11px; min-height:auto; } -#jOverlayContent .external span { +#jOverlayContent .entry-title { display:block; margin-bottom:11px; } -- cgit v1.2.3-54-g00ecf From 7f6fdb528c7e089984bc6ca121508469d423483c Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 25 Mar 2010 16:35:22 -0400 Subject: remove debugging calls --- plugins/OpenID/finishopenidlogin.php | 1 - plugins/OpenID/openid.php | 6 +----- plugins/OpenID/openidtrust.php | 5 ++--- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/plugins/OpenID/finishopenidlogin.php b/plugins/OpenID/finishopenidlogin.php index 438a728d8..1f9bde0f1 100644 --- a/plugins/OpenID/finishopenidlogin.php +++ b/plugins/OpenID/finishopenidlogin.php @@ -48,7 +48,6 @@ class FinishopenidloginAction extends Action } else if ($this->arg('connect')) { $this->connectUser(); } else { - common_debug(print_r($this->args, true), __FILE__); $this->showForm(_m('Something weird happened.'), $this->trimmed('newname')); } diff --git a/plugins/OpenID/openid.php b/plugins/OpenID/openid.php index 9e02c7a88..d49941aed 100644 --- a/plugins/OpenID/openid.php +++ b/plugins/OpenID/openid.php @@ -94,7 +94,6 @@ function oid_link_user($id, $canonical, $display) if (!$oid->insert()) { $err = PEAR::getStaticProperty('DB_DataObject','lastError'); - common_debug('DB error ' . $err->code . ': ' . $err->message, __FILE__); return false; } @@ -119,13 +118,10 @@ function oid_check_immediate($openid_url, $backto=null) unset($args['action']); $backto = common_local_url($action, $args); } - common_debug('going back to "' . $backto . '"', __FILE__); common_ensure_session(); $_SESSION['openid_immediate_backto'] = $backto; - common_debug('passed-in variable is "' . $backto . '"', __FILE__); - common_debug('session variable is "' . $_SESSION['openid_immediate_backto'] . '"', __FILE__); oid_authenticate($openid_url, 'finishimmediate', @@ -281,7 +277,7 @@ class AutosubmitAction extends Action { $this->raw($this->form_html); } - + function showScripts() { parent::showScripts(); diff --git a/plugins/OpenID/openidtrust.php b/plugins/OpenID/openidtrust.php index fa7ea36e2..ed6ca73a4 100644 --- a/plugins/OpenID/openidtrust.php +++ b/plugins/OpenID/openidtrust.php @@ -71,7 +71,7 @@ class OpenidtrustAction extends Action } return true; } - + function handle($args) { parent::handle($args); @@ -96,7 +96,6 @@ class OpenidtrustAction extends Action $user_openid_trustroot->created = DB_DataObject_Cast::dateTime(); if (!$user_openid_trustroot->insert()) { $err = PEAR::getStaticProperty('DB_DataObject','lastError'); - common_debug('DB error ' . $err->code . ': ' . $err->message, __FILE__); } common_redirect($this->allowUrl, $code=302); }else{ @@ -135,7 +134,7 @@ class OpenidtrustAction extends Action $this->elementStart('fieldset'); $this->submit('allow', _m('Continue')); $this->submit('deny', _m('Cancel')); - + $this->elementEnd('fieldset'); $this->elementEnd('form'); } -- cgit v1.2.3-54-g00ecf From 56deca63d0d73b965bc7dba11ef025a7c1ad3234 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Tue, 16 Mar 2010 19:34:20 +0100 Subject: Removed dangling stylesheet --- theme/base/css/thickbox.css | 163 -------------------------------------------- 1 file changed, 163 deletions(-) delete mode 100644 theme/base/css/thickbox.css diff --git a/theme/base/css/thickbox.css b/theme/base/css/thickbox.css deleted file mode 100644 index d24b9bedf..000000000 --- a/theme/base/css/thickbox.css +++ /dev/null @@ -1,163 +0,0 @@ -/* ----------------------------------------------------------------------------------------------------------------*/ -/* ---------->>> global settings needed for thickbox <<<-----------------------------------------------------------*/ -/* ----------------------------------------------------------------------------------------------------------------*/ -*{padding: 0; margin: 0;} - -/* ----------------------------------------------------------------------------------------------------------------*/ -/* ---------->>> thickbox specific link and font settings <<<------------------------------------------------------*/ -/* ----------------------------------------------------------------------------------------------------------------*/ -#TB_window { - font: 12px Arial, Helvetica, sans-serif; - color: #333333; -} - -#TB_secondLine { - font: 10px Arial, Helvetica, sans-serif; - color:#666666; -} - -#TB_window a:link {color: #666666;} -#TB_window a:visited {color: #666666;} -#TB_window a:hover {color: #000;} -#TB_window a:active {color: #666666;} -#TB_window a:focus{color: #666666;} - -/* ----------------------------------------------------------------------------------------------------------------*/ -/* ---------->>> thickbox settings <<<-----------------------------------------------------------------------------*/ -/* ----------------------------------------------------------------------------------------------------------------*/ -#TB_overlay { - position: fixed; - z-index:100; - top: 0px; - left: 0px; - height:100%; - width:100%; -} - -.TB_overlayMacFFBGHack {background: url(macFFBgHack.png) repeat;} -.TB_overlayBG { - background-color:#000; - filter:alpha(opacity=75); - -moz-opacity: 0.75; - opacity: 0.75; -} - -* html #TB_overlay { /* ie6 hack */ - position: absolute; - height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'); -} - -#TB_window { - position: fixed; - background: #ffffff; - z-index: 102; - color:#000000; - display:none; - border: 4px solid #525252; - text-align:left; - top:50%; - left:50%; -} - -* html #TB_window { /* ie6 hack */ -position: absolute; -margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px'); -} - -#TB_window img#TB_Image { - display:block; - margin: 15px 0 0 15px; - border-right: 1px solid #ccc; - border-bottom: 1px solid #ccc; - border-top: 1px solid #666; - border-left: 1px solid #666; -} - -#TB_caption{ - height:25px; - padding:7px 30px 10px 25px; - float:left; -} - -#TB_closeWindow{ - height:25px; - padding:11px 25px 10px 0; - float:right; -} - -#TB_closeAjaxWindow{ - padding:7px 10px 5px 0; - margin-bottom:1px; - text-align:right; - float:right; -} - -#TB_ajaxWindowTitle{ - float:left; - padding:7px 0 5px 10px; - margin-bottom:1px; -} - -#TB_title{ - background-color:#e8e8e8; - height:27px; -} - -#TB_ajaxContent{ - clear:both; - padding:2px 15px 15px 15px; - overflow:auto; - text-align:left; - line-height:1.4em; -} - -#TB_ajaxContent.TB_modal{ - padding:15px; -} - -#TB_ajaxContent p{ - padding:5px 0px 5px 0px; -} - -#TB_load{ - position: fixed; - display:none; - height:13px; - width:208px; - z-index:103; - top: 50%; - left: 50%; - margin: -6px 0 0 -104px; /* -height/2 0 0 -width/2 */ -} - -* html #TB_load { /* ie6 hack */ -position: absolute; -margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px'); -} - -#TB_HideSelect{ - z-index:99; - position:fixed; - top: 0; - left: 0; - background-color:#fff; - border:none; - filter:alpha(opacity=0); - -moz-opacity: 0; - opacity: 0; - height:100%; - width:100%; -} - -* html #TB_HideSelect { /* ie6 hack */ - position: absolute; - height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'); -} - -#TB_iframeContent{ - clear:both; - border:none; - margin-bottom:-1px; - margin-top:1px; - _margin-bottom:1px; -} -- cgit v1.2.3-54-g00ecf From f4339ddb7d5ab6ae7a2ab78562990da1fcc2a8bd Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Tue, 16 Mar 2010 20:53:49 +0100 Subject: Added extra condition to focusing on notice form on page load. If the window location contains a fragument identifier, it will skip focus and do what the UA does natively. --- js/util.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/util.js b/js/util.js index 3efda0d7b..2e0f6e57b 100644 --- a/js/util.js +++ b/js/util.js @@ -86,7 +86,7 @@ var SN = { // StatusNet $('#'+form_id+' #'+SN.C.S.NoticeTextCount).text(jQuery.data(form[0], 'ElementData').MaxLength); } - if ($('body')[0].id != 'conversation') { + if ($('body')[0].id != 'conversation' && window.location.hash.length === 0) { $('#'+form_id+' textarea').focus(); } }, -- cgit v1.2.3-54-g00ecf From 7fc8b6af4ae9a784b797d4f7aef49c820bb10bdf Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Tue, 16 Mar 2010 21:02:56 +0100 Subject: Removed unnecessary form_id. Using jQuery .find() instead of constructing the selector. --- js/util.js | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/js/util.js b/js/util.js index 2e0f6e57b..f82ca992c 100644 --- a/js/util.js +++ b/js/util.js @@ -61,10 +61,8 @@ var SN = { // StatusNet U: { // Utils FormNoticeEnhancements: function(form) { - form_id = form.attr('id'); - if (jQuery.data(form[0], 'ElementData') === undefined) { - MaxLength = $('#'+form_id+' #'+SN.C.S.NoticeTextCount).text(); + MaxLength = form.find('#'+SN.C.S.NoticeTextCount).text(); if (typeof(MaxLength) == 'undefined') { MaxLength = SN.C.I.MaxLength; } @@ -72,7 +70,7 @@ var SN = { // StatusNet SN.U.Counter(form); - NDT = $('#'+form_id+' #'+SN.C.S.NoticeDataText); + NDT = form.find('#'+SN.C.S.NoticeDataText); NDT.bind('keyup', function(e) { SN.U.Counter(form); @@ -83,11 +81,11 @@ var SN = { // StatusNet }); } else { - $('#'+form_id+' #'+SN.C.S.NoticeTextCount).text(jQuery.data(form[0], 'ElementData').MaxLength); + form.find('#'+SN.C.S.NoticeTextCount).text(jQuery.data(form[0], 'ElementData').MaxLength); } if ($('body')[0].id != 'conversation' && window.location.hash.length === 0) { - $('#'+form_id+' textarea').focus(); + form.find('textarea').focus(); } }, @@ -105,7 +103,6 @@ var SN = { // StatusNet Counter: function(form) { SN.C.I.FormNoticeCurrent = form; - form_id = form.attr('id'); var MaxLength = jQuery.data(form[0], 'ElementData').MaxLength; @@ -113,8 +110,8 @@ var SN = { // StatusNet return; } - var remaining = MaxLength - $('#'+form_id+' #'+SN.C.S.NoticeDataText).val().length; - var counter = $('#'+form_id+' #'+SN.C.S.NoticeTextCount); + var remaining = MaxLength - form.find('#'+SN.C.S.NoticeDataText).val().length; + var counter = form.find('#'+SN.C.S.NoticeTextCount); if (remaining.toString() != counter.text()) { if (!SN.C.I.CounterBlackout || remaining === 0) { @@ -174,7 +171,6 @@ var SN = { // StatusNet FormNoticeXHR: function(form) { SN.C.I.NoticeDataGeo = {}; - form_id = form.attr('id'); form.append(''); form.ajaxForm({ dataType: 'xml', -- cgit v1.2.3-54-g00ecf From 9c63ae6e443e7b23f64e31617a1762393473509a Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 25 Mar 2010 16:58:05 -0400 Subject: add whitelist and blacklist for openid URLs --- plugins/OpenID/finishopenidlogin.php | 3 +++ plugins/OpenID/openid.php | 29 +++++++++++++++++++++++++++++ plugins/OpenID/openidlogin.php | 2 ++ 3 files changed, 34 insertions(+) diff --git a/plugins/OpenID/finishopenidlogin.php b/plugins/OpenID/finishopenidlogin.php index 1f9bde0f1..f3a483300 100644 --- a/plugins/OpenID/finishopenidlogin.php +++ b/plugins/OpenID/finishopenidlogin.php @@ -158,6 +158,9 @@ class FinishopenidloginAction extends Action $canonical = ($response->endpoint->canonicalID) ? $response->endpoint->canonicalID : $response->getDisplayIdentifier(); + oid_assert_allowed($display); + oid_assert_allowed($canonical); + $sreg_resp = Auth_OpenID_SRegResponse::fromSuccessResponse($response); if ($sreg_resp) { diff --git a/plugins/OpenID/openid.php b/plugins/OpenID/openid.php index d49941aed..152438917 100644 --- a/plugins/OpenID/openid.php +++ b/plugins/OpenID/openid.php @@ -257,6 +257,35 @@ function oid_update_user(&$user, &$sreg) return true; } +function oid_assert_allowed($url) +{ + $blacklist = common_config('openid', 'blacklist'); + $whitelist = common_config('openid', 'whitelist'); + + if (empty($blacklist)) { + $blacklist = array(); + } + + if (empty($whitelist)) { + $whitelist = array(); + } + + foreach ($blacklist as $pattern) { + if (preg_match("/$pattern/", $url)) { + common_log(LOG_INFO, "Matched OpenID blacklist pattern {$pattern} with {$url}"); + foreach ($whitelist as $exception) { + if (preg_match("/$exception/", $url)) { + common_log(LOG_INFO, "Matched OpenID whitelist pattern {$exception} with {$url}"); + return; + } + } + throw new ClientException(_m("Unauthorized URL used for OpenID login."), 403); + } + } + + return; +} + class AutosubmitAction extends Action { var $form_html = null; diff --git a/plugins/OpenID/openidlogin.php b/plugins/OpenID/openidlogin.php index 9ba55911c..2a743672c 100644 --- a/plugins/OpenID/openidlogin.php +++ b/plugins/OpenID/openidlogin.php @@ -31,6 +31,8 @@ class OpenidloginAction extends Action } else if ($_SERVER['REQUEST_METHOD'] == 'POST') { $openid_url = $this->trimmed('openid_url'); + oid_assert_allowed($openid_url); + # CSRF protection $token = $this->trimmed('token'); if (!$token || $token != common_session_token()) { -- cgit v1.2.3-54-g00ecf From c11064a5398db824f2623c5763b3fdfdf8ae3c39 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Thu, 25 Mar 2010 14:15:54 -0700 Subject: Updated 'more' anchor for attachments to do an XHR GET Conflicts: lib/attachmentlist.php plugins/OStatus/classes/Ostatus_profile.php Merge tried to delete things that it seems it shouldn't, very confusing order. Hope rest of the cherry-picking isn't a problem. --- js/util.js | 110 +++++++++++++++------------- lib/attachmentlist.php | 53 ++++++++++++++ plugins/OStatus/classes/Ostatus_profile.php | 18 ++++- theme/base/css/display.css | 9 ++- theme/default/css/display.css | 3 +- theme/identica/css/display.css | 3 +- 6 files changed, 141 insertions(+), 55 deletions(-) diff --git a/js/util.js b/js/util.js index f82ca992c..79fd40deb 100644 --- a/js/util.js +++ b/js/util.js @@ -399,58 +399,70 @@ var SN = { // StatusNet return; } - $.fn.jOverlay.options = { - method : 'GET', - data : '', - url : '', - color : '#000', - opacity : '0.6', - zIndex : 9999, - center : false, - imgLoading : $('address .url')[0].href+'theme/base/images/illustrations/illu_progress_loading-01.gif', - bgClickToClose : true, - success : function() { - $('#jOverlayContent').append(''); - $('#jOverlayContent button').click($.closeOverlay); - }, - timeout : 0, - autoHide : true, - css : {'max-width':'542px', 'top':'5%', 'left':'32.5%'} - }; - - notice.find('a.attachment').click(function() { - var attachId = ($(this).attr('id').substring('attachment'.length + 1)); - if (attachId) { - $().jOverlay({url: $('address .url')[0].href+'attachment/' + attachId + '/ajax'}); - return false; - } - }); + var attachment_more = notice.find('.attachment.more'); + if (attachment_more.length > 0) { + attachment_more.click(function() { + $.get($(this).attr('href')+'/ajax', null, function(data) { + notice.find('.entry-title .entry-content').html($(data).find('#attachment_view .entry-content').html()); + }); - if ($('#shownotice').length == 0) { - var t; - notice.find('a.thumbnail').hover( - function() { - var anchor = $(this); - $('a.thumbnail').children('img').hide(); - anchor.closest(".entry-title").addClass('ov'); - - if (anchor.children('img').length === 0) { - t = setTimeout(function() { - $.get($('address .url')[0].href+'attachment/' + (anchor.attr('id').substring('attachment'.length + 1)) + '/thumbnail', null, function(data) { - anchor.append(data); - }); - }, 500); - } - else { - anchor.children('img').show(); - } + return false; + }); + } + else { + $.fn.jOverlay.options = { + method : 'GET', + data : '', + url : '', + color : '#000', + opacity : '0.6', + zIndex : 9999, + center : false, + imgLoading : $('address .url')[0].href+'theme/base/images/illustrations/illu_progress_loading-01.gif', + bgClickToClose : true, + success : function() { + $('#jOverlayContent').append(''); + $('#jOverlayContent button').click($.closeOverlay); }, - function() { - clearTimeout(t); - $('a.thumbnail').children('img').hide(); - $(this).closest('.entry-title').removeClass('ov'); + timeout : 0, + autoHide : true, + css : {'max-width':'542px', 'top':'5%', 'left':'32.5%'} + }; + + notice.find('a.attachment').click(function() { + var attachId = ($(this).attr('id').substring('attachment'.length + 1)); + if (attachId) { + $().jOverlay({url: $('address .url')[0].href+'attachment/' + attachId + '/ajax'}); + return false; } - ); + }); + + if ($('#shownotice').length == 0) { + var t; + notice.find('a.thumbnail').hover( + function() { + var anchor = $(this); + $('a.thumbnail').children('img').hide(); + anchor.closest(".entry-title").addClass('ov'); + + if (anchor.children('img').length === 0) { + t = setTimeout(function() { + $.get($('address .url')[0].href+'attachment/' + (anchor.attr('id').substring('attachment'.length + 1)) + '/thumbnail', null, function(data) { + anchor.append(data); + }); + }, 500); + } + else { + anchor.children('img').show(); + } + }, + function() { + clearTimeout(t); + $('a.thumbnail').children('img').hide(); + $(this).closest('.entry-title').removeClass('ov'); + } + ); + } } }, diff --git a/lib/attachmentlist.php b/lib/attachmentlist.php index b503bfb45..c6261dea5 100644 --- a/lib/attachmentlist.php +++ b/lib/attachmentlist.php @@ -359,6 +359,59 @@ class Attachment extends AttachmentListItem } } + protected function showHtmlFile(File $attachment) + { + $body = $this->scrubHtmlFile($attachment); + if ($body) { + $this->out->raw($body); + } + } + + /** + * @return mixed false on failure, HTML fragment string on success + */ + protected function scrubHtmlFile(File $attachment) + { + $path = File::path($attachment->filename); + if (!file_exists($path) || !is_readable($path)) { + common_log(LOG_ERR, "Missing local HTML attachment $path"); + return false; + } + $raw = file_get_contents($path); + + // Normalize... + $dom = new DOMDocument(); + if(!$dom->loadHTML($raw)) { + common_log(LOG_ERR, "Bad HTML in local HTML attachment $path"); + return false; + } + + // Remove